summaryrefslogtreecommitdiff
path: root/lib/RHRD
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2016-04-15 20:43:20 (GMT)
committerChristian Pointner <equinox@spreadspace.org>2016-04-15 20:43:20 (GMT)
commiteec0aa47e2d9ee49f57160b238a70cc81aa3f744 (patch)
tree76da91d90bcc903fb75e51ab185ab72f91328eb5 /lib/RHRD
parentd1016e1e09bf460ede1ac49e91650351b3aff4a4 (diff)
added some more checks: dow, week-rhythm...
Diffstat (limited to 'lib/RHRD')
-rwxr-xr-xlib/RHRD/rddb.pm37
-rwxr-xr-xlib/RHRD/utils.pm9
2 files changed, 42 insertions, 4 deletions
diff --git a/lib/RHRD/rddb.pm b/lib/RHRD/rddb.pm
index f9bcb87..380a486 100755
--- a/lib/RHRD/rddb.pm
+++ b/lib/RHRD/rddb.pm
@@ -999,7 +999,7 @@ sub list_shows
}
my @show_dbs;
- while(my ($to_cart, $params, $lowcart, $highcart) = $sth->fetchrow_array()) {
+ while(my ($to_cart, $params) = $sth->fetchrow_array()) {
my @p = split(';', $params);
next if ('S' ne $p[0]);
@@ -1206,6 +1206,41 @@ sub get_show_title_and_log
return ($title, $log, 'OK', 'success');
}
+sub get_show_info
+{
+ my ($ctx, $showid) = @_;
+
+ my $sql = qq{select SET_USER_DEFINED from DROPBOXES where STATION_NAME = ? and TO_CART = ?;};
+
+ my $sth = $ctx->{'dbh'}->prepare($sql)
+ or return (undef, 'ERROR', "Database Error: " . $ctx->{'dbh'}->errstr);
+
+ $sth->execute($ctx->{'config'}{'dropboxes'}{'dropbox-pseudo-station'}, $showid)
+ or return (undef, 'ERROR', "Database Error: " . $sth->errstr);
+
+ my ($params) = $sth->fetchrow_array;
+ $sth->finish();
+
+ my @p = split(';', $params);
+ return (undef, 'ERROR', "show with $showid does not exist") unless ('S' eq $p[0]);
+
+ my $entry = {};
+ $entry->{'ID'} = $showid;
+ my ($title, $log, $status, $errorstring) = get_show_title_and_log($ctx, $showid);
+ return (undef, $status, $errorstring) unless (defined $title && defined $log);
+
+ $entry->{'TITLE'} = $title;
+ $entry->{'LOG'} = $log;
+ $entry->{'RHYTHM'} = $p[1];
+ $entry->{'DOW'} = int $p[2];
+ $entry->{'DOW'} = 0 unless $entry->{'DOW'} < 7;
+ substr($p[3], 2, 0) = ':';
+ $entry->{'STARTTIME'} = $p[3];
+ $entry->{'LEN'} = int $p[4];
+
+ return ($entry, 'OK', 'success');
+}
+
sub get_show_carts
{
my ($ctx, $showid) = @_;
diff --git a/lib/RHRD/utils.pm b/lib/RHRD/utils.pm
index fbc3933..7f060e9 100755
--- a/lib/RHRD/utils.pm
+++ b/lib/RHRD/utils.pm
@@ -32,6 +32,7 @@ use JSON;
sub get_rd_week
{
+ my ($time) = @_;
#
# This computes the current Rivendell Week based on the number
# of weeks since epoch.
@@ -48,10 +49,12 @@ sub get_rd_week
# with 0 meaning Week 1. So add 1 to that number and you will get
# the current RD week.
#
- my $now = DateTime->now();
+ if(!defined($time)) {
+ $time = DateTime->now();
+ }
my $tz = DateTime::TimeZone->new(name => 'Europe/Vienna');
- my $tz_offset = $tz->offset_for_datetime($now);
- my $sEpoch = $now->epoch() + $tz_offset;
+ my $tz_offset = $tz->offset_for_datetime($time);
+ my $sEpoch = $time->epoch() + $tz_offset;
my $week = floor(((($sEpoch + 259200)/604800) + 2) % 4) + 1;
return $week;