Commit Graph

119 Commits

Author SHA1 Message Date
David Taylor 47a6a89e5a Defer processing of transcripts to avoid timeouts 2017-09-15 23:12:02 +01:00
jafethdc e90d65f5d5 Add notifications support for Gitter 2017-08-30 18:11:06 -05:00
David Taylor 5ea6553236 Add support for Rocket.Chat 2017-08-23 16:43:27 +01:00
David Taylor 9b229b63f9 Use generic messages API for Zulip
It is now available to bots, so there is no need for the custom discourse endpoint any more :)
2017-08-23 12:36:11 +01:00
David Taylor e3f09d8eb5 Add Zulip support 2017-08-21 23:34:04 +01:00
David Taylor 148dd8df6b Tidy up Slack provider implementation 2017-08-21 15:28:37 +01:00
David Taylor 142925e4c4 Correct rubocop offence 2017-08-15 18:26:11 +03:00
David Taylor 064079a4ed Add auto-detection of first message in conversation 2017-08-15 18:19:24 +03:00
David Taylor 3314721232 RSpec tests for slack transcript posting 2017-08-15 17:44:51 +03:00
David Taylor 9dc5445b7b Fix spec 2017-08-04 00:54:11 +01:00
David Taylor c634b3ee65 Only check for mentions on standard posts (not PMs) 2017-08-01 22:15:27 +01:00
David Taylor 6af31bb244 Fix precedence for group-based rules 2017-08-01 21:09:01 +01:00
David Taylor 4f9ad4efef Correct rubocop offenses 2017-08-01 20:53:39 +01:00
David Taylor 01d7fb47ef Display group rules correctly in slash commands 2017-08-01 19:16:47 +01:00
David Taylor f3347b0a92 Add support for group mentions 2017-08-01 17:11:34 +01:00
David Taylor 209daf7801 Add group messages support to admin UI, and add a ‘type’ field for further improvements 2017-08-01 15:20:00 +01:00
David Taylor 4b2e8af711 Backend support for group pms 2017-07-31 14:51:03 +01:00
David Taylor f1df1f5234 Fix discord avatar URL 2017-07-31 14:47:27 +01:00
David Taylor 04c711e438 Only load dummy providers in specs where they are required 2017-07-31 13:12:09 +01:00
David Taylor 5bf1b4a653 Add spec for editing channels 2017-07-29 19:29:19 +01:00
David Taylor 61fa0dbe0b Replace `match?` with `match` for backwards compatibility with Ruby 2.3 2017-07-29 19:21:11 +01:00
David Taylor ce8acc9c26 Disallow duplicate channels - providers can define which fields should be ‘unique’ 2017-07-28 15:47:46 +01:00
David Taylor 5a4faa637f Add matrix support 2017-07-27 17:09:44 +01:00
David Taylor 4add044f86 Fix intermittently failing spec 2017-07-26 21:14:29 +01:00
David Taylor dac2dd3b25 Fix slack transcript spec 2017-07-26 20:04:46 +01:00
David Taylor e733c2564f Add mattermost slash command support 2017-07-26 13:09:05 +01:00
David Taylor 61a4fd2c23 Add Mattermost support 2017-07-25 22:14:48 +01:00
David Taylor 18aa827686 Remove timecop dependence 2017-07-25 22:14:32 +01:00
David Taylor c51e8ec3b5 Add HipChat support 2017-07-24 19:22:19 +01:00
David Taylor 681f37bc2b Workaround for intermittently failing redis spec 2017-07-24 17:48:06 +01:00
David Taylor 8ca4797797 Add transcript posting support to slack 2017-07-24 16:43:37 +01:00
David Taylor 2d7f25d7e6 Add support for chat transcripts
(still needs to be implemented by providers)
2017-07-24 16:13:53 +01:00
David Taylor 0d9b251030 Allow telegram to send notifications to ‘broadcast channels’ 2017-07-21 19:12:31 +01:00
David Taylor 701e246ad2 Support slash commands in telegram group chats 2017-07-21 17:55:33 +01:00
David Taylor b5e2741214 Add discord support 2017-07-21 15:48:57 +01:00
David Taylor 970c38c7fe Add telegram specs 2017-07-19 21:26:16 +01:00
David Taylor 4422f14c6d Move slash command specs into helper_spec 2017-07-19 18:22:50 +01:00
David Taylor c5fdebd1bc Store errors per-channel rather than per-rule, and update UI to match 2017-07-18 23:08:06 +01:00
David Taylor d1d333523f Order rules by precedence in the UI and slash commands 2017-07-18 21:36:07 +01:00
David Taylor 0a9ef040a1 Update specs for updated controller methods 2017-07-18 18:23:20 +01:00
David Taylor 2275b048f9 Destroy associated rules when a channel is destroyed 2017-07-18 16:42:05 +01:00
David Taylor 1ef9073027 Make CHANNEL_PARAMETERS a list 2017-07-17 17:53:32 +01:00
David Taylor ebb6fa947d Update slack provider to deal with new channel structure 2017-07-13 23:21:15 +01:00
David Taylor ab2e4c2de8 Allow looking up channel by data attributes (nested json values) 2017-07-13 22:50:14 +01:00
David Taylor e850fb194b Update helper to deal with the new channel structure 2017-07-13 22:13:03 +01:00
David Taylor 246c81ce5c Update manager to deal with new channel structure 2017-07-13 21:47:15 +01:00
David Taylor 4b25dcec8f Allow providers to define a data schema for their channel parameters 2017-07-13 20:50:45 +01:00
David Taylor e07a4da460 Model changes 2017-07-13 16:09:34 +01:00
David Taylor b04b5c22dd Refactor specs to match new directory structure 2017-07-13 14:01:30 +01:00
David Taylor 56da3639ab Use real ActiveRecord for the “Rule” model by extending the PluginStoreRow class.
This gives us all the activerecord awesomeness for free, like validations, safe form params etc.
2017-07-12 18:28:45 +01:00
David Taylor bc579fb6e1 Added rspec tests for admin controller 2017-07-10 21:04:37 +01:00
David Taylor ba484dc9a1 Move ‘dummy provider’ logic into a shared context, to allow for use by multiple specs 2017-07-10 18:19:59 +01:00
David Taylor 52b8e3f3a6 Remove unneeded comments 2017-07-07 11:51:19 +01:00
David Taylor 95dd6bc09c Add error handling to the slack API requests, and associated tests 2017-07-07 11:23:25 +01:00
David Taylor f001320574 Add integration tests for slack ‘slash commands’
Adapted from existing slack plugin
2017-07-06 23:30:27 +01:00
David Taylor 527063aed0 Add helper function for deleting rules 2017-07-06 21:36:50 +01:00
David Taylor aa6430e23e Add helper method to intelligently create new rules (avoiding duplicates) 2017-07-06 01:11:26 +01:00
David Taylor e4ff1997c8 Add a helper class for common provider functionality
Initially implemented a ‘status_for_channel’ function, based on the existing slack plugin
2017-07-05 23:00:58 +01:00
David Taylor 95344c348f Allow filtering of rules by channel 2017-07-05 22:38:53 +01:00
David Taylor d97d35fd0d Handle errors on trigger_notification
Providers can define their own errors, and these are presented in the user interface. e.g. Slack can define an error that says “That channel doesn’t exist”.
Errors in the UI disappear once a message has been sent successfully, or the rule is edited.
2017-07-04 19:37:56 +01:00
David Taylor 4be010fd07 Allow providers to specify a regex that the channel identifier is checked against during validation 2017-07-04 00:14:01 +01:00
David Taylor 0547543a1d Add server-side validation to rules 2017-07-03 17:38:13 +01:00
David Taylor 1c416d5a81 Allow providers to be disabled, and tidy up translations 2017-07-03 15:53:26 +01:00
David Taylor 4643ad255c Rename plugin to discourse-chat-integration 2017-07-03 11:08:14 +01:00
David Taylor b824773a8a Add tests for SlackProvider 2017-06-30 16:39:19 +01:00
David Taylor 4ad9ad6a7a Move lib files inside a discourse_chat directory, and make the notifications run on a delay after post creation 2017-06-30 11:10:11 +01:00
David Taylor 61caca3c5b Use new DiscourseChat::Rule model throughout the backend code 2017-06-29 17:50:54 +01:00
David Taylor cd3bd8d807 Add a “Rule” class, borrowing and extending the ActiveRecord-like design from data-explorer plugin 2017-06-29 17:01:04 +01:00
David Taylor 02692cf100 Added filtering logic for multiple providers, along with many RSpec tests.
General structure of the filter rules is taken from discourse-slack-official, but re-written to be more robust and easier to understand.
2017-06-27 19:43:29 +01:00