summaryrefslogtreecommitdiffstats
path: root/abs/extra/community/mre
diff options
context:
space:
mode:
Diffstat (limited to 'abs/extra/community/mre')
-rw-r--r--abs/extra/community/mre/PKGBUILD41
-rw-r--r--abs/extra/community/mre/livescores.tgzbin0 -> 39586 bytes
-rw-r--r--abs/extra/community/mre/mre-1.1.2.tar.gzbin0 -> 19685 bytes
-rwxr-xr-xabs/extra/community/mre/mre.install20
-rw-r--r--abs/extra/community/mre/mre.lr9
-rw-r--r--abs/extra/community/mre/patch.diff273
-rwxr-xr-xabs/extra/community/mre/run10
7 files changed, 353 insertions, 0 deletions
diff --git a/abs/extra/community/mre/PKGBUILD b/abs/extra/community/mre/PKGBUILD
new file mode 100644
index 0000000..72d3bc3
--- /dev/null
+++ b/abs/extra/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/community/mre/livescores.tgz b/abs/extra/community/mre/livescores.tgz
new file mode 100644
index 0000000..d97175b
--- /dev/null
+++ b/abs/extra/community/mre/livescores.tgz
Binary files differ
diff --git a/abs/extra/community/mre/mre-1.1.2.tar.gz b/abs/extra/community/mre/mre-1.1.2.tar.gz
new file mode 100644
index 0000000..3846e4b
--- /dev/null
+++ b/abs/extra/community/mre/mre-1.1.2.tar.gz
Binary files differ
diff --git a/abs/extra/community/mre/mre.install b/abs/extra/community/mre/mre.install
new file mode 100755
index 0000000..4e3fb0d
--- /dev/null
+++ b/abs/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() {
+
+}
+
+
+# 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/community/mre/mre.lr b/abs/extra/community/mre/mre.lr
new file mode 100644
index 0000000..3b54c23
--- /dev/null
+++ b/abs/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/extra/community/mre/patch.diff b/abs/extra/community/mre/patch.diff
new file mode 100644
index 0000000..66390d9
--- /dev/null
+++ b/abs/extra/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/community/mre/run b/abs/extra/community/mre/run
new file mode 100755
index 0000000..84d08e5
--- /dev/null
+++ b/abs/extra/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