#!/usr/bin/perl # # rhwebimport # # Copyright (C) 2014-2015 Christian Pointner <equinox@helsinki.at> # # This file is part of rhwebimport. # # rhwebimport 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. # # rhwebimport 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 rhwebimport. If not, see <http://www.gnu.org/licenses/>. # use strict; use CGI; use File::Basename; use lib dirname( __FILE__ ) . '/../lib'; use rddb; my $status = 'ERROR'; my $errorstring = 'unknown'; my $responsecode = 500; my @dropboxes = (); my $q = CGI->new; my $username = $q->param('LOGIN_NAME'); my $token = $q->param('PASSWORD'); my $dbh; ($dbh, $status, $errorstring) = rddb::opendb(); if(defined $dbh) { my $result; ($result, $status, $errorstring) = rddb::check_token($dbh, $username, $token); if($result == 1) { $responsecode = 200; @dropboxes = rddb::get_dropboxes($dbh, $username); unless (defined $dropboxes[0]) { $responsecode = 500; $status = $dropboxes[1]; $errorstring = $dropboxes[2]; } } elsif($result == 0) { $responsecode = 403; } else { $responsecode = 500; } rddb::closedb($dbh); } print "Content-type: application/xml; charset=UTF-8\n\n"; if($responsecode != 200) { print "<RDWebResult>\n"; print " <ResponseCode>" . $responsecode . "</ResponseCode>\n"; print " <ErrorString>" . $errorstring . "</ErrorString>\n"; print "</RDWebResult>\n"; } else { print "<dropboxList>\n"; for my $href (@dropboxes) { print " <dropbox>\n"; print " <group>" . $href->{'GROUP'} . "</group>\n"; print " <group-description>" . $href->{'GROUPDESC'} . "</group-description>\n"; print " <group-low-cart>" . $href->{'GROUPLOWCART'} . "</group-low-cart>\n"; print " <group-high-cart>" . $href->{'GROUPHIGHCART'} . "</group-high-cart>\n"; print " <normalization-level>" . $href->{'NORMLEVEL'} . "</normalization-level>\n"; print " <autotrim-level>" . $href->{'TRIMLEVEL'} . "</autotrim-level>\n"; print " <parameters>" . $href->{'PARAM'} . "</parameters>\n"; print " <type>" . $href->{'TYPE'} . "</type>\n"; if($href->{'TYPE'} eq "show") { print " <show-id>" . $href->{'SHOWID'} . "</show-id>\n"; print " <show-title>" . $href->{'SHOWTITLE'} . "</show-title>\n"; print " <show-log>" . $href->{'SHOWLOG'} . "</show-log>\n"; print " <show-rhythm>" . $href->{'SHOWRHYTHM'} . "</show-rhythm>\n"; print " <show-dayofweek>" . $href->{'SHOWDOW'} . "</show-dayofweek>\n"; print " <show-starttime>" . $href->{'SHOWSTARTTIME'} . "</show-starttime>\n"; print " <show-length>" . $href->{'SHOWLEN'} . "</show-length>\n"; } elsif($href->{'TYPE'} eq "jingle") { print " <jingle-title>" . $href->{'JINGLETITLE'} . "</jingle-title>\n"; } elsif($href->{'TYPE'} eq "musicpool") { print " <musicpool-title>" . $href->{'MUSICPOOLTITLE'} . "</musicpool-title>\n"; } print " </dropbox>\n"; } print "</dropboxList>\n"; }