From: <ara...@us...> - 2008-08-23 15:01:43
|
Revision: 237 http://easybox-mod.svn.sourceforge.net/easybox-mod/?rev=237&view=rev Author: aragornis Date: 2008-08-23 15:01:35 +0000 (Sat, 23 Aug 2008) Log Message: ----------- Possibilit?\195?\169 de faire fonctionner Easybox derri?\195?\168re un proxy Passage de tous les acces d'Easybox ?\195?\160 internet par la m?\195?\170me fonction pour centraliser les options de connexion (par exemple le passage par un proxy) Ajout de la configuration d'un proxy dans le panneau de configuration Am?\195?\169lioration de la classe d'acc?\195?\168s au web (v?\195?\169rification rapide de l'existence de la page) Modified Paths: -------------- trunk/http/_framework/fonctions_partagees.inc.php trunk/http/_framework/lib/RemoteDL.class.php trunk/http/_utilisateur/contentVLC trunk/http/configuration/config.xml trunk/http/module/VOD/classes/player_proxy_wat.php trunk/http/testing.php Modified: trunk/http/_framework/fonctions_partagees.inc.php =================================================================== --- trunk/http/_framework/fonctions_partagees.inc.php 2008-08-22 20:38:22 UTC (rev 236) +++ trunk/http/_framework/fonctions_partagees.inc.php 2008-08-23 15:01:35 UTC (rev 237) @@ -7,13 +7,13 @@ } function couper_colonnes($string, $largeur, $lignes){ - $nom = wordwrap($string,$largeur,'<br>',false); - $pieces = explode('<br>', $nom); - $res = ''; - for($i=0;$i<($lignes-1);$i++){ - $res .= $pieces[$i].'<br>'; - } - return $res.$pieces[$lignes-1]; + $nom = wordwrap($string,$largeur,'<br>',false); + $pieces = explode('<br>', $nom); + $res = ''; + for($i=0;$i<($lignes-1);$i++){ + $res .= $pieces[$i].'<br>'; + } + return $res.$pieces[$lignes-1]; } function convert_size($size){ @@ -46,25 +46,6 @@ reset($arr); } -//extraire d'un path le nom du fichier sans extension -function extract_name($fichier){ - $nomcourant = basename($fichier); - $nomcourant = trim(substr($nomcourant,0,strrpos($nomcourant,'.'))); - RETURN $nomcourant; -} - -// D\xE9finit le META['refresh'] -function set_refresh($time, $string, $bool=false){ - global $time_refresh, $cansetfrontpannel, $Easybox; - if($time_refresh>=$time OR !$time_refresh){ - $Easybox->meta('refresh', $string); - $time_refresh = $time; - if($bool){ - $cansetfrontpannel = !$bool; - } - } -} - function calcul_hours($temps){ $hours = floor($temps / 3600); $min = floor(($temps - ($hours * 3600)) / 60); @@ -246,15 +227,20 @@ break; } - $xml = simplexml_load_file($xml_file); - foreach($xml->element as $patch){ - download_file($ini['download']['patch'].$xml->element[0]->fichier, $RACINE_REP.$plus); - change_version($module, $xml->element[0]->version); - $DONE[] = array($xml->element[0]->version, $xml->element[0]->nom); - } + $RemoteDL = new RemoteDL($xml_file); + if($xml = $RemoteDL->simplexml_load_file()){ - return $DONE; + foreach($xml->element as $patch){ + download_file($ini['download']['patch'].$xml->element[0]->fichier, $RACINE_REP.$plus); + change_version($module, $xml->element[0]->version); + $DONE[] = array($xml->element[0]->version, $xml->element[0]->nom); + } + + return $DONE; + }else{ + return array(); + } } function get_all_maj(){ @@ -286,7 +272,9 @@ } // R\xE9cuperation du fichier - $fdownload = file_get_contents($file); + $RemoteDL = new RemoteDL($file); + $fdownload = $RemoteDL->file_get_contents(); + file_put_contents('temp.zip', $fdownload); // Suppression des anciens fichiers - Pour eviter des bugs @@ -305,7 +293,7 @@ } } - //// On d\xE9zipe les fichiers + // On d\xE9zipe les fichiers $archive = new PclZip('temp.zip'); if ($archive->extract(PCLZIP_OPT_ADD_PATH, $dest_dir) == 0) { die("Erreur : ".$archive->errorInfo(true)); @@ -315,7 +303,7 @@ copy(realpath($dest_dir).'/icone.gif', realpath(RES_ICO).'/'.str_replace(array('>',' !',' ','\xE9','\xEE','\xF4'),array('','','','e','i','o'),$name).'.gif'); } - //// On supprime le fichier temporaire + // On supprime le fichier temporaire unlink("temp.zip"); } @@ -363,12 +351,16 @@ $xml_file = $ini['download']['xml'].'?cat=Patch&needed1='.$module.'&needed2='.$version; - $xml = simplexml_load_file($xml_file); - $count = 0; - foreach($xml->element as $el){ - $count++; + $RemoteDL = new RemoteDL($xml_file); + if($xml = $RemoteDL->simplexml_load_file()){ + $count = 0; + foreach($xml->element as $el){ + $count++; + } + return $count > 0; + }else{ + return false; } - return $count > 0; } function strip_delimiters($input){ @@ -454,9 +446,11 @@ } function add_download($name){ - echo @file_get_contents('http://www.easybox-mod.org/add_dl.php?name='.$name); + $RemoteDL = new RemoteDL($feed['add']); + $xml = $RemoteDL->file_get_contents(); } +// Cr\xE9e un bouton utilis\xE9 dans le panneau de configuration function gen_bouton($caption, $fct_js,$class_normal, $class_over){ return '<span OnMouseOut="change_class(this,\''.$class_normal.'\');" OnMouseOver="change_class(this,\''.$class_over.'\');" OnClick="'.$fct_js.'" class="'.$class_normal.'">'.$caption.'</span>'; } @@ -470,12 +464,4 @@ return $output; } -// Teste si une constante est d\xE9finie et renvoie sa valeur si oui et une valeur par d\xE9faut sinon -function skin_constante($cte, $default){ - if(defined($cte)){ - return constant($cte); - }else{ - return $default; - } -} ?> Modified: trunk/http/_framework/lib/RemoteDL.class.php =================================================================== --- trunk/http/_framework/lib/RemoteDL.class.php 2008-08-22 20:38:22 UTC (rev 236) +++ trunk/http/_framework/lib/RemoteDL.class.php 2008-08-23 15:01:35 UTC (rev 237) @@ -4,6 +4,7 @@ var $url = ''; var $md5 = ''; var $cache_time = 3600; + var $context = null; function __construct($url){ $this->url = $url; @@ -14,8 +15,26 @@ $this->cache_time = $heures*3600; } + function get_context(){ + global $ini; + if($this->context){ + $context = $this->context; + if($ini['explorateur']['proxy']){ + $context['http']['proxy'] = 'tcp://'.$ini['explorateur']['proxy'].':'.$ini['explorateur']['proxyport']; + } + }else{ + if($ini['explorateur']['proxy']){ + $context = array('http' => array('proxy' => 'tcp://'.$ini['explorateur']['proxy'].':'.$ini['explorateur']['proxyport'], 'request_fulluri' => true)); + }else{ + return null; + } + } + return stream_context_create($context); + } + // V\xE9rifie la validit\xE9 de url function url_validate(){ + global $ini; $url_parts = @parse_url($this->url); if(!$url_parts or empty($url_parts["host"])){ @@ -36,11 +55,21 @@ $port = $url_parts["port"]; if(empty($port )) $port = "80"; - $socket = @fsockopen( $host, $port, $errno, $errstr, 30 ); + + if($ini['explorateur']['proxy']){ + $socket = @fsockopen(($ini['explorateur']['proxy']?$ini['explorateur']['proxy']:$host), ($ini['explorateur']['proxy']?($ini['explorateur']['proxyport']?$ini['explorateur']['proxyport']:8080):$host), $errno, $errstr, 2 ); + }else{ + $socket = @fsockopen( $host, $port, $errno, $errstr, 2 ); + } + if (!$socket){ return false; }else{ - fwrite ($socket, "HEAD ".$documentpath." HTTP/1.0\r\nHost: $host\r\n\r\n"); + if($ini['explorateur']['proxy']){ + fwrite ($socket, "HEAD ".$this->url." HTTP/1.0\r\nHost: $host\r\n\r\n"); + }else{ + fwrite ($socket, "HEAD ".$documentpath." HTTP/1.0\r\nHost: $host\r\n\r\n"); + } $http_response = fgets( $socket, 22 ); if( ereg("200 OK", $http_response, $regs)){ @@ -53,24 +82,28 @@ } // T\xE9l\xE9charge une page internet et la met en cache ou r\xE9cup\xE8re directement son contenu mis en cache - function file_get_contents($context=null){ + function file_get_contents(){ $db = sqlite_open(USER.'cache.db', 0666); self::clean_cache(); $res = sqlite_query($db,'SELECT * FROM cache WHERE fichier="'.$this->md5.'"'); if(sqlite_num_rows($res)>0 AND file_exists(CACHE_IMAGE.$this->md5)){ $retour = file_get_contents(CACHE_IMAGE.$this->md5); }else{ - $retour = file_get_contents($this->url,null,$context); - file_put_contents(CACHE_IMAGE.$this->md5, $retour); - sqlite_query($db,'INSERT INTO cache VALUES(NULL,\''.sqlite_escape_string($this->md5).'\', \''.(time()+$this->cache_time).'\')'); + if($this->url_validate()){ + $retour = file_get_contents($this->url,null,$this->get_context()); + file_put_contents(CACHE_IMAGE.$this->md5, $retour); + sqlite_query($db,'INSERT INTO cache VALUES(NULL,\''.sqlite_escape_string($this->md5).'\', \''.(time()+$this->cache_time).'\')'); + }else{ + return false; + } } sqlite_close($db); return $retour; } // Ouvre un fichier xml en le mettant en cache - function simplexml_load_file($context=null){ - return simplexml_load_string($this->file_get_contents($context)); + function simplexml_load_file(){ + return simplexml_load_string($this->file_get_contents()); } // Nettoie les fichiers p\xE9rim\xE9s du cache Modified: trunk/http/_utilisateur/contentVLC =================================================================== --- trunk/http/_utilisateur/contentVLC 2008-08-22 20:38:22 UTC (rev 236) +++ trunk/http/_utilisateur/contentVLC 2008-08-23 15:01:35 UTC (rev 237) @@ -30,4 +30,4 @@ -|00:00:00|fake:|00:00:04|stop|C:\Program Files\Easyboxv3\http\skin\mediacenter\background\bg.png +|00:00:00|fake:|00:00:04|playing|C:\Program Files\Easyboxv3\http\skin\mediacenter\background\bg.png Modified: trunk/http/configuration/config.xml =================================================================== --- trunk/http/configuration/config.xml 2008-08-22 20:38:22 UTC (rev 236) +++ trunk/http/configuration/config.xml 2008-08-23 15:01:35 UTC (rev 237) @@ -1,220 +1,318 @@ <?xml version = '1.0' encoding = 'iso-8859-1'?> -<rss version="2.0" > - <channel> - <categorie name="explorateur" > - <souscat name="films_defaut" > - <name>Dossiers o&ugrave; le scanner doit chercher vos vid&eacute;os. Le premier de la liste sera le dossier par d&eacute;faut de l'explorateur de films.</name> - <type>navigateur</type> - <defaut1>c:/</defaut1> - <defaut2>/</defaut2> - </souscat> - <souscat name="photos_defaut" > - <name>Dossier des photos par d&eacute;faut. Le premier de la liste sera le dossier par d&eacute;faut de l'explorateur de photos.</name> - <type>navigateur</type> - <defaut1>c:/</defaut1> - <defaut2>/</defaut2> - </souscat> - <souscat name="audio_defaut" > - <name>Dossiers o&ugrave; le scanner doit chercher vos fichiers audios. Le premier de la liste sera le dossier par d&eacute;faut de l'explorateur audio.</name> - <type>navigateur</type> - <defaut1>c:/</defaut1> - <defaut2>/</defaut2> - </souscat> - <souscat name="dvd" > - <name>Lettre de votre lecteur DVD</name> - <type>dvd</type> - <defaut1>d:</defaut1> - <defaut2>/mnt/cdrom</defaut2> - </souscat> - <souscat name="ext" > - <name>Extensions interpr&eacute;t&eacute;es comme des fichiers vid&eacute;os par Easy-Box</name> - <type>text</type> - <defaut>.avi,.mpg,.mpeg,.mkv,.ogg,.wmv,.wma,.mp4,.3gp,.mov</defaut> - </souscat> - <souscat name="ext_photo" > - <name>Extensions interpr&eacute;t&eacute;es comme des photos par Easy-Box</name> - <type>text</type> - <defaut>.jpg,.gif,.bmp,.jpeg,.png</defaut> - </souscat> - <souscat name="ext_audio" > - <name>Extensions interpr&eacute;t&eacute;es comme des fichiers audios par Easy-Box</name> - <type>text</type> - <defaut>.mp3,.ogg,.wma,.cda,.m3u,.wav</defaut> - </souscat> +<rss version="2.0"> + <channel> + <categorie name="explorateur"> + <souscat name="films_defaut"> + <name> + Dossiers o&ugrave; le scanner doit chercher vos + vid&eacute;os. Le premier de la liste sera le + dossier par d&eacute;faut de l'explorateur de + films. + </name> + <type>navigateur</type> + <defaut1>c:/</defaut1> + <defaut2>/</defaut2> + </souscat> + <souscat name="photos_defaut"> + <name> + Dossier des photos par d&eacute;faut. Le premier + de la liste sera le dossier par d&eacute;faut de + l'explorateur de photos. + </name> + <type>navigateur</type> + <defaut1>c:/</defaut1> + <defaut2>/</defaut2> + </souscat> + <souscat name="audio_defaut"> + <name> + Dossiers o&ugrave; le scanner doit chercher vos + fichiers audios. Le premier de la liste sera le + dossier par d&eacute;faut de l'explorateur + audio. + </name> + <type>navigateur</type> + <defaut1>c:/</defaut1> + <defaut2>/</defaut2> + </souscat> + <souscat name="dvd"> + <name>Lettre de votre lecteur DVD</name> + <type>dvd</type> + <defaut1>d:</defaut1> + <defaut2>/mnt/cdrom</defaut2> + </souscat> + <souscat name="ext"> + <name> + Extensions interpr&eacute;t&eacute;es comme + des fichiers vid&eacute;os par Easy-Box + </name> + <type>text</type> + <defaut> + .avi,.mpg,.mpeg,.mkv,.ogg,.wmv,.wma,.mp4,.3gp,.mov + </defaut> + </souscat> + <souscat name="ext_photo"> + <name> + Extensions interpr&eacute;t&eacute;es comme + des photos par Easy-Box + </name> + <type>text</type> + <defaut>.jpg,.gif,.bmp,.jpeg,.png</defaut> + </souscat> + <souscat name="ext_audio"> + <name> + Extensions interpr&eacute;t&eacute;es comme + des fichiers audios par Easy-Box + </name> + <type>text</type> + <defaut>.mp3,.ogg,.wma,.cda,.m3u,.wav</defaut> + </souscat> + <souscat name="afficher_fichier_cache"> + <name> + Afficher les fichiers cach&eacute;s dans les + explorateurs + </name> + <type>boolean</type> + <defaut>non</defaut> + </souscat> + <souscat name="proxy"> + <name> + Proxy pour les connexions aux net par Easybox + </name> + <type>text</type> + <defaut></defaut> + </souscat> + <souscat name="proxyport"> + <name> + Port du proxy pour les connexions aux net par Easybox + </name> + <type>text</type> + <defaut></defaut> + </souscat> + </categorie> + <categorie name="scan"> + <souscat name="nettoyer"> + <name> + Chaines de caract&egrave;res + supprim&eacute;es dans le nom des films pour une + recherche plus ais&eacute;e d'information sur + internet. Ex : "James.Bond.cd1.avi" deviendra + "James.Bond..avi". + </name> + <type>text</type> + <defaut> + cd1,cd2,divx,dvdrip,_,FRENCH,VOSTFR,Vostfr + </defaut> + </souscat> - <souscat name="afficher_fichier_cache" > - <name>Afficher les fichiers cach&eacute;s dans les explorateurs</name> - <type>boolean</type> - <defaut>non</defaut> - </souscat> - </categorie> - <categorie name="scan" > - <souscat name="nettoyer" > - <name>Chaines de caract&egrave;res supprim&eacute;es dans le nom des films pour une recherche plus ais&eacute;e d'information sur internet. Ex : "James.Bond.cd1.avi" deviendra "James.Bond..avi".</name> - <type>text</type> - <defaut>cd1,cd2,divx,dvdrip,_,FRENCH,VOSTFR,Vostfr</defaut> - </souscat> - - <souscat name="afficher_personnes" > - <name>Afficher les fiches des personnalit&eacute;s.</name> - <type>boolean</type> - <defaut>oui</defaut> - </souscat> - <souscat name="ext_noscan" > - <name>Ne pas traiter les r&eacute;pertoires dont le nom contient une des valeurs suivantes lors des scans : tout dossier contenant une de ces chaines sera volontairement oubli�.</name> - <type>text</type> - <defaut>NOSCAN</defaut> - </souscat> - </categorie> - <categorie name="multimedia" > - <souscat name="qualiteaudio" > - <name>Quelle qualit&eacute; audio voulez-vous utiliser ?</name> - <type>options</type> - <option> - <choix> - <nom>Son transcod&eacute;e (St&eacute;r&eacute;o)</nom> - <titre>Stereo</titre> - </choix> - <choix> - <nom>Son non-transcod&eacute; (AC3)</nom> - <titre>AC3</titre> - </choix> - </option> - <defaut>Stereo</defaut> - </souscat> - <souscat name="sortieordi" > - <name>Voulez-vous afficher le flux sur le PC ?</name> - <type>options</type> - <option> - <choix> - <nom>Aucun</nom> - <titre>none</titre> - </choix> - <choix> - <nom>Son seulement</nom> - <titre>audio</titre> - </choix> - <choix> - <nom>Video seulement</nom> - <titre>video</titre> - </choix> - <choix> - <nom>Tout</nom> - <titre>all</titre> - </choix> - </option> - <defaut>Aucun</defaut> - </souscat> - <souscat name="compensation" > - <name>Permet de d&eacute;caler la bande son pour qu'elle commence apr&egrave;s la vid&eacute;o (&agrave; utiliser quand le son sort de la carte son du PC et que le son est d&eacute;cal&eacute; sinon mettre &agrave; 0) (en millisecondes)</name> - <type>text</type> - <typeplus>numeric</typeplus> - <defaut>0</defaut> - </souscat> - <souscat name="qualite" > - <name>Selectionnez ici le profil de qualit&eacute; de VLC. Le profil "Wifi et ordinateurs moyens" permet d'&eacute;conomiser l&eacute;g&agrave;rement le processeur et les d&eacute;bits au d&eacute;triment de la qualit&eacute;. Le profil "Wifi difficile et ordinateurs peu puissants" appuie encore ce ph&eacute;nom&agrave;ne.</name> - <type>options</type> - <option> - <choix> - <nom>Normal</nom> - <titre>play.html</titre> - </choix> - <choix> - <nom>Wifi et ordinateurs moyens</nom> - <titre>play-wifi.html</titre> - </choix> - <choix> - <nom>Wifi difficile et ordinateurs peu puissants</nom> - <titre>play-low.html</titre> - </choix> - </option> - <defaut>play.html</defaut> - </souscat> - </categorie> - <categorie name="skin" > - <souscat name="skin" > - <name>Skin par defaut</name> - <type>hidden</type> - <defaut>Mediacenter</defaut> - </souscat> - </categorie> - <categorie name="download" > - <souscat name="patch" > - <name>Chemin o&ugrave; sont stock&eacute;es les mises &agrave; jour</name> - <type>text</type> - <defaut>http://www.easybox-freeplayer.com/modules/addon/</defaut> - </souscat> - <souscat name="xml" > - <name>Chemin vers le fichier listant les mises &agrave; jour</name> - <type>text</type> - <defaut>http://www.easybox-freeplayer.com/genxml.php</defaut> - </souscat> - <souscat name="maj" > - <name>Voulez-vous qu'Easybox se mette &agrave; jour automatiquement ? (Il est fortement d&eacute;conseill&eacute; de d&eacute;sactiver cette option)</name> - <type>boolean</type> - <defaut>oui</defaut> - </souscat> - </categorie> - <categorie name="demarrage" > - <souscat name="demarrage" > - <name>Modifier la page de d&eacute;marrage</name> - <type>hidden</type> - <defaut>_menu/menu.php</defaut> - </souscat> - </categorie> - <categorie name="favoris" > - <souscat name="touche1" > - <name>Touche 1</name> - <type>telecomande</type> - <defaut>films/</defaut> - </souscat> - <souscat name="touche2" > - <name>Touche 2</name> - <type>telecomande</type> - <defaut>mp3/</defaut> - </souscat> - <souscat name="touche3" > - <name>Touche 3</name> - <type>telecomande</type> - <defaut>diaporama/</defaut> - </souscat> - <souscat name="touche4" > - <name>Touche 4</name> - <type>telecomande</type> - <defaut>guidetv/</defaut> - </souscat> - <souscat name="touche5" > - <name>Touche 5</name> - <type>telecomande</type> - <defaut>meteo/</defaut> - </souscat> - <souscat name="touche6" > - <name>Touche 6</name> - <type>telecomande</type> - <defaut>mail/</defaut> - </souscat> - <souscat name="touche7" > - <name>Touche 7</name> - <type>telecomande</type> - <defaut>jt/</defaut> - </souscat> - <souscat name="touche8" > - <name>Touche 8</name> - <type>telecomande</type> - <defaut>livescore/</defaut> - </souscat> - <souscat name="touche9" > - <name>Touche 9</name> - <type>telecomande</type> - <defaut>maj_mod/</defaut> - </souscat> - </categorie> - <categorie name="modules" > - <souscat name="afficher_categories" > - <name>Afficher les cat&eacute;gories dans le menu principal.</name> - <type>boolean</type> - <defaut>oui</defaut> - </souscat> - </categorie> - </channel> + <souscat name="afficher_personnes"> + <name> + Afficher les fiches des personnalit&eacute;s. + </name> + <type>boolean</type> + <defaut>oui</defaut> + </souscat> + <souscat name="ext_noscan"> + <name> + Ne pas traiter les r&eacute;pertoires dont le + nom contient une des valeurs suivantes lors des + scans : tout dossier contenant une de ces chaines + sera volontairement oubli�. + </name> + <type>text</type> + <defaut>NOSCAN</defaut> + </souscat> + </categorie> + <categorie name="multimedia"> + <souscat name="qualiteaudio"> + <name> + Quelle qualit&eacute; audio voulez-vous utiliser + ? + </name> + <type>options</type> + <option> + <choix> + <nom> + Son transcod&eacute;e + (St&eacute;r&eacute;o) + </nom> + <titre>Stereo</titre> + </choix> + <choix> + <nom>Son non-transcod&eacute; (AC3)</nom> + <titre>AC3</titre> + </choix> + </option> + <defaut>Stereo</defaut> + </souscat> + <souscat name="sortieordi"> + <name>Voulez-vous afficher le flux sur le PC ?</name> + <type>options</type> + <option> + <choix> + <nom>Aucun</nom> + <titre>none</titre> + </choix> + <choix> + <nom>Son seulement</nom> + <titre>audio</titre> + </choix> + <choix> + <nom>Video seulement</nom> + <titre>video</titre> + </choix> + <choix> + <nom>Tout</nom> + <titre>all</titre> + </choix> + </option> + <defaut>Aucun</defaut> + </souscat> + <souscat name="compensation"> + <name> + Permet de d&eacute;caler la bande son pour + qu'elle commence apr&egrave;s la + vid&eacute;o (&agrave; utiliser quand le son + sort de la carte son du PC et que le son est + d&eacute;cal&eacute; sinon mettre + &agrave; 0) (en millisecondes) + </name> + <type>text</type> + <typeplus>numeric</typeplus> + <defaut>0</defaut> + </souscat> + <souscat name="qualite"> + <name> + Selectionnez ici le profil de qualit&eacute; de + VLC. Le profil "Wifi et ordinateurs moyens" permet + d'&eacute;conomiser + l&eacute;g&agrave;rement le processeur et + les d&eacute;bits au d&eacute;triment de la + qualit&eacute;. Le profil "Wifi difficile et + ordinateurs peu puissants" appuie encore ce + ph&eacute;nom&agrave;ne. + </name> + <type>options</type> + <option> + <choix> + <nom>Normal</nom> + <titre>play.html</titre> + </choix> + <choix> + <nom>Wifi et ordinateurs moyens</nom> + <titre>play-wifi.html</titre> + </choix> + <choix> + <nom> + Wifi difficile et ordinateurs peu puissants + </nom> + <titre>play-low.html</titre> + </choix> + </option> + <defaut>play.html</defaut> + </souscat> + </categorie> + <categorie name="skin"> + <souscat name="skin"> + <name>Skin par defaut</name> + <type>hidden</type> + <defaut>Mediacenter</defaut> + </souscat> + </categorie> + <categorie name="download"> + <souscat name="patch"> + <name> + Chemin o&ugrave; sont stock&eacute;es les + mises &agrave; jour + </name> + <type>text</type> + <defaut> + http://www.easybox-freeplayer.com/modules/addon/ + </defaut> + </souscat> + <souscat name="xml"> + <name> + Chemin vers le fichier listant les mises + &agrave; jour + </name> + <type>text</type> + <defaut> + http://www.easybox-freeplayer.com/genxml.php + </defaut> + </souscat> + <souscat name="maj"> + <name> + Voulez-vous qu'Easybox se mette &agrave; jour + automatiquement ? (Il est fortement + d&eacute;conseill&eacute; de + d&eacute;sactiver cette option) + </name> + <type>boolean</type> + <defaut>oui</defaut> + </souscat> + </categorie> + <categorie name="demarrage"> + <souscat name="demarrage"> + <name>Modifier la page de d&eacute;marrage</name> + <type>hidden</type> + <defaut>_menu/menu.php</defaut> + </souscat> + </categorie> + <categorie name="favoris"> + <souscat name="touche1"> + <name>Touche 1</name> + <type>telecomande</type> + <defaut>films/</defaut> + </souscat> + <souscat name="touche2"> + <name>Touche 2</name> + <type>telecomande</type> + <defaut>mp3/</defaut> + </souscat> + <souscat name="touche3"> + <name>Touche 3</name> + <type>telecomande</type> + <defaut>diaporama/</defaut> + </souscat> + <souscat name="touche4"> + <name>Touche 4</name> + <type>telecomande</type> + <defaut>guidetv/</defaut> + </souscat> + <souscat name="touche5"> + <name>Touche 5</name> + <type>telecomande</type> + <defaut>meteo/</defaut> + </souscat> + <souscat name="touche6"> + <name>Touche 6</name> + <type>telecomande</type> + <defaut>mail/</defaut> + </souscat> + <souscat name="touche7"> + <name>Touche 7</name> + <type>telecomande</type> + <defaut>jt/</defaut> + </souscat> + <souscat name="touche8"> + <name>Touche 8</name> + <type>telecomande</type> + <defaut>livescore/</defaut> + </souscat> + <souscat name="touche9"> + <name>Touche 9</name> + <type>telecomande</type> + <defaut>maj_mod/</defaut> + </souscat> + </categorie> + <categorie name="modules"> + <souscat name="afficher_categories"> + <name> + Afficher les cat&eacute;gories dans le menu + principal. + </name> + <type>boolean</type> + <defaut>oui</defaut> + </souscat> + </categorie> + </channel> </rss> Modified: trunk/http/module/VOD/classes/player_proxy_wat.php =================================================================== --- trunk/http/module/VOD/classes/player_proxy_wat.php 2008-08-22 20:38:22 UTC (rev 236) +++ trunk/http/module/VOD/classes/player_proxy_wat.php 2008-08-23 15:01:35 UTC (rev 237) @@ -115,7 +115,7 @@ $buffer = ''; /*Time out de lecture */ - stream_set_timeout($fp, 5); + //stream_set_timeout($fp, 5); /*Lecture des headers */ while (!feof($fp)) { Modified: trunk/http/testing.php =================================================================== --- trunk/http/testing.php 2008-08-22 20:38:22 UTC (rev 236) +++ trunk/http/testing.php 2008-08-23 15:01:35 UTC (rev 237) @@ -1,289 +1,5 @@ <?php - -/** - * * Classe de requêtes HTTP - * * - * * @package Commons - * * - * * @author Yvan - * * @since 09/04/2005 - * **/ -set_time_limit(3600); -class Http -{ - /*Code de retour */ - public $statusCode; - /*Contenu renvoyé */ - public $htmlContents; - /*Headers */ - public $httpHeaders; - /*Limite de redirections */ - public $maxRedirects = 0; - /*Timeout de réception d'un paquet */ - public $httpTimeout = 5; - - function __construct() - { - } - - /*Requête Get - * - @param string $url URL \xC3 charger - @param string $queryString Chaîne contenant les paramètres \xC3 passer \xC3 la requête - @return boolean Résultat de la requête (true = 200 OK) - **/ - function get($url, $queryString = '', $sCookie = '') - { - return $this->request($url, 'GET', $queryString, $sCookie); - } - - /*Requête Post - * - @param string $url URL \xC3 charger - @param string $queryString Chaîne contenant les paramètres \xC3 passer \xC3 la requête - @return boolean Résultat de la requête (true = 200 OK) - **/ - function post($url, $queryString = '', $sCookie = '') - { - return $this->request($url, 'POST', $queryString, $sCookie); - } - - /*Requête Principale - * - @param string $url URL \xC3 charger - @param string $queryString Chaîne contenant les paramètres \xC3 passer \xC3 la requête - @param string $requestType Type de la requête (GET/POST) - @return boolean Résultat de la requête (true = 200 OK) - **/ - function request($url, $requestType = 'GET', $queryString = '', $sCookie = '', $envoi=false) - { - $this->statusCode = 0; - $this->htmlContents = ''; - $this->httpHeaders = array('Set-Cookie' => array()); - - /*Explosion de l'URL */ - $parsedUrl = parse_url($url); - if (!isset($parsedUrl['path']) || $parsedUrl['path'] === '') - { - $parsedUrl['path'] = '/'; - } - /*Zut, on a passé une partie des infos dans l'url ! */ - if (isset($parsedUrl['query']) && $parsedUrl['query'] !== '') - { - if ($requestType === 'GET') - { - if ($queryString !== '') - { - $queryString .= '&'; - } - $queryString .= $parsedUrl['query']; - } - else - { - $parsedUrl['path'] = $parsedUrl['path'].'?'.$parsedUrl['query']; - } - } - - $fp = @fsockopen($parsedUrl['host'], 80, $errno, $errstr, 10000); - if (!$fp) return false; - if ($requestType === 'GET') - { - fputs($fp, "GET ".$parsedUrl['path'].($queryString != '' ? '?'.$queryString : '')." HTTP/1.1\r\nHost: ".$parsedUrl['host']."\r\n"); - if ($sCookie !== '') - { - fputs($fp, "Cookie: $sCookie\r\n"); - } - fputs($fp, "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n"); - fputs($fp, "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1\r\n"); - fputs($fp, "Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3\r\n"); - fputs($fp, "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n"); - fputs($fp, "Accept-Encoding: gzip,deflate\r\n"); - fputs($fp, "Keep-Alive: 300\r\n"); - fputs($fp, "Connection: keep-alive\r\n\r\n"); - } - elseif ($requestType === 'POST') - { - fputs($fp, "POST ".$parsedUrl['path']." HTTP/1.1\r\nHost: ".$parsedUrl['host']."\r\n"); - if ($sCookie !== '') - { - fputs($fp, "Cookie: $sCookie\r\n"); - } - fputs($fp, "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1\r\n"); - fputs($fp, "Content-Type: application/x-www-form-urlencoded\r\n"); - fputs($fp, "Content-Length: ".strlen($queryString)."\r\n"); - fputs($fp, "Accept-Encoding: gzip,deflate"); - fputs($fp, "Connection: close\r\n\r\n"); - fputs($fp, $queryString); - } - else - { - return false; - } - - - $buffer = ''; - /*Time out de lecture */ - //stream_set_timeout($fp, 10000); - /*Lecture des headers */ - while (!feof($fp)) - { - $buffer = fgets($fp, 4096); - - if ($buffer === false) - { - return false; - } - $buffer = trim($buffer); - if($envoi) - header($buffer); - - if (substr($buffer, 0, 7) === 'HTTP/1.') - { - $this->statusCode = (int) substr($buffer, 9, 3); - } - else - { - $colonPos = strpos($buffer, ':'); - if ($colonPos !== false) - { - $headerName = substr($buffer, 0, $colonPos); - if ($headerName === 'Set-Cookie') - { - $this->httpHeaders[$headerName][] = substr($buffer, $colonPos + 2); - } - else - { - - $this->httpHeaders[$headerName] = substr($buffer, $colonPos + 2); - } - } - } - if ($buffer == '' && $this->statusCode !== 0) break; - } - - /*Redirection 301 ou 302 */ - if (($this->statusCode === 302 || $this->statusCode === 301) && isset($this->httpHeaders['Location']) && $this->maxRedirects-- > 0) - { - $newUrl = parse_url($this->httpHeaders['Location']); - if (!isset($newUrl['path'])) - { - $newUrl['path'] = ''; - } - else - { - $newUrl['path'] = ltrim($newUrl['path'], '/'); - } - if (!isset($newUrl['host'])) - { - $newUrl['host'] = $parsedUrl['host']; - } - if (!isset($newUrl['query'])) - { - $newUrl['query'] = ''; - } - return $this->request('http://'.$newUrl['host'].'/'.$newUrl['path'], $requestType, $newUrl['query'], $sCookie); - } - /*On remet \xC3 3 le nombre max de redirections */ - $this->maxRedirects = 0; - - $buffer = ''; - if (isset($this->httpHeaders['Transfer-Encoding']) && $this->httpHeaders['Transfer-Encoding'] === 'chunked') - { - /*Fichier chunked */ - while (!feof($fp)) - { - $length = fgets($fp, 1024); - if ($length === false) - { - return false; - } - - $length = hexdec(trim($length)); - if($length===0) - { - break; - } - while ($length > 0) - { - $buff = fgets($fp, $length + 1); - if ($buff === false) - { - return false; - } - $length -= strlen($buff); - $buffer .= $buff; - - } - fgets($fp,1024); - - } - } - /*elseif (isset($this->httpHeaders['Content-Length'])) - { - //Fichier avec Content-Length - $length = (int) $this->httpHeaders['Content-Length']; - while ($length > 0) - { - $buff = fgets($fp, $length + 1); - if ($buff === false) - { - return false; - } - $length -= strlen($buff); - $buffer .= $buff; - file_put_contents('out.txt', 'last line : "'.$buff.'"'); - - } - } - */ - else - { - /*Fichier sans Content-Length ni chunk */ - while (!feof($fp)) - { - $buff = fgets($fp, 1024); - if ($buff === false) - { - return false; - - } - - $buffer .= $buff; - if($envoi) - echo $buff; - - } - } - fclose($fp); - /*Le contenu est-il gzippé ? */ - if (isset($this->httpHeaders['Content-Encoding']) && ($this->httpHeaders['Content-Encoding'] === 'gzip' || $this->httpHeaders['Content-Encoding'] === 'deflate')) - { - if ($this->httpHeaders['Content-Encoding'] === 'gzip') - { - $buffer = substr($buffer, 10); - } - $this->htmlContents = gzinflate($buffer); - if ($this->htmlContents === false) - { - return false; - } - } - else - { - $this->htmlContents = $buffer; - } - return $this->statusCode === 200; - } -} - -$http = new Http(); -$http->request('http://www.wat.tv/get/5c7486d9d50dbb128eedf0c330a6c78f/488e17ba/2/FLV-320x240/99/77/1339977.flv','GET','getURL=1&c=1339977&d=1&member=1868631551&end=0&fs=0&cnt=0&version=WIN%209,0,124,0'); - -$cookie = explode(';', $http->httpHeaders['Set-Cookie'][0]); - -$h = $http->request($http->htmlContents, 'GET', '', $cookie[0], true); -file_put_contents('essai.mp4', $http->htmlContents); - +var_dump($momo = 'idiot'); ?> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |