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.
- package/index.js +31 -62
- package/package.json +1 -1
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
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);
|