diff options
Diffstat (limited to 'abs/extra-testing/mythappletrailers/myth_trailers_grabber')
-rwxr-xr-x | abs/extra-testing/mythappletrailers/myth_trailers_grabber | 214 |
1 files changed, 0 insertions, 214 deletions
diff --git a/abs/extra-testing/mythappletrailers/myth_trailers_grabber b/abs/extra-testing/mythappletrailers/myth_trailers_grabber deleted file mode 100755 index ae32e75..0000000 --- a/abs/extra-testing/mythappletrailers/myth_trailers_grabber +++ /dev/null @@ -1,214 +0,0 @@ -<?php -/** - * Copyright (C) 2007 Ben Leto <undertoe@chemlab.org> - * - * Description: Apple Trailer Grabber for mythtv - * - * Version 0.4.3 - * - * Apple Trailer Grabber is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * Apple Trailer Grabber is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * Usage: read the INSTALL file - * Setup as a cron script to run as frequently as you want - * - * - */ - -/************************************************************************/ -// CONFIGURATION - -// command to use when streaming content from the internet - cache 50% before displaying and use 32MB of memory -$STREAMING_EXEC_CMD = 'loading.sh && mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent "QuickTime/7.6.2" -cache 16000'; -$APPLE_FEED = 'http://www.apple.com/trailers/home/xml/current.xml'; -/************************************************************************/ -// Shouldn't Need To modify anything beyond here - - -define("PLAYERCMD", $STREAMING_EXEC_CMD); -define("XMLFEED", $APPLE_FEED); - -/************************************************************************/ - -init_main(); - -// Function: returns null | init_main () -// Description: Outputs Apple Trailer XML feed to watchable movie urls in MythTV menu XML format -function init_main() -{ - - print "<mythmenu name=\"TRAILERS\">\n"; - - if(valid_url(XMLFEED)){ - - // Gather Array of Current Movie Trailers - //XML Data - $xml_data = url_to_string(XMLFEED); - //Creating Instance of the Class - $xmlObj = new XmlToArray($xml_data); - $arrayData = $xmlObj->createArray(); - - foreach($arrayData['records']['movieinfo'] as $Row){ - - $MovieTitle = $Row['info'][0]['title']; - $MovieLink = $Row['preview'][0]['large']; - $VideoPlayCMD = PLAYERCMD . ' ' . $MovieLink; - - if(!valid_url($MovieLink)){ - $MovieTitle = $MovieTitle . '*VIDEO ERROR*'; - $VideoPlayCMD = ''; - } - - print "\t<button>\n"; - print "\t\t<type>VIDEO_BROWSER</type>\n"; - $MovieTitle = preg_replace('/ & /', ' & ', $MovieTitle); - print "\t\t<text>$MovieTitle</text>\n"; - print "\t\t<action>EXEC $VideoPlayCMD</action>\n"; - print "\t</button>\n\n"; - - } - }else{ - print "\t<button>\n"; - print "\t\t<type>VIDEO_BROWSER</type>\n"; - print "\t\t<text>Error Grabbing XML Feed</text>\n"; - print "\t\t<action></action>\n"; - print "\t</button>\n\n"; - } - - print "</mythmenu>\n"; - - - -} - - -// Function: returns boolean | valid_url ( var | url to check) -// Description: Checks to see if a url is a valid page -function valid_url($str) -{ - if(@fopen($str, "r")) { - return true; - } else { - return false; - } -} - -// Function: returns string | all elements of XML ( var | url to feed) -// Description: Converts each element in an XML feed to single line string -// Notes: must have 'allow_url_fopen = On' in php.ini -function url_to_string($url){ - $lines = file($url); - foreach ($lines as $line) { - $lineR = trim($line); - } - $lineR = eregi_replace("<" . "large" . "[^>]*>", "<large>", $lineR); //hack for apple goofy xml - return $lineR; -} - -// Class: returns (~) x array | elements of XML ( var | XML in string) -// Description: Converts each element in an XML feed to an Array -class XmlToArray -{ - - var $xml=''; - - /** - * Default Constructor - * @param $xml = xml data - * @return none - */ - - function XmlToArray($xml) - { - $this->xml = $xml; - } - - /** - * _struct_to_array($values, &$i) - * - * This is adds the contents of the return xml into the array for easier processing. - * Recursive, Static - * - * @access private - * @param array $values this is the xml data in an array - * @param int $i this is the current location in the array - * @return Array - */ - - function _struct_to_array($values, &$i) - { - $child = array(); - if (isset($values[$i]['value'])) array_push($child, $values[$i]['value']); - - while ($i++ < count($values)) { - switch ($values[$i]['type']) { - case 'cdata': - array_push($child, $values[$i]['value']); - break; - - case 'complete': - $name = $values[$i]['tag']; - if(!empty($name)){ - $child[$name]= ($values[$i]['value'])?($values[$i]['value']):''; - if(isset($values[$i]['attributes'])) { - $child[$name] = $values[$i]['attributes']; - } - } - break; - - case 'open': - $name = $values[$i]['tag']; - $size = isset($child[$name]) ? sizeof($child[$name]) : 0; - $child[$name][$size] = $this->_struct_to_array($values, $i); - break; - - case 'close': - return $child; - break; - } - } - return $child; - }//_struct_to_array - - /** - * createArray($data) - * - * This is adds the contents of the return xml into the array for easier processing. - * - * @access public - * @param string $data this is the string of the xml data - * @return Array - */ - function createArray() - { - $xml = $this->xml; - $values = array(); - $index = array(); - $array = array(); - $parser = xml_parser_create(); - xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); - xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0); - xml_parse_into_struct($parser, $xml, $values, $index); - xml_parser_free($parser); - $i = 0; - $name = $values[$i]['tag']; - $array[$name] = isset($values[$i]['attributes']) ? $values[$i]['attributes'] : ''; - $array[$name] = $this->_struct_to_array($values, $i); - return $array; - } - - -} - -?> |