Skip to content

Commit

Permalink
Added files, fixes, checks, and cleanups
Browse files Browse the repository at this point in the history
Added package.json and package-lock.json because I forgot to move them into the git earlier
Added permission checks for daily posting, and a check if the guilds table in rethink has already been created
  • Loading branch information
barkloaf committed Jan 25, 2019
1 parent 0fc8bea commit dcec250
Show file tree
Hide file tree
Showing 22 changed files with 993 additions and 192 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Expand Up @@ -59,3 +59,7 @@ typings/

# next.js build output
.next

config.json
blacklist.json
holidaybot.bat
2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -10,7 +10,7 @@ Default prefix is `h]`
* `ping` - Pong!
* `stats` - Shows bot statistics like uptime, lib versions, etc.
* `h [region]` - Displays holidays in the specified region or server region on command (if enabled)
* `set` -
* `set` - Sets server-specific settings (Manage Server permission required)
* `set prefix <desiredPrefix>` - Changes the prefix used on this server (default: `h]`)
* `set region <desiredRegion>` - Changes the region to any valid tz/zoneinfo database region. See list here: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. This is used for the daily posting region, as well as the default region used when `h [region]` is run. By default, this will be the timezone associated with the server region.
* `set adult <on|off>` - Enables/disables content that may not be safe for viewing by children (default: `off`/`false`)
Expand Down
4 changes: 2 additions & 2 deletions commands/about.js
@@ -1,6 +1,6 @@
const Discord = require("discord.js");
let clc = require("cli-color")
let moment = require("moment")
let clc = require("cli-color");
let moment = require("moment");
require("moment-timezone");
require("moment-duration-format");

Expand Down
15 changes: 7 additions & 8 deletions commands/blacklist.js
@@ -1,17 +1,16 @@
const Discord = require("discord.js");
let clc = require("cli-color")
let moment = require("moment")
require("moment-timezone");
require("moment-duration-format");
const config = require("../config.json");
const fs = require("fs")
const bl = require("../blacklist.json");
const updateBL = (bl) => {
fs.writeFile ("./blacklist.json", JSON.stringify(bl, null, 4), function(err) {
if (err) throw err;
}
);
}
});
};
let clc = require("cli-color");
let moment = require("moment");
require("moment-timezone");
require("moment-duration-format");


