diff options
Diffstat (limited to 'abs/not_built/extra/community/mre')
-rw-r--r-- | abs/not_built/extra/community/mre/PKGBUILD | 35 | ||||
-rw-r--r-- | abs/not_built/extra/community/mre/mre-1.1.2.tar.gz | bin | 0 -> 19685 bytes | |||
-rwxr-xr-x | abs/not_built/extra/community/mre/mre.install | 20 | ||||
-rw-r--r-- | abs/not_built/extra/community/mre/mre.lr | 9 | ||||
-rw-r--r-- | abs/not_built/extra/community/mre/patch.diff | 293 | ||||
-rwxr-xr-x | abs/not_built/extra/community/mre/run | 12 |
6 files changed, 369 insertions, 0 deletions
diff --git a/abs/not_built/extra/community/mre/PKGBUILD b/abs/not_built/extra/community/mre/PKGBUILD new file mode 100644 index 0000000..4868d33 --- /dev/null +++ b/abs/not_built/extra/community/mre/PKGBUILD @@ -0,0 +1,35 @@ +pkgname=mre +pkgver=1.1.2 +pkgrel=6 +_kernver=2.6.36-LinHES +pkgdesc="Myth Recording Extender" +arch=('i686') +url="http://sourceforge.net/projects/mythtv-tools/" +license=('GPL-2') +depends=('peardb' 'pearlog') +source=('mre-1.1.2.tar.gz' 'patch.diff' 'run' 'mre.lr') +install=('mre.install') + +build() { + cd ${srcdir}/mre-1.1.2/ + patch -p0 < ../patch.diff + ./configure + make INST_ROOT=${pkgdir} install + cp ${srcdir}/mre-1.1.2/conf/mre.conf ${pkgdir}/etc/mre.conf + cp ${srcdir}/mre-1.1.2/test/test_title_subtitle.php\ + ${pkgdir}/usr/local/bin/ + chmod a+x ${pkgdir}/usr/local/bin/test_title_subtitle.php + rm -r ${pkgdir}/etc/init.d + mkdir -p ${pkgdir}/var/log/mre + chown root:log "${pkgdir}/var/log/mre" + touch ${pkgdir}/var/log/mre/mre.log + chown mythtv:mythtv "${pkgdir}/var/log/mre/mre.log" + mkdir -p ${pkgdir}/etc/sv/mre + cp ${srcdir}/run ${pkgdir}/etc/sv/mre/run + mkdir -p ${pkgdir}/etc/logrotate.d + cp ${srcdir}/mre.lr ${pkgdir}/etc/logrotate.d/mre.lr +} +md5sums=('8ab312e7597ae9413a57bd5e9a068096' + 'ed6cb9012c88d589e26132796132bf25' + '10e01d572b45ad718e49ff9ef5c230c5' + '6d71ab57afd974c5130c994b94e8746f') diff --git a/abs/not_built/extra/community/mre/mre-1.1.2.tar.gz b/abs/not_built/extra/community/mre/mre-1.1.2.tar.gz Binary files differnew file mode 100644 index 0000000..3846e4b --- /dev/null +++ b/abs/not_built/extra/community/mre/mre-1.1.2.tar.gz diff --git a/abs/not_built/extra/community/mre/mre.install b/abs/not_built/extra/community/mre/mre.install new file mode 100755 index 0000000..bb08427 --- /dev/null +++ b/abs/not_built/extra/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() { + /bin/true +} + + +# 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/not_built/extra/community/mre/mre.lr b/abs/not_built/extra/community/mre/mre.lr new file mode 100644 index 0000000..3b54c23 --- /dev/null +++ b/abs/not_built/extra/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/not_built/extra/community/mre/patch.diff b/abs/not_built/extra/community/mre/patch.diff new file mode 100644 index 0000000..38a501a --- /dev/null +++ b/abs/not_built/extra/community/mre/patch.diff @@ -0,0 +1,293 @@ +--- ../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/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/EventFactory.php.original 2006-09-22 10:18:07.000000000 -0500 ++++ ../mre-1.1.2/class/EventFactory.php 2010-08-28 00:02:37.000000000 -0500 +@@ -50,7 +50,7 @@ + $obj = new NHLEvent($data['subtitle']); break; + case 'MLB Baseball': + $obj = new MLBEvent($data['subtitle']); break; +- case 'NFL Football': ++ case ($data['title']=='NFL Football' || $data['title']=='NFL Preseason Football'): + $obj = new NFLEvent($data['subtitle']); break; + case 'College Football': + $obj = new NCAAFEvent($data['subtitle']); break; +--- ../mre-1.1.2/class/MLBEvent.php.original 2006-11-05 17:06:57.000000000 -0600 ++++ ../mre-1.1.2/class/MLBEvent.php 2010-08-28 00:02:37.000000000 -0500 +@@ -27,7 +27,7 @@ + /** + * URL to grab game info from + */ +- const url = 'http://scores.espn.go.com/mlb/scoreboard'; ++ const url = 'http://sports.espn.go.com/mlb/bottomline/scores'; + + /** + * Class constructor. +@@ -43,41 +43,25 @@ + 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) ++ { ++ $data_array=explode("&", $data[0]); ++ foreach($data_array as $line) ++ { ++ $line=str_replace("%20", " ", $line); ++ $line=str_replace("Chicago Sox", "Chicago White Sox", $line); #Program guide gives Chicago White Sox, website gives Chicago Sox ++ 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/NFLEvent.php.original 2006-11-05 17:06:57.000000000 -0600 ++++ ../mre-1.1.2/class/NFLEvent.php 2010-08-28 00:06:56.000000000 -0500 +@@ -27,7 +27,7 @@ + /** + * URL to grab game info from + */ +- const url = 'http://scores.espn.go.com/nfl/scoreboard'; ++ const url = 'http://sports.espn.go.com/nfl/bottomline/scores'; + + /** + * Class constructor. +@@ -44,33 +44,23 @@ + 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) ++ { ++ $data_array=explode("&", $data[0]); ++ foreach($data_array as $line) ++ { ++ $line=str_replace("%20", " ", $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); +--- ../mre-1.1.2/class/NBAEvent.php.original 2006-11-05 17:06:57.000000000 -0600 ++++ ../mre-1.1.2/class/NBAEvent.php 2010-08-28 00:09:50.000000000 -0500 +@@ -27,7 +27,7 @@ + /** + * URL to grab game info from + */ +- const url = 'http://scores.espn.go.com/nba/scoreboard'; ++ const url = 'http://sports.espn.go.com/nba/bottomline/scores'; + + /** + * Class constructor. +@@ -44,35 +44,23 @@ + 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) ++ { ++ $data_array=explode("&", $data[0]); ++ foreach($data_array as $line) ++ { ++ $line=str_replace("%20", " ", $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/NHLEvent.php.original 2006-11-05 17:06:57.000000000 -0600 ++++ ../mre-1.1.2/class/NHLEvent.php 2010-08-28 00:09:04.000000000 -0500 +@@ -27,7 +27,7 @@ + /** + * URL to grab game info from + */ +- const url = 'http://scores.espn.go.com/nhl/scoreboard'; ++ const url = 'http://sports.espn.go.com/nhl/bottomline/scores'; + + /** + * Class constructor. +@@ -39,32 +39,29 @@ + 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) ++ { ++ $data_array=explode("&", $data[0]); ++ foreach($data_array as $line) ++ { ++ $line=str_replace("%20", " ", $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);
\ No newline at end of file diff --git a/abs/not_built/extra/community/mre/run b/abs/not_built/extra/community/mre/run new file mode 100755 index 0000000..94381b3 --- /dev/null +++ b/abs/not_built/extra/community/mre/run @@ -0,0 +1,12 @@ +#!/bin/bash +export TERM=linux +. /etc/rc.conf +. /etc/rc.d/functions +stat_runit "Starting mythrecordingextender" + +export HOME=/home/mythtv + +sv start mythbackend || exit 1 +sleep 5 + +exec /usr/local/bin/mre.php |