thelounge-plugin-ntfy 1.6.0 → 1.6.2

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.
Files changed (3) hide show
  1. package/index.js +31 -62
  2. package/package.json +1 -1
  3. package/src/handler.js +8 -1
package/index.js CHANGED
@@ -7,7 +7,6 @@ const {
7
7
  loadUserConfig,
8
8
  saveUserSetting,
9
9
  saveNetworkSetting,
10
- PER_NETWORK_KEYS,
11
10
  } = require("./src/config.js");
12
11
 
13
12
  // user -> Map<network.uuid -> handler and client>
@@ -87,7 +86,12 @@ const ntfyCommand = {
87
86
  return;
88
87
  }
89
88
 
90
- const userListeners = globalActiveListeners.get(client.client.name);
89
+ let userListeners = globalActiveListeners.get(client.client.name);
90
+
91
+ if (!userListeners) {
92
+ userListeners = new Map();
93
+ globalActiveListeners.set(client.client.name, userListeners);
94
+ }
91
95
 
92
96
  if (all) {
93
97
  const networks = client.client.networks;
@@ -95,11 +99,7 @@ const ntfyCommand = {
95
99
  let skipped = 0;
96
100
 
97
101
  for (const net of networks) {
98
- if (
99
- userListeners &&
100
- typeof userListeners.has === "function" &&
101
- userListeners.has(net.uuid)
102
- ) {
102
+ if (userListeners.has(net.uuid)) {
103
103
  skipped++;
104
104
  continue;
105
105
  }
@@ -107,16 +107,7 @@ const ntfyCommand = {
107
107
  const handler = createHandler(client, net);
108
108
  net.irc.on("privmsg", handler);
109
109
 
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
- }
110
+ userListeners.set(net.uuid, { handler: handler, client: client });
120
111
 
121
112
  started++;
122
113
  }
@@ -136,11 +127,7 @@ const ntfyCommand = {
136
127
  );
137
128
  }
138
129
  } else {
139
- if (
140
- userListeners &&
141
- typeof userListeners.has === "function" &&
142
- userListeners.has(network.uuid)
143
- ) {
130
+ if (userListeners.has(network.uuid)) {
144
131
  say("ntfy listener is already running for this network");
145
132
  return;
146
133
  }
@@ -148,16 +135,7 @@ const ntfyCommand = {
148
135
  const handler = createHandler(client, network);
149
136
  network.irc.on("privmsg", handler);
150
137
 
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
- }
138
+ userListeners.set(network.uuid, { handler: handler, client: client });
161
139
 
162
140
  say("ntfy listener started for this network");
163
141
  }
@@ -177,7 +155,12 @@ const ntfyCommand = {
177
155
  all = true;
178
156
  }
179
157
 
180
- const userListeners = globalActiveListeners.get(client.client.name);
158
+ let userListeners = globalActiveListeners.get(client.client.name);
159
+
160
+ if (!userListeners) {
161
+ userListeners = new Map();
162
+ globalActiveListeners.set(client.client.name, userListeners);
163
+ }
181
164
 
182
165
  if (all) {
183
166
  const networks = client.client.networks;
@@ -185,18 +168,16 @@ const ntfyCommand = {
185
168
  let skipped = 0;
186
169
 
187
170
  for (const net of networks) {
188
- if (
189
- !userListeners ||
190
- typeof userListeners.has !== "function" ||
191
- !userListeners.has(net.uuid)
192
- ) {
171
+ if (!userListeners.has(net.uuid)) {
193
172
  skipped++;
194
173
  continue;
195
174
  }
196
175
 
197
176
  const { handler } = userListeners.get(net.uuid);
198
177
  net.irc.removeListener("privmsg", handler);
178
+
199
179
  userListeners.delete(net.uuid);
180
+
200
181
  stopped++;
201
182
  }
202
183
 
@@ -215,17 +196,14 @@ const ntfyCommand = {
215
196
  );
216
197
  }
217
198
  } else {
218
- if (
219
- !userListeners ||
220
- typeof userListeners.has !== "function" ||
221
- !userListeners.has(network.uuid)
222
- ) {
199
+ if (!userListeners.has(network.uuid)) {
223
200
  say("ntfy listener is not running for this network");
224
201
  return;
225
202
  }
226
203
 
227
204
  const { handler } = userListeners.get(network.uuid);
228
205
  network.irc.removeListener("privmsg", handler);
206
+
229
207
  userListeners.delete(network.uuid);
230
208
 
231
209
  say("ntfy listener stopped for this network");
@@ -246,27 +224,24 @@ const ntfyCommand = {
246
224
  all = true;
247
225
  }
248
226
 
249
- const userListeners = globalActiveListeners.get(client.client.name);
227
+ let userListeners = globalActiveListeners.get(client.client.name);
228
+
229
+ if (!userListeners) {
230
+ userListeners = new Map();
231
+ globalActiveListeners.set(client.client.name, userListeners);
232
+ }
250
233
 
251
234
  if (all) {
252
235
  const networks = client.client.networks;
253
236
  for (const net of networks) {
254
- if (
255
- userListeners &&
256
- typeof userListeners.has === "function" &&
257
- userListeners.has(net.uuid)
258
- ) {
237
+ if (userListeners.has(net.uuid)) {
259
238
  say(`${net.name}: running`);
260
239
  } else {
261
240
  say(`${net.name}: not running`);
262
241
  }
263
242
  }
264
243
  } else {
265
- if (
266
- userListeners &&
267
- typeof userListeners.has === "function" &&
268
- userListeners.has(network.uuid)
269
- ) {
244
+ if (userListeners.has(network.uuid)) {
270
245
  say("ntfy listener is running for this network");
271
246
  } else {
272
247
  say("ntfy listener is not running for this network");
@@ -450,10 +425,7 @@ const ntfyCommand = {
450
425
  const setArgs = networkArgs.slice(1);
451
426
 
452
427
  if (setArgs.length < 2) {
453
- say("Usage: /ntfy config network set <setting_key> <value>");
454
- say(
455
- `Available per-network settings: ${Array.from(PER_NETWORK_KEYS).join(", ")}`,
456
- );
428
+ helpMessage();
457
429
  return;
458
430
  }
459
431
 
@@ -475,10 +447,7 @@ const ntfyCommand = {
475
447
  const removeArgs = networkArgs.slice(1);
476
448
 
477
449
  if (removeArgs.length < 1) {
478
- say("Usage: /ntfy config network remove <setting_key>");
479
- say(
480
- `Available per-network settings: ${Array.from(PER_NETWORK_KEYS).join(", ")}`,
481
- );
450
+ helpMessage();
482
451
  return;
483
452
  }
484
453
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thelounge-plugin-ntfy",
3
- "version": "1.6.0",
3
+ "version": "1.6.2",
4
4
  "description": "A plugin for The Lounge that sends push notifications via ntfy when highlighted",
5
5
  "keywords": [
6
6
  "thelounge",
package/src/handler.js CHANGED
@@ -3,6 +3,13 @@
3
3
  const { loadUserConfig, getNetworkSetting } = require("./config.js");
4
4
  const { PluginLogger } = require("./logger.js");
5
5
 
6
+ function stripIrcFormatting(message) {
7
+ return message.replace(
8
+ /[\x02\x0F\x16\x1D\x1F]|(?:\x03(?:\d{1,2}(?:,\d{1,2})?)?)/g,
9
+ "",
10
+ );
11
+ }
12
+
6
13
  function createHandler(client, network) {
7
14
  return async (data) => {
8
15
  // Ignore own messages
@@ -95,7 +102,7 @@ function createHandler(client, network) {
95
102
  title: isPM
96
103
  ? `${network.name}: ${data.nick}`
97
104
  : `${network.name} ${data.target}: ${data.nick}`,
98
- message: message,
105
+ message: stripIrcFormatting(message),
99
106
  });
100
107
  } catch (e) {
101
108
  PluginLogger.error("Failed to send ntfy notification", e);