Commit Graph

275 Commits (d45bb8d09c1829e5189b4a2e479d15470b2fb895)

Author SHA1 Message Date
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