119 Commits

Author SHA1 Message Date
David Taylor
36087f3004
DEV: Update Discord webhook domain (#106)
discordapp.com is being deprecated and replaced with discord.com - https://github.com/discord/discord-api-docs/discussions/4510
2022-02-15 11:53:53 +00:00
David Taylor
6e7fa8ebd1
FIX: Store slack thread_ts on a per-channel basis (#95)
When notifications about a topic are posted to multiple slack channels, and the Discourse channels are configured to "thread" the notifications, each channel will have a different thread_id. Previously we were only storing a single slack thread id per Discourse topic. This commit fixes that logic, so that threads in different channels are tracked separately.
2021-12-02 14:29:06 +00:00
Mark VanLandingham
a8b7e9631b
DEV: Move admin namespace (#87) 2021-08-26 08:52:53 -05:00
Mark VanLandingham
a73f5da114
Rename DiscourseChat to DiscourseChatIntegration (#82) 2021-07-13 14:36:16 -05:00
David Taylor
610364ff6d
FEATURE: Add support for slack message shortcuts for transcripts (#68)
Once configured, this adds a new item to the context menu of slack messages. When clicked, the menu item will generate a transcript and present the user with a custom "Post to Discourse" modal. This provides the same functionality as the existing slash-command interface, but is much more user friendly.
2021-04-22 18:50:11 +01:00
David Taylor
08e6718722
FEATURE: Improve formatting for Slack transcript messages (#70)
- Fix multi-line code blocks
- Add strikethrough support
- Fix HTML entities inside code blocks
- Do not process formatting inside code blocks
- Ensure links are never created with no URL
- Replace - with _ in emoji names
2021-04-22 18:49:21 +01:00
David Taylor
4261814162
FIX: Improve error handling for slack transcript generation (#63)
- Stop using `break` in a block - it doesn't work. The failure here was hidden because it was within a `defer` block, so would not cause a server error
- Refactor the error handling so that the error is passed back to Slack and displayed to the user
- Return specific error messages for user / message-history / message errors
- Tidy up the SlackCommandController to make all non-requestable methods private
- Add a test to ensure error messages are passed correctly to Slack
2021-03-01 19:07:31 +00:00
David Taylor
13fea5b803
FEATURE: Google Chat integration (#57) 2021-01-26 20:33:03 +00:00
Mathieu Trudel-Lapierre
0c0e86b772
FEATURE: Add support for Webex Teams (#49) 2020-12-11 09:43:03 +00:00
David Taylor
1dc753771b
FIX: Update telegram webhook correctly and remove old code (#46)
The `site_setting_changed` event passes the setting name as a symbol, not a string. This commit also removes the backwards-compatible `site_setting_saved` event, which was deprecated in 2.3.0.
2020-11-02 16:58:29 +00:00
jjaffeux
d483f4ae5a DEV: s/JSON.parse(response.body)/response.parsed_body 2020-09-25 20:47:30 +02:00
David Taylor
fd51671991
DEV: Remove trailing whitespace 2020-08-14 19:24:05 +01:00
David Taylor
bdca153a09
FIX: Send new topic Slack notifications to the correct thread
This applies when topics are created using the slack transcript feature, and there is a rule configured with filter=thread
2020-08-14 19:15:02 +01:00
Ahmed Gagan
fa5ef22262
FEATURE: Support for Microsoft Teams webhooks (#42) 2020-07-29 17:20:02 +01:00
Robin Ward
509360e190 FIX: You can't return from a block, especially an async one 2020-06-26 11:52:00 -04:00
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
Tosin Sonuyi
ccbc41428b
GroupMe added as Provider (#36)
* adds groupme configuration and relative

* first pass at groupme provider

* add group id site setting w/ english translation

* rework to use bots groupme api intstead of developer, no access tokens reqd

also should catch 404 response codes

* add strings to locale yml files for i18n

* better error handling for multi-bot case

* add channel param for separate Groupme instances, include name in errorbody

* bugfix for multi bot msg forwarding

this gives us the ability to treat diff groupme instances like slack channels, lots of people use them this way for better or worse. use case is certain category posts only go to a particular GM instance

* add spec for groupme provider

* fix channel param constraint

* specify channels by groupme name, not bot api token

* fix some linting issues w/ spacing

* newline and trailing space lint fixes
2020-05-11 15:10:37 -04:00
Jarek Radosz
a3face98e9 DEV: Change specs to not rely on a trailing whitespace 2020-05-02 09:50:48 +02:00
Jarek Radosz
6b3eba27fa
DEV: Remove a duplicated let definition 2020-03-27 17:42:15 +01:00
Robin Ward
a41abfbfd6 FIX: Rubocop 2020-02-19 14:16:39 -05:00
Joffrey JAFFEUX
6540d8b957 DEV: uses Discourse.redis instead of $redis 2019-12-03 10:45:32 +01: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
Bianca Nenciu
fc61b92183 FIX: Fix heisentest caused by float operations. 2019-06-24 14:08:04 +03:00
Guo Xiang Tan
ac288b9300 Add frozen string literal comment to files. 2019-05-13 10:37:49 +08:00
David Taylor
bf30b755cf Remove HipChat integration
As of February 15th, HipChat has been declared end-of-life. For more information, see https://community.atlassian.com/t5/Stride-articles/Stride-and-Hipchat-Cloud-have-reached-End-of-Life-updated/ba-p/940248
2019-04-15 17:56:01 +01: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
Sam
5beaa359b7 when the test suite was written tags were default disabled 2018-10-17 15:57:38 +11:00
David Taylor
39fb967047 Fix specs 2018-08-20 13:17:54 +01:00
Guo Xiang Tan
9826f10a60 Fix specs for Rails 5.2. 2018-06-08 08:57:43 +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
Sam
ec216e69c5 correct spec 2018-01-12 15:05:57 +11:00
Sam
3069124273 correct specs 2018-01-12 14:48:00 +11:00
David Taylor
da9ee8dcb5 Fix mattermost icon selection 2017-11-27 16:14:43 +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
Sam
a217ca928f
Merge pull request #11 from majakomel/flowdock
Add notification support for Flowdock
2017-11-14 19:00:37 +11:00
Guo Xiang Tan
0cdb1d6538 FIX: Old channel may be invalid. 2017-10-20 20:21:02 +08:00
Maja Komel
7889691cdb fix rubocop offenses 2017-10-17 12:21:36 +02:00
Maja Komel
92d6a6ba0e Add notification support for Flowdock 2017-10-16 16:44:21 +02:00
Guo Xiang Tan
0e52edd1fd FIX: Ensure that user exists before migrating. 2017-10-10 15:12:10 +08:00
Guo Xiang Tan
6bbac0a1e9 Maintain backwards compatibility with existing slash command. 2017-10-10 13:30:44 +08:00
Guo Xiang Tan
ba883e0af4 Move specs to the right folder. 2017-10-10 13:09:25 +08:00
Guo Xiang Tan
2e69d6a934 FIX: Properly migrate settings from discourse-slack-official. 2017-10-04 15:03:23 +08:00
Guo Xiang Tan
f836047f90 REFACTOR: Clean up code in plugin. 2017-10-03 17:42:07 +08:00
Guo Xiang Tan
aa4d169c0e Add some basic tests for migrating discourse-slack-official job. 2017-10-03 16:33:20 +08:00
Guo Xiang Tan
49f58ec190 Fix tests to work with Rails 5.1. (#8) 2017-09-25 11:06:27 +08:00