diff options
author | Cecil Hugh Watson <knoppmyth@gmail.com> | 2009-07-19 06:42:13 (GMT) |
---|---|---|
committer | Cecil Hugh Watson <knoppmyth@gmail.com> | 2009-07-19 06:42:13 (GMT) |
commit | 78d204762df37d87ac1b6139bb04d90ac863a9c1 (patch) | |
tree | a92562639fa188dd5fd08f6618628e17716ee5c1 /abs | |
parent | 2912f0964498d3d2e80e875a2fd1c2016b9e9253 (diff) | |
download | linhes_pkgbuild-78d204762df37d87ac1b6139bb04d90ac863a9c1.zip linhes_pkgbuild-78d204762df37d87ac1b6139bb04d90ac863a9c1.tar.gz linhes_pkgbuild-78d204762df37d87ac1b6139bb04d90ac863a9c1.tar.bz2 |
Myth2Ipod: More LinHES friendly.
Diffstat (limited to 'abs')
-rwxr-xr-x | abs/extra-testing/myth2ipod/PKGBUILD | 9 | ||||
-rwxr-xr-x | abs/extra-testing/myth2ipod/myth2ipod (renamed from abs/extra-testing/myth2ipod/myth2ipod.txt) | 8 | ||||
-rwxr-xr-x | abs/extra-testing/myth2ipod/myth2ipod.install | 14 | ||||
-rwxr-xr-x | abs/extra-testing/myth2ipod/myth2ipod.patch | 35 | ||||
-rwxr-xr-x | abs/extra-testing/myth2ipod/myth2ipod.txt.modified | 310 |
5 files changed, 15 insertions, 361 deletions
diff --git a/abs/extra-testing/myth2ipod/PKGBUILD b/abs/extra-testing/myth2ipod/PKGBUILD index ea55613..4a4f3bf 100755 --- a/abs/extra-testing/myth2ipod/PKGBUILD +++ b/abs/extra-testing/myth2ipod/PKGBUILD @@ -1,20 +1,19 @@ pkgname=myth2ipod pkgver=0.2 -pkgrel=15 +pkgrel=16 arch=("i686") pkgdesc="A multimedia framework based on the MPEG-4 Systems standard" url="myth2ipod.com" depends=('gpac' 'nuvexport' ) install="myth2ipod.install" -source=( http://myth2ipod.com/myth2ipod.txt http://myth2ipod.com/iPod.pm myth2ipod.patch myth2ipod-userjob.sh) +source=( myth2ipod iPod.pm myth2ipod-userjob.sh) build() { cd $startdir/src - patch -p0 < myth2ipod.patch - install -D -m 755 myth2ipod.txt $startdir/pkg/usr/bin/myth2ipod + install -D -m 755 myth2ipod $startdir/pkg/usr/bin/myth2ipod install -D -m 755 myth2ipod-userjob.sh /$startdir/pkg/usr/bin/myth2ipod-userjob.sh - install -D -m755 iPod.pm $startdir/pkg/usr/local/share/nuvexport/export/ffmpeg/iPod.pm + install -D -m755 iPod.pm $startdir/pkg/usr/share/nuvexport/export/ffmpeg/iPod.pm } diff --git a/abs/extra-testing/myth2ipod/myth2ipod.txt b/abs/extra-testing/myth2ipod/myth2ipod index d3d0dab..73ca886 100755 --- a/abs/extra-testing/myth2ipod/myth2ipod.txt +++ b/abs/extra-testing/myth2ipod/myth2ipod @@ -15,7 +15,7 @@ my $feedfile = "/myth/ipodfeed/feed.php"; my $feedpath = "/myth/ipodfeed/"; my $wwwloc = "/var/www/"; - my $feedurl = "http://hostname/ipodfeed/"; + my $feedurl = "http://REPLACEME/ipodfeed/"; my $nuvoptions ="--mode=iPod --nice=19 --cutlist --nodenoise --nodeinterlace --nomultipass"; # Some variables @@ -142,12 +142,12 @@ sub EncodeIt { } # Use nuvexport to do the work - $cmd = "/usr/local/bin/nuvexport --chanid=$chanid --start=$start $nuvoptions --filename=$chanid\_$start.temp --path=$feedpath"; + $cmd = "/usr/bin/nuvexport --chanid=$chanid --start=$start $nuvoptions --filename=$chanid\_$start.temp --path=$feedpath"; print $cmd."\n"; if(system($cmd)) { print "Nuvexport encoding seems to have failed\n"; } # Now clean up the output so iPods with firmware 1.1 and above can use it - $cmd = "/usr/local/bin/MP4Box -add $feedpath$chanid\_$start.temp.mp4 $feedpath$chanid\_$start.$portable.mp4"; + $cmd = "/usr/bin/MP4Box -add $feedpath$chanid\_$start.temp.mp4 $feedpath$chanid\_$start.$portable.mp4"; print $cmd."\n"; if(system($cmd)) { print "MP4Box cleanup seems to have failed\n"; } return 0; @@ -244,7 +244,7 @@ sub PrepSQLRead{ # Read the mysql.txt file in use by MythTV. # could be in a couple places, so try the usual suspects my $found = 0; - my @mysql = ('/usr/local/share/mythtv/mysql.txt', + my @mysql = ('/usr/share/mythtv/mysql.txt', '/usr/share/mythtv/mysql.txt', '/etc/mythtv/mysql.txt', '/usr/local/etc/mythtv/mysql.txt', diff --git a/abs/extra-testing/myth2ipod/myth2ipod.install b/abs/extra-testing/myth2ipod/myth2ipod.install index a1c1ce7..43e3e78 100755 --- a/abs/extra-testing/myth2ipod/myth2ipod.install +++ b/abs/extra-testing/myth2ipod/myth2ipod.install @@ -13,9 +13,9 @@ pre_remove() { post_install() { . /etc/systemconfig - mkdir /data/media/ipodfeed - chown mythtv:users /data/media/ipodfeed - ln -s /data/media/ipodfeed /data/srv/httpd/htdocs/ipodfeed + mkdir /myth/ipodfeed + chown mythtv:users /myth/ipodfeed + ln -s /myth/ipodfeed /data/srv/httpd/htdocs/ipodfeed cp /usr/bin/myth2ipod /tmp sed -e "s/REPLACEME/$hostname/g" /tmp/myth2ipod > /usr/bin/myth2ipod @@ -25,9 +25,9 @@ post_install() { post_upgrade() { - mkdir /data/media/ipodfeed - chown mythtv:users /data/media/ipodfeed - ln -s /data/media/ipodfeed /data/srv/httpd/htdocs/ipodfeed + mkdir /myth/ipodfeed + chown mythtv:users /myth/ipodfeed + ln -s /myth/ipodfeed /data/srv/httpd/htdocs/ipodfeed /usr/bin/myth2ipod -rebuild } @@ -38,4 +38,4 @@ post_remove() { op=$1 shift -$op $*
\ No newline at end of file +$op $* diff --git a/abs/extra-testing/myth2ipod/myth2ipod.patch b/abs/extra-testing/myth2ipod/myth2ipod.patch deleted file mode 100755 index 95785ab..0000000 --- a/abs/extra-testing/myth2ipod/myth2ipod.patch +++ /dev/null @@ -1,35 +0,0 @@ ---- myth2ipod.txt 2007-06-01 10:00:02.000000000 -0500 -+++ myth2ipod.txt.modified 2007-06-01 11:24:26.000000000 -0500 -@@ -12,10 +12,10 @@ - - # User variables - my $portable = "ipod"; -- my $feedfile = "/myth/ipodfeed/feed.php"; -- my $feedpath = "/myth/ipodfeed/"; -- my $wwwloc = "/var/www/"; -- my $feedurl = "http://hostname/ipodfeed/"; -+ my $feedfile = "/data/media/ipodfeed/feed.php"; -+ my $feedpath = "/data/media/ipodfeed/"; -+ my $wwwloc = "/data/srv/httpd/htdocs/"; -+ my $feedurl = "http://REPLACEME/ipodfeed/"; - my $nuvoptions ="--mode=iPod --nice=19 --cutlist --nodenoise --nodeinterlace --nomultipass"; - - # Some variables -@@ -136,7 +136,7 @@ - # Create cutlist from commercial flagging if -cut was passed to the script - if ($cut == 1){ - printf("Generating cutlist\n"); -- $cmd = "/usr/bin/mythcommflag --chanid $chanid --starttime $start --gencutlist"; -+ $cmd = "/usr/local/bin/mythcommflag --chanid $chanid --starttime $start --gencutlist"; - print $cmd."\n"; - if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; } - } -@@ -147,7 +147,7 @@ - if(system($cmd)) { print "Nuvexport encoding seems to have failed\n"; } - - # Now clean up the output so iPods with firmware 1.1 and above can use it -- $cmd = "/usr/local/bin/MP4Box -add $feedpath$chanid\_$start.temp.mp4 $feedpath$chanid\_$start.$portable.mp4"; -+ $cmd = "/usr/bin/MP4Box -add $feedpath$chanid\_$start.temp.mp4 $feedpath$chanid\_$start.$portable.mp4"; - print $cmd."\n"; - if(system($cmd)) { print "MP4Box cleanup seems to have failed\n"; } - return 0; diff --git a/abs/extra-testing/myth2ipod/myth2ipod.txt.modified b/abs/extra-testing/myth2ipod/myth2ipod.txt.modified deleted file mode 100755 index ab41a2f..0000000 --- a/abs/extra-testing/myth2ipod/myth2ipod.txt.modified +++ /dev/null @@ -1,310 +0,0 @@ -#!/usr/bin/perl -w -# VERSION: 1.0b2 - myth2ipod -# Get the latest version, and change log at myth2ipod.com -# Author: Chris aka Wififun - email: wififun@myth2ipod.com -# Contributions and testing by Paul Egli -# modified to use nuvexport by starv at juniks dot org - -# Includes - use DBI; - use Getopt::Long; - use File::Path; - -# User variables - my $portable = "ipod"; - my $feedfile = "/data/media/feed.php"; - my $feedpath = "/data/media/"; - my $wwwloc = "/data/srv/httpd/htdocs/"; - my $feedurl = "http://REPLACEME/ipodfeed/"; - my $nuvoptions ="--mode=iPod --nice=19 --cutlist --nodenoise --nodeinterlace --nomultipass"; - -# Some variables - our ($dest, $format, $usage); - our ($db_host, $db_user, $db_name, $db_pass, $video_dir); - our ($hostname, $db_handle, $sql, $statement, $row_ref); - our ($chanid, $start, $nuvfile, @nuvarray); - my $rebuild = '0'; - my $encode = '0'; - my $debug = '0'; - my $setup = '0'; - my $cut = '0'; - my( $rightnow ) = `date`; - -GetOptions ("rebuild" => \$rebuild, - "encode" => \$encode, - "debug" => \$debug, - "setup" => \$setup, - "cut" => \$cut); - -if ($setup == 1){ - system("clear"); - print "Setup will do everything needed to run this script.\n"; - print "This has only been tested on KnoppMyth R5A22.\n"; - print "make sure you have edited the variables for your conguration.\n"; - my $cksetup = &promptUser("\nAre you sure you want to procceed?","n"); - if ($cksetup =~ "y") { - DoSetup(); - exit; - } - print "Setup exited. Nothing done.\n"; - exit; -} -elsif ($rebuild == 1){ - GenerateRSSFeed(); - print "Rebuilding of RSS feed is complete.\n"; - exit; -} -else { - Encode4Portable(); - print "$title is ready for your $portable\n"; - - # Check to see if the feed file exists; if not, create it. - if (! -e $feedfile) { - print "No feed file found. I will make one for you.\n"; - GenerateRSSFeed(); - print "All done.\n"; - } -} - -sub Encode4Portable{ - if ($#ARGV != 1) { - print "Encoding requires options.\nusage: myth2ipod <options> DIRECTORY FILE\n"; - exit; - } - - # Get the show information - $directory = $ARGV[0]; - $file = $ARGV[1]; - @file = split(/_/, $file); - $chanid = $file[0]; - $start = substr $file[1],0,14; - if($debug == 1){ print "$chanid\n$start\n"}; - if (! -e $directory."/".$file){ - print "Opps, the file ".$directory.$file." does not exist.\n"; - exit; - } - - # Connect to the database - PrepSQLRead(); - $db_handle = DBI->connect("dbi:mysql:database=$db_name:host=$db_host", $db_user, $db_pass) - or die "Cannot connect to database: $!\n\n"; - $sql = "SELECT title, subtitle, description, category, starttime FROM recorded WHERE chanid = $chanid AND DATE_FORMAT(starttime,'%Y%m%d%H%i%s') = $start"; - - $statement = $db_handle->prepare($sql) - or die "Couldn't prepare query '$sql': $DBI::errstr\n"; - - $statement->execute() - or die "Couldn't execute query '$sql': $DBI::errstr\n"; - $row_ref = $statement->fetchrow_hashref(); - if($debug == 1){ print "$row_ref->{starttime}\n"}; - $title = $row_ref->{title}; - $subtitle = $row_ref->{subtitle}; - $recorddate = $row_ref->{starttime}; - $description = $row_ref->{description}; - $category = $row_ref->{category}; - $filename = $title."-".$subtitle."-".substr $start, 0, 8; - $filename =~ s/ /_/g; - $filename =~ s/&/+/g; - $filename =~ s/\047//g; - $filename =~ s/[^+0-9a-zA-Z_-]+/_/g; - $filename =~ s/_$//g; - - printf("Starting nuvexport...\n"); - EncodeIt(); - printf("Nuvexport completed, starting xml generation...\n"); - CreateItemXML(); - printf("XML file created for \"$filename\" : Yipeee\n"); - printf("Cleaning up temporary files\n"); - $cmd = "rm -f $feedpath$chanid\_$start.temp.mp4"; - print $cmd."\n"; - if(system($cmd)) { print "Removing nuvexport temp file failed\n"; } - - # remove the cutlist incase we added it. - if ($cut == 1){ - printf("Generating cutlist\n"); - $cmd = "/usr/bin/mythcommflag --chanid $chanid --starttime $start --clearcutlist"; - print $cmd."\n"; - if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; } - } - return 0; -} - -# -# Encode for Portable -# -sub EncodeIt { - # Create cutlist from commercial flagging if -cut was passed to the script - if ($cut == 1){ - printf("Generating cutlist\n"); - $cmd = "/usr/local/bin/mythcommflag --chanid $chanid --starttime $start --gencutlist"; - print $cmd."\n"; - if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; } - } - - # Use nuvexport to do the work - $cmd = "/usr/local/bin/nuvexport --chanid=$chanid --start=$start $nuvoptions --filename=$chanid\_$start.temp --path=$feedpath"; - print $cmd."\n"; - if(system($cmd)) { print "Nuvexport encoding seems to have failed\n"; } - - # Now clean up the output so iPods with firmware 1.1 and above can use it - $cmd = "/usr/bin/MP4Box -add $feedpath$chanid\_$start.temp.mp4 $feedpath$chanid\_$start.$portable.mp4"; - print $cmd."\n"; - if(system($cmd)) { print "MP4Box cleanup seems to have failed\n"; } - return 0; -} - -# -# Create XML with <ITEM> tag for this video file -# -sub CreateItemXML { - open(ITEM, ">$feedpath$chanid\_$start.$portable.xml"); - print ITEM "<item>\n"; - print ITEM "<title>".&encodeForXML($title." - ".$subtitle)."</title>\n"; - print ITEM "<itunes:author>MythTV</itunes:author>\n"; - print ITEM "<author>MythTV</author>\n"; - print ITEM "<itunes:category text=\"TV Shows\"></itunes:category>\n"; - print ITEM "<comments>".&encodeForXML($file)."</comments>\n"; - print ITEM "<description>".&encodeForXML($description)."</description>\n"; - print ITEM "<pubDate>".$recorddate."</pubDate>\n"; - print ITEM "<enclosure url=\"".&encodeForXML("$feedurl$chanid\_$start.$portable.mp4")."\" type=\"video/quicktime\" />\n"; - print ITEM "<itunes:duration></itunes:duration>\n"; - print ITEM "<itunes:keywords>".&encodeForXML($title." - ".$subtitle." - ".$category)."</itunes:keywords>\n"; - print ITEM "<category>".&encodeForXML($category)."</category>\n"; - print ITEM "</item>\n"; - print "\"$filename\" has been added to the feed.\n"; - close(ITEM); - return 0; -} - -# -# Generate the RSS feed by combining the ITEM XML Files -# -sub GenerateRSSFeed { - - open(RSS, ">$feedfile"); - print RSS "<?php\n"; - print RSS "header(\"Content-Type: text/xml\");\n"; - print RSS "echo \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\"; ?>\n"; - print RSS "<rss xmlns:itunes=\"http://www.itunes.com/DTDs/Podcast-1.0.dtd\" version=\"2.0\">\n"; - print RSS "<channel>\n"; - print RSS "<title>MythTV - <? if (\$_GET['title'] == \"\") { \$title = \"*\"; echo \"Recorded Programs\"; }\n"; - print RSS "else { \$title = \$_GET['title']; echo str_replace(\"_\",\" \",\$_GET['title']); } ?> </title>\n"; - print RSS "<itunes:author>MythTV - myth2ipod</itunes:author>\n"; - print RSS "<link>".&encodeForXML($feedurl)."</link>\n"; - print RSS "<itunes:subtitle>Transcoded recording for your iPod Video.</itunes:subtitle>\n"; - print RSS "<itunes:summary>Myth TV Recorded Programs for the iPod v.1</itunes:summary>\n"; - print RSS "<description>Myth TV Recorded Programs for the iPod v.1</description>\n"; - print RSS "<itunes:owner>\n"; - print RSS "<itunes:name>MythTV</itunes:name>\n"; - print RSS "<itunes:email>mythtv\@localhost</itunes:email>\n"; - print RSS "</itunes:owner>\n"; - print RSS "<itunes:explicit>No</itunes:explicit>\n"; - print RSS "<language>en-us</language>\n"; - print RSS "<copyright>Copyright 2005.</copyright>\n"; - print RSS "<webMaster>mythtv\@localhost</webMaster>\n"; - print RSS "<itunes:image href=\"http://myth2ipod.com/mythipod_200.jpg\" />\n"; - print RSS "<itunes:category text=\"TV Shows\"></itunes:category>\n"; - print RSS "<category>TV Shows</category>\n"; - print RSS "<itunes:image href=\"http://myth2ipod.com/mythipod_200.jpg\"/>"; - print RSS "<image>"; - print RSS "<url>http://myth2ipod.com/mythipod_200.jpg</url>\n"; - print RSS "<title>MythTV 2 iPod</title>\n"; - print RSS "<link>".&encodeForXML($feedurl)."</link>\n"; - print RSS "<width>200</width>\n"; - print RSS "<height>200</height>\n"; - print RSS "</image>\n"; - print RSS "<? foreach (glob(\$title\.\"*\.$portable\.xml\") as \$file) {include \$file;} ?>\n"; - print RSS "</channel>\n"; - print RSS "</rss>\n"; - close(RSS); - if($debug == 1){ print "I created a feed file, was I supposed to?\n"}; - - return 0; -} - -# substitute for XML entities -sub encodeForXML { - local $result; - $result = $_[0]; - $result =~ s/&/&/g; - $result =~ s/</</g; - $result =~ s/>/>/g; - $result; -} - - -# -# This code taken from one of the mythlink.sh scripts to get MySQL information -# -sub PrepSQLRead{ -# Get the hostname of this machine - $hostname = `hostname`; - chomp($hostname); - -# Read the mysql.txt file in use by MythTV. -# could be in a couple places, so try the usual suspects - my $found = 0; - my @mysql = ('/usr/local/share/mythtv/mysql.txt', - '/usr/share/mythtv/mysql.txt', - '/etc/mythtv/mysql.txt', - '/usr/local/etc/mythtv/mysql.txt', - "$ENV{HOME}/.mythtv/mysql.txt", - 'mysql.txt' - ); - foreach my $file (@mysql) { - next unless (-e $file); - $found = 1; - open(CONF, $file) or die "Unable to open $file: $!\n\n"; - while (my $line = <CONF>) { - # Cleanup - next if ($line =~ /^\s*#/); - $line =~ s/^str //; - chomp($line); - # Split off the var=val pairs - my ($var, $val) = split(/\=/, $line, 2); - next unless ($var && $var =~ /\w/); - if ($var eq 'DBHostName') { - $db_host = $val; - } - elsif ($var eq 'DBUserName') { - $db_user = $val; - } - elsif ($var eq 'DBName') { - $db_name = $val; - } - elsif ($var eq 'DBPassword') { - $db_pass = $val; - } - # Hostname override - elsif ($var eq 'LocalHostName') { - $hostname = $val; - } - } - close CONF; - } - die "Unable to locate mysql.txt: $!\n\n" unless ($found && $db_host); - return 0; -} - -sub promptUser { - local($promptString,$defaultValue) = @_; - if ($defaultValue) { - print $promptString, "[", $defaultValue, "]: "; - } else { - print $promptString, ": "; - } - - $| = 1; # force a flush after our print - $_ = <STDIN>; # get the input from STDIN (presumably the keyboard) - chomp; - if ("$defaultValue") { - return $_ ? $_ : $defaultValue; # return $_ if it has a value - } else { - return $_; - } -} - -sub DoSetup { - print "\nNot ready yet. How do you send the cd command from perl?\n"; - return 0; -} |