aboutsummaryrefslogtreecommitdiff
path: root/src/modules/typingProxy.js
diff options
context:
space:
mode:
authorSin-MacBook <[email protected]>2020-08-10 23:44:20 +0200
committerSin-MacBook <[email protected]>2020-08-10 23:44:20 +0200
commit2a53887abba882bf7b63aeda8dfa55fdb3ab8792 (patch)
treead7a95eb41faa6ff13c3142285cdc0eb3ca92183 /src/modules/typingProxy.js
downloadmodmail-2a53887abba882bf7b63aeda8dfa55fdb3ab8792.tar.xz
modmail-2a53887abba882bf7b63aeda8dfa55fdb3ab8792.zip
clean this up when home
Diffstat (limited to 'src/modules/typingProxy.js')
-rw-r--r--src/modules/typingProxy.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/modules/typingProxy.js b/src/modules/typingProxy.js
new file mode 100644
index 0000000..5881808
--- /dev/null
+++ b/src/modules/typingProxy.js
@@ -0,0 +1,33 @@
+const config = require('../config');
+const threads = require("../data/threads");
+const Eris = require("eris");
+
+module.exports = ({ bot }) => {
+ // Typing proxy: forwarding typing events between the DM and the modmail thread
+ if(config.typingProxy || config.typingProxyReverse) {
+ bot.on("typingStart", async (channel, user) => {
+ // config.typingProxy: forward user typing in a DM to the modmail thread
+ if (config.typingProxy && (channel instanceof Eris.PrivateChannel)) {
+ const thread = await threads.findOpenThreadByUserId(user.id);
+ if (! thread) return;
+
+ try {
+ await bot.sendChannelTyping(thread.channel_id);
+ } catch (e) {}
+ }
+
+ // config.typingProxyReverse: forward moderator typing in a thread to the DM
+ else if (config.typingProxyReverse && (channel instanceof Eris.GuildChannel) && ! user.bot) {
+ const thread = await threads.findByChannelId(channel.id);
+ if (! thread) return;
+
+ const dmChannel = await thread.getDMChannel();
+ if (! dmChannel) return;
+
+ try {
+ await bot.sendChannelTyping(dmChannel.id);
+ } catch(e) {}
+ }
+ });
+ }
+};