Commit Graph

151 Commits (b5fe1de87be6e428ff8d9e6d6660c43bb022c20c)

Author SHA1 Message Date
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
Dragory dcd9d94734 Fix incorrect mentionRole default 2018-03-11 22:08:59 +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 4089e836d4 Merge branch 'master' of https://github.com/HaydenMeloche/modmailbot into pull59-master 2018-03-11 21:42:17 +02:00
Dragory eea540b0fb Use moment.utc() over moment() since we're currently always dealing with UTC times 2018-03-11 21:34:41 +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
HaydenMeloche 92508c7e3f Added user configurable mentions 2018-03-06 18:40:38 -05:00
Dragory 3f99cbd948 Fix merge conflicts 2018-02-24 23:16:28 +02:00
Dragory b2a102f82a A link to the current thread is no longer posted at the beginning of the thread 2018-02-24 13:14:40 +02:00
Dragory f2bfb7d8c9 Merge branch 'experimental' of github.com:Dragory/modmailbot into experimental 2018-02-24 13:03:02 +02:00
Dragory 5ab65a701e Save username + blocked by id with !block 2018-02-24 13:02:54 +02:00
Dragory 3e2954f4e3 legacyMigrator: set blocked_by in migrated blocks to null 2018-02-24 12:58:20 +02:00
Dragory c865eb9d56 legacyMigrator: don't consider log migration if the logs folder is empty 2018-02-24 12:46:02 +02:00
Miikka bd33606384
Fix accidental message checking not being case-insensitive 2018-02-20 12:57:34 +02:00
Dragory 1fa4975e18 Some extra checks for special messageUpdate and messageDelete cases 2018-02-19 02:03:53 +02:00
Dragory 48bbd8cfe1 Fix bug when updating thread messages 2018-02-19 00:55:01 +02:00
Dragory c2a7ae6fa3 legacyMigrator: ahem, one more fix 2018-02-19 00:52:47 +02:00
Dragory 8b4f33f199 legacyMigrator: one more fix for that 2018-02-19 00:50:55 +02:00
Dragory 8a1b8802b3 legacyMigrator: possible fix for last commit 2018-02-19 00:49:44 +02:00
Dragory a76a675f4c legacyMigrator: fix open legacy threads having no message logs 2018-02-19 00:46:15 +02:00
Dragory 87a2c885f8 Add !loglink command 2018-02-19 00:45:56 +02:00
Dragory b9678d08dd Add !move command 2018-02-19 00:23:29 +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 92ac21aa33 Fix ignoreAccidentalMessages not working. Fix another weird error with message edits. 2018-02-18 22:52:37 +02:00
Dragory 0a9f26eaff Fix crash with message edits between bot restarts 2018-02-18 22:30:10 +02:00
Dragory e0bd96e959 Logs are posted in the log channel again 2018-02-18 21:21:03 +02:00
Dragory ce6c0da0e2 Fix sorting in !logs 2018-02-18 21:09:52 +02:00
Dragory 6233e53fe4 Fix incorrect permission check 2018-02-18 21:07:26 +02:00
Dragory 2bb4aec249 legacyMigrator: fix duplicate blocked users sometimes breaking migration (race condition) 2018-02-18 21:05:38 +02:00
Dragory f1af3d7314 legacyMigrator: add a progress indicator for log migrations 2018-02-18 20:35:07 +02:00
Dragory a668818421 legacyMigrator: hopefully fix timeout when there are lots of log files to migrate 2018-02-18 20:22:06 +02:00
Dragory 8a77bf1849 Disable small attachment relaying by default, add option for it 2018-02-18 20:06:24 +02:00
Dragory 43d80f5912 Clarify legacy data migration instructions 2018-02-18 20:06:04 +02:00
Dragory ce8624e130 Show logs in reverse order again 2018-02-18 19:43:32 +02:00
Dragory 32c22f4d46 Relay small attachments as attachments. Auto-close threads if the channel no longer exists when receiving a reply. 2018-02-14 08:53:48 +02:00
Dragory ad7aa66c99 Continue rewrite. Modularize greeting, snippet, and web server functionality. 2018-02-11 21:54:30 +02:00
judge2020 26c468d5fb
Add error handling for getDMChannel 2018-01-22 17:34:12 -05:00
judge2020 c306479d8a
Remove unnecessary comment 2018-01-22 17:18:15 -05:00
judge2020 036885144e
Impliment typing proxy 2018-01-22 17:17:24 -05: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 b2d9c93f43 Add newThreadCategoryId option 2017-09-22 22:18:15 +03:00
Miikka Virtanen ccb6f7345b Fix addidental error when a thread was not returned but no errors were thrown 2017-09-20 23:06:19 +03:00
Miikka Virtanen 21b5400576 Don't display full stack traces for network errors
They pointed to Eris internals anyway, and are pretty unreadable.
2017-09-20 09:46:11 +03:00
Miikka Virtanen 8426e7b170 fix: don't continue forwarding a DM if the thread could not be created 2017-09-20 09:41:54 +03:00
Miikka Virtanen ebb4ad23d7 Remove cruft left behind by the recent refactoring 2017-09-19 21:33:17 +03:00
Miikka Virtanen 893bfb091e Set greeting defaults to null 2017-09-19 21:32:48 +03: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 d0bad2d6b3 Hotfix #2 2017-08-03 22:03:39 +03:00
Miikka Virtanen c330caf249 Hotfix 2017-08-03 22:00:34 +03:00
Miikka Virtanen 4963ba6a39 Fix user nicknames. Don't require manageRoles permission by default anymore (moved to config). 2017-08-03 21:50:41 +03:00
Miikka Virtanen 3b33cde517 Possible fix for 'NOT ON SERVER' 2017-08-03 21:32:16 +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 779655d3df snippets: when showing snippet info, make the command more visible 2017-07-24 03:30:47 +03:00
Miikka Virtanen c121754800 Add snippets 2017-07-24 03:27:21 +03:00
Miikka Virtanen d4aa7d5fe4 Make edit notif prefixes monospace 2017-07-24 02:44:15 +03:00
Miikka Virtanen f22330338b greeting: send an empty string as message content for falsy values (such as null) instead 2017-07-24 02:42:26 +03:00
Miikka Virtanen 77b4ed856d Transliterate non-ascii names for channel names properly 2017-07-24 02:41:31 +03:00
Miikka Virtanen 1dc21880e2 Clarify some code comments 2017-07-24 02:23:34 +03:00
Miikka Virtanen 3abb376397 Make commands case-insensitive 2017-07-24 02:13:04 +03:00
Miikka Virtanen 6a9e55ade0 Make edit notification prefixes the same length
From "Before" and "After" to "B" and "A" respectively.
Makes it easier to compare small edits.
2017-07-24 02:09:39 +03:00
Miikka Virtanen 32fa668770 Clarify the name of the exported function from greeting 2017-07-24 02:09:06 +03:00
Miikka Virtanen 887facf6a4 Even more ignored words! 2017-05-20 19:45:22 +03:00
Miikka Virtanen 75d721cca0 More ignored words! 2017-05-20 19:44:09 +03:00
Miikka Virtanen 4eec9b07a6 More ignored words... 2017-05-19 15:34:04 +03:00
Miikka Virtanen 7948f12761 More ignored words for new threads 2017-05-19 15:27:28 +03:00
Miikka Virtanen 6b26c1cb5c Sort logs in descending order 2017-05-18 05:52:21 +03:00
Miikka Virtanen e258bf8432 Add config option ignoreAccidentalThreads. Using this option, messages that start with 'ok', 'thanks', etc. will be ignored, as they probably shouldn't start a new thread. 2017-05-18 05:47:45 +03:00
Miikka Virtanen ad3417c827 Add useNicknames config option to use mod nicknames in replies. Post log lists in chunks to avoid hitting the message length limit. 2017-05-18 05:28:11 +03:00
Miikka Virtanen ab7c1e8611 Add attachment links to received messages only after the attachments have been saved. Don't show edits that result in identical messages. Post new thread notifications in the thread in question, not the main channel. Remove ping from close messages. 2017-05-18 05:20:19 +03:00
ahalekelly 71a7e55fd1 Made alwaysReply configurable 2017-05-01 09:14:28 +00:00
ahalekelly cca19ec38e Treat every message as a reply 2017-05-01 07:56:49 +00:00
Miikka Virtanen 7320f6bf9c Handle it gracefully when we can't get guild member info. Indicate if this was due to the member not existing on the guild or because the endpoint didn't give us enough data. 2017-02-15 01:26:17 +02:00
Miikka Virtanen e7ed0e5a21 Add some debug stuff 2017-02-15 01:20:56 +02:00
Miikka Virtanen 3bdd0384f4 Don't you love bugs that only show up in prod? 2017-02-15 01:19:08 +02:00
Miikka Virtanen 1a44065b61 Handle error when guild member doesn't have a user 2017-02-15 01:14:26 +02:00
Miikka Virtanen 2281d01d8c Possibly proper fix 2017-02-15 01:10:44 +02:00
Miikka Virtanen 1f235bb806 Fix2 2017-02-15 01:04:57 +02:00
Miikka Virtanen 087fd85447 Fix 2017-02-15 01:02:45 +02: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 70601f1d00 Show mod username for anonymous replies in logs 2017-02-10 07:39:17 +02:00
Miikka Virtanen 513439746f Add new user greetings 2017-02-10 07:04:23 +02:00
Miikka Virtanen 6a13724c6a Major refactor about done 2017-02-10 06:36:47 +02:00