David Baker
92f0f3d21d
Catch all exceptions when creating a pusher
2016-05-04 11:24:07 +01:00
David Baker
b084e4d963
Add constant for throttle multiplier
2016-04-29 20:14:55 +01:00
David Baker
35b7b8e4bc
Remove unused function
2016-04-29 20:10:34 +01:00
David Baker
6b9b6a9169
Remove unused arg
2016-04-29 20:02:52 +01:00
David Baker
e7a76b5123
Use the constant
2016-04-29 19:10:45 +01:00
David Baker
29c8cf8db8
Avoid `vars` builtin
2016-04-29 19:09:28 +01:00
David Baker
d3da5294e8
Use named parameter format
2016-04-29 19:04:40 +01:00
David Baker
311b5ce051
pep8
2016-04-29 14:37:30 +01:00
David Baker
3facde2536
Remove rather pointless get function
2016-04-29 14:36:45 +01:00
David Baker
4364ea1272
Stop processing notifs once we've sent a mail
2016-04-29 14:31:27 +01:00
David Baker
40d40e470d
Send mail notifs with a plaintext part too
2016-04-29 13:56:21 +01:00
David Baker
b2c04da8dc
Add an email pusher for new users
...
If they registered with an email address and email notifs are enabled on the HS
2016-04-29 11:43:57 +01:00
David Baker
acded821c4
Merge remote-tracking branch 'origin/develop' into dbkr/email_notifs
2016-04-29 10:05:20 +01:00
David Baker
e800ee2f63
May as well always include room link
2016-04-28 17:28:27 +01:00
David Baker
cc0874cf71
Put back real delay before mailing
2016-04-28 17:00:40 +01:00
David Baker
68f8fc2f14
Support file messages & fix plain text
2016-04-28 16:59:57 +01:00
David Baker
4845c7359d
Support image notifs
2016-04-28 15:55:53 +01:00
David Baker
60f86fc876
pep8
2016-04-28 15:16:30 +01:00
David Baker
937c407eef
Only import email pusher if email notifs are on
2016-04-28 15:12:14 +01:00
David Baker
ebbabc4986
Handle room invites in email notifs
2016-04-28 11:49:36 +01:00
David Baker
9dba1b668c
Linkify plain text messages too
2016-04-28 10:55:08 +01:00
David Baker
424a7f48f8
Run filter_events_for_client
...
so we don't accidentally mail out events people shouldn't see
2016-04-27 17:50:49 +01:00
David Baker
4ed1e45869
Make html messages work
2016-04-27 17:18:51 +01:00
David Baker
8781083960
Better grammar for multiple messages in a room
...
Say who the messages are from if there's no room name, otherwise it's a bit nonsensical
2016-04-27 15:30:41 +01:00
David Baker
fa12209c1b
Hopefully all remaining bits for email notifs
...
Add public facing base url to the server so synapse knows what URL to use when converting mxc to http urls for use in emails
2016-04-27 15:09:55 +01:00
David Baker
7b4715bad7
More variable calculation for email notifs
...
Include name of the person we're sending to and add summary text at the top giving an overview of what's happened.
2016-04-25 18:27:04 +01:00
David Baker
bd0f9c2065
Actually do UTF8 correctly
2016-04-22 18:42:00 +01:00
David Baker
83bf65297a
Mime part is binary so encode it first.
...
Doesn't get character enocind right yet but makes it not error.
2016-04-22 18:31:47 +01:00
David Baker
c553797c4f
No inlineCallbacks necessary on this
2016-04-22 17:27:54 +01:00
David Baker
c10ed26c30
Flesh out email templating
...
Mostly WIP porting the room name calculation logic from the web client so our room names in the email mirror the clients.
2016-04-21 19:19:07 +01:00
Mark Haines
a3ac837599
Optionally split out the pushers into a separate process
2016-04-21 17:22:37 +01:00
David Baker
2ed0adb075
Generate mails from a template
2016-04-20 18:35:29 +01:00
David Baker
05adc6c2de
more pep8
2016-04-20 13:02:45 +01:00
David Baker
f63bd4ff47
Send a rather basic email notif
...
Also pep8 fixes
2016-04-20 13:02:01 +01:00
David Baker
e2a01455af
Add single instance & logging stuff
...
Copy the stuff over from http pusher that prevents multiple instances of process running at once and sets up logging and measure blocks.
2016-04-19 14:52:58 +01:00
David Baker
07d765209d
First bits of emailpusher
...
Mostly logic of when to send an email
2016-04-19 14:24:36 +01:00
Erik Johnston
9ae64c9910
Measure push action generator
2016-04-14 13:42:22 +01:00
Erik Johnston
b42ad359e9
Merge pull request #725 from matrix-org/dbkr/push_only_joined
...
Don't push for everyone who ever sent an RR to the room
2016-04-14 12:05:13 +01:00
David Baker
757e2c79b4
Don't push for everyone who ever sent an RR to the room
2016-04-14 12:02:50 +01:00
Erik Johnston
86e9bbc74e
Add missing yield
2016-04-14 11:56:52 +01:00
Erik Johnston
e40f25ebe1
Rename log context
2016-04-14 11:54:14 +01:00
Erik Johnston
2ae91a9e2f
Make send_badge private
2016-04-14 11:37:50 +01:00
Erik Johnston
56da835eaf
Add necessary logging contexts
2016-04-14 11:33:50 +01:00
Erik Johnston
7be1065b8f
Add extra Measure
2016-04-14 11:26:15 +01:00
David Baker
65141161f6
Unused member variable
2016-04-12 16:25:26 +01:00
Mark Haines
790f5848b2
Fix the rule_id for .m.rule.invite_for_me ( #715 )
2016-04-11 16:10:39 +01:00
David Baker
9bb041791c
Run unsafe proces in a loop until we've caught up
...
and wrap unsafe process in a try block
2016-04-11 12:48:30 +01:00
David Baker
d96a070a3a
Actually check if we;re processing
2016-04-08 16:49:39 +01:00
David Baker
ed3979df5f
Fix invite pushes
...
* If the event is an invite event, add the invitee to list of user we run push rules for (if they have a pusher etc)
* Move invite_for_me to be higher prio than member events otherwise member events matches them
* Spell override right
2016-04-08 15:29:59 +01:00
David Baker
7b6d519482
Make sure max stream ordering only increases
2016-04-08 14:08:16 +01:00
David Baker
52d1008661
Unsafe process should call itself if the max has changed
2016-04-08 14:06:54 +01:00
David Baker
ce3fe52498
Comment why unsafe process is unsafe
2016-04-08 14:02:38 +01:00
David Baker
a4a31fa8dc
Only pass in what we need
2016-04-07 17:37:19 +01:00
David Baker
15e0f1696f
Wrap process in a flag so we don't process whist already processing.
2016-04-07 17:31:08 +01:00
David Baker
6ec02e9ecf
indenting
2016-04-07 17:24:05 +01:00
David Baker
25cd5bb697
defer.gatherResults rather than doing all the pokes in series
2016-04-07 17:22:14 +01:00
David Baker
fa129ce5b5
Add measure blocks
2016-04-07 17:12:29 +01:00
David Baker
e1e042f2a1
Add comments on min_stream_id
...
saying that the min stream id won't be completely accurate all the time
2016-04-07 17:09:36 +01:00
David Baker
d549fdfa22
Remove code that's now been obsoleted or moved elsewhere
2016-04-07 16:31:38 +01:00
David Baker
92e3071623
Send badge count pushes.
...
Also fix bugs with retrying.
2016-04-07 15:39:53 +01:00
David Baker
7e2c89a37f
Make pushers use the event_push_actions table instead of listening on an event stream & running the rules again. Sytest passes, but remaining to do:
...
* Make badges work again
* Remove old, unused code
2016-04-06 15:42:15 +01:00
Mark Haines
2a37467fa1
Use google style doc strings.
...
pycharm supports them so there is no need to use the other format.
Might as well convert the existing strings to reduce the risk of
people accidentally cargo culting the wrong doc string format.
2016-04-01 16:12:07 +01:00
David Baker
c27c51484a
Don't ignore the obey overlay if the rule has an enabled attribute of False
...
Fixes https://github.com/vector-im/vector-web/issues/1244
2016-03-31 10:12:31 +01:00
David Baker
3b554bda26
Never notify for member events. This fixes https://github.com/vector-im/vector-web/issues/828
2016-03-24 13:19:39 +00:00
Erik Johnston
b6507869cd
Make get_invites return RoomsForUser
2016-03-23 10:32:10 +00:00
Mark Haines
5defb25ac6
Use get_users_in_room to count the number of room members rather than using read_receipts
2016-03-22 13:52:45 +00:00
David Baker
af59826a2f
Make select more sensible when dseleting access tokens, rename pusher deletion to match access token deletion and make exception arg optional.
2016-03-11 14:34:09 +00:00
David Baker
aa11db5f11
Fix cache invalidation so deleting access tokens (which we did when changing password) actually takes effect without HS restart. Reinstate the code to avoid logging out the session that changed the password, removed in 415c2f0549
2016-03-11 13:14:18 +00:00
Mark Haines
7076082ae6
Fix relative imports so they work in both py3 and py27
2016-03-08 11:45:50 +00:00
Mark Haines
3406eba4ef
Move the code for formatting push rules into a separate function
2016-03-03 16:11:59 +00:00
Mark Haines
de27f7fc79
Add support for changing the actions for default rules
...
See matrix-org/matrix-doc#283
Works by adding dummy rules to the push rules table with a negative priority class and then using those rules to clobber the default rule actions when adding the default rules in ``list_with_base_rules``
2016-02-26 14:28:19 +00:00
Richard van der Hoff
05aee12652
Merge branch 'develop' into rav/guest_access_after_room_join
2016-02-19 12:00:16 +00:00
Richard van der Hoff
b71ca2b014
Allow guest users access to messages in rooms they have joined
...
There should be no difference between guest users and non-guest users in terms
of access to messages. Define the semantics of the is_peeking argument to
filter_events_for_clients (slightly) better; interpret it appropriately, and
set it correctly from /sync.
2016-02-19 11:41:02 +00:00
Mark Haines
b9977ea667
Remove dead code for setting device specific rules.
...
It wasn't possible to hit the code from the API because of a typo
in parsing the request path. Since no-one was using the feature
we might as well remove the dead code.
2016-02-18 16:05:13 +00:00
Erik Johnston
7b0d846407
Atomically persit push actions when we persist the event
2016-02-09 16:19:15 +00:00
Erik Johnston
f28cc45183
Pass in current state to push action handler
2016-02-09 16:01:40 +00:00
Erik Johnston
31a2b892d8
Revert to putting it around the entire block
2016-02-09 11:25:09 +00:00
Erik Johnston
549698b1e0
Don't measure across event stream call, as it lasts for a long time.
2016-02-09 09:37:09 +00:00
Erik Johnston
2c1fbea531
Fix up logcontexts
2016-02-08 14:26:45 +00:00
Erik Johnston
13e6262659
Add metrics to pushers
2016-02-08 14:26:45 +00:00
Erik Johnston
771528ab13
Change event_push_actions_rm_tokens schema
2016-02-03 10:50:49 +00:00
Daniel Wagner-Hall
d83d004ccd
Fix flake8 warnings for new flake8
2016-02-02 17:18:50 +00:00
David Baker
766c24b2e6
Only notify for messages in one to one rooms, not every event
...
Fixes the fact that candidate events and hangups generated notifications.
2016-01-26 10:21:41 +00:00
Erik Johnston
53cb173663
Push: Use storage apis that are cached
2016-01-25 13:55:18 +00:00
David Baker
f92fe15897
Merge pull request #523 from matrix-org/dbkr/no_push_unless_notify
...
Better fix for actions with both dont_notify and tweaks
2016-01-22 17:27:25 +00:00
David Baker
3fe8c56736
Better fix for actions with both dont_notify and tweaks
2016-01-22 17:21:58 +00:00
David Baker
60965bd7e5
Revert b4a41aa542
as it's just broken.
2016-01-22 17:21:15 +00:00
David Baker
0e0e441b33
Merge pull request #522 from matrix-org/dbkr/no_push_unless_notify
...
Don't add notifications to the table unless there's actually a 'notify' action
2016-01-22 17:06:52 +00:00
David Baker
b4a41aa542
Don't add notifications to the table unless there's actually a 'notify' action
2016-01-22 16:56:48 +00:00
Erik Johnston
db6e26bb8c
Don't mutate cached values
2016-01-22 16:03:55 +00:00
David Baker
7065b75bfd
Don't crash if a user has no push rule enabled entries
2016-01-22 15:13:44 +00:00
David Baker
52bdd1b834
Overlay the push_rules_enabled map for users, otherwise they won't be able to disable server default rules.
2016-01-22 14:58:19 +00:00
Erik Johnston
0e07f2e15d
Only fetch events for rooms and receipts
2016-01-21 16:10:37 +00:00
Erik Johnston
3a00f13436
Only compute badge count when necessary.
...
This reverts commit d726597737
.
2016-01-21 14:56:11 +00:00
David Baker
930ba003f8
Remove member event rule as per SYN-607
2016-01-21 11:50:27 +00:00
David Baker
3fa344c037
Add storage function to get all receipts for a user. Also add some cache invalidation to the receipts storage because there wasn't any, and remove a method that was unused.
2016-01-20 15:30:31 +00:00
David Baker
7cc047455e
Inline membership specifier
2016-01-20 13:50:28 +00:00
David Baker
d726597737
Simplify badge updating code by just updating it every time we get woken up and it's not an event
2016-01-20 13:49:00 +00:00
David Baker
2309450a76
Merge branch 'develop' into push_badge_counts
2016-01-20 13:45:13 +00:00
David Baker
746f6e0eb3
'filtered' is a list of zero or 1
2016-01-20 13:44:04 +00:00