summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2015-09-27 03:16:04 (GMT)
committerChristian Pointner <equinox@spreadspace.org>2015-09-27 03:16:04 (GMT)
commit222541ee6348f21a0b8107bebb3701422614ba88 (patch)
tree7329a6df0424df69b38ad8e570cb93ff754b7005
parentb8b6d19d27ba5847ef9d93cd1d13f724a850b020 (diff)
get_dropboxes can now look optionally look for a specific group
-rwxr-xr-xlib/RHRD/rddb.pm14
-rwxr-xr-xtest/get-dropboxes73
2 files changed, 84 insertions, 3 deletions
diff --git a/lib/RHRD/rddb.pm b/lib/RHRD/rddb.pm
index a052080..a337557 100755
--- a/lib/RHRD/rddb.pm
+++ b/lib/RHRD/rddb.pm
@@ -567,15 +567,23 @@ sub get_showtitle_and_log
sub get_dropboxes
{
- my ($dbh, $username) = @_;
+ my ($dbh, $username, $groupname) = @_;
my $sql = qq{select USER_PERMS.GROUP_NAME,DROPBOXES.TO_CART,DROPBOXES.NORMALIZATION_LEVEL,DROPBOXES.AUTOTRIM_LEVEL,DROPBOXES.SET_USER_DEFINED,GROUPS.DEFAULT_LOW_CART,GROUPS.DEFAULT_HIGH_CART,GROUPS.DESCRIPTION from USER_PERMS, DROPBOXES, GROUPS where USER_PERMS.USER_NAME=? and DROPBOXES.GROUP_NAME=USER_PERMS.GROUP_NAME and DROPBOXES.GROUP_NAME=GROUPS.NAME and DROPBOXES.STATION_NAME=?;};
+ if(defined $groupname) {
+ $sql = qq{select USER_PERMS.GROUP_NAME,DROPBOXES.TO_CART,DROPBOXES.NORMALIZATION_LEVEL,DROPBOXES.AUTOTRIM_LEVEL,DROPBOXES.SET_USER_DEFINED,GROUPS.DEFAULT_LOW_CART,GROUPS.DEFAULT_HIGH_CART,GROUPS.DESCRIPTION from USER_PERMS, DROPBOXES, GROUPS where USER_PERMS.USER_NAME=? and DROPBOXES.GROUP_NAME=USER_PERMS.GROUP_NAME and DROPBOXES.GROUP_NAME=GROUPS.NAME and DROPBOXES.STATION_NAME=? and GROUPS.NAME=?;};
+ }
my $sth = $dbh->prepare($sql)
or return (undef, 'ERROR', "Database Error: " . $dbh->errstr);
- $sth->execute($username, DROPBOX_PSEUDO_STATION_NAME)
- or return (undef, 'ERROR', "Database Error: " . $sth->errstr);
+ if(defined $groupname) {
+ $sth->execute($username, DROPBOX_PSEUDO_STATION_NAME, $groupname)
+ or return (undef, 'ERROR', "Database Error: " . $sth->errstr);
+ } else {
+ $sth->execute($username, DROPBOX_PSEUDO_STATION_NAME)
+ or return (undef, 'ERROR', "Database Error: " . $sth->errstr);
+ }
my @allowed_dbs;
while(my ($group, $to_cart, $normlevel, $trimlevel, $params, $lowcart, $highcart, $groupdesc) = $sth->fetchrow_array()) {
diff --git a/test/get-dropboxes b/test/get-dropboxes
new file mode 100755
index 0000000..6282a92
--- /dev/null
+++ b/test/get-dropboxes
@@ -0,0 +1,73 @@
+#!/usr/bin/perl -w
+#
+# rhrdlibs
+#
+# Copyright (C) 2015 Christian Pointner <equinox@helsinki.at>
+#
+# This file is part of rhrdlibs.
+#
+# rhrdlibs is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# any later version.
+#
+# rhrdlibs is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with rhrdlibs. If not, see <http://www.gnu.org/licenses/>.
+#
+
+use strict;
+use lib "../lib/";
+
+use POSIX;
+use RHRD::rddb;
+
+
+my $username = $ARGV[0];
+my $groupname = $ARGV[1];
+
+my @dropboxes = ();
+my ($dbh, $status, $errorstring) = RHRD::rddb::opendb();
+if(defined $dbh) {
+ @dropboxes = RHRD::rddb::get_dropboxes($dbh, $username, $groupname);
+ if(!defined $dropboxes[0] && defined $dropboxes[1]) {
+ print STDERR "$dropboxes[1]: $dropboxes[2]";
+ RHRD::rddb::closedb($dbh);
+ exit 1;
+ }
+ RHRD::rddb::closedb($dbh);
+} else {
+ print STDERR "$errorstring\n";
+ exit 1;
+}
+
+
+print "Dropboxes:\n";
+for my $href (@dropboxes) {
+ print " * group:" . $href->{'GROUP'} . "\n";
+ print " group-description:" . $href->{'GROUPDESC'} . "\n";
+ print " group-low-cart:" . $href->{'GROUPLOWCART'} . "\n";
+ print " group-high-cart:" . $href->{'GROUPHIGHCART'} . "\n";
+ print " normalization-level:" . floor($href->{'NORMLEVEL'}/100) . "\n";
+ print " autotrim-level:" . floor($href->{'TRIMLEVEL'}/100) . "\n";
+ print " parameters:" . $href->{'PARAM'} . "\n";
+ print " type:" . $href->{'TYPE'} . "\n";
+ if($href->{'TYPE'} eq "show") {
+ print " show-id:" . $href->{'SHOWID'} . "\n";
+ print " show-title:" . $href->{'SHOWTITLE'} . "\n";
+ print " show-log:" . $href->{'SHOWLOG'} . "\n";
+ print " show-rhythm:" . $href->{'SHOWRHYTHM'} . "\n";
+ print " show-dayofweek:" . $href->{'SHOWDOW'} . "\n";
+ print " show-starttime:" . $href->{'SHOWSTARTTIME'} . "\n";
+ print " show-length:" . $href->{'SHOWLEN'} . "\n";
+ } elsif($href->{'TYPE'} eq "jingle") {
+ print " jingle-title:" . $href->{'JINGLETITLE'} . "\n";
+ } elsif($href->{'TYPE'} eq "musicpool") {
+ print " musicpool-title:" . $href->{'MUSICPOOLTITLE'} . "\n";
+ }
+ print "\n";
+}