diff options
| -rw-r--r-- | abs/extra-testing/community/mre/PKGBUILD | 41 | ||||
| -rw-r--r-- | abs/extra-testing/community/mre/livescores.tgz | bin | 0 -> 39586 bytes | |||
| -rw-r--r-- | abs/extra-testing/community/mre/mre-1.1.2.tar.gz | bin | 0 -> 19685 bytes | |||
| -rwxr-xr-x | abs/extra-testing/community/mre/mre.install | 20 | ||||
| -rw-r--r-- | abs/extra-testing/community/mre/mre.lr | 9 | ||||
| -rw-r--r-- | abs/extra-testing/community/mre/patch.diff | 273 | ||||
| -rwxr-xr-x | abs/extra-testing/community/mre/run | 10 | 
7 files changed, 353 insertions, 0 deletions
| diff --git a/abs/extra-testing/community/mre/PKGBUILD b/abs/extra-testing/community/mre/PKGBUILD new file mode 100644 index 0000000..72d3bc3 --- /dev/null +++ b/abs/extra-testing/community/mre/PKGBUILD @@ -0,0 +1,41 @@ +arch=('i686') +pkgname=mre +pkgver=1.1.2 +pkgrel=2 +_kernver=2.6.28-LinHES +pkgdesc="Myth Recording Extender" +url="http://sourceforge.net/projects/mythtv-tools/" +license=('GPL-2') +depends=('PearDB' 'PearLog') +makedepends=() +source=('mre-1.1.2.tar.gz' 'patch.diff' 'livescores.tgz' 'run' 'mre.lr') +install=('mre.install') + +build() { +	cd $startdir/src/mre-1.1.2/ +	patch -p0 < ../patch.diff +	./configure +	make INST_ROOT=$startdir/pkg install +	cp $startdir/src/mre-1.1.2/conf/mre.conf $startdir/pkg/etc/mre.conf +	cp $startdir/src/mre-1.1.2/test/test_title_subtitle.php\ +       		$startdir/pkg/usr/local/bin/ +	chmod a+x $startdir/pkg/usr/local/bin/test_title_subtitle.php +	rm -r $startdir/pkg/etc/init.d +	mkdir -p  $startdir/pkg/var/log/mre +	touch $startdir/pkg/var/log/mre/mre.log +	chown mythtv:mythtv "$startdir/pkg/var/log/mre/mre.log" +	mkdir -p $startdir/pkg/etc/sv/mre +	cp $startdir/src/run $startdir/pkg/etc/sv/mre/run +	mkdir -p $startdir/pkg/etc/logrotate.d +	cp $startdir/src/mre.lr $startdir/pkg/etc/logrotate.d/mre.lr +	mkdir -p $startdir/pkg/data/srv/http/htdocs/ +	cp -r $startdir/src/scores /$startdir/pkg/data/srv/http/htdocs/ +	chown -R http:users "$startdir/pkg/data/srv/http/htdocs/scores" +} + + +md5sums=('8ab312e7597ae9413a57bd5e9a068096' +         'd2591989da512c0faa567408721b6e95' +         'fcc02a234b22ba5c2714a6b8dbaf3bef' +         'dea22d4e0f2c1dd8a2debd2f50756dda' +         '6d71ab57afd974c5130c994b94e8746f') diff --git a/abs/extra-testing/community/mre/livescores.tgz b/abs/extra-testing/community/mre/livescores.tgzBinary files differ new file mode 100644 index 0000000..d97175b --- /dev/null +++ b/abs/extra-testing/community/mre/livescores.tgz diff --git a/abs/extra-testing/community/mre/mre-1.1.2.tar.gz b/abs/extra-testing/community/mre/mre-1.1.2.tar.gzBinary files differ new file mode 100644 index 0000000..3846e4b --- /dev/null +++ b/abs/extra-testing/community/mre/mre-1.1.2.tar.gz diff --git a/abs/extra-testing/community/mre/mre.install b/abs/extra-testing/community/mre/mre.install new file mode 100755 index 0000000..4e3fb0d --- /dev/null +++ b/abs/extra-testing/community/mre/mre.install @@ -0,0 +1,20 @@ +# arg 1:  the new package version +post_install() { +	add_service.sh mre +	sed -i.pacsave '/^open_basedir/s|$|:/var/log/mre:/usr/local/lib/mre|' /etc/php/php.ini +} + +post_upgrade() { + +} + + +# arg 1:  the old package version +post_remove() { +	remove_service.sh mre +	sed -i.pacsave '/^open_basedir/s|:/var/log/mre:/usr/local/lib/mre||' /etc/php/php.ini +} + +op=$1 +shift +$op $* diff --git a/abs/extra-testing/community/mre/mre.lr b/abs/extra-testing/community/mre/mre.lr new file mode 100644 index 0000000..3b54c23 --- /dev/null +++ b/abs/extra-testing/community/mre/mre.lr @@ -0,0 +1,9 @@ +/var/log/mre/mre.log { +	copytruncate +	daily +	size 10M +	missingok +	rotate 7 +	compress +	notifempty +} diff --git a/abs/extra-testing/community/mre/patch.diff b/abs/extra-testing/community/mre/patch.diff new file mode 100644 index 0000000..66390d9 --- /dev/null +++ b/abs/extra-testing/community/mre/patch.diff @@ -0,0 +1,273 @@ +--- ../mre-1.1.2/class/MythClient.php.original	2006-04-05 17:39:13.000000000 -0500 ++++ ../mre-1.1.2/class/MythClient.php	2010-05-14 10:16:54.000000000 -0500 +@@ -112,7 +112,7 @@ +          return '0'; +       } +       foreach($out as $line) +-         if(preg_match('/^Library API version: (.*)$/', $line, $matches)) ++         if(preg_match('/^Library API *: (.*)$/', $line, $matches)) +             return $matches[1]; +       return '0'; +    } +--- ../mre-1.1.2/class/NHLEvent.php.original	2006-11-05 17:06:57.000000000 -0600 ++++ ../mre-1.1.2/class/NHLEvent.php	2010-05-21 00:44:49.000000000 -0500 +@@ -27,7 +27,7 @@ +    /** +     * URL to grab game info from +     */ +-   const url = 'http://scores.espn.go.com/nhl/scoreboard'; ++   const url = 'http://localhost/scores/nhl.php'; +  +    /** +     * Class constructor. +@@ -39,32 +39,27 @@ +       parent::__construct(); +  +       $criteria = $this->generateSearchTerms($gameInfo); ++       +       if(!sizeof($criteria)) +          trigger_error("Unable to generate valid search terms! [$gameInfo]", E_USER_WARNING); +       else +       { +          $data = file(self::url); +-         if($data !== FALSE) +-            foreach($criteria as $term) +-            { +-               $status = ''; +-               foreach($data as $line) +-                  if(preg_match('/' . preg_quote($term) . '/', $line)) +-                  { +-                     $status = $line; +-                     break; +-                  } +-               if(preg_match('/id.*st"\>(.*)\<\/td/U', $status, $match)) +-               { +-                  $this->setStatus($match[1]); +-                  if(preg_match('/^Final/', $match[1])) +-                     $this->setEventOver(TRUE); +-                  else +-                     $this->setEventOver(FALSE); +-                  $this->setValid(TRUE); +-                  break; +-               } ++         if($data) ++         { ++            foreach($data as $line) ++	    { ++               if((strpos($line,$criteria[0]))&&(strpos($line,$criteria[1]))) ++	       { ++		  if(strpos($line,'FINAL'))  ++		     $this->setEventOver(TRUE); ++		  else ++		     $this->setEventOver(FALSE); ++		  $this->setValid(TRUE); ++		  break; ++	       } +             } ++         } +       } +       if(!$this->isValid()) +          trigger_error("Unable to find NHL info for '$gameInfo'!  The NHL parser may need to be updated.", E_USER_WARNING); +--- ../mre-1.1.2/conf/mre.conf.in.original	2006-08-13 16:48:57.000000000 -0500 ++++ ../mre-1.1.2/conf/mre.conf.in	2010-05-04 00:25:26.000000000 -0500 +@@ -28,9 +28,9 @@ + ; *** Application settings + ; Unprivledged user to run as, if started as root + ; This script will not run as root +-user = nobody ++user = mythtv + ; Run MRE as daemon?  Requires pcntl_* functions built into PHP +-daemon = true ++daemon = false + ; Number of minutes to sleep between runs + sleep = 5 + ; Logging level (0 = normal, 1 = +error, 2 = +warning, 3 = +debug) +--- ../mre-1.1.2/class/MLBEvent.php.original	2006-11-05 17:06:57.000000000 -0600 ++++ ../mre-1.1.2/class/MLBEvent.php	2010-05-21 20:08:30.000000000 -0500 +@@ -27,7 +27,7 @@ +    /** +     * URL to grab game info from +     */ +-   const url = 'http://scores.espn.go.com/mlb/scoreboard'; ++   const url = 'http://localhost/scores/mlb.php'; +  +    /** +     * Class constructor. +@@ -43,41 +43,22 @@ +          trigger_error("Unable to generate valid search terms! [$gameInfo]", E_USER_WARNING); +       else +       { +-         $data = file(self::url); +-         $games = array(); +-         if($data !== FALSE) +-         { +-            // Split the huge string into individual game data +-            foreach($data as $line) +-               if(preg_match('/\<div id="allGames".*\>.*/', $line)) +-               { +-                  while(($loc = strrpos($line, 'teamTop')) !== FALSE) +-                  { +-                     $games[] = substr($line, $loc); +-                     $line = substr($line, 0, $loc); +-                  } +-                  break; +-               } +-            if(!sizeof($games)) +-               trigger_error("Unable to find valid game data within source!", E_USER_WARNING); +-            foreach($criteria as $term) +-            { +-               foreach($games as $game) +-               { +-                  if(preg_match('/' . preg_quote($term) . '/', $game)) +-                     if(preg_match('/teamTop.*\>(.*)\<\/td\>/U', $game, $matches)) +-                     { +-                        $this->setStatus($matches[1]); +-                        if(preg_match('/^(Final|Postponed)/', $matches[1])) +-                           $this->setEventOver(TRUE); +-                        else +-                           $this->setEventOver(FALSE); +-                        $this->setValid(TRUE); +-                        break 2; +-                     } +-               } ++	 $data = file(self::url); ++         if($data) ++	 { ++	    foreach($data as $line) ++      	    { ++               if((strpos($line,$criteria[0]))&&(strpos($line,$criteria[1]))) ++   	       { ++     		  if((strpos($line,'FINAL'))or(strpos($line,'Postponed')))  ++ 		     $this->setEventOver(TRUE); ++  		  else ++  		     $this->setEventOver(FALSE); ++  		  $this->setValid(TRUE); ++  		  break; ++  	       } +             } +-         } ++	 } +       } +       if(!$this->isValid()) +          trigger_error("Unable to find MLB info for '$gameInfo'!  The MLB parser may need to be updated.", E_USER_WARNING); +--- ../mre-1.1.2/class/NBAEvent.php.original	2006-11-05 17:06:57.000000000 -0600 ++++ ../mre-1.1.2/class/NBAEvent.php	2010-05-21 21:15:42.000000000 -0500 +@@ -27,7 +27,7 @@ +    /** +     * URL to grab game info from +     */ +-   const url = 'http://scores.espn.go.com/nba/scoreboard'; ++   const url = 'http://localhost/scores/nba.php'; +  +    /** +     * Class constructor. +@@ -44,35 +44,21 @@ +       else +       { +          $data = file(self::url); +-         if($data !== FALSE) +-            foreach($criteria as $term) +-            { +-               $status = ''; +-               $i = 0; +-               while($i < sizeof($data)) +-               { +-                  if(preg_match('/' . preg_quote($term) . '/', $data[$i])) +-                  { +-                     $status = $data[$i]; +-                     break; +-                  } +-                  ++$i; +-               } +-               if($i == sizeof($data)) +-                  --$i; +- +-               if(preg_match('/id.*clock"\>(.*)\<\/div/U', $data[$i], $match) || +-                  preg_match('/id.*clock"\>(.*)\<\/div/U', $data[$i-1], $match)) +-               { +-                  $this->setStatus($match[1]); +-                  if(preg_match('/^Final/', $match[1])) +-                     $this->setEventOver(TRUE); +-                  else +-                     $this->setEventOver(FALSE); +-                  $this->setValid(TRUE); +-                  break; +-               } ++         if($data) ++         { ++            foreach($data as $line) ++      	    { ++               if((strpos($line,$criteria[0]))&&(strpos($line,$criteria[1]))) ++  	       { ++       		  if(strpos($line,'FINAL'))  ++ 		     $this->setEventOver(TRUE); ++  		  else ++  		     $this->setEventOver(FALSE); ++  		  $this->setValid(TRUE); ++ 		  break; ++  	       } +             } ++         } +       } +       if(!$this->isValid()) +          trigger_error("Unable to find NBA info for '$gameInfo'!  The NBA parser may need to be updated.", E_USER_WARNING); +--- ../mre-1.1.2/class/NFLEvent.php.original	2006-11-05 17:06:57.000000000 -0600 ++++ ../mre-1.1.2/class/NFLEvent.php	2010-05-21 19:09:36.000000000 -0500 +@@ -27,7 +27,7 @@ +    /** +     * URL to grab game info from +     */ +-   const url = 'http://scores.espn.go.com/nfl/scoreboard'; ++   const url = 'http://localhost/scores/nfl.php'; +  +    /** +     * Class constructor. +@@ -44,33 +44,21 @@ +       else +       { +          $data = file(self::url); +-         $games = array(); +-         if($data !== FALSE) +-         { +-            // Split the huge string into individual game data +-            foreach($data as $line) +-               if(preg_match('/\<td class="teamTop.*".*\>.*/', $line)) +-                  $games[] = $line; +-            if(!sizeof($games)) +-               trigger_error("Unable to find valid game data within source!", E_USER_WARNING); +-            foreach($criteria as $term) +-            { +-               foreach($games as $game) +-               { +-                  if(preg_match('/' . preg_quote($term) . '/', $game)) +-                     if(preg_match('/teamTop.*\>(.*)\<\/td\>/U', $game, $matches)) +-                     { +-                        $this->setStatus($matches[1]); +-                        if(preg_match('/^(Final|Postponed)/', $matches[1])) +-                           $this->setEventOver(TRUE); +-                        else +-                           $this->setEventOver(FALSE); +-                        $this->setValid(TRUE); +-                        break 2; +-                     } +-               } +-            } +-         } ++	 if($data) ++	 { ++	    foreach($data as $line) ++	    { ++               if((strpos($line,$criteria[0]))&&(strpos($line,$criteria[1]))) ++	       { ++		  if(strpos($line,'FINAL')) ++		     $this->setEventOver(TRUE); ++		  else ++		     $this->setEventOver(FALSE); ++		  $this->setValid(TRUE); ++		  break; ++	       } ++	    } ++	 } +       } +       if(!$this->isValid()) +          trigger_error("Unable to find NFL info for '$gameInfo'!  The NFL parser may need to be updated.", E_USER_WARNING); diff --git a/abs/extra-testing/community/mre/run b/abs/extra-testing/community/mre/run new file mode 100755 index 0000000..84d08e5 --- /dev/null +++ b/abs/extra-testing/community/mre/run @@ -0,0 +1,10 @@ +#!/bin/bash +export TERM=linux +. /etc/rc.conf +. /etc/rc.d/functions +stat_runit "Starting mythrecordingextender" + +sv start mythbackend || exit 1 +sleep 5 + +exec /usr/local/bin/mre.php | 
