Overhauled MOTD functionality

This commit is contained in:
Izwzyzx 2023-04-17 21:55:46 -05:00
parent 3505bc4562
commit 51a2a9f211

View File

@ -14,7 +14,7 @@ class Onequestionmark {
static var botInfo:Dynamic;
static var iceRegex:EReg = ~/\bicc?ed?\b/i;
static var hugDB:Array<String>;
static var motdDB:Dynamic;
static var motdDB:haxe.DynamicAccess<Dynamic> = {};
static var yesnoDB:Dynamic;
static function main() {
@ -43,7 +43,7 @@ class Onequestionmark {
motdDB = Json.parse(File.getContent("motd-db.json"));
} else {
Sys.println('[${timestamp()}] Did not find motd-db.json, skipping');
motdDB = {"sunday": [],"monday": [],"tuesday": [],"wednesday": [],"thursday": [],"friday": [],"saturday": []}; // Fallback
motdDB = Json.parse('{"sunday": [],"monday": [],"tuesday": [],"wednesday": [],"thursday": [],"friday": [],"saturday": []}'); // Fallback
}
if (FileSystem.exists("yesno-db.json")) {
@ -160,6 +160,73 @@ class Onequestionmark {
return '${StringTools.lpad(Std.string(Date.now().getMonth()+1), "0", 2)}-${StringTools.lpad(Std.string(Date.now().getDate()), "0", 2)}';
}
// Clean print day of week
public static function checkDay() {
var day = "";
switch (Date.now().getDay()+1) {
case 1:
day = "sun";
case 2:
day = "mon";
case 3:
day = "tues";
case 4:
day = "wed";
case 5:
day = "thurs";
case 6:
day = "fri";
case 7:
day = "sat";
}
return day;
}
// Clean print month
public static function checkMonth() {
var month = "";
switch (Date.now().getMonth()+1) {
case 1:
month = "jan";
case 2:
month = "feb";
case 3:
month = "mar";
case 4:
month = "apr";
case 5:
month = "may";
case 6:
month = "jun";
case 7:
month = "jul";
case 8:
month = "aug";
case 9:
month = "sep";
case 10:
month = "oct";
case 11:
month = "nov";
case 12:
month = "dec";
}
return month;
}
//Get current day of month, padded
public static function checkDate() {
return StringTools.lpad(Std.string(Date.now().getDate()), "0", 2);
}
public static function monthdate() {
return '${checkMonth()}${checkDate()}';
}
public static function weekdate() {
return '${checkDay()}${checkDate()}';
}
public static function motd() {
if (settings.motd.date != datestamp()) {
settings.motd.date = datestamp();
@ -172,22 +239,18 @@ class Onequestionmark {
var msg = "";
var day:Array<String> = [];
//events
switch (Date.now().getDay()) {
case 0: // Sunday
day = motdDB.sunday;
case 1: // Monday
day = motdDB.monday;
case 2: // Tuesday
day = motdDB.tuesday;
case 3: // Wednesday
day = motdDB.wednesday;
case 4: // Thursday
day = motdDB.thursday;
case 5: // Friday
day = motdDB.friday;
case 6: // Saturday
day = motdDB.saturday;
// Check for special date
if (motdDB.exists(monthdate())) {
day = motdDB.get(monthdate());
}
// Else, check for special day/date combo
else if (motdDB.exists(weekdate())) {
day = motdDB.get(weekdate());
}
// Otherwise, post daily meme
else if (motdDB.exists(checkDay())) {
day = motdDB.get(checkDay());
}
if (day.length > 0) {msg = day[randInt(0, day.length-1)];}