From 51a2a9f2115bc5525de3514dc3abbf3f76459a2a Mon Sep 17 00:00:00 2001 From: Izwzyzx <184772711+Izwzyzx@users.noreply.github.com> Date: Mon, 17 Apr 2023 21:55:46 -0500 Subject: [PATCH] Overhauled MOTD functionality --- Onequestionmark.hx | 99 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 81 insertions(+), 18 deletions(-) diff --git a/Onequestionmark.hx b/Onequestionmark.hx index d40697f..b780960 100644 --- a/Onequestionmark.hx +++ b/Onequestionmark.hx @@ -14,7 +14,7 @@ class Onequestionmark { static var botInfo:Dynamic; static var iceRegex:EReg = ~/\bicc?ed?\b/i; static var hugDB:Array; - static var motdDB:Dynamic; + static var motdDB:haxe.DynamicAccess = {}; 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 = []; - //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)];}