module.exports.run = async (client, message, args, cmdHook, roCMD) => {
let prefixDBResult = await client.db.r.table("guilds").get(message.guild.id).getField("prefix").run()
Expand Down
7 changes: 3 additions & 4 deletions commands/die.js
@@ -1,9 +1,8 @@
const Discord = require("discord.js");
let clc = require("cli-color")
let moment = require("moment")
const config = require("../config.json");
let clc = require("cli-color");
let moment = require("moment");
require("moment-timezone");
require("moment-duration-format");
const config = require("../config.json");

module.exports.run = async (client, message, args, cmdHook, roCMD) => {
if(message.author.id === config.ownerID) {
Expand Down
6 changes: 3 additions & 3 deletions commands/eval.js
@@ -1,9 +1,9 @@
const Discord = require("discord.js");
let clc = require("cli-color")
let moment = require("moment")
const config = require("../config.json");
let clc = require("cli-color");
let moment = require("moment");
require("moment-timezone");
require("moment-duration-format");
const config = require("../config.json");

module.exports.run = async (client, message, args, cmdHook, roCMD) => {
if(message.author.id === config.ownerID) {
Expand Down
4 changes: 2 additions & 2 deletions commands/h.js
@@ -1,5 +1,5 @@
let clc = require("cli-color")
let moment = require("moment")
let clc = require("cli-color");
let moment = require("moment");
require("moment-timezone");
require("moment-duration-format");
const RSSParser = require("rss-parser");
Expand Down
4 changes: 2 additions & 2 deletions commands/help.js
@@ -1,6 +1,6 @@
const Discord = require("discord.js");
let clc = require("cli-color")
let moment = require("moment")
let clc = require("cli-color");
let moment = require("moment");
require("moment-timezone");
require("moment-duration-format");

Expand Down
4 changes: 2 additions & 2 deletions commands/ping.js
@@ -1,5 +1,5 @@
let clc = require("cli-color")
let moment = require("moment")
let clc = require("cli-color");
let moment = require("moment");
require("moment-timezone");
require("moment-duration-format");

Expand Down
111 changes: 73 additions & 38 deletions commands/set.js
@@ -1,5 +1,5 @@
let clc = require("cli-color");
let moment = require("moment")
let moment = require("moment");
require("moment-timezone");
require("moment-duration-format");
const config = require("../config.json");
Expand Down Expand Up @@ -27,44 +27,62 @@ const getDefaultRegion = (guild) => {
var defaultRegion = "";
//brazil, us-west, japan, singapore, eu-central, hongkong, us-south, southafrica, us-central, london, us-east, sydney, eu-west, amsterdam, frankfurt, russia

if(guild.region === "brazil") {
defaultRegion = "America/Sao_Paulo";
} else if(guild.region === "us-west") {
defaultRegion = "America/Los_Angeles";
} else if(guild.region === "japan") {
defaultRegion = "Asia/Tokyo";
} else if(guild.region === "singapore") {
defaultRegion = "Asia/Singapore";
} else if(guild.region === "eu-central") {
defaultRegion = "Europe/Berlin";
} else if(guild.region === "hongkong") {
defaultRegion = "Asia/Hong_Kong";
} else if(guild.region === "us-south") {
defaultRegion = "America/Chicago";
} else if(guild.region === "southafrica") {
defaultRegion = "Africa/Johannesburg";
} else if(guild.region === "us-central") {
defaultRegion = "America/Chicago";
} else if(guild.region === "london") {
defaultRegion = "Europe/London";
} else if(guild.region === "us-east") {
defaultRegion = "America/Toronto";
} else if(guild.region === "sydney") {
defaultRegion = "Australia/Sydney";
} else if(guild.region === "eu-west") {
defaultRegion = "Europe/Paris";
} else if(guild.region === "amsterdam") {
defaultRegion = "Europe/Amsterdam";
} else if(guild.region === "frankfurt") {
defaultRegion = "Europe/Berlin";
} else if(guild.region === "russia") {
defaultRegion = "Europe/Moscow";
} else {
defaultRegion = "UTC";
}
switch(guild.region) {
case "brazil":
defaultRegion = "America/Sao_Paulo";
break;
case "us-west":
defaultRegion = "America/Los_Angeles";
break;
case "japan":
defaultRegion = "Asia/Tokyo";
break;
case "singapore":
defaultRegion = "Asia/Singapore";
break;
case "eu-central":
defaultRegion = "Europe/Berlin";
break;
case "hongkong":
defaultRegion = "Asia/Hong_Kong";
break;
case "us-south":
defaultRegion = "America/Chicago";
break;
case "southafrica":
defaultRegion = "Africa/Johannesburg";
break;
case "us-central":
defaultRegion = "America/Chicago";
break;
case "london":
defaultRegion = "Europe/London";
break;
case "us-east":
defaultRegion = "America/Toronto";
break;
case "sydney":
defaultRegion = "Australia/Sydney";
break;
case "eu-west":
defaultRegion = "Europe/Paris";
break;
case "amsterdam":
defaultRegion = "Europe/Amsterdam";
break;
case "frankfurt":
defaultRegion = "Europe/Berlin";
break;
case "russia":
defaultRegion = "Europe/Moscow";
break;
default:
defaultRegion = "UTC";
break;
};

return defaultRegion;
}
};

module.exports.run = async (client, message, args, cmdHook, roCMD) => {
if(message.member.permissions.has("MANAGE_GUILD") || message.author.id === config.ownerID) {
Expand Down Expand Up @@ -185,6 +203,23 @@ module.exports.run = async (client, message, args, cmdHook, roCMD) => {
} else if(prop === "dailyChannel") {
const [prop, ...ignored] = args;
let nDC = message.mentions.channels.first()
if(!nDC.permissionsFor(message.guild.me).has("SEND_MESSAGES")) {
console.log("[" + clc.red("FAIL") + "] " + "[" + clc.magenta("PERM") + "] " + `${message.author.tag} (ID: ${message.author.id}) ran "${message}" in "${message.guild.name}" (ID: ${message.guild.id})`);
cmdHook.send("`[" + `${moment().format('DD/MM/YYYY] [HH:mm:ss')}` + "]`" + "[**" + "FAIL" + "**] " + "[**" + "PERM" + "**] " + `__${message.author.tag}__ (ID: ${message.author.id}) ran \`${message}\` in __${message.guild.name}__ (ID: ${message.guild.id})`)
return message.channel.send({embed: {
color: 0xc6373e,
author: {
name: client.user.username,
icon_url: client.user.displayAvatarURL
},
title: "Error!",
description: "No permission to send messages in mentioned channel.",
footer: {
icon_url: message.author.displayAvatarURL,
text: message.author.username
}
}})};

client.db.updateDailyChannel(message.guild.id, nDC.id)

} else if(prop === "reset") {
Expand All @@ -194,7 +229,7 @@ module.exports.run = async (client, message, args, cmdHook, roCMD) => {
client.db.updateRegion(message.guild.id, getDefaultRegion(message.guild));
client.db.updateAdult(message.guild.id, false);
client.db.updateDaily(message.guild.id, true);
client.db.updateDailyChannel(message.guild.id, getDefaultChannel(message.guild));
client.db.updateDailyChannel(message.guild.id, getDefaultChannel(message.guild).id);
client.db.updateCommand(message.guild.id, true);

} else {
Expand Down
96 changes: 57 additions & 39 deletions commands/settings.js
@@ -1,13 +1,13 @@
let clc = require("cli-color")
let moment = require("moment")
let clc = require("cli-color");
let moment = require("moment");
require("moment-timezone");
require("moment-duration-format");
const Discord = require("discord.js");

const getDefaultChannel = (guild) => {
// get "original" default channel
if(guild.channels.has(guild.id))
return guild.channels.get(message.guild.id)
return guild.channels.get(guild.id)

// Check for a "general" channel, which is often default chat
const generalChannel = guild.channels.find(channel => channel.name === "general");
Expand All @@ -27,44 +27,62 @@ const getDefaultRegion = (guild) => {
var defaultRegion = "";
//brazil, us-west, japan, singapore, eu-central, hongkong, us-south, southafrica, us-central, london, us-east, sydney, eu-west, amsterdam, frankfurt, russia

if(guild.region === "brazil") {
defaultRegion = "America/Sao_Paulo";
} else if(guild.region === "us-west") {
defaultRegion = "America/Los_Angeles";
} else if(guild.region === "japan") {
defaultRegion = "Asia/Tokyo";
} else if(guild.region === "singapore") {
defaultRegion = "Asia/Singapore";
} else if(guild.region === "eu-central") {
defaultRegion = "Europe/Berlin";
} else if(guild.region === "hongkong") {
defaultRegion = "Asia/Hong_Kong";
} else if(guild.region === "us-south") {
defaultRegion = "America/Chicago";
} else if(guild.region === "southafrica") {
defaultRegion = "Africa/Johannesburg";
} else if(guild.region === "us-central") {
defaultRegion = "America/Chicago";
} else if(guild.region === "london") {
defaultRegion = "Europe/London";
} else if(guild.region === "us-east") {
defaultRegion = "America/Toronto";
} else if(guild.region === "sydney") {
defaultRegion = "Australia/Sydney";
} else if(guild.region === "eu-west") {
defaultRegion = "Europe/Paris";
} else if(guild.region === "amsterdam") {
defaultRegion = "Europe/Amsterdam";
} else if(guild.region === "frankfurt") {
defaultRegion = "Europe/Berlin";
} else if(guild.region === "russia") {
defaultRegion = "Europe/Moscow";
} else {
defaultRegion = "UTC";
}
switch(guild.region) {
case "brazil":
defaultRegion = "America/Sao_Paulo";
break;
case "us-west":
defaultRegion = "America/Los_Angeles";
break;
case "japan":
defaultRegion = "Asia/Tokyo";
break;
case "singapore":
defaultRegion = "Asia/Singapore";
break;
case "eu-central":
defaultRegion = "Europe/Berlin";
break;
case "hongkong":
defaultRegion = "Asia/Hong_Kong";
break;
case "us-south":
defaultRegion = "America/Chicago";
break;
case "southafrica":
defaultRegion = "Africa/Johannesburg";
break;
case "us-central":
defaultRegion = "America/Chicago";
break;
case "london":
defaultRegion = "Europe/London";
break;
case "us-east":
defaultRegion = "America/Toronto";
break;
case "sydney":
defaultRegion = "Australia/Sydney";
break;
case "eu-west":
defaultRegion = "Europe/Paris";
break;
case "amsterdam":
defaultRegion = "Europe/Amsterdam";
break;
case "frankfurt":
defaultRegion = "Europe/Berlin";
break;
case "russia":
defaultRegion = "Europe/Moscow";
break;
default:
defaultRegion = "UTC";
break;
};

return defaultRegion;
}
};

module.exports.run = async (client, message, args, cmdHook, roCMD) => {
let prefixDBResult = await client.db.r.table("guilds").get(message.guild.id).getField("prefix").run()
Expand Down
4 changes: 2 additions & 2 deletions commands/stats.js
@@ -1,6 +1,6 @@
const Discord = require("discord.js");
let clc = require("cli-color")
let moment = require("moment")
let clc = require("cli-color");
let moment = require("moment");
require("moment-timezone");
require("moment-duration-format");

Expand Down
2 changes: 1 addition & 1 deletion config.json.example
Expand Up @@ -3,4 +3,4 @@
"ownerID": "",
"whID": "",
"whToken": ""
}
}

0 comments on commit dcec250

Please sign in to comment.