From cb42bb3574fab1e761c6562c60ee3b5e3c8af09d Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Fri, 2 Dec 2016 21:54:48 +0100 Subject: make len, dow and startime checks more relax (for specials) diff --git a/lib/RHRD/utils.pm b/lib/RHRD/utils.pm index 834f9fa..756707b 100755 --- a/lib/RHRD/utils.pm +++ b/lib/RHRD/utils.pm @@ -66,13 +66,13 @@ sub get_rd_week use constant { DB_PARAM_TYPE_HINT => "only S, M and J are allowed with S -> Show, M -> Musicpool, J -> Jingles", DB_PARAM_RHYTHM_HINT => "only 0 or 1 are allowed, length must be exactly 4 and it must not be '0000'", - DB_PARAM_DOW_HINT => "must be between 1 and 7 (1=Monday, ..., 7=Sunday)", - DB_PARAM_STARTTIME_HINT => "must be in format HHMM (without seperator) in 24 hour format", - DB_PARAM_LEN_HINT => "must be a positive number below 1440", + DB_PARAM_DOW_HINT => "must be between 1 and 7 (1=Monday, ..., 7=Sunday), use 0 for specials", + DB_PARAM_STARTTIME_HINT => "must be in format HHMM (without seperator) in 24 hour format, use '----' for specials", + DB_PARAM_LEN_HINT => "must be a positive number below 1440, use 0 for specials", DB_PARAM_SHOWTYPE_HINT => "only n, r and s are allowed with n -> normal, r -> re-run, s -> special", CMDLINE_WEEK_HINT => "must be one of W1, W2, W3, W4", - CMDLINE_DOW_HINT => "must be one of MO, TU, WE, TH, FR, SA, SU", + CMDLINE_DOW_HINT => "must be one of MO, TU, WE, TH, FR, SA, SU use - for specials", # this is a subset of the colors from: stackoverflow.com/questions/2328339 POOL_COLORS => ["#FFFFFF", "#FFFF00", "#1CE6FF", "#FF34FF", "#FF4A46", "#008941", "#006FA6", @@ -133,8 +133,7 @@ sub dropbox_param_dow_ok sub dropbox_param_starttime_ok { my ($starttime) = @_; - - if(!defined($starttime) || $starttime !~ m/^[0-2][0-9][0-5][0-9]$/ || $starttime > 2359) { + if(!defined($starttime) || ($starttime ne '----' && ($starttime !~ m/^[0-2][0-9][0-5][0-9]$/ || $starttime > 2359))) { return (0, "starttime '" . (defined($starttime) ? $starttime : 'undef') . "' is not a valid clock time", DB_PARAM_STARTTIME_HINT); } return (1, 'OK', DB_PARAM_STARTTIME_HINT); @@ -144,7 +143,7 @@ sub dropbox_param_len_ok { my ($len) = @_; - if(!defined($len) || $len <= 0 || $len > 1440) { + if(!defined($len) || $len < 0 || $len > 1440) { return (0, "len '" . (defined($len) ? $len : 'undef') . "' is out of bounds", DB_PARAM_LEN_HINT); } return (1, 'OK', DB_PARAM_LEN_HINT); @@ -208,6 +207,8 @@ sub cmdline_dow return (6, 'OK', CMDLINE_DOW_HINT); } elsif(uc($dow) eq "SU") { return (7, 'OK', CMDLINE_DOW_HINT); + } elsif(uc($dow) eq "-") { + return (0, 'OK', CMDLINE_DOW_HINT); } return (undef, 'invalid day-of-week', CMDLINE_DOW_HINT); } diff --git a/utils/rhrd-show b/utils/rhrd-show index a9e0abc..daa3060 100755 --- a/utils/rhrd-show +++ b/utils/rhrd-show @@ -123,31 +123,31 @@ sub add__check_arguments } my ($result, $err, $hint) = RHRD::utils::dropbox_param_rhythm_ok($rhythm); - unless($result) { + unless(defined $result) { print STDERR $err . "\n " . $hint . "\n"; return 1; } ($result, $err, $hint) = RHRD::utils::cmdline_dow($dow); - unless($result) { + unless(defined $result) { print STDERR $err . "\n " . $hint . "\n"; return 1; } ($result, $err, $hint) = RHRD::utils::dropbox_param_starttime_ok($starttime); - unless($result) { + unless(defined $result) { print STDERR $err . "\n " . $hint . "\n"; return 1; } ($result, $err, $hint) = RHRD::utils::dropbox_param_len_ok($len); - unless($result) { + unless(defined $result) { print STDERR $err . "\n " . $hint . "\n"; return 1; } ($result, $err, $hint) = RHRD::utils::dropbox_param_showtype_ok($type); - unless($result) { + unless(defined $result) { print STDERR $err . "\n " . $hint . "\n"; return 1; } @@ -221,31 +221,31 @@ sub edit__check_arguments my ($showid, $title, $rhythm, $dow, $starttime, $len, $type) = @_; my ($result, $err, $hint) = RHRD::utils::dropbox_param_rhythm_ok($rhythm); - unless($result) { + unless(defined $result) { print STDERR $err . "\n " . $hint . "\n"; return 1; } ($result, $err, $hint) = RHRD::utils::cmdline_dow($dow); - unless($result) { + unless(defined $result) { print STDERR $err . "\n " . $hint . "\n"; return 1; } ($result, $err, $hint) = RHRD::utils::dropbox_param_starttime_ok($starttime); - unless($result) { + unless(defined $result) { print STDERR $err . "\n " . $hint . "\n"; return 1; } ($result, $err, $hint) = RHRD::utils::dropbox_param_len_ok($len); - unless($result) { + unless(defined $result) { print STDERR $err . "\n " . $hint . "\n"; return 1; } ($result, $err, $hint) = RHRD::utils::dropbox_param_showtype_ok($type); - unless($result) { + unless(defined $result) { print STDERR $err . "\n " . $hint . "\n"; return 1; } @@ -410,7 +410,7 @@ sub multi_add my $type = shift; my ($result, $err, $hint) = RHRD::utils::dropbox_param_showtype_ok($type); - unless($result) { + unless(defined $result) { print STDERR $err . "\n " . $hint . "\n"; return 1; } @@ -442,7 +442,7 @@ sub multi_edit my $type = shift; my ($result, $err, $hint) = RHRD::utils::dropbox_param_showtype_ok($type); - unless($result) { + unless(defined $result) { print STDERR $err . "\n " . $hint . "\n"; return 1; } -- cgit v0.10.2