moved cfg from db to json
This commit is contained in:
@ -1,97 +0,0 @@
|
||||
import { read, write, cfg } from "../cfg";
|
||||
|
||||
const _modes = ["get", "set", "rm", "add", "opts"];
|
||||
const _opts = {
|
||||
showTypes: { type: "boolean", stdval: false },
|
||||
showHidden: { type: "boolean", stdval: false }
|
||||
};
|
||||
const _debug = false;
|
||||
|
||||
export default async bot => {
|
||||
|
||||
return [{
|
||||
name: "cfg",
|
||||
call: /^\!cfg/i,
|
||||
active: false,
|
||||
level: 100,
|
||||
clients: ["irc"],
|
||||
f: e => {
|
||||
let args = e.message.substring(5);
|
||||
let opts = {};
|
||||
let value = null;
|
||||
|
||||
if (args.includes("{") && args.includes(":") && args.charAt(args.length - 1) === "}") { // check if options available
|
||||
try {
|
||||
opts = JSON.parse(args.replace(/.*\{(.*?)\}.*/, "{$1}")); // parse options
|
||||
}
|
||||
catch(err) {
|
||||
return e.reply(err.message); // throw errormessage
|
||||
}
|
||||
args = args.replace(/(.*?)\{.*\}(.*?)/, "$1$2"); // remove options from arguments
|
||||
}
|
||||
for (let _opt in _opts) // check options
|
||||
if (!opts.hasOwnProperty(_opt))
|
||||
opts[_opt] = _opts[_opt].stdval;
|
||||
else
|
||||
if (typeof opts[_opt] !== _opts[_opt].type)
|
||||
opts[_opt] = _opts[_opt].stdval;
|
||||
|
||||
if(_debug)
|
||||
e.reply(`opts: ${JSON.stringify(opts)}`);
|
||||
|
||||
args = args.trim().split(" ");
|
||||
let mode = args.shift();
|
||||
|
||||
if (mode === "set" && e.message.includes("=")) { // get value if mode = set
|
||||
args = args.join(" "); // omg
|
||||
value = args.replace(/.*=(.*?)/, "$1").trim();
|
||||
args = args.replace(/(.*?)=.*/, "$1").trim().split(" ");
|
||||
|
||||
e.reply(`value: ${value}, rest: ${args}`);
|
||||
}
|
||||
|
||||
if (mode === "opts") // maybe replaced by switch in the future
|
||||
return e.reply(`options: ${Object.keys(_opts).map(el => `[b]${el}[/b]: [i]${_opts[el].stdval} (${_opts[el].type})[/i]`).join(", ")}`)
|
||||
|
||||
if (!_modes.includes(mode)) // if unknown mode
|
||||
return e.reply(`wrong mode! (${_modes.join(", ")})`);
|
||||
if (args.length === 0) // no mode given, get classes
|
||||
return e.reply(`classes: ${Object.keys(cfg).join(", ")}`);
|
||||
|
||||
let cfgstr = args[0].split(".");
|
||||
|
||||
if (cfgstr.length === 1) { // get keys in class
|
||||
if (!Object.keys(cfg).includes(cfgstr[0]))
|
||||
return e.reply(`class [b]${cfgstr[0]}[/b] not found`);
|
||||
let keys = { // split between hidden and public keys
|
||||
hidden: Object.keys(cfg[cfgstr[0]]).filter(el => cfg[cfgstr[0]][el].hidden),
|
||||
public: Object.keys(cfg[cfgstr[0]]).filter(el => !cfg[cfgstr[0]][el].hidden)
|
||||
};
|
||||
return e.reply(`keys in class [b]${cfgstr[0]}[/b]: ${keys.public.length > 0 ? keys.public.map(el => `${el}${opts.showTypes ? ` [i](${cfg[cfgstr[0]][el].type})[/i]` : ""}`).join(", ") : "none"} (${keys.hidden.length} hidden)`);
|
||||
}
|
||||
|
||||
if(mode === "get") {
|
||||
if (!opts.showHidden)
|
||||
if (cfg[cfgstr[0]][cfgstr[1]].hidden || opts.showHidden) // catch hidden key
|
||||
return e.reply(`key [b]${cfgstr[1]}[/b] in class [b]${cfgstr[0]}[/b] is hidden, kek`);
|
||||
}
|
||||
|
||||
switch (mode) {
|
||||
case "get":
|
||||
e.reply(cfg[cfgstr[0]][cfgstr[1]].val);
|
||||
break;
|
||||
case "set":
|
||||
if (cfg[cfgstr[0]][cfgstr[1]].type === "json")
|
||||
return e.reply("JSON isn't supported yet");
|
||||
if(value === null)
|
||||
return e.reply("Error");
|
||||
|
||||
write(cfgstr[0], cfgstr[1], value, cfg[cfgstr[0]][cfgstr[1]].type, () => {
|
||||
e.reply(cfg[cfgstr[0]][cfgstr[1]].val);
|
||||
})
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}];
|
||||
};
|
@ -1,7 +1,7 @@
|
||||
import { cfg } from "../../inc/cfg";
|
||||
import fetch from "flumm-fetch-cookies";
|
||||
import config from "../../../cfg/config.json";
|
||||
|
||||
const api = `http://ws.audioscrobbler.com/2.0/?method=user.getRecentTracks&limit=1&api_key=${cfg.main.lastfm.val.key}&format=json&user=`;
|
||||
const api = `http://ws.audioscrobbler.com/2.0/?method=user.getRecentTracks&limit=1&api_key=${config.apis.lastfm.key}&format=json&user=`;
|
||||
|
||||
export default async bot => {
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
import fetch from "flumm-fetch-cookies";
|
||||
import { cfg } from "../../../inc/cfg";
|
||||
import config from "../../../../cfg/config.json";
|
||||
|
||||
export default new class cleverbot {
|
||||
constructor() {
|
||||
@ -12,7 +12,7 @@ export default new class cleverbot {
|
||||
const options = {
|
||||
method: "POST",
|
||||
body: {
|
||||
...cfg.main.chatbot.val,
|
||||
...config.apis.cleverbot,
|
||||
...{ nick: "uwibot" }
|
||||
}
|
||||
};
|
||||
@ -27,7 +27,7 @@ export default new class cleverbot {
|
||||
const options = {
|
||||
method: "POST",
|
||||
body: {
|
||||
...cfg.main.chatbot.val,
|
||||
...config.apis.cleverbot,
|
||||
...{
|
||||
nick: this.nick,
|
||||
text: msg
|
||||
|
@ -1,5 +1,5 @@
|
||||
import fetch from "flumm-fetch-cookies";
|
||||
import { cfg } from "../../inc/cfg";
|
||||
import config from "../../../cfg/config.json";
|
||||
|
||||
export default async bot => {
|
||||
|
||||
@ -12,7 +12,7 @@ export default async bot => {
|
||||
usage: "[b].scrnd[/b]"
|
||||
},
|
||||
f: async e => {
|
||||
const res = await (await fetch(`http://api.soundcloud.com/users/${cfg.main.soundcloud.val.user}/favorites?client_id=${cfg.main.soundcloud.val.clientid}`)).json();
|
||||
const res = await (await fetch(`http://api.soundcloud.com/users/${config.apis.soundcloud.user}/favorites?client_id=${config.apis.soundcloud.clientid}`)).json();
|
||||
const track = res[~~((Math.random() * res.length) + 1)];
|
||||
e.reply(`${track.permalink_url}\n[b]${track.title}[/b] - length [b]${track.duration}[/b] - [b]${track.user.username}[/b] on [b]${track.created_at}[/b]`);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
import fetch from "flumm-fetch-cookies";
|
||||
import { cfg } from "../../inc/cfg";
|
||||
import config from "../../../cfg/config.json";
|
||||
import { conds } from "./lib/wttr";
|
||||
|
||||
export default async bot => {
|
||||
@ -74,7 +74,7 @@ export default async bot => {
|
||||
},
|
||||
f: e => {
|
||||
const loc = encodeURIComponent(e.message.trim().substring(3));
|
||||
const key = cfg.main.owm.val.key;
|
||||
const key = config.apis.owm.key;
|
||||
const api = `http://api.openweathermap.org/data/2.5/weather?q=${loc}&appid=${key}&units=metric&lang=de`;
|
||||
|
||||
fetch(api)
|
||||
@ -121,7 +121,7 @@ export default async bot => {
|
||||
},
|
||||
f: e => {
|
||||
const loc = encodeURIComponent(e.message.trim().substring(9));
|
||||
const key = cfg.main.owm.val.key;
|
||||
const key = config.apis.owm.key;
|
||||
const api = `http://api.openweathermap.org/data/2.5/weather?q=${loc}&appid=${key}&units=metric&lang=de`;
|
||||
|
||||
fetch(api)
|
||||
|
Reference in New Issue
Block a user