summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@helsinki.at>2011-07-19 14:41:15 (GMT)
committerChristian Pointner <equinox@helsinki.at>2011-07-19 14:41:15 (GMT)
commita7ab7560194ceb5789fa9ada05831ee832e4f95b (patch)
tree940ba75f81d7b132a892de6829b2edaa59c15e82
parent5b7e717eb91aba37b30c12b3e47ef68592166fbe (diff)
added rhimport for autoimporting democracy now!
-rw-r--r--debian/control2
-rwxr-xr-xrhimport-dn104
-rw-r--r--rhimport.pm9
3 files changed, 112 insertions, 3 deletions
diff --git a/debian/control b/debian/control
index 3033170..1ad22d3 100644
--- a/debian/control
+++ b/debian/control
@@ -8,7 +8,7 @@ Homepage: http://www.helsinki.at/
Package: rhimport
Architecture: all
-Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, perl, libdbd-mysql-perl, libgtk2-gladexml-perl
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, perl, libdbd-mysql-perl, libgtk2-gladexml-perl, libdate-calc-perl
Description: Radio Helsinki Import Tool
rhimport is a small tool which can be used to import media files
into the playout system namley Rivendell.
diff --git a/rhimport-dn b/rhimport-dn
new file mode 100755
index 0000000..abcda30
--- /dev/null
+++ b/rhimport-dn
@@ -0,0 +1,104 @@
+#!/usr/bin/perl -w
+#
+#
+# rhimport
+#
+# Copyright (C) 2009 Christian Pointner <equinox@helsinki.at>
+#
+# This file is part of rhimport.
+#
+# rhimport is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# any later version.
+#
+# rhimport 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with rhimport. If not, see <http://www.gnu.org/licenses/>.
+#
+
+use strict;
+use DBI;
+use Date::Calc;
+
+use lib '/usr/local/share/rhimport/';
+use rhimport;
+
+my $DBHOST = "airplay";
+my $DBUSER = "rivendell";
+my $DBPW = "lldriven";
+my $DB = "rivendell";
+
+
+my $luser = `/usr/bin/id -un`;
+$luser =~ s/\n//;
+($luser eq "equinox") or die "You are not allowed to use this script\n";
+my $user = "autoimport";
+my $group = "democracyn";
+
+my $dbh = DBI->connect("DBI:mysql:$DB:$DBHOST","$DBUSER","$DBPW") or die "Database Error: $DBI::errstr";
+my @allowed_dbs = rhimport::get_dropboxes($dbh, $user, $group);
+
+
+my $dropbox = "";
+my $to_cart = 0;
+
+my @today = Date::Calc::Today();
+my @yesterday = Date::Calc::Add_Delta_Days($today[0], $today[1], $today[2], -1);
+
+print "today: " . Date::Calc::Date_to_Text(@today) . "\n";
+print "yesterday: " . Date::Calc::Date_to_Text(@yesterday) . "\n";
+
+
+for my $href ( @allowed_dbs ) {
+ my $dow = Date::Calc::Day_of_Week(@today);
+ if ($dow == int(substr($href->{'NAME'},0,2))) {
+ $dropbox = $href->{'PATH'};
+ $to_cart = $href->{'TO_CART'};
+ }
+}
+
+if($dropbox eq "") {
+ print "no dropbox for today\n";
+ $dbh->disconnect();
+ exit 0;
+}
+
+my $file = sprintf("dn%04d-%02d%02d-?.mp3", $yesterday[0], $yesterday[1], $yesterday[2]);
+print "looking for file like: $file\n";
+
+
+
+my $error_cb = sub {
+ my ($text) = @_;
+
+ print "\n$text .. cancel operation [Y/n]? ";
+ my $x = scalar(<STDIN>);
+ $x =~ /^n/i;
+};
+
+#rhimport::check_key_file() or die "Import Key not found, use rhimport-create-id to create one\n";
+
+#(-e "$file") or die "file '$file' not found\n";
+print "will import $file to dropbox $dropbox (cart=$to_cart)\n\n";
+
+exit 0;
+
+my $ret;
+my $log;
+$log = rhimport::clear_carts($dbh, $group, $to_cart);
+my $import_log;
+($ret, $import_log) = rhimport::import_single($file, $dropbox, $user, 0, $error_cb);
+$log .= $import_log;
+
+$dbh->disconnect();
+
+if(!$ret) {
+ exit 1;
+}
+
+exit 0;
diff --git a/rhimport.pm b/rhimport.pm
index 2c3130b..d44c34b 100644
--- a/rhimport.pm
+++ b/rhimport.pm
@@ -45,9 +45,14 @@ sub check_key_file
sub get_dropboxes
{
- my ($dbh, $user) = @_;
+ my ($dbh, $user, $group) = @_;
- my $sql = qq{select USER_PERMS.GROUP_NAME,DROPBOXES.PATH,DROPBOXES.TO_CART,GROUPS.DESCRIPTION from USER_PERMS, DROPBOXES, GROUPS where USER_PERMS.USER_NAME='$user' and DROPBOXES.GROUP_NAME=USER_PERMS.GROUP_NAME and DROPBOXES.GROUP_NAME=GROUPS.NAME;};
+ my $sql = "";
+ if($group) {
+ $sql = qq{select USER_PERMS.GROUP_NAME,DROPBOXES.PATH,DROPBOXES.TO_CART,GROUPS.DESCRIPTION from USER_PERMS, DROPBOXES, GROUPS where USER_PERMS.USER_NAME='$user' and DROPBOXES.GROUP_NAME=USER_PERMS.GROUP_NAME and DROPBOXES.GROUP_NAME=GROUPS.NAME and DROPBOXES.GROUP_NAME='$group';};
+ } else {
+ $sql = qq{select USER_PERMS.GROUP_NAME,DROPBOXES.PATH,DROPBOXES.TO_CART,GROUPS.DESCRIPTION from USER_PERMS, DROPBOXES, GROUPS where USER_PERMS.USER_NAME='$user' and DROPBOXES.GROUP_NAME=USER_PERMS.GROUP_NAME and DROPBOXES.GROUP_NAME=GROUPS.NAME;};
+ }
my $sth = $dbh->prepare($sql);
$sth->execute();
my @allowed_dbs;