Refactored use of file names to be specified in config

This commit is contained in:
benji7425 2017-01-08 16:01:07 +00:00
parent 4b2e04c13a
commit 12c02185b6
3 changed files with 34 additions and 23 deletions

View File

@ -6,5 +6,7 @@
"youtubeMode": true, "youtubeMode": true,
"logRequestMessage": "!logsplease", "logRequestMessage": "!logsplease",
"subscribeRequestMessage": "!subscribe", "subscribeRequestMessage": "!subscribe",
"unsubscribeRequestMessage": "!unsubscribe" "unsubscribeRequestMessage": "!unsubscribe",
"logFile": "./log",
"subscribersFile": "./subscribers.json"
} }

View File

@ -60,21 +60,24 @@ var DiscordClient = {
return url; return url;
}); });
} }
else if (message === Config.subscribeRequestMessage) { else {
Subscriptions.subscribe(userID, user); switch (message) {
case Config.subscribeRequestMessage:
Subscriptions.subscribe(userID, user);
break;
case Config.unsubscribeRequestMessage:
Subscriptions.unsubscribe(userID, user);
break;
case Config.logRequestMessage:
DiscordClient.bot.uploadFile({
to: channelID,
file: Config.logFileName
}, (err, message) => {
if (err) Log.error("Failed to upload log file: " + message, err);
else Log.event("Uploaded log file for user " + user + "(" + userID + ")");
});
}
} }
else if (message === Config.unsubscribeRequestMessage) {
Subscriptions.unsubscribe(userID, user);
}
}
else if (message === Config.logRequestMessage) {
DiscordClient.bot.uploadFile({
to: channelID,
file: "./log"
}, (err, message) => {
if (err) Log.error("Failed to upload log file: " + message, err);
else Log.event("Uploaded log file for user " + user + "(" + userID + ")");
});
} }
}, },
checkPastMessagesForLinks: function () { checkPastMessagesForLinks: function () {
@ -127,20 +130,23 @@ var DiscordClient = {
var Subscriptions = { var Subscriptions = {
subscribers: [], subscribers: [],
parse: function () { parse: function () {
JsonFile.readFile("./subscribers.json", (err, obj) => { JsonFile.readFile(Config.subscribersFile, (err, obj) => {
if (err) Log.error("Unable to parse json subscribers file", err); if (err) Log.error("Unable to parse json subscribers file", err);
this.subscribers = obj || []; this.subscribers = obj || [];
}); });
}, },
subscribe: function (userID, user) { subscribe: function (userID, user) {
this.subscribers.push(userID); this.subscribers.push(userID);
JsonFile.writeFile("./subscribers.json", this.subscribers, (err) => { if (err) Log.error("Unable to write subscribers to json file", err); }); this.writeToFile();
Log.event("Subscribed user " + (user ? user + "(" + userID + ")" : userID)); Log.event("Subscribed user " + (user ? user + "(" + userID + ")" : userID));
}, },
unsubscribe: function (userID, user) { unsubscribe: function (userID, user) {
this.subscribers.splice(this.subscribers.indexOf(userID)); this.subscribers.splice(this.subscribers.indexOf(userID));
JsonFile.writeFile("./subscribers.json", this.subscribers, (err) => { if (err) Log.error("Unable to write subscribers to json file", err); }); this.writeToFile();
Log.event("Unsubscribed user " + (user ? user + "(" + userID + ")" : userID)); Log.event("Unsubscribed user " + (user ? user + "(" + userID + ")" : userID));
},
writeToFile: function () {
JsonFile.writeFile(Config.subscribersFile, this.subscribers, (err) => { if (err) Log.error("Unable to write subscribers to json file", err); });
} }
}; };

13
log.js
View File

@ -1,18 +1,21 @@
var console = require("console"); //external library imports
var FileWriter = require("simple-file-writer"); var Console = require("console"); //access to debug console
var FileWriter = require("simple-file-writer"); //file writer for logging
var logWriter = new FileWriter("./log"); //my imports
var Config = require("./config.json"); //config file containing other settings
var logWriter = new FileWriter(Config.logFileName);
var latestLog = ""; var latestLog = "";
function log(message) { function log(message) {
if (message && message != latestLog) { if (message && message !== latestLog) {
latestLog = message; //spam reduction latestLog = message; //spam reduction
//attach a formatted date string to the beginning of everything we log //attach a formatted date string to the beginning of everything we log
var dateMessage = new Date().toLocaleString() + " " + message; var dateMessage = new Date().toLocaleString() + " " + message;
console.log(dateMessage); Console.log(dateMessage);
logWriter.write(dateMessage + "\n"); logWriter.write(dateMessage + "\n");
} }
} }