Commit Graph

48 Commits (5d01bd067bc5168933ba5fe294f7a37467d2e5a9)

Author SHA1 Message Date
Dragory a5279feb18
Allow overriding mentionRole in threads.createNewThreadForUser() opts 2020-11-01 22:59:54 +02:00
Dragory f6825376c0
Unify mentionRole parsing 2020-11-01 21:01:42 +02:00
Dragory 91d07dda8a
Allow 'off' to disable mentionRole 2020-11-01 20:56:35 +02:00
Dragory 012bd5b9b2
Fix faulty chunking for received user messages
The chunks now properly handle code blocks and prefer to split
at a newline rather than arbitrarily within the text.
2020-10-21 21:36:50 +03:00
Dragory d5ea95d9e9
Limit replies to fit within one message
This applies to both the DM to be sent to the user, and the message
created in the thread channel.

This is because edits (via !edit) could change the amount of messages
a reply takes (based on message formatting), leading to either being
unable to post the full edit if it goes over the message limits, or
having to edit a previous message to be 'empty' if the result of the
edit would take fewer messages to post than the original reply.

This also fixes an issue where !edit/!delete would not apply to more
than the first message created by a reply - whether in user DMs or in
the thread channel.
2020-10-21 21:09:50 +03:00
Dragory 3a7f7ffc90
Add support for alternative log storage types 2020-09-23 03:16:26 +03:00
Dragory 4ea5650289
Consider an empty value for mentionRole as 'none' 2020-09-23 00:39:56 +03:00
Dragory bf47fb7406
Add 'none' option for mentionRole 2020-09-23 00:38:46 +03:00
Dragory 581b09a8ae
Fix thread header ping not working, utilize allowed_mentions 2020-08-21 05:13:24 +03:00
Dragory adc54909fa
Tidy up edit/deletion styles 2020-08-17 01:53:21 +03:00
Dragory be7f172b62
Rename mainGuildId to mainServerId, mailGuildId to inboxServerId
The original names (mainGuildId, mailGuildId) are now aliases for
the new option names, so old configs still work after this change.
2020-08-16 23:53:35 +03:00
Dragory 7a671eab1f
Ignore errors from adding a reaction with reactOnSeen 2020-08-16 18:45:11 +03:00
Dragory 86a060410f
Apply code style from .eslintrc 2020-08-13 00:08:37 +03:00
Dragory 6b8c7e1bdf
Rename config.js to cfg.js
So people don't accidentally edit the config source file rather than
their own config file.
2020-07-19 13:36:07 +03:00
Dragory 6eb9b973c0
More consistent log formatting. Store DM channel IDs and inbox message IDs with thread messages. Add !dm_channel_id. Add message numbers to the database in preparation for !edit and !delete. Some code reorganisation. 2020-05-25 01:33:10 +03:00
Dragory 00fe240eb0
Expand multi-line .ini value support
The following options now also support multi-line values:
- responseMessage
- closeMessage
- botMentionResponse
- greetingMessage
- accountAgeDeniedMessage
- timeOnServerDeniedMessage
2020-01-19 21:25:10 +02:00
Dragory 4920425ad0 Mention logChannelId option in log channel errors 2019-12-05 21:49:24 +02:00
Dragory 69352eb756 Remove old logChannelId fallback, add additional verification that the log channel is a text channel 2019-12-05 21:04:45 +02:00
Dragory 38c7bd83ff Switch to knub-command-manager instead of Eris's command client. Update sqlite3 for Node.js 12 support. 2019-06-16 22:27:30 +03:00
Dragory a60515bcc7 Fix !block/unblock time arg without explicit user id 2019-06-09 20:25:21 +03:00
Dragory 1259669c9d Add support for timed blocks. Add !is_blocked. 2019-06-09 20:04:40 +03:00
Dragory 7a57e3eb45 Add support for multiple mentionRole values 2019-06-09 19:24:00 +03:00
santiago f2808c0b04 Add requirement for joinedAt 2019-04-15 10:43:22 -03:00
Dragory 2a20d9fdaa Escape markdown in user nickname and some other places 2019-03-28 05:03:47 +02:00
Dragory a470b72016 Add attachmentStorage option 2019-03-06 23:31:24 +02:00
Dragory 688ab7ceea Add support for scheduled !suspend 2019-03-06 21:37:36 +02:00
Dragory 188f7543ee Allow silent scheduled closes. Make close time format stricter (no whitespace). 2019-03-06 21:15:09 +02:00
Dragory ee51e35f6f Fix potential error with webhook messages 2019-01-11 18:29:48 +02:00
Dragory 1ec0a811d9 Support role and user IDs in inboxServerPermission. Allow specifying multiple values for inboxServerPermission. 2018-09-20 22:27:59 +03:00
Dragory 54e9fbd597 Chunk long messages so they don't fail to send 2018-05-03 20:33:19 +03:00
Dragory e5588d7c83 Use minutes as the default unit for timed close
Before, doing !close 30 would close the thread in 30 seconds. Now it
will be closed in 30 minutes.
2018-04-21 16:44:03 +03:00
Dragory e5b29a235e Add multi-server support and more thread header information
Fixes #63. Multi-server support allows you to set an array of ids in
mainGuildId. If there are more than 1 main guild, the thread header will
display nickname and join date for each main guild the user is in.

