Commit Graph

59 Commits

Author SHA1 Message Date
Michael K Johnson da9106127a
FEATURE: Enable optional support for threading slack posts (#38)
When creating a new Discourse post from slack with the `post` feature, record the
slack `ts` thread ID for the resulting topic post using an HTML comment to pass
the `ts` through.

When notifying slack of new Discourse posts, record the slack `ts` thread ID in
the post's topic if it has not yet been recorded. (Normally, this will be done
for the topic post, except where notifications are being posted for old topics
before this feature was created.)

Add a new rule filter `thread` which posts threaded responses to slack if there
is a `ts` recorded for the post topic.

Modify the `trigger_notifications` interface to enable other integrations to
implement similar functionality.

Present the `thread` rule in the help text and admin UI only for the slack
providers.

https://meta.discourse.org/t/optionally-threading-posts-to-parent-topic-in-slack-integration/150759
2020-06-15 16:45:25 +01:00
Penar Musaraj 6fcf381751 Rubocop redundant return fix 2019-11-14 15:03:49 -05:00
David Taylor 7e5dc5acc1 FIX: Allow slash commands to set rules in private groups
The Slack 'slash commands' API does not provide the user-friendly group name, so we must use the group ID. We could use the API to obtain the group name, but it would require adding additional scopes to the app.
2019-09-30 13:27:35 +01:00
Raimundo Herrera 695d56a3dd FEATURE: support for slack custom username (#22)
* FEATURE: support for slack custom username

* make slack username setting backwards compatible

* fix slack username behavior when empty string
2019-09-11 10:08:40 -04:00
Robin Ward 82351a790c FIX: An error would be raised if fewer than "skip_messages" existed 2019-08-07 16:59:34 -04:00
James Nylen 5ca3652ba7 Use Slack display names instead of the "name" field (#29)
* Use Slack display names instead of the "name" field

The "name" field is the left-hand side of the email address in many
cases.  This information is not otherwise available so we shouldn't
expose it in forum posts.

* Fall back to real_name, add comments

* Store users as a hash

This should avoid a lot of O(n) lookups

* Format user mentions with the correct name also

* Fix the tests (first try)

* Fix the tests (second try); add a test for user mentions

* Fix the tests (third try)

* Empty commit to trigger Travis

* Fix the tests (fourth try)

* Fix the tests (fifth try)

* Change spaces to underscores

* Updates per feedback
2019-07-04 14:50:07 -04:00
David Taylor f75903cae5 FIX: Determine uncategorized category name using new core pattern 2019-06-04 18:47:32 +01:00
Guo Xiang Tan ac288b9300 Add frozen string literal comment to files. 2019-05-13 10:37:49 +08:00
David Taylor b7dff35722 FIX: Handle `mailto` links in slack messages 2019-01-03 11:14:26 +00:00
Mateusz Bugowski 1a08d64785 FIX: loading user.list longer than 1000 (#24) 2018-12-14 01:03:49 +00:00
Guo Xiang Tan 2b357b2dfe Add support for new upload site settings.
44391ee8ab
2018-11-14 15:17:44 +08:00
Guo Xiang Tan c44ac56d32 Make rubocop happy. 2018-06-08 09:52:35 +08:00
David Taylor 0ed6343874 Add basic support for thread transcripts 2018-04-08 03:22:58 +01:00
David Taylor 427cfc2305 Use generic ‘conversations’ API endpoint to enable transcripts for slack IMs and groups 2018-04-08 02:50:46 +01:00
David Taylor 180011c097 Fix slash commands in private groups 2018-04-08 02:26:36 +01:00
David Taylor 5f555849e5 Replace `render nothing: true` with a JSON response. This has the added benefit of showing a “loading” message (#12)
render:nothing was producing an error 500 for some reason
2017-11-27 16:08:19 +08:00
David Taylor b69abe3913 Include attachments in message selection dropdowns (#13)
* Include attachments in message selection dropdowns

* DRY up message attachment string generation

* Add specs for attachments in UI
2017-11-27 16:07:54 +08:00
David Taylor 6ed0deedf8 Don’t load responses to threads (#14)
* Don’t load responses to threads

* Add test case for ignoring threaded messages

* Appease rubocop
2017-11-27 16:07:25 +08:00
Guo Xiang Tan b19550502e Fix the build. 2017-10-10 12:56:48 +08:00
Guo Xiang Tan 5d11f443c0 REFACTOR: No need for `return` at end of each method. 2017-10-10 12:02:27 +08:00
Guo Xiang Tan efddfe1d9b Minor refactor. 2017-10-10 10:08:26 +08:00
David Taylor 47a6a89e5a Defer processing of transcripts to avoid timeouts 2017-09-15 23:12:02 +01:00
David Taylor 6a976c4d66 Remove thumb_url from Mattermost, and restore accidental deletion from Slack 2017-09-09 23:08:45 +01:00
David Taylor 438a9d92fe Remove incorrect thumb_url from mattermost 2017-09-09 21:07:07 +01:00
Guo Xiang Tan 16c5607fa4 Use `before_action` instead of `before_filter` for Rails 5.1 compatibility. 2017-09-04 10:44:32 +08:00
David Taylor 148dd8df6b Tidy up Slack provider implementation 2017-08-21 15:28:37 +01: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 658553e875 Refactor transcript posting 2017-08-15 10:26:03 +03:00
David Taylor 9604edaf88 Allow selecting first transcript message using a URL 2017-08-04 13:06:57 +01:00
David Taylor 9dc5445b7b Fix spec 2017-08-04 00:54:11 +01:00
David Taylor 12f3b96e02 Improve slack transcript posting UI with message buttons 2017-08-04 00:47:04 +01:00
David Taylor cfaef26e5d More modularisation for slack transcript generation 2017-08-03 17:24:49 +01:00
David Taylor 4d811ed83e Make transcript generation object-oriented 2017-08-03 15:48:33 +01:00
David Taylor 4f9ad4efef Correct rubocop offenses 2017-08-01 20:53:39 +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 5c93b7792c Add ‘view on slack’ link to transcripts 2017-07-26 19:51:44 +01:00
David Taylor 95f99e5fcf Improve slack transcript formatting 2017-07-26 19:27:22 +01:00
David Taylor e733c2564f Add mattermost slash command support 2017-07-26 13:09:05 +01:00
David Taylor 8ca4797797 Add transcript posting support to slack 2017-07-24 16:43:37 +01:00
David Taylor 694bf919ce Move slack command processor into common helper so it can be used by other providers 2017-07-19 16:57:33 +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 4b25dcec8f Allow providers to define a data schema for their channel parameters 2017-07-13 20:50:45 +01:00
David Taylor bfb499d4cf Refactor into /app directory, move everything out of plugin.rb 2017-07-13 13:32:11 +01:00
David Taylor f2c5223bc6 Remove accidental dependency on discourse-slack-official 2017-07-12 11:58: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 062aa8d875 Add create/delete rule functionality to the slack ‘slash commands’ 2017-07-06 21:42:37 +01:00
David Taylor fd333d59b7 Add basic “slash command” functionality to the slack provider
Based on the existing slack plugin. Currently does not implement creating new rules or deleting rules.
2017-07-05 23:01:46 +01:00
David Taylor 2f6d6f0d54 Automatically mount provider’s engines at /chat-integration/{provider_name}
Provider controllers are automatically disabled when the provider is disabled (works the same way as plugin controllers)
2017-07-05 15:03:02 +01:00