commit 517babd757b20fc2e11c236bbf09fa271bf15b63
parent 2ce55b463d35fb5556e7dbed87e2a1782b6a3221
Author: Agastya Chandrakant <acagastya@outlook.com>
Date: Sat, 8 Aug 2020 16:25:02 +0530
? escape fixes
Diffstat:
M | utils.js | | | 63 | +++++++++++++++++++++++++++++++++------------------------------ |
1 file changed, 33 insertions(+), 30 deletions(-)
diff --git a/utils.js b/utils.js
@@ -1,8 +1,8 @@
-const fetch = require('node-fetch');
-const { allowedSetters, setterAdmins, URL } = require('./config');
-const TUrl = require('tinyurl');
-const moment = require('moment-timezone');
-const timezones = require('./time');
+const fetch = require("node-fetch");
+const { allowedSetters, setterAdmins, URL } = require("./config");
+const TUrl = require("tinyurl");
+const moment = require("moment-timezone");
+const timezones = require("./time");
async function fetchData(URI) {
const res = {};
@@ -12,15 +12,15 @@ async function fetchData(URI) {
res.list = parsed.query.categorymembers;
} catch (error) {
res.error = true;
- console.warn('Error in fetchData:', error);
+ console.warn("Error in fetchData:", error);
}
return res;
}
function fullUrl(title) {
- let [main, anchor] = title.split('#');
- main = main.replace(/ /g, '%20');
- if (anchor) anchor = anchor.replace(/ /g, '_');
+ let [main, anchor] = title.split("#");
+ main = main.replace(/ /g, "%20");
+ if (anchor) anchor = anchor.replace(/ /g, "_");
let final;
if (anchor) final = `${main}%23${anchor}`;
else final = main;
@@ -29,7 +29,7 @@ function fullUrl(title) {
function getFullLink(link) {
const len = link.length;
- const trimmed = link.substr(2, len - 4);
+ const trimmed = link.substr(2, len - 4).replace(/\?/g, "%3F");
const finalUrl = fullUrl(trimmed);
return finalUrl;
}
@@ -38,19 +38,22 @@ function getFullTemplate(template) {
const len = template.length;
const word = template
.substr(2, len - 4)
- .split('|')[0]
- .replace(/ /g, '%20');
+ .split("|")[0]
+ .replace(/ /g, "%20")
+ .replave(/\?/g, "%3F");
return `${URL}Template:${word}`;
}
function sayTime(msg, client, channel) {
- let arr = msg.split(' ').filter(Boolean);
- while (arr[1] != '!time') arr.shift();
+ let arr = msg.split(" ").filter(Boolean);
+ while (arr[1] != "!time") arr.shift();
const user = arr[2];
const timezone = timezones.get(user) || user;
- const TZ = moment.tz.names().includes(timezone) ? timezone : 'UTC';
- let time = moment().tz(timezone).format('HH:mm MMM DD');
- if (TZ == 'UTC') time += ' UTC';
+ const TZ = moment.tz.names().includes(timezone) ? timezone : "UTC";
+ let time = moment()
+ .tz(timezone)
+ .format("HH:mm MMM DD");
+ if (TZ == "UTC") time += " UTC";
client.say(channel, time);
}
@@ -61,27 +64,27 @@ function setthis(sender, channel, msg, client) {
client.say(channel, `You are not permitted to access this, ${sender}.`);
return;
}
- let arr = msg.split(' ').filter(Boolean);
- while (arr[1] != '!SET') arr.shift();
+ let arr = msg.split(" ").filter(Boolean);
+ while (arr[1] != "!SET") arr.shift();
const action = arr[2];
switch (action) {
- case 'help': {
+ case "help": {
client.say(
channel,
`${sender}: These are the commands you can use: add, get, keys, rmv, clr, mt(?).`
);
break;
}
- case 'add': {
+ case "add": {
if (chatSetter[channel] == undefined) chatSetter[channel] = {};
if (chatSetter[channel][sender] == undefined)
chatSetter[channel][sender] = new Map();
- const val = arr.slice(4).join(' ');
+ const val = arr.slice(4).join(" ");
chatSetter[channel][sender].set(arr[3], val);
client.say(channel, `Added, ${sender}.`);
break;
}
- case 'get': {
+ case "get": {
if (chatSetter[channel] == undefined) chatSetter[channel] = {};
if (chatSetter[channel][sender] == undefined)
chatSetter[channel][sender] = new Map();
@@ -89,16 +92,16 @@ function setthis(sender, channel, msg, client) {
client.say(channel, `${sender}: ${val}`);
break;
}
- case 'keys': {
+ case "keys": {
if (chatSetter[channel] == undefined) chatSetter[channel] = {};
if (chatSetter[channel][sender] == undefined)
chatSetter[channel][sender] = new Map();
const keys = [];
for (let key of chatSetter[channel][sender].keys()) keys.push(key);
- client.say(channel, `${sender}: ${keys.join(', ')}`);
+ client.say(channel, `${sender}: ${keys.join(", ")}`);
break;
}
- case 'rmv': {
+ case "rmv": {
if (chatSetter[channel] == undefined) chatSetter[channel] = {};
if (chatSetter[channel][sender] == undefined)
chatSetter[channel][sender] = new Map();
@@ -106,17 +109,17 @@ function setthis(sender, channel, msg, client) {
client.say(channel, `${sender}: removed`);
break;
}
- case 'clr': {
+ case "clr": {
if (chatSetter[channel] == undefined) chatSetter[channel] = {};
chatSetter[channel][sender].clear();
client.say(channel, `${sender}: deleted all sets.`);
break;
}
- case 'mt': {
+ case "mt": {
if (!setterAdmins.includes(sender) || !chatSetter[channel]) {
break;
}
- Object.keys(chatSetter[channel]).forEach((name) =>
+ Object.keys(chatSetter[channel]).forEach(name =>
chatSetter[channel][name].clear()
);
client.say(channel, `Cleared all sets for everyone, ${sender}.`);
@@ -134,5 +137,5 @@ module.exports = {
getFullLink,
getFullTemplate,
sayTime,
- setthis,
+ setthis
};