Thread header information now also includes how long it's been since the
user joined the guild(s).

The commit also includes some minor code cleanup.
2018-04-21 15:38:21 +03:00
Dragory 5717bf83fd Make !close time parser stricter and allow 'd' for days. Format close time better in the confirmation message. Add additional start-up info for missing dependencies. 2018-03-13 07:27:59 +02:00
Dragory 434dab59ee Fix some inconsistencies between DB drivers, also fixing scheduled closes on MySQL/MariaDB (again) 2018-03-13 06:23:32 +02:00
Dragory 119faf1d37 Commands used in threads are now saved again. Refactor some of the code into plugins. 2018-03-11 23:17:14 +02:00
Dragory 6767cd91f7 Change option in #59 to mentionRole, and extend functionality
The option now defaults to "here", and also accepts "everyone" as a value.
Can be set to null to disable these mentions entirely.
2018-03-11 21:55:47 +02:00
Dragory 751b18a12d Add scheduled thread closing
A thread can be scheduled to be closed by adding a time parameter to
the !close command. For example, !close 2m would automatically close
the thread in 2 minutes. The actual scheduling is implemented with a
loop that runs every 2 seconds, checking for threads that should be
closed.
2018-03-11 21:32:14 +02:00
Dragory adce3e0cbb Fix missing here ping on new threads. Add threadTimestamps option to revert removal of thread timestamps. 2018-02-18 23:29:24 +02:00
Dragory e0bd96e959 Logs are posted in the log channel again 2018-02-18 21:21:03 +02:00
Dragory ad7aa66c99 Continue rewrite. Modularize greeting, snippet, and web server functionality. 2018-02-11 21:54:30 +02:00
Dragory bb6d8e5dbf Refactor large parts of the bot 2018-01-01 02:16:05 +02:00
Dragory 58f35c87da Start work on moving data to an SQLite database. Add a migrator for legacy data. 2017-12-24 22:04:08 +02:00
Miikka Virtanen b934f8eb25 Code refactoring and clean-up 2017-09-19 20:23:55 +03:00
Miikka Virtanen ddff708ff5 Add 'logChannelId' config option 2017-09-19 17:38:37 +03:00
Miikka Virtanen 094f490357 Add !edit_snippet for editing snippets. Add !snippets to list all available snippets. 2017-07-24 03:54:03 +03:00
Miikka Virtanen c671ab9273 Add more info at the start of modmail threads. Change greetingGuildId to a more universal mainGuildId. Start using semi-proper version numbers. 2017-02-15 00:57:53 +02:00
Miikka Virtanen 6a13724c6a Major refactor about done 2017-02-10 06:36:47 +02:00
Miikka Virtanen 6d33e7adb4 Start huge refactor 2017-02-10 04:56:36 +02:00