From cf04d28872f289dd08a97dc17a882f01979e8d6e Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sun, 21 Feb 2010 02:48:37 +0000 Subject: file name refactoring git-svn-id: https://svn.helsinki.at/rhimport/trunk@12 7c65635b-ec39-4f67-a626-873dbafdd612 diff --git a/rhimport b/rhimport new file mode 100755 index 0000000..6e1a9d3 --- /dev/null +++ b/rhimport @@ -0,0 +1,164 @@ +#!/usr/bin/perl -w +# +# +# rhimport +# +# Copyright (C) 2009 Christian Pointner +# +# 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 . +# + +use strict; + +use rhimport; + +use Getopt::Long; +use DBI; +use Gtk2; +use Gtk2::GladeXML; + +my $DBHOST = "airplay"; +my $DBUSER = "rivendellro"; +my $DBPW = "lldrivenro"; +my $DB = "rivendell"; +my $HELP = 0; +my $M3U = ""; +my $DONTCONCAT = 0; +my $DROPBOX = ""; +my $LISTALLOWED = 0; + +GetOptions ("help!" => \$HELP, + "m3u=s" => \$M3U, + "dont-concat!" => \$DONTCONCAT, + "dropbox=s" => \$DROPBOX, + "list-allowed!" => \$LISTALLOWED, + ); + +if($HELP) { + print << "EOF"; +usage: $0 --m3u --dont-concat + +options: + --m3u the playlist file to import + --dont-concat dont concat the audio files, import as seperate files + --list-allowed list allowed dropboxes and exit + +EOF + exit; +} + +my $CONCAT = 0; +$CONCAT = 1 unless $DONTCONCAT; +my $user = $ENV{'USER'}; +$user or die "Username not found in environment"; + +# my $dbh = DBI->connect( "DBI:mysql:$DB:$DBHOST","$DBUSER","$DBPW") or die "Database Error: $DBI::errstr"; +# my $sql = qq{select USER_PERMS.GROUP_NAME,DROPBOXES.PATH from USER_PERMS, DROPBOXES where USER_PERMS.USER_NAME='$user' and DROPBOXES.GROUP_NAME=USER_PERMS.GROUP_NAME;}; +# my $sth = $dbh->prepare($sql); +# $sth->execute(); +my @allowed_dbs; +push @allowed_dbs, { 'GROUP' => "groupa", 'PATH' => "/programm/dropboxA/" }; +push @allowed_dbs, { 'GROUP' => "groupb", 'PATH' => "/programm/dropboxB/" }; +push @allowed_dbs, { 'GROUP' => "groupc", 'PATH' => "/programm/dropboxC/" }; +# while(my ($group, $path) = $sth->fetchrow_array()) { +# $path =~ s/\/\*$//; +# my $perm = {}; +# $perm->{'GROUP'} = $group; +# $perm->{'PATH'} = $path; +# push @allowed_dbs, $perm; +# } +# $sth->finish(); + +if($LISTALLOWED) { + for my $href ( @allowed_dbs ) { + print "$href->{'PATH'}\n"; + } +# $dbh->disconnect(); + exit 0; +} + +########################################### +## GUI mode + +my $guixml; + +if(!$M3U && !$DROPBOX) { + Gtk2->init; + + $guixml = Gtk2::GladeXML->new('rhimport.glade'); + $guixml or die "can't load glade xml file"; + require gui_callbacks; + $guixml->signal_autoconnect_from_package('gui_callbacks'); + + my $model = Gtk2::ListStore->new('Glib::String'); + for my $href ( @allowed_dbs ) { + $model->set ($model->append, 0, $href->{'PATH'}); + } + my $co_dropbox = $guixml->get_widget('co_dropbox'); + $co_dropbox->set_model($model); + my $renderer = Gtk2::CellRendererText->new; + $co_dropbox->pack_start($renderer, 1); + $co_dropbox->add_attribute($renderer, text => 0); + $co_dropbox->set_active(0); + + my $filter = Gtk2::FileFilter->new; + $filter->add_pattern("*.m3u"); + my $filechooser = $guixml->get_widget('filechooser'); + $filechooser->set_filter($filter); + + my $appwin = $guixml->get_widget('appwin'); + $appwin or die "can't find Main Window"; + $appwin->show; + + Gtk2->main; +# $dbh->disconnect(); + exit 0; +} + +sub start_import_gui() +{ + if(!$guixml) { + print STDERR "no GUI definition found!\n"; + exit 0; + } + + my $co_dropbox = $guixml->get_widget('co_dropbox'); + my $dropbox = $co_dropbox->get_active_text; + + my $filechooser = $guixml->get_widget('filechooser'); + my $m3u = $filechooser->get_filename; + + my $cb_concat = $guixml->get_widget('cb_concat'); + my $concat = 1; + $concat = 0 unless $cb_concat->get_active; + + rhimport::start_import($m3u, $dropbox, $concat); +} + +########################################### +## command line mode + +(-e "$M3U") or die "file '$M3U' not found"; +if($CONCAT) { + print "Will import $M3U (concatenated), with user $user\n\n"; +} else { + print "Will import $M3U (seperate files), with user $user\n\n"; +} + +my $ret = rhimport::start_import($M3U, $DROPBOX, $CONCAT); + +# $dbh->disconnect(); +exit $ret; diff --git a/rhimport.pl b/rhimport.pl deleted file mode 100755 index f477ee5..0000000 --- a/rhimport.pl +++ /dev/null @@ -1,164 +0,0 @@ -#!/usr/bin/perl -w -# -# -# rhimport -# -# Copyright (C) 2009 Christian Pointner -# -# 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 . -# - -use strict; - -use rhimport_tools; - -use Getopt::Long; -use DBI; -use Gtk2; -use Gtk2::GladeXML; - -my $DBHOST = "airplay"; -my $DBUSER = "rivendellro"; -my $DBPW = "lldrivenro"; -my $DB = "rivendell"; -my $HELP = 0; -my $M3U = ""; -my $DONTCONCAT = 0; -my $DROPBOX = ""; -my $LISTALLOWED = 0; - -GetOptions ("help!" => \$HELP, - "m3u=s" => \$M3U, - "dont-concat!" => \$DONTCONCAT, - "dropbox=s" => \$DROPBOX, - "list-allowed!" => \$LISTALLOWED, - ); - -if($HELP) { - print << "EOF"; -usage: $0 --m3u --dont-concat - -options: - --m3u the playlist file to import - --dont-concat dont concat the audio files, import as seperate files - --list-allowed list allowed dropboxes and exit - -EOF - exit; -} - -my $CONCAT = 0; -$CONCAT = 1 unless $DONTCONCAT; -my $user = $ENV{'USER'}; -$user or die "Username not found in environment"; - -# my $dbh = DBI->connect( "DBI:mysql:$DB:$DBHOST","$DBUSER","$DBPW") or die "Database Error: $DBI::errstr"; -# my $sql = qq{select USER_PERMS.GROUP_NAME,DROPBOXES.PATH from USER_PERMS, DROPBOXES where USER_PERMS.USER_NAME='$user' and DROPBOXES.GROUP_NAME=USER_PERMS.GROUP_NAME;}; -# my $sth = $dbh->prepare($sql); -# $sth->execute(); -my @allowed_dbs; -push @allowed_dbs, { 'GROUP' => "groupa", 'PATH' => "/programm/dropboxA/" }; -push @allowed_dbs, { 'GROUP' => "groupb", 'PATH' => "/programm/dropboxB/" }; -push @allowed_dbs, { 'GROUP' => "groupc", 'PATH' => "/programm/dropboxC/" }; -# while(my ($group, $path) = $sth->fetchrow_array()) { -# $path =~ s/\/\*$//; -# my $perm = {}; -# $perm->{'GROUP'} = $group; -# $perm->{'PATH'} = $path; -# push @allowed_dbs, $perm; -# } -# $sth->finish(); - -if($LISTALLOWED) { - for my $href ( @allowed_dbs ) { - print "$href->{'PATH'}\n"; - } -# $dbh->disconnect(); - exit 0; -} - -########################################### -## GUI mode - -my $guixml; - -if(!$M3U && !$DROPBOX) { - Gtk2->init; - - $guixml = Gtk2::GladeXML->new('rhimport.glade'); - $guixml or die "can't load glade xml file"; - require gui_callbacks; - $guixml->signal_autoconnect_from_package('gui_callbacks'); - - my $model = Gtk2::ListStore->new('Glib::String'); - for my $href ( @allowed_dbs ) { - $model->set ($model->append, 0, $href->{'PATH'}); - } - my $co_dropbox = $guixml->get_widget('co_dropbox'); - $co_dropbox->set_model($model); - my $renderer = Gtk2::CellRendererText->new; - $co_dropbox->pack_start($renderer, 1); - $co_dropbox->add_attribute($renderer, text => 0); - $co_dropbox->set_active(0); - - my $filter = Gtk2::FileFilter->new; - $filter->add_pattern("*.m3u"); - my $filechooser = $guixml->get_widget('filechooser'); - $filechooser->set_filter($filter); - - my $appwin = $guixml->get_widget('appwin'); - $appwin or die "can't find Main Window"; - $appwin->show; - - Gtk2->main; -# $dbh->disconnect(); - exit 0; -} - -sub start_import_gui() -{ - if(!$guixml) { - print STDERR "no GUI definition found!\n"; - exit 0; - } - - my $co_dropbox = $guixml->get_widget('co_dropbox'); - my $dropbox = $co_dropbox->get_active_text; - - my $filechooser = $guixml->get_widget('filechooser'); - my $m3u = $filechooser->get_filename; - - my $cb_concat = $guixml->get_widget('cb_concat'); - my $concat = 1; - $concat = 0 unless $cb_concat->get_active; - - rhimport::start_import($m3u, $dropbox, $concat); -} - -########################################### -## command line mode - -(-e "$M3U") or die "file '$M3U' not found"; -if($CONCAT) { - print "Will import $M3U (concatenated), with user $user\n\n"; -} else { - print "Will import $M3U (seperate files), with user $user\n\n"; -} - -my $ret = rhimport::start_import($M3U, $DROPBOX, $CONCAT); - -# $dbh->disconnect(); -exit $ret; diff --git a/rhimport.pm b/rhimport.pm new file mode 100644 index 0000000..eda2d79 --- /dev/null +++ b/rhimport.pm @@ -0,0 +1,37 @@ +#!/usr/bin/perl -w +# +# +# rhdropbox +# +# Copyright (C) 2009 Christian Pointner +# +# This file is part of rhdropbox. +# +# rhdropbox 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. +# +# rhdropbox 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 rhdropbox. If not, see . +# + +use strict; + +package rhimport; + +sub start_import +{ + my ($m3u, $dropbox, $concat) = @_; + + print "Starting import from $m3u($concat) to $dropbox\n"; + + return 0; +} + +1; diff --git a/rhimport_tools.pm b/rhimport_tools.pm deleted file mode 100644 index eda2d79..0000000 --- a/rhimport_tools.pm +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/perl -w -# -# -# rhdropbox -# -# Copyright (C) 2009 Christian Pointner -# -# This file is part of rhdropbox. -# -# rhdropbox 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. -# -# rhdropbox 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 rhdropbox. If not, see . -# - -use strict; - -package rhimport; - -sub start_import -{ - my ($m3u, $dropbox, $concat) = @_; - - print "Starting import from $m3u($concat) to $dropbox\n"; - - return 0; -} - -1; -- cgit v0.10.2