]> git.donarmstrong.com Git - infobot.git/blobdiff - src/Modules/Countdown.pl
ws
[infobot.git] / src / Modules / Countdown.pl
index 51cae88efbef3625cfca4dc2f1f7dfd51eec8bdb..a5e9edffcaa9873a01566039814290f5912d62aa 100644 (file)
@@ -11,7 +11,7 @@ use strict;
 
 sub Countdown {
     my ($query) = @_;
-    my $file = "$infobot_base_dir/$param{'ircUser'}.countdown";
+    my $file = "$bot_base_dir/$param{'ircUser'}.countdown";
     my (%date, %desc);
     my $reply;
 
@@ -44,18 +44,19 @@ sub Countdown {
        ### SQL SPECIFIC.
        my ($to_days,$dayname,$monname);
 
-       if ($param{'DBType'} =~ /pg|postgres|mysql/i) {
-           $to_days = (&dbRawReturn("SELECT TO_DAYS(NOW()) - TO_DAYS('$sqldate')"))[0];
-           $dayname = (&dbRawReturn("SELECT DAYNAME('$sqldate')"))[0];
-           $monname = (&dbRawReturn("SELECT MONTHNAME('$sqldate')"))[0];
-       } elsif ($param{'DBType'} =~ /^dbm$/i) {
-           &DEBUG("Countdown: FIXME!!!");
-#          $to_days = 
-#          $dayname = 
-#          $monname = 
-           return 1;
+       if ($param{'DBType'} =~ /^mysql|sqlite$/i) {
+           $to_days = (&sqlRawReturn("SELECT TO_DAYS(NOW()) - TO_DAYS('$sqldate')"))[0];
+           $dayname = (&sqlRawReturn("SELECT DAYNAME('$sqldate')"))[0];
+           $monname = (&sqlRawReturn("SELECT MONTHNAME('$sqldate')"))[0];
+
+       } elsif ($param{'DBType'} =~ /^pgsql$/i) {
+           $to_days = (&sqlRawReturn("SELECT date_trunc('day',
+                               'now'::timestamp - '$sqldate')"))[0];
+           $dayname = qw(Sun Mon Tue Wed Thu Fri Sat)[(&sqlRawReturn("SELECT extract(dow from timestamp '$sqldate')"))[0]];
+           $monname = qw(BAD Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)[(&sqlRawReturn("SELECT extract(month from timestamp '$sqldate')"))[0]];
+
        } else {
-           &ERROR("Countdown: invalid DBType?");
+           &ERROR("Countdown: invalid DBType " . $param{'DBType'} . ".");
            return 1;
        }