summaryrefslogtreecommitdiffstats
path: root/abs/not_built/extra/community/mre
diff options
context:
space:
mode:
Diffstat (limited to 'abs/not_built/extra/community/mre')
-rw-r--r--abs/not_built/extra/community/mre/PKGBUILD35
-rw-r--r--abs/not_built/extra/community/mre/mre-1.1.2.tar.gzbin0 -> 19685 bytes
-rwxr-xr-xabs/not_built/extra/community/mre/mre.install20
-rw-r--r--abs/not_built/extra/community/mre/mre.lr9
-rw-r--r--abs/not_built/extra/community/mre/patch.diff293
-rwxr-xr-xabs/not_built/extra/community/mre/run12
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
new file mode 100644
index 0000000..3846e4b
--- /dev/null
+++ b/abs/not_built/extra/community/mre/mre-1.1.2.tar.gz
Binary files differ
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