thelounge-plugin-ntfy 1.5.0 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -87,7 +87,12 @@ const ntfyCommand = {
87
87
  return;
88
88
  }
89
89
 
90
- const userListeners = globalActiveListeners.get(client.client.name);
90
+ let userListeners = globalActiveListeners.get(client.client.name);
91
+
92
+ if (!userListeners) {
93
+ userListeners = new Map();
94
+ globalActiveListeners.set(client.client.name, userListeners);
95
+ }
91
96
 
92
97
  if (all) {
93
98
  const networks = client.client.networks;
@@ -95,11 +100,7 @@ const ntfyCommand = {
95
100
  let skipped = 0;
96
101
 
97
102
  for (const net of networks) {
98
- if (
99
- userListeners &&
100
- typeof userListeners.has === "function" &&
101
- userListeners.has(net.uuid)
102
- ) {
103
+ if (userListeners.has(net.uuid)) {
103
104
  skipped++;
104
105
  continue;
105
106
  }
@@ -107,16 +108,7 @@ const ntfyCommand = {
107
108
  const handler = createHandler(client, net);
108
109
  net.irc.on("privmsg", handler);
109
110
 
110
- if (!userListeners) {
111
- const map = new Map();
112
- map.set(net.uuid, { handler: handler, client: client });
113
- globalActiveListeners.set(client.client.name, map);
114
- } else {
115
- userListeners.set(net.uuid, {
116
- handler: handler,
117
- client: client,
118
- });
119
- }
111
+ userListeners.set(net.uuid, { handler: handler, client: client });
120
112
 
121
113
  started++;
122
114
  }
@@ -136,11 +128,7 @@ const ntfyCommand = {
136
128
  );
137
129
  }
138
130
  } else {
139
- if (
140
- userListeners &&
141
- typeof userListeners.has === "function" &&
142
- userListeners.has(network.uuid)
143
- ) {
131
+ if (userListeners.has(network.uuid)) {
144
132
  say("ntfy listener is already running for this network");
145
133
  return;
146
134
  }
@@ -148,16 +136,7 @@ const ntfyCommand = {
148
136
  const handler = createHandler(client, network);
149
137
  network.irc.on("privmsg", handler);
150
138
 
151
- if (!userListeners) {
152
- const map = new Map();
153
- map.set(network.uuid, { handler: handler, client: client });
154
- globalActiveListeners.set(client.client.name, map);
155
- } else {
156
- userListeners.set(network.uuid, {
157
- handler: handler,
158
- client: client,
159
- });
160
- }
139
+ userListeners.set(network.uuid, { handler: handler, client: client });
161
140
 
162
141
  say("ntfy listener started for this network");
163
142
  }
@@ -177,7 +156,12 @@ const ntfyCommand = {
177
156
  all = true;
178
157
  }
179
158
 
180
- const userListeners = globalActiveListeners.get(client.client.name);
159
+ let userListeners = globalActiveListeners.get(client.client.name);
160
+
161
+ if (!userListeners) {
162
+ userListeners = new Map();
163
+ globalActiveListeners.set(client.client.name, userListeners);
164
+ }
181
165
 
182
166
  if (all) {
183
167
  const networks = client.client.networks;
@@ -185,18 +169,16 @@ const ntfyCommand = {
185
169
  let skipped = 0;
186
170
 
187
171
  for (const net of networks) {
188
- if (
189
- !userListeners ||
190
- typeof userListeners.has !== "function" ||
191
- !userListeners.has(net.uuid)
192
- ) {
172
+ if (!userListeners.has(net.uuid)) {
193
173
  skipped++;
194
174
  continue;
195
175
  }
196
176
 
197
177
  const { handler } = userListeners.get(net.uuid);
198
178
  net.irc.removeListener("privmsg", handler);
179
+
199
180
  userListeners.delete(net.uuid);
181
+
200
182
  stopped++;
201
183
  }
202
184
 
@@ -215,17 +197,14 @@ const ntfyCommand = {
215
197
  );
216
198
  }
217
199
  } else {
218
- if (
219
- !userListeners ||
220
- typeof userListeners.has !== "function" ||
221
- !userListeners.has(network.uuid)
222
- ) {
200
+ if (!userListeners.has(network.uuid)) {
223
201
  say("ntfy listener is not running for this network");
224
202
  return;
225
203
  }
226
204
 
227
205
  const { handler } = userListeners.get(network.uuid);
228
206
  network.irc.removeListener("privmsg", handler);
207
+
229
208
  userListeners.delete(network.uuid);
230
209
 
231
210
  say("ntfy listener stopped for this network");
@@ -246,27 +225,24 @@ const ntfyCommand = {
246
225
  all = true;
247
226
  }
248
227
 
249
- const userListeners = globalActiveListeners.get(client.client.name);
228
+ let userListeners = globalActiveListeners.get(client.client.name);
229
+
230
+ if (!userListeners) {
231
+ userListeners = new Map();
232
+ globalActiveListeners.set(client.client.name, userListeners);
233
+ }
250
234
 
251
235
  if (all) {
252
236
  const networks = client.client.networks;
253
237
  for (const net of networks) {
254
- if (
255
- userListeners &&
256
- typeof userListeners.has === "function" &&
257
- userListeners.has(net.uuid)
258
- ) {
238
+ if (userListeners.has(net.uuid)) {
259
239
  say(`${net.name}: running`);
260
240
  } else {
261
241
  say(`${net.name}: not running`);
262
242
  }
263
243
  }
264
244
  } else {
265
- if (
266
- userListeners &&
267
- typeof userListeners.has === "function" &&
268
- userListeners.has(network.uuid)
269
- ) {
245
+ if (userListeners.has(network.uuid)) {
270
246
  say("ntfy listener is running for this network");
271
247
  } else {
272
248
  say("ntfy listener is not running for this network");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thelounge-plugin-ntfy",
3
- "version": "1.5.0",
3
+ "version": "1.6.1",
4
4
  "description": "A plugin for The Lounge that sends push notifications via ntfy when highlighted",
5
5
  "keywords": [
6
6
  "thelounge",
package/src/config.js CHANGED
@@ -122,7 +122,7 @@ const userConfigSchema = {
122
122
  properties: {
123
123
  notify_on_private_messages: {
124
124
  type: "object",
125
- additionalProperties: { type: ["boolean", "string"] },
125
+ additionalProperties: { type: "boolean" },
126
126
  default: {},
127
127
  },
128
128
  },
package/src/handler.js CHANGED
@@ -10,11 +10,21 @@ function createHandler(client, network) {
10
10
  return;
11
11
  }
12
12
 
13
+ const isPM = data.target === network.nick;
14
+
15
+ const channel = isPM
16
+ ? network.channels.find((chan) => chan.name === data.nick)
17
+ : network.channels.find((chan) => chan.name === data.target);
18
+
19
+ if (channel.muted) {
20
+ // Ignore messages in muted channels
21
+ return;
22
+ }
23
+
13
24
  const highlightRegex = new RegExp(network.highlightRegex, "i");
14
25
  const message = data.message || "";
15
26
 
16
27
  const mentioned = highlightRegex.test(message);
17
- const isPM = data.target === network.nick;
18
28
 
19
29
  let notify = false;
20
30
  let userConfig;