Dragory
6a8ecfed8a
Small extra tweak to thread message numbers
2020-08-17 01:46:51 +03:00
Dragory
3aa74f2cbf
Hide message numbers from non-verbose logs
2020-08-17 01:45:45 +03:00
Dragory
c7b49b5484
Tweaks to default message number formatting
2020-08-17 01:43:36 +03:00
Dragory
ac2548b6cc
Request GUILD_MEMBERS intent for server greetings. Emphasize new intent requirement in the changelog.
2020-08-17 01:24:30 +03:00
Dragory
4fbf2a1769
Rename guildGreetings to serverGreetings
...
The original name (guildGreetings) is now an alias for the new option
name, so old configs will still work after this change.
2020-08-17 01:21:07 +03:00
Dragory
900a14d8a1
Rename categoryAutomation.newThreadFromGuild to categoryAutomation.newThreadFromServer
...
The original name (categoryAutomation.newThreadFromGuild) is now
an alias for the new option name, so old configs still work after
this change.
2020-08-17 01:04:05 +03:00
Dragory
c177be8920
Fix categoryAutomation type
2020-08-17 00:55:18 +03:00
Dragory
099b5f9616
Enable !edit and !delete by default
2020-08-17 00:55:05 +03:00
Dragory
d85a2dad5d
Add !message
2020-08-17 00:39:39 +03:00
Dragory
16a3af07ef
Hide ajv warning about ignored keywords
...
This was showing up when using $ref with $comment in the JSON Schema
2020-08-17 00:20:43 +03:00
Dragory
a327160ed9
Improve CLI feedback for 'Waiting for servers', always continue after a delay
2020-08-17 00:19:51 +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
d5219556a7
Add full JSDocs for the plugin API
2020-08-16 23:26:04 +03:00
Dragory
f61b1cc397
Require new text arg in !edit_snippet. Fixes #413
2020-08-16 22:14:49 +03:00
Dragory
034a9172c4
Update config JSDoc
2020-08-16 19:22:50 +03:00
Dragory
cb6a9c2703
Merge #373
2020-08-16 18:58:25 +03:00
Dragory
0540ac3b90
Merge #358
2020-08-16 18:51:20 +03:00
Dragory
7a671eab1f
Ignore errors from adding a reaction with reactOnSeen
2020-08-16 18:45:11 +03:00
Dragory
51df75e641
Set dm_channel_id directly from the message object
...
Allows us to set the channel id correctly for non-DM messages,
such as mentions that create a thread with createThreadOnMention
where the initial message is forwarded to the thread.
2020-08-16 18:42:22 +03:00
Dragory
c7bf059220
When creating a new thread from a mention, include a note and the initial message in the thread
2020-08-16 18:41:58 +03:00
Dragory
78a1cc34be
threadOnMention -> createThreadOnMention
2020-08-16 18:36:51 +03:00
Dragory
e0aa3a73ae
Merge #397
2020-08-16 18:34:51 +03:00
Dragory
041e095950
Merge #398
2020-08-16 18:27:51 +03:00
Dragory
25998fa8a2
Show a small note if a user messages the bot with e.g. a Spotify invite
2020-08-16 18:18:32 +03:00
Dragory
31a5fb55b8
Remove debug console.log
2020-08-14 01:23:49 +03:00
Dragory
7c96d71efe
Tweak edit/delete formatting
2020-08-14 01:19:01 +03:00
Dragory
a4c7b84616
Add next_message_number to threads, use it for reply numbers
2020-08-14 01:18:45 +03:00
Dragory
538a14338c
Update mysqlOptions schema
2020-08-14 01:01:40 +03:00
Dragory
296d1304a7
Reproducible formatters, add full log formatter
...
Format-specific parts of replies, including the role name and
attachments, are now stored in separate columns. This allows us to
store only one version of the actual message body and, by keeping
format-specific data separate, reproduce formatter results regardless
of when they are called. This cleans up code around message formats
significantly and was required to support !edit/!delete properly.
2020-08-14 00:42:32 +03:00
Dragory
77cb19e70c
Fix inconsistency between knexfile and runtime knex config
2020-08-13 23:55:29 +03:00
Dragory
8ba25d9504
Update Node.js version ranges in package.json and index.js
2020-08-13 03:40:34 +03:00
Dragory
98b8a05d5c
Remove several deprecated config options
2020-08-13 03:32:04 +03:00
Dragory
ab6b84e6de
Add official MySQL support. Simplify database options.
2020-08-13 03:31:48 +03:00
Dragory
1f5faaab5b
Fix unnecessary warning about migrations from knex
2020-08-13 02:44:42 +03:00
Dragory
37c523cd04
Band-aid fix for import in move.js
2020-08-13 02:36:52 +03:00
Dragory
6d16daea0d
Add new attachment storage option: "original"
2020-08-13 02:36:15 +03:00
Dragory
ff89ab557c
Remove debug process.exit()
2020-08-13 00:26:54 +03:00
Dragory
b30e615200
Use gateway intents, add extraIntents config option
2020-08-13 00:23:59 +03:00
Dragory
2beadbe924
Disable getAllUsers from the client
...
We can lazy-load members instead.
2020-08-13 00:18:11 +03:00
Dragory
86a060410f
Apply code style from .eslintrc
2020-08-13 00:08:37 +03:00
Dragory
bd8dcc6129
Fixes and tweaks to new config validation
2020-08-13 00:03:01 +03:00
Dragory
f7b8a312f9
Coerce arrays of strings to arrays automatically
2020-08-12 23:24:17 +03:00
Dragory
d03903ce80
Move beforeNewThread hook after validations, fix a couple bugs
2020-08-12 23:19:11 +03:00
Dragory
468d1fc037
Use JSON Schema via AJV for config schema + validation
2020-08-12 23:18:42 +03:00
Dragory
ce8ebbfc2f
Propagate staff reply edits/deletions to the DB
2020-07-19 14:28:32 +03:00
Dragory
e74363a55c
Show staff reply numbers in threads/logs
2020-07-19 14:24:24 +03:00
Dragory
3002473905
Add !edit and !delete with options (disabled by default)
2020-07-19 14:20:45 +03:00
Dragory
4e9e347b04
Add internal support for editing/deleting staff replies
2020-07-19 14:11:38 +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
3723bf788b
Add 'source' to beforeNewThread hooks, call hooks in threads.createNewThreadForUser()
2020-07-15 23:50:30 +03:00
Dragory
75b2920777
Use explicit parameters for Thread#postSystemMessage, Thread#sendSystemMessageToUser, Thread#postNonLogMessage
2020-07-14 01:38:35 +03:00
Dragory
ec3a2455e0
Add more safeguards when using Thread#_postToThreadChannel()
2020-07-14 01:35:26 +03:00
Dragory
662c6b0c21
Allow message formatters to return full message content objects as well as strings
2020-07-14 01:31:50 +03:00
Dragory
8a975d7da4
Add message formatters. Expose message formatters to plugins.
2020-07-14 01:11:48 +03:00
Dragory
0c25afaec2
Add support for async plugin load functions
2020-07-14 00:17:31 +03:00
Dragory
815825de94
Add hooks to plugin API
2020-07-14 00:14:31 +03:00
Dragory
3c0352ff09
Add support for hooks. Add beforeNewThread hook. Allow overriding new thread category id in createNewThreadForUser().
2020-07-14 00:13:32 +03:00
Dragory
3fc3905628
Update node-sqlite3 to v5. Update Node.js version requirements accordingly.
2020-07-09 04:05:28 +03:00
eegras@eegrasstudios.com
b566be85fe
Implement reactOnSeen
2020-06-05 13:11:56 -05:00
Dragory
1538b25ee5
Fix error when receiving a reply to a thread that has had its channel deleted
2020-06-05 17:06:15 +03:00
DopeGhoti
cd17fdbaed
Slight refactor of existing thread check
2020-06-04 20:43:01 -07:00
DopeGhoti
edd2ceb1ab
Add optional automatic thread creation on mention
...
Add an option to have the bot automatically open a
new thread when a user @s the bot in a monitored
channel. Modify configuration parser to handle the
new settings; add a stanza to the configuration
documentiaion for it.
2020-06-04 20:27:01 -07:00
Dragory
1382c639a9
Fix error when attempting to unsuspend outside a thread channel
2020-05-26 00:24:35 +03:00
Dragory
d1f939cbc8
ModMail -> Modmail
2020-05-25 23:56:48 +03:00
Dragory
6434066318
Simplify log header
2020-05-25 23:55:11 +03:00
Dragory
5c247fc73d
Fix for error with thread message number increment on MySQL
2020-05-25 23:09:45 +03:00
Dragory
c76d422768
Fix error when sending system messages to the user
2020-05-25 11:52:31 +03:00
Dragory
200b236c75
Fix error on launch when using a fresh database
2020-05-25 02:45:07 +03:00
Dragory
cc23142a31
Improve error messages
2020-05-25 02:38:35 +03:00
Dragory
f8ddf97b53
Add verbose and simple options to logs
2020-05-25 01:54:26 +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
Dark
c41f7a0978
Change to comma separated list
2020-02-18 01:22:00 +01:00
Dark
949a5efdb2
Allow multiple users to do !alert without overriding each other
2020-02-17 20:04:43 +01:00
Brayzure
dcd80aabda
Fix certain auto-reply errors
2020-01-20 23:20:56 +02:00
Dragory
e572523808
Revert some accidental changes from #319
2020-01-19 21:33:46 +02:00
Dragory
d5f8839446
Merge branch 'master' of github.com:Dragory/modmailbot
2020-01-19 21:32:42 +02:00
Robert Klebes
7bec58cd1c
Add direct link to message onBotMention ( #319 )
2020-01-19 21:31:29 +02: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
667b552bf5
Fix error when supplying all config values from env variables
...
If there was no config file and all config values were loaded from env
variables, the userConfig object was never assigned a value and would
throw an error when loading env variables.
2019-12-05 21:50:02 +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
d625e527d6
Fix crash in update checker if package.json's repository value is set to a repository without releases
2019-12-05 20:24:39 +02:00
Dragory
7e567a3267
Handle boolean values in config.ini properly
2019-12-03 03:00:26 +02:00
Dragory
20b46811c0
Slight wording changes in README. Use Modmail instead of ModMail consistently.
2019-12-03 02:47:46 +02:00
Dragory
8dd6513ca3
Add support for loading config values from environment variables
2019-12-03 02:40:50 +02:00
Dragory
1007dc0dd1
Add support for loading config values from environment variables. Fix nested/object values in config.ini.
2019-12-03 02:27:55 +02:00
Dragory
518bf93f6f
Fix incompatibility with Node.js 10 versions prior to 10.9.0
2019-12-03 02:06:44 +02:00
Dragory
6635fe1414
Make sure numeric options are numbers. Convert empty strings from config.ini to null. Some loading message tweaks.
2019-12-03 02:00:00 +02:00
Dragory
89e7d6373b
Switch from TOML to INI. New documentation. Add start.bat file for Windows.
2019-12-03 01:51:11 +02:00
Dragory
686c36dda4
Add support for TOML config files. Use TOML config files by default.
2019-12-02 19:01:36 +02:00
SnowyLuma
a2f34113d4
Don't ignore other bots chatting in threads
2019-09-29 03:59:09 +02:00
Dragory
2ea858daac
Move plugin loading to its own file. Define plugin API more explicitly.
2019-09-18 02:15:22 +03:00
Dragory
0f61966d4e
Add support for adding attachment storage types in plugins
2019-09-18 01:52:16 +03:00
Dragory
5244cce31c
Fix local attachments when temp dir and bot dir are on different drives
2019-09-18 01:34:17 +03:00
Dragory
8f9709b34b
Make syncPermissionsOnMove option true by default
2019-08-13 20:37:00 +03:00
Dragory
5085cf363a
Call plugin functions with an object instead
...
Previously, plugin functions were called with 4 arguments.
These 4 arguments are now part of the passed object instead, making the
plugin system much more scalable in the future.
2019-08-13 20:34:46 +03:00
Dragory
01e63f27b6
Re-apply bot status every hour
2019-08-13 19:59:33 +03:00
Dragory
fcd48d6420
Wait for main and inbox guilds to become available before initializing the bot
2019-08-13 19:58:05 +03:00
Dragory
158db3c070
Fix replies without text that include attachments
2019-06-16 22:37:05 +03: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
099e01c25a
Update Node.js version check at startup to require Node.js 10
2019-06-09 21:02:34 +03:00
Dragory
86529ae50c
Don't hardcode repo URL for update check user agent
2019-06-09 20:32:52 +03:00
Dragory
3cf31f37d9
Add pagination to !logs
2019-06-09 20:25:47 +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
4bfd247be3
Add support for command aliases
2019-06-09 19:31:16 +03:00
Dragory
7a57e3eb45
Add support for multiple mentionRole values
2019-06-09 19:24:00 +03:00
Dragory
2d5bf76209
Add support for snippet arguments
2019-06-09 19:17:32 +03:00
Dragory
373aef55cf
Add basic support for plugins
2019-06-09 17:53:49 +03:00
Dragory
b9133da4da
Add update notifications
2019-06-09 17:31:17 +03:00
Dragory
eb2f109301
Add rolesInThreadHeader config option
2019-06-09 16:04:17 +03:00
Dragory
18f3da1247
Add guildGreetings config option
2019-06-09 15:56:04 +03:00
Dragory
b5fe1de87b
Ignore errors from unknown message types
2019-06-05 23:11:08 +03:00
Dragory
ae3f3920e3
Ignore account age/time on server requirements when using !newthread
2019-04-15 19:26:14 +03:00
Dragory
22e03d2335
Rename requiredJoinedAt -> requiredTimeOnServer, add support for multiple main guilds for that setting
2019-04-15 19:06:59 +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
3d077cb252
Add current voice channel to thread header
2019-03-28 04:57:21 +02:00
Dragory
073f3a87ea
Add categoryAutomation config option and make newThreadCategoryId a shortcut for the newThread sub-option. Add support for per-guild categories via categoryAutomation.
2019-03-28 04:54:12 +02:00
Dragory
ddc3f6425a
Clean-up
2019-03-28 04:29:50 +02:00
Dragory
3cc566e6b0
Re-fetch member info from the API if we can't find a user on a main guild
2019-03-28 04:29:40 +02:00
Dragory
a470b72016
Add attachmentStorage option
2019-03-06 23:31:24 +02:00
Miikka
591d6251ce
Merge pull request #225 from reboxer/master
...
Allow users to be mentioned in botMentionResponse
2019-03-06 21:39:37 +02:00
Dragory
688ab7ceea
Add support for scheduled !suspend
2019-03-06 21:37:36 +02:00
Dragory
bee147c19d
Allow !loglink in suspended threads
2019-03-06 21:36:17 +02:00
Dragory
188f7543ee
Allow silent scheduled closes. Make close time format stricter (no whitespace).
2019-03-06 21:15:09 +02:00
Dragory
cd3da4c4ec
Add syncPermissionsOnMove config option
2019-03-06 20:50:24 +02:00
Dragory
5e1a1e7e15
Add 'silent' option to !close when closeMessage is specified
2019-02-23 23:32:18 +02:00
Dragory
86bc6fd809
Only delete the reply command if the bot was able to send the reply
2019-02-23 22:55:26 +02:00
santiago
508b78fce2
Allow users to be mentioned in botMentionResponse
2019-02-23 11:33:22 -03:00
Dragory
ee51e35f6f
Fix potential error with webhook messages
2019-01-11 18:29:48 +02:00
Dragory
21d2a7453c
Add allowUserClose option. Fixes #69
2018-09-20 23:31:14 +03:00
Dragory
2f1b51d97a
Add support for sending anonymous snippets. Add snippetPrefixAnon option. Fixes #82
2018-09-20 22:54:47 +03: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
a8822ea002
Merge branch 'config-fix' of https://github.com/Akhawais/modmailbot into Akhawais-config-fix
2018-09-20 22:08:50 +03:00
Dragory
d07384a01e
Add botMentionResponse option. Fixes #143
2018-09-20 22:07:38 +03:00
Dragory
68af488663
Add mentionUserInThreadHeader option. Fixes #152
2018-09-20 22:03:51 +03:00
Dragory
2f04ed8359
Fix pingOnBotMention on same server setups. Fixes #134
2018-09-20 21:57:54 +03:00
Dylan Akhawais
5a760b5e50
Moving the 'getAllUsers' option into the correct parameter object
2018-08-29 02:30:12 +01:00
Dragory
2cecbc3e46
Add support for a .js config file
2018-08-08 01:32:22 +03:00
Dragory
55367665e8
Update mime node-mime to 2.3.1
2018-08-08 01:10:38 +03:00
Dragory
b7673b7544
Add smallAttachmentLimit config option to control the size limit of relaySmallAttachmentsAsAttachments
2018-08-08 00:59:02 +03:00
Dragory
7e7bd03798
Fix crash if the close message failed to send when closing a thread
2018-08-08 00:55:03 +03:00
Dragory
ff977b3eea
Gracefully handle web server errors
2018-08-08 00:54:01 +03:00
Dragory
6b8a409ff4
Don't alert for main server pings if the pinger is a bot
2018-08-01 00:40:12 +03:00
Dragory
c7c0ee4e9a
Change requiredAccountAge to use hours instead of days
2018-07-27 20:35:37 +03:00
Dragory
1aa4abd62e
Rename account age options
2018-07-27 19:48:45 +03:00
Jonas Pardon
9c1a5863f5
Add option for minimum account age for contacting modmail
...
Saw this on the to-do list and decided to give it a shot. Tested and works without issues for me. I advise testing yourself before merging, there's always a chance I missed something since your code is quite extended to work through.
2018-07-10 11:59:29 +02:00
Jonas Pardon
6f327b7456
Added an optional close message
...
You can assign a value to closeMessage to make the bot DM people when their thread gets closed.
2018-07-05 18:34:12 +02:00
Dragory
445659d592
Fix greetings not being sent after 2.9.0
...
Greetings broke when multi-server support was added.
This commit fixes that.
2018-05-14 19:49:15 +03:00