Commit Graph

234 Commits (25998fa8a297645fc2e7c8a83a45d2c26439b7de)

Author SHA1 Message Date
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
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
Dragory 54e9fbd597 Chunk long messages so they don't fail to send 2018-05-03 20:33:19 +03:00
Dragory 1d2f3dd4d8 Fix crash when the auto-response cannot be sent. Add pingOnBotMention option for controlling whether the staff get pinged for bot mentions. 2018-05-03 20:26:12 +03:00
Dragory cd96c70f1c Switch config parser to JSON5. Accept multiple config file names. 2018-05-03 19:55:21 +03:00
Miikka 685ccdd226
Always show multi-server header when using multiple servers
Previously, if the user was on only one server, the server name would not be shown in the thread header.
2018-05-03 19:37:50 +03:00
Miikka 777ea2dd2c
Fix crash when user edits a DM after the thread is closed 2018-05-03 14:22:38 +03:00
Miikka 82a89b6e86
modules.move: slightly prioritize categories that start with the search string 2018-04-25 02:25:49 +03:00
Miikka d6793d5c12
modules.move: fix !move ignoring the last letter of the category name 2018-04-25 02:21:24 +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 a839372cfe You can now use !close c as an alias for !close cancel 2018-04-21 16:42:35 +03:00
Dragory 5e1b5112a2 Add !alert
Using !alert in a modmail thread will ping you the next time the thread
gets a new reply. Use !alert cancel to cancel.
2018-04-21 16:39:38 +03:00
Dragory 3911d92edc Display source guild in bot mention notifications
Only when using multiple main guilds.
2018-04-21 15:54:41 +03:00
Dragory 319f6571bc Add !id
The !id command returns the user ID of the current thread. Useful for
getting the user ID on mobile.
2018-04-21 15:41: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 1fc32f71d0 Fix #67: errors from privacy settings are now ignored with greetings 2018-04-21 14:31:58 +03:00
Dragory 4305609f0b Add !newthread 2018-04-08 02:56:30 +03:00
Dragory 9c322a5af3 Add !version command 2018-03-13 07:59:27 +02:00
Dragory ab3d70008a Move more code from main.js to individual module files. Rename plugins -> modules. Remove some obsolete comments. 2018-03-13 07:45:31 +02: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 07c0336f72 Also add that fix to the third place where it's needed 2018-03-11 23:20:59 +02:00
Dragory 2251cabe86 Additional fix for scheduling in MySQL/MariaDB 2018-03-11 23:19:45 +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 38bb553588 Scheduling fix for MySQL/MariaDB version 3000 2018-03-11 22:48:53 +02:00
Dragory 91bb245b59 Don't start scheduled close loop until after connecting to Discord 2018-03-11 22:45:43 +02:00
Dragory 0b677d338e Actually fix scheduled closing on MySQL/MariaDB 2018-03-11 22:42:40 +02:00
Dragory 40e420a40d Fix scheduled closing on MySQL/MariaDB 2018-03-11 22:36:52 +02:00
Dragory b8a5021dd5 Add thread suspending 2018-03-11 22:27:52 +02:00
Dragory dc44bdc103 Remove duplicate definition of threads.findById 2018-03-11 22:15:29 +02:00
Dragory 32260fd22c Auto-close threads if their inbox server channel is deleted 2018-03-11 22:15:16 +02:00