From: <ara...@us...> - 2006-10-26 19:29:40
|
Revision: 39 http://svn.sourceforge.net/easybox-mod/?rev=39&view=rev Author: aragornis Date: 2006-10-26 12:29:22 -0700 (Thu, 26 Oct 2006) Log Message: ----------- Optimisation de la recherche des bandes annonce Correction des probl?\195?\168mes sur la playlist multiposte et des enregistrements de taille 0 Modified Paths: -------------- trunk/_framework/lib/get_info.php trunk/module/guidetv/tvprogram.php trunk/module/multiposte/add.php Modified: trunk/_framework/lib/get_info.php =================================================================== --- trunk/_framework/lib/get_info.php 2006-10-26 18:00:27 UTC (rev 38) +++ trunk/_framework/lib/get_info.php 2006-10-26 19:29:22 UTC (rev 39) @@ -1 +1 @@ -<? function info_allocine($file, $forced=false, $id=0){ global $USER; //Initialisation $res['synopsis'] = "Aucune information"; $file = ucwords($file); $db = sqlite_open($USER.'video.db', 0666, $mon_message_erreur); $result=sqlite_query($db, 'SELECT * FROM film WHERE name=\''.sqlite_escape_string($file).'\''); $rows = sqlite_num_rows($result); $db2 = sqlite_open($USER.'cache.db', 0666, $mon_message_erreur); $result2=sqlite_query($db2, 'SELECT * FROM film WHERE name = \''.sqlite_escape_string($file).'\' AND file LIKE \'%'.sqlite_escape_string($file).'%\''); $rows2 = sqlite_num_rows($result2); if($rows!="0" AND !$forced){ // R\xE9cup\xE9ration depuis la base de donn\xE9es des films $row = sqlite_fetch_array($result); $res['nom'] = $row['name']; $res['dir'] = $row['dir']; $res['critique_visiteurs'] = $row['critique_visiteurs']; $res['critique_presse'] = $row['critique_presse']; $res['image'] = $row['img']; $res['synopsis'] = $row['Synopsis']; $res['date_sortie'] = $row['sortie']; $res['realisateur'] = $row['realisateur']; $res['acteurs'] = $row['avec']; $res['nationalite'] = $row['film']; $res['genre'] = $row['genre']; $res['duree'] = $row['Duree']; $res['anne_prod'] = $row['production']; $res['ba'] = $row['ba']; $res['inbdd'] = true; }elseif($rows2!="0" AND !$forced){ // R\xE9cup\xE9ration depuis le cache allocin\xE9 $row = sqlite_fetch_array($result2); $res['nom'] = $row['name']; $res['critique_visiteurs'] = $row['critique_visiteurs']; $res['critique_presse'] = $row['critique_presse']; $res['image'] = $row['img']; $res['synopsis'] = $row['Synopsis']; $res['date_sortie'] = $row['sortie']; $res['realisateur'] = $row['realisateur']; $res['acteurs'] = $row['avec']; $res['nationalite'] = $row['film']; $res['genre'] = $row['genre']; $res['duree'] = $row['Duree']; $res['anne_prod'] = $row['production']; $res['ba'] = $row['ba']; $res['inbdd'] = false; }else{ if($id==0){ // Recherche de l'id sur Allocin\xE9 if($pagerecherche = @file_get_contents('http://www.allocine.fr/recherche/?motcle='.urlencode($file).'&f=3&rub=1')){ //Critique presse (nouvelle notation et ancienne) $ereg = '<h4><a href="\/film\/fichefilm_gen_cfilm=(.{1,7}).html" class="link1">(.{1,100})<\/a><\/h4>'; preg_match_all("/$ereg/s", $pagerecherche, $valeur); $mini = -1; $filebis = strtolower($file); foreach($valeur[1] as $key=>$val){ $leven = levenshtein($filebis, strtolower(strip_tags($valeur[2][$key]))); if($leven<$mini or $mini==-1){ $id = $valeur[1][$key]; $mini = $leven; } if($mini==0){ break; } } }else{ $res = "Erreur"; } } if($res != "Erreur"){ $res = info_allocineById($id); } $res['inbdd'] = false; sqlite_query($db2, 'DELETE FROM film WHERE name LIKE \'%'.sqlite_escape_string($file).'%\' OR file LIKE \'%'.sqlite_escape_string($file).'%\''); sqlite_query($db2, 'INSERT INTO film VALUES(NULL, \''.sqlite_escape_string($file).'\', \''.sqlite_escape_string($res['nom']).'\', \''.sqlite_escape_string($res['synopsis']).'\', \''.sqlite_escape_string($res['image']).'\' , \''.sqlite_escape_string($res['date_sortie']).'\' , \''.sqlite_escape_string($res['realisateur']).'\' , \''.sqlite_escape_string($res['acteurs']).'\' , \''.sqlite_escape_string($res['nationalite']).'\' , \''.sqlite_escape_string($res['genre']).'\' , \''.sqlite_escape_string($res['duree']).'\' , \''.sqlite_escape_string($res['anne_prod']).'\' , \''.sqlite_escape_string($res['critique_visiteurs']).'\' , \''.sqlite_escape_string($res['critique_presse']).'\' , \''.sqlite_escape_string($res['ba']).'\')'); } sqlite_close($db); sqlite_close($db2); RETURN $res; } // Fonction renvoyant les infos d'un film d\xE9sign\xE9 par son ID allocin\xE9 function info_allocineById($id){ //Initialisation $res['synopsis'] = "Aucune information"; if($filmrecherche = @file_get_contents('http://www.allocine.fr/film/fichefilm_gen_cfilm='.$id.'.html')) { //R\xE9cup\xE9ration du nom du film $ereg = '<title>(.{1,150})<\/title>'; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['nom'] = ucwords($valeur[1]); //Critique visiteurs $ereg = 'notepresse=(.{0,10})¬epublic=(.{0,10})" marginwidth'; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['critique_visiteurs'] = round(ereg_replace(",", ".", $valeur[1])); $res['critique_presse'] = round(ereg_replace(",", ".", $valeur[2])); //R\xE9cup\xE9ration de l'adresse de l'image $ereg = '<img src="http:\/\/a69.g.akamai.net\/n\/69\/10688\/v1\/img5.allocine.fr\/(.{1,70})" border="0" alt="" \/>'; preg_match("/$ereg/s", $filmrecherche, $valeur); if(trim($valeur[1])==''){ $res['image'] = 'http://a69.g.akamai.net/n/69/10688/v1/img5.allocine.fr/acmedia/skin/AlloCineV5/habillage/AffichetteAllocine.gif'; }else{ $res['image'] = 'http://a69.g.akamai.net/n/69/10688/v1/img5.allocine.fr/'.$valeur[1]; } //R\xE9cup\xE9ration du synopsis $ereg = '<td valign="top" style="padding:10 0 0 0"><div align="justify"><h4>(.{1,1000})<\/h4><\/div><\/td>'; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['synopsis'] = trim(strip_tags($valeur[1])); if($res['synopsis']=='') $res['synopsis'] = "Aucune information"; //R\xE9cup\xE9ration de la date $ereg = 'Date de sortie : <b>(.{1,30})<\/b>'; preg_match("/$ereg/s", $filmrecherche, $valeur); $monthes = array('Janvier'=>'1', 'F\xE9vrier'=>'2', 'Mars'=>'3', 'Avril'=>'4', 'Mai'=>'5', 'Juin'=>'6', 'Juillet'=>'7','Ao\xFBt'=>'8', 'Septembre'=>'9', 'Octobre'=>'10', 'Novembre'=>'11', 'D\xE9cembre'=>'12'); $expl=explode(" ",$valeur[1]); if(count($expl)==3) $res['date_sortie'] = mktime(0,0,0,$monthes[$expl[1]],$expl[0],$expl[2]); else $res['date_sortie'] = 2; //R\xE9cup\xE9ration du r\xE9alisateur $ereg = '<h4>R\xE9alis\xE9 par <a class="link1" href=(.{1,150})>(.{1,40})<\/a><\/h4> '; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['realisateur'] = $valeur[2]; //R\xE9cup\xE9ration des acteurs $ereg = '<h4>Avec(.{1,1000})<\/a><\/h4><br \/><div style="padding:2 0 2 0"><h4>Film'; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['acteurs'] = trim(strip_tags($valeur[1])); //Nationalit\xE9 $ereg = '<h4>Film (.{1,40}).<\/h4> <h4>Genre'; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['nationalite'] = $valeur[1]; //Genre $ereg = '<h4>Genre : (.{1,450})<\/a><\/h4><br \/><h4>'; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['genre'] = trim(strip_tags($valeur[1])); //Dur\xE9e $ereg = '<h4>Dur\xE9e : (.{1,15}).<\/h4> '; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['duree'] = $valeur[1]; //Ann\xE9e de production $ereg = '<h4>Ann\xE9e de production : (.{1,7})<\/h4>'; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['anne_prod'] = $valeur[1]; // R\xE9cup\xE9ration des bandes annonces $ba=array(); if($pagerecherche = @file_get_contents('http://www.cinemovies.fr/resultat_recherche.php?cherche='.urlencode($res['nom']))){ $ereg = '<a href="fiche_film.php\?IDfilm=(.{1,6})" class="bodyFont5">'; preg_match_all("/$ereg/s", $pagerecherche, $valeur); $str2=$valeur[1][0]; if($filmrecherche = @file_get_contents('http://www.cinemovies.fr/players/media.php?IDfilm='.$str2)){ if(PHP_OS == "WIN32" || PHP_OS == "WINNT"){ $ereg = 'align="absmiddle" width="25" height="11">(.{1,25})<\/b>(.{1,2200})windows player(.{1,1300})<\/table><\/td><\/tr><tr><td'; preg_match_all("/$ereg/s", $filmrecherche, $value); }else{ $ereg = 'align="absmiddle" width="25" height="11">(.{1,25})<\/b>(.{1,1200})real(.{1,2500})<\/table><\/td><\/tr><tr><td'; preg_match_all("/$ereg/s", $filmrecherche, $value); $value[3]=$value[2]; } foreach($value[1] as $key=>$video){ $ereg = 'hd.php\?IDBA=(.{1,6})&ID'; preg_match("/$ereg/s", $value[3][$key], $flux); if(isset($flux[1])){ $ba[]=array(trim($video),'HQ',$flux[1]); }else{ $ereg = 'IDBA=(.{1,6})\';"><img border="0" src="..\/images\/v2\/div\/petite_fleche.gif" width="6" height="6">haute r'; preg_match("/$ereg/s", $value[3][$key], $flux); if(isset($flux[1])) $ba[]=array(trim($video),'N',$flux[1]); } } } } foreach($ba as $bande){ $res['ba']=str_replace('Bande annonce','BA',$res['ba'].$bande[0]).','.$bande[1].','.$bande[2].';'; } RETURN $res; }else{ RETURN "Aucun film trouv\xE9"; } } function info_personnalite($acteur){ if($pagerecherche = @file_get_contents('http://www.allocine.fr/recherche/?motcle='.urlencode($acteur).'&f=3&rub=2')){ $ereg = '<h4><a href="\/personne\/fichepersonne_gen_cpersonne=(.{1,15})" class="link1'; preg_match("/$ereg/s", $pagerecherche, $valeur); if($acteurrecherche = @file_get_contents('http://www.allocine.fr/personne/fichepersonne_gen_cpersonne='.$valeur[1])){ //R\xE9cup\xE9ration du nom "officiel" de la personnalit\xE9 $ereg = '<title>(.{1,150})<\/title>'; preg_match("/$ereg/s", $acteurrecherche, $valeur); $res['nom'] = $valeur[1]; //R\xE9cup\xE9ration de la date de naissance $ereg = '<h4><div style="padding:10 0 0 0">(.{1,100})<\/h4><\/div><div style="padding:15 0 0 0">'; preg_match("/$ereg/s", $acteurrecherche, $valeur); $expl=explode(" ",trim($valeur[1])); foreach($expl as $exp){ $new.=trim($exp).' '; } $ereg = 'N\xE9 le (.{1,18}) \xE0 (.{1,150})<br \/>'; preg_match("/$ereg/s", trim($new), $valeur); $monthes = array('Janvier'=>'1', 'F\xE9vrier'=>'2', 'Mars'=>'3', 'Avril'=>'4', 'Mai'=>'5', 'Juin'=>'6', 'Juillet'=>'7','Ao\xFBt'=>'8', 'Septembre'=>'9', 'Octobre'=>'10', 'Novembre'=>'11', 'D\xE9cembre'=>'12'); $expl=explode(" ",trim($valeur[1])); if(count($expl)==3) $res['date_naissance'] = mktime(0,0,0,$monthes[$expl[1]],$expl[0],$expl[2]); else $res['date_naissance'] = 2; $res['lieu_naissance'] = $valeur[2]; // Photo de la personnalit\xE9 $ereg = '<td valign="top" style="padding:0 10 10 0" width="120"><img src="(.{1,200})" width="120" height="160" border="0">'; preg_match("/$ereg/s", $acteurrecherche, $valeur); $res['image'] = $valeur[1]; //R\xE9cup\xE9ration de la biographie de l'artiste $ereg = '<td colspan="2" style="padding:10 0 15 0"><div align="justify"><h4>(.{1,15000})<\/h4><\/div><\/td>'; preg_match("/$ereg/s", $acteurrecherche, $valeur); $res['biographie'] = trim(strip_tags($valeur[1])); //R\xE9cup\xE9ration du role de la personnalit\xE9 $ereg = '<div><h4><b>(.{1,250})<h4><div style="padding:10 0 0 0">'; preg_match("/$ereg/s", $acteurrecherche, $valeur); $res['statut'] = trim(strip_tags($valeur[1])); RETURN $res; }else{ RETURN 'erreur'; } }else{ RETURN 'erreur'; } } function get_info_dvdfr($filmrecherche){ //R\xE9cup\xE9ration du nom du film $ereg = '<div class="dvd_title">(.{1,150})<\/div>'; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['nom'] = ucwords($valeur[1]); //Critique visiteurs $res['critique_visiteurs'] = ""; //Critique presse (nouvelle notation et ancienne) $res['critique_presse'] = ""; //R\xE9cup\xE9ration de l'adresse de l'image $ereg= 'src="..\/images\/dvd\/(.{1,70})" width="200" height="280"'; $valeur[1]=""; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['image'] = 'http://www.dvdfr.com/images/dvd/'.$valeur[1]; //R\xE9cup\xE9ration du synopsis $pos1 = strpos($filmrecherche,'<div class="dvd_subtitle">Synopsis</div>'); $pos1 = strpos($filmrecherche,'<div class="dvd_text">', $pos1+strlen('<div class="dvd_subtitle">Synopsis</div>')); $pos1 += strlen('<div class="dvd_text">'); $pos2 = strpos($filmrecherche,'</div>', $pos1); $res['synopsis'] = trim(strip_tags(substr($filmrecherche, $pos1, $pos2-$pos1))); $res['synopsis'] = str_replace("\n", ' ', $res['synopsis']); if($res['synopsis']=='') $res['synopsis'] = "Aucune information"; //R\xE9cup\xE9ration de la date $pos1 = strpos($filmrecherche,'<div class="dvd_subtitle">Sorti le</div>'); $pos1 = strpos($filmrecherche,'<div class="dvd_text">', $pos1+strlen('<div class="dvd_subtitle">Sorti le</div>')); $pos1 += strlen('<div class="dvd_text">'); $pos2 = strpos($filmrecherche,'</div>', $pos1); $valeur[1] = trim(strip_tags(substr($filmrecherche, $pos1, $pos2-$pos1))); $monthes = array('janvier'=>'1', 'f\xE9vrier'=>'2', 'mars'=>'3', 'avril'=>'4', 'mai'=>'5', 'juin'=>'6', 'juillet'=>'7','ao\xFBt'=>'8', 'septembre'=>'9', 'octobre'=>'10', 'novembre'=>'11', 'd\xE9cembre'=>'12'); $expl=explode(" ",$valeur[1]); if(count($expl)==3) $res['date_sortie'] = mktime(0,0,0,$monthes[$expl[1]],$expl[0],$expl[2]); else $res['date_sortie'] = 2; //R\xE9cup\xE9ration du r\xE9alisateur $res['realisateur'] = ""; //R\xE9cup\xE9ration des acteurs $pos1 = strpos($filmrecherche,'<div class="dvd_subtitle">Avec...</div>'); if ($pos1>0){ $pos1 = strpos($filmrecherche,'<div class="dvd_text">', $pos1+strlen('<div class="dvd_subtitle">Avec...</div>')); $pos1 += strlen('<div class="dvd_text">'); $pos2 = strpos($filmrecherche,'</div>', $pos1); $res['acteurs'] = trim(strip_tags(substr($filmrecherche, $pos1, $pos2-$pos1))); } //Nationalit\xE9 $res['nationalite'] = ""; //Genre $pos1 = strpos($filmrecherche,'<div class="dvd_categorie">'); while ($pos1>0){ $pos1 = strpos($filmrecherche,'<A class="home_a"', $pos1); if ($pos1>0) { $pos1 = strpos($filmrecherche,'>', $pos1); $pos1 += 1; $pos2 = strpos($filmrecherche,'</A>', $pos1); if ($res['genre']!="") $res['genre'] = $res['genre']." "; $res['genre'] = $res['genre'].trim(strip_tags(substr($filmrecherche, $pos1, $pos2-$pos1))); $pos1 = $pos2; } } //Dur\xE9e $ereg = '<td><img alt="Dur\xE9e" title="Dur\xE9e" src="..\/images\/duree.gif" width="32" height="14" align="absmiddle"><\/td>(.{1,100})<td>(.{1,50})<\/td>'; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['duree'] = $valeur[2]; //Ann\xE9e de production $res['anne_prod'] = ""; $res['inbdd'] = false; RETURN $res; } function info_dvdfrById($fileid){ global $USER; //Initialisation $res['synopsis'] = "Aucune information"; if($filmrecherche = @file_get_contents('http://www.dvdfr.com/dvd/dvd.php?id='.$fileid)) { $res=get_info_dvdfr($filmrecherche); }else{ //$res = "Erreur"; $res['synopsis']= 'http://www.dvdfr.com/dvd/dvd.php?id='.$fileid."\n".$pagerecherche; } RETURN $res; } ?> \ No newline at end of file +<? function info_allocine($file, $forced=false, $id=0){ global $USER; //Initialisation $res['synopsis'] = "Aucune information"; $file = ucwords($file); $db = sqlite_open($USER.'video.db', 0666, $mon_message_erreur); $result=sqlite_query($db, 'SELECT * FROM film WHERE name=\''.sqlite_escape_string($file).'\''); $rows = sqlite_num_rows($result); $db2 = sqlite_open($USER.'cache.db', 0666, $mon_message_erreur); $result2=sqlite_query($db2, 'SELECT * FROM film WHERE name = \''.sqlite_escape_string($file).'\' AND file LIKE \'%'.sqlite_escape_string($file).'%\''); $rows2 = sqlite_num_rows($result2); if($rows!="0" AND !$forced){ // R\xE9cup\xE9ration depuis la base de donn\xE9es des films $row = sqlite_fetch_array($result); $res['nom'] = $row['name']; $res['dir'] = $row['dir']; $res['critique_visiteurs'] = $row['critique_visiteurs']; $res['critique_presse'] = $row['critique_presse']; $res['image'] = $row['img']; $res['synopsis'] = $row['Synopsis']; $res['date_sortie'] = $row['sortie']; $res['realisateur'] = $row['realisateur']; $res['acteurs'] = $row['avec']; $res['nationalite'] = $row['film']; $res['genre'] = $row['genre']; $res['duree'] = $row['Duree']; $res['anne_prod'] = $row['production']; $res['ba'] = $row['ba']; $res['inbdd'] = true; }elseif($rows2!="0" AND !$forced){ // R\xE9cup\xE9ration depuis le cache allocin\xE9 $row = sqlite_fetch_array($result2); $res['nom'] = $row['name']; $res['critique_visiteurs'] = $row['critique_visiteurs']; $res['critique_presse'] = $row['critique_presse']; $res['image'] = $row['img']; $res['synopsis'] = $row['Synopsis']; $res['date_sortie'] = $row['sortie']; $res['realisateur'] = $row['realisateur']; $res['acteurs'] = $row['avec']; $res['nationalite'] = $row['film']; $res['genre'] = $row['genre']; $res['duree'] = $row['Duree']; $res['anne_prod'] = $row['production']; $res['ba'] = $row['ba']; $res['inbdd'] = false; }else{ if($id==0){ // Recherche de l'id sur Allocin\xE9 if($pagerecherche = @file_get_contents('http://www.allocine.fr/recherche/?motcle='.urlencode($file).'&f=3&rub=1')){ //Critique presse (nouvelle notation et ancienne) $ereg = '<h4><a href="\/film\/fichefilm_gen_cfilm=(.{1,7}).html" class="link1">(.{1,100})<\/a><\/h4>'; preg_match_all("/$ereg/s", $pagerecherche, $valeur); $mini = -1; $filebis = strtolower($file); foreach($valeur[1] as $key=>$val){ $leven = levenshtein($filebis, strtolower(strip_tags($valeur[2][$key]))); if($leven<$mini or $mini==-1){ $id = $valeur[1][$key]; $mini = $leven; } if($mini==0){ break; } } }else{ $res = "Erreur"; } } if($res != "Erreur"){ $res = info_allocineById($id); } $res['inbdd'] = false; sqlite_query($db2, 'DELETE FROM film WHERE name LIKE \'%'.sqlite_escape_string($file).'%\' OR file LIKE \'%'.sqlite_escape_string($file).'%\''); sqlite_query($db2, 'INSERT INTO film VALUES(NULL, \''.sqlite_escape_string($file).'\', \''.sqlite_escape_string($res['nom']).'\', \''.sqlite_escape_string($res['synopsis']).'\', \''.sqlite_escape_string($res['image']).'\' , \''.sqlite_escape_string($res['date_sortie']).'\' , \''.sqlite_escape_string($res['realisateur']).'\' , \''.sqlite_escape_string($res['acteurs']).'\' , \''.sqlite_escape_string($res['nationalite']).'\' , \''.sqlite_escape_string($res['genre']).'\' , \''.sqlite_escape_string($res['duree']).'\' , \''.sqlite_escape_string($res['anne_prod']).'\' , \''.sqlite_escape_string($res['critique_visiteurs']).'\' , \''.sqlite_escape_string($res['critique_presse']).'\' , \''.sqlite_escape_string($res['ba']).'\')'); } sqlite_close($db); sqlite_close($db2); RETURN $res; } // Fonction renvoyant les infos d'un film d\xE9sign\xE9 par son ID allocin\xE9 function info_allocineById($id){ //Initialisation $res['synopsis'] = "Aucune information"; if($filmrecherche = @file_get_contents('http://www.allocine.fr/film/fichefilm_gen_cfilm='.$id.'.html')) { //R\xE9cup\xE9ration du nom du film $ereg = '<title>(.{1,150})<\/title>'; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['nom'] = ucwords($valeur[1]); //Critique visiteurs $ereg = 'notepresse=(.{0,10})¬epublic=(.{0,10})" marginwidth'; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['critique_visiteurs'] = round(ereg_replace(",", ".", $valeur[1])); $res['critique_presse'] = round(ereg_replace(",", ".", $valeur[2])); //R\xE9cup\xE9ration de l'adresse de l'image $ereg = '<img src="http:\/\/a69.g.akamai.net\/n\/69\/10688\/v1\/img5.allocine.fr\/(.{1,70})" border="0" alt="" \/>'; preg_match("/$ereg/s", $filmrecherche, $valeur); if(trim($valeur[1])==''){ $res['image'] = 'http://a69.g.akamai.net/n/69/10688/v1/img5.allocine.fr/acmedia/skin/AlloCineV5/habillage/AffichetteAllocine.gif'; }else{ $res['image'] = 'http://a69.g.akamai.net/n/69/10688/v1/img5.allocine.fr/'.$valeur[1]; } //R\xE9cup\xE9ration du synopsis $ereg = '<td valign="top" style="padding:10 0 0 0"><div align="justify"><h4>(.{1,1000})<\/h4><\/div><\/td>'; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['synopsis'] = trim(strip_tags($valeur[1])); if($res['synopsis']=='') $res['synopsis'] = "Aucune information"; //R\xE9cup\xE9ration de la date $ereg = 'Date de sortie : <b>(.{1,30})<\/b>'; preg_match("/$ereg/s", $filmrecherche, $valeur); $monthes = array('Janvier'=>'1', 'F\xE9vrier'=>'2', 'Mars'=>'3', 'Avril'=>'4', 'Mai'=>'5', 'Juin'=>'6', 'Juillet'=>'7','Ao\xFBt'=>'8', 'Septembre'=>'9', 'Octobre'=>'10', 'Novembre'=>'11', 'D\xE9cembre'=>'12'); $expl=explode(" ",$valeur[1]); if(count($expl)==3) $res['date_sortie'] = mktime(0,0,0,$monthes[$expl[1]],$expl[0],$expl[2]); else $res['date_sortie'] = 2; //R\xE9cup\xE9ration du r\xE9alisateur $ereg = '<h4>R\xE9alis\xE9 par <a class="link1" href=(.{1,150})>(.{1,40})<\/a><\/h4><h4> '; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['realisateur'] = $valeur[2]; //R\xE9cup\xE9ration des acteurs $ereg = '<h4>Avec(.{1,1000})<\/a><\/h4><\/div><div style="padding: 2 0 2 0;"><h4>Film'; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['acteurs'] = trim(strip_tags($valeur[1])); //Nationalit\xE9 $ereg = '<h4>Film (.{1,40}). <\/h4><h4>Genre'; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['nationalite'] = $valeur[1]; //Genre $ereg = '<h4>Genre : (.{1,450})<\/a><\/h4><\/div><div style="padding: 2 0 2 0;">'; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['genre'] = trim(strip_tags($valeur[1])); //Dur\xE9e $ereg = '<h4>Dur\xE9e : (.{1,15}). <\/h4><h4>'; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['duree'] = $valeur[1]; //Ann\xE9e de production $ereg = '<h4>Ann\xE9e de production : (.{1,7})<\/h4>'; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['anne_prod'] = $valeur[1]; // R\xE9cup\xE9ration des bandes annonces $ba=array(); if($pagerecherche = @file_get_contents('http://www.cinemovies.fr/resultat_recherche.php?cherche='.urlencode($res['nom']))){ $ereg = '<a href="fiche_film.php\?IDfilm=(.{1,6})" class="bodyFont5"><b>(.{1,300})<\/b><\/a> '; preg_match_all("/$ereg/s", $pagerecherche, $valeur); $mini = -1; $filebis = strtolower($res['nom']); foreach($valeur[1] as $key=>$val){ $leven = levenshtein($filebis, strtolower(strip_tags($valeur[2][$key]))); if($leven<$mini or $mini==-1){ $id = $valeur[1][$key]; $mini = $leven; } if($mini==0){ break; } } if($filmrecherche = @file_get_contents('http://www.cinemovies.fr/players/media.php?IDfilm='.$id)){ if(PHP_OS == "WIN32" || PHP_OS == "WINNT"){ $ereg = 'align="absmiddle" width="25" height="11">(.{1,25})<\/b>(.{1,2200})windows player(.{1,1300})<\/table><\/td><\/tr><tr><td'; preg_match_all("/$ereg/s", $filmrecherche, $value); }else{ $ereg = 'align="absmiddle" width="25" height="11">(.{1,25})<\/b>(.{1,1200})real(.{1,2500})<\/table><\/td><\/tr><tr><td'; preg_match_all("/$ereg/s", $filmrecherche, $value); $value[3]=$value[2]; } foreach($value[1] as $key=>$video){ $ereg = 'hd.php\?IDBA=(.{1,6})&ID'; preg_match("/$ereg/s", $value[3][$key], $flux); if(isset($flux[1])){ $ba[]=array(trim($video),'HQ',$flux[1]); }else{ $ereg = 'IDBA=(.{1,6})\';"><img border="0" src="..\/images\/v2\/div\/petite_fleche.gif" width="6" height="6">haute r'; preg_match("/$ereg/s", $value[3][$key], $flux); if(isset($flux[1])) $ba[]=array(trim($video),'N',$flux[1]); } } } } foreach($ba as $bande){ $res['ba']=str_replace('Bande annonce','BA',$res['ba'].$bande[0]).','.$bande[1].','.$bande[2].';'; } RETURN $res; }else{ RETURN "Aucun film trouv\xE9"; } } function info_personnalite($acteur){ if($pagerecherche = @file_get_contents('http://www.allocine.fr/recherche/?motcle='.urlencode($acteur).'&f=3&rub=2')){ $ereg = '<h4><a href="\/personne\/fichepersonne_gen_cpersonne=(.{1,15})" class="link1'; preg_match("/$ereg/s", $pagerecherche, $valeur); if($acteurrecherche = @file_get_contents('http://www.allocine.fr/personne/fichepersonne_gen_cpersonne='.$valeur[1])){ //R\xE9cup\xE9ration du nom "officiel" de la personnalit\xE9 $ereg = '<title>(.{1,150})<\/title>'; preg_match("/$ereg/s", $acteurrecherche, $valeur); $res['nom'] = $valeur[1]; //R\xE9cup\xE9ration de la date de naissance $ereg = '<h4><div style="padding:10 0 0 0">(.{1,100})<\/h4><\/div><div style="padding:15 0 0 0">'; preg_match("/$ereg/s", $acteurrecherche, $valeur); $expl=explode(" ",trim($valeur[1])); foreach($expl as $exp){ $new.=trim($exp).' '; } $ereg = 'N\xE9 le (.{1,18}) \xE0 (.{1,150})<br \/>'; preg_match("/$ereg/s", trim($new), $valeur); $monthes = array('Janvier'=>'1', 'F\xE9vrier'=>'2', 'Mars'=>'3', 'Avril'=>'4', 'Mai'=>'5', 'Juin'=>'6', 'Juillet'=>'7','Ao\xFBt'=>'8', 'Septembre'=>'9', 'Octobre'=>'10', 'Novembre'=>'11', 'D\xE9cembre'=>'12'); $expl=explode(" ",trim($valeur[1])); if(count($expl)==3) $res['date_naissance'] = mktime(0,0,0,$monthes[$expl[1]],$expl[0],$expl[2]); else $res['date_naissance'] = 2; $res['lieu_naissance'] = $valeur[2]; // Photo de la personnalit\xE9 $ereg = '<td valign="top" style="padding:0 10 10 0" width="120"><img src="(.{1,200})" width="120" height="160" border="0">'; preg_match("/$ereg/s", $acteurrecherche, $valeur); $res['image'] = $valeur[1]; //R\xE9cup\xE9ration de la biographie de l'artiste $ereg = '<td colspan="2" style="padding:10 0 15 0"><div align="justify"><h4>(.{1,15000})<\/h4><\/div><\/td>'; preg_match("/$ereg/s", $acteurrecherche, $valeur); $res['biographie'] = trim(strip_tags($valeur[1])); //R\xE9cup\xE9ration du role de la personnalit\xE9 $ereg = '<div><h4><b>(.{1,250})<h4><div style="padding:10 0 0 0">'; preg_match("/$ereg/s", $acteurrecherche, $valeur); $res['statut'] = trim(strip_tags($valeur[1])); RETURN $res; }else{ RETURN 'erreur'; } }else{ RETURN 'erreur'; } } function get_info_dvdfr($filmrecherche){ //R\xE9cup\xE9ration du nom du film $ereg = '<div class="dvd_title">(.{1,150})<\/div>'; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['nom'] = ucwords($valeur[1]); //Critique visiteurs $res['critique_visiteurs'] = ""; //Critique presse (nouvelle notation et ancienne) $res['critique_presse'] = ""; //R\xE9cup\xE9ration de l'adresse de l'image $ereg= 'src="..\/images\/dvd\/(.{1,70})" width="200" height="280"'; $valeur[1]=""; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['image'] = 'http://www.dvdfr.com/images/dvd/'.$valeur[1]; //R\xE9cup\xE9ration du synopsis $pos1 = strpos($filmrecherche,'<div class="dvd_subtitle">Synopsis</div>'); $pos1 = strpos($filmrecherche,'<div class="dvd_text">', $pos1+strlen('<div class="dvd_subtitle">Synopsis</div>')); $pos1 += strlen('<div class="dvd_text">'); $pos2 = strpos($filmrecherche,'</div>', $pos1); $res['synopsis'] = trim(strip_tags(substr($filmrecherche, $pos1, $pos2-$pos1))); $res['synopsis'] = str_replace("\n", ' ', $res['synopsis']); if($res['synopsis']=='') $res['synopsis'] = "Aucune information"; //R\xE9cup\xE9ration de la date $pos1 = strpos($filmrecherche,'<div class="dvd_subtitle">Sorti le</div>'); $pos1 = strpos($filmrecherche,'<div class="dvd_text">', $pos1+strlen('<div class="dvd_subtitle">Sorti le</div>')); $pos1 += strlen('<div class="dvd_text">'); $pos2 = strpos($filmrecherche,'</div>', $pos1); $valeur[1] = trim(strip_tags(substr($filmrecherche, $pos1, $pos2-$pos1))); $monthes = array('janvier'=>'1', 'f\xE9vrier'=>'2', 'mars'=>'3', 'avril'=>'4', 'mai'=>'5', 'juin'=>'6', 'juillet'=>'7','ao\xFBt'=>'8', 'septembre'=>'9', 'octobre'=>'10', 'novembre'=>'11', 'd\xE9cembre'=>'12'); $expl=explode(" ",$valeur[1]); if(count($expl)==3) $res['date_sortie'] = mktime(0,0,0,$monthes[$expl[1]],$expl[0],$expl[2]); else $res['date_sortie'] = 2; //R\xE9cup\xE9ration du r\xE9alisateur $res['realisateur'] = ""; //R\xE9cup\xE9ration des acteurs $pos1 = strpos($filmrecherche,'<div class="dvd_subtitle">Avec...</div>'); if ($pos1>0){ $pos1 = strpos($filmrecherche,'<div class="dvd_text">', $pos1+strlen('<div class="dvd_subtitle">Avec...</div>')); $pos1 += strlen('<div class="dvd_text">'); $pos2 = strpos($filmrecherche,'</div>', $pos1); $res['acteurs'] = trim(strip_tags(substr($filmrecherche, $pos1, $pos2-$pos1))); } //Nationalit\xE9 $res['nationalite'] = ""; //Genre $pos1 = strpos($filmrecherche,'<div class="dvd_categorie">'); while ($pos1>0){ $pos1 = strpos($filmrecherche,'<A class="home_a"', $pos1); if ($pos1>0) { $pos1 = strpos($filmrecherche,'>', $pos1); $pos1 += 1; $pos2 = strpos($filmrecherche,'</A>', $pos1); if ($res['genre']!="") $res['genre'] = $res['genre']." "; $res['genre'] = $res['genre'].trim(strip_tags(substr($filmrecherche, $pos1, $pos2-$pos1))); $pos1 = $pos2; } } //Dur\xE9e $ereg = '<td><img alt="Dur\xE9e" title="Dur\xE9e" src="..\/images\/duree.gif" width="32" height="14" align="absmiddle"><\/td>(.{1,100})<td>(.{1,50})<\/td>'; preg_match("/$ereg/s", $filmrecherche, $valeur); $res['duree'] = $valeur[2]; //Ann\xE9e de production $res['anne_prod'] = ""; $res['inbdd'] = false; RETURN $res; } function info_dvdfrById($fileid){ global $USER; //Initialisation $res['synopsis'] = "Aucune information"; if($filmrecherche = @file_get_contents('http://www.dvdfr.com/dvd/dvd.php?id='.$fileid)) { $res=get_info_dvdfr($filmrecherche); }else{ //$res = "Erreur"; $res['synopsis']= 'http://www.dvdfr.com/dvd/dvd.php?id='.$fileid."\n".$pagerecherche; } RETURN $res; } ?> \ No newline at end of file Modified: trunk/module/guidetv/tvprogram.php =================================================================== --- trunk/module/guidetv/tvprogram.php 2006-10-26 18:00:27 UTC (rev 38) +++ trunk/module/guidetv/tvprogram.php 2006-10-26 19:29:22 UTC (rev 39) @@ -1 +1 @@ -<?php $RACINE_REP = "../../"; require($RACINE_REP.'_framework/framework.php'); if(isset($_GET['min'])){ $min = $_GET['min']; }else{ $min = 0; } if(filemtime('epg.xml')+86400<time()){ $value = file_get_contents('http://easybobox.free.fr/epg.xml'); file_put_contents('epg.xml', $value); } $contenu = @file_get_contents ($USER.'multiposte.m3u'); $ereg = '#EXTINF:0,(.{1,3}) - (.{1,40})rtsp:\/\/mafreebox.freebox.fr\/freeboxtv\/(.{1,3})'; preg_match_all("/$ereg/s", $contenu, $valeur); function search_chan($chan){ global $USER, $valeur; if($chan=='tf1' OR $chan=='canalplus'){ $CHAINE=array('id'=>'inc', 'nom'=>$chan, 'num'=>'inc', 'ico'=>$chan.'.gif'); }else{ $id=0; $chgmt=intval(abs(count($valeur[1]) / 2)); foreach($valeur[2] as $key => $value){ $ico = utf8_decode($valeur[2][$key]); if (eregi("France 3",$valeur[2][$key])){ $ico = "France 3"; }elseif (eregi("nantes",$valeur[2][$key])){ $ico = "Telenantes_Nantes 7"; } if(eregi($chan,str_replace(' ','',trim(utf8_decode($valeur[2][$key]))))){ $CHAINE=array('id'=>trim($valeur[1][$key]), 'nom'=>trim(utf8_decode($valeur[2][$key])), 'num'=>trim($valeur[3][$key]), 'ico'=>trim(str_replace(array('>',' !',' ','\xE9','\xEE','\xF4'),array('','','','e','i','o'),$ico)).'.gif'); } } } return $CHAINE; } include "class.phxmltvparser.php"; include "class.collection.php"; include_once "phxpconfig.php"; /* function getLink($prgItem) { $title = $prgItem->title; $title = eregi_replace('\xE4', 'ae', $title); $title = eregi_replace('\xF6', 'oe', $title); $title = eregi_replace('\xFC', 'ue', $title); $title = eregi_replace('\xEE', 'ss', $title); $title = ucwords($title); //ucase first letter $title = eregi_replace("[^a-z0-9_]","",$title); //strip all special chars $paras = '&chan=' . $prgItem->channel; $paras .= '&date=' . $prgItem->date; $paras .= '&start=' . htmlspecialchars($prgItem->formatStartTime()); $paras .= '&stop=' . htmlspecialchars($prgItem->formatStopTime()); $paras .= '&title=' . $title; $call = '<A class="prg_title" href="' . PRG_CALL . $paras . '" name="record" target="blank">' . $prgItem->title . '</A>'; return($call); } // view ordered by channel function dump($prgObj, $date, $catFilter) { echo '<div class="prg_date">' . substr($date,6,2) . '.' . substr($date,4,2) . '</div>'; echo "<table>"; foreach ($prgObj->arrData as $channel => $arrItems) { echo "<tr>"; echo '<td class="prg_channel">'; echo "$channel<br>"; echo "</td>"; foreach ($arrItems as $start => $item) { if(strlen($catFilter) > 0) $hit = eregi($catFilter, $item->category); else $hit = true; if($hit) { echo '<td class="prg_cell">'; $title = $item->title; $title = eregi_replace('\xE4', 'ae', $title); $title = eregi_replace('\xF6', 'oe', $title); $title = eregi_replace('\xFC', 'ue', $title); $title = eregi_replace('\xEE', 'ss', $title); $title =ucwords($title); //ucase first letter $title = eregi_replace("[^a-z0-9_]","",$title); //strip all special characters $paras = '&chan=' . $channel; $paras .= '&date=' . $item->date; $paras .= '&start=' . htmlspecialchars($item->formatStartTime()); $paras .= '&stop=' . htmlspecialchars($item->formatStopTime()); $paras .= '&title=' . $title; $call = '<A class="prg_title" href="neu.php?action=show' . $paras . '" name="record" target="blank">' . $item->title . '</A>'; echo $call . "<br>"; echo '<div class="prg_subtitle">' . $item->subtitle . '</div>'; echo '<div class="prg_extra_data">'; echo $item->formatStartTime() . "-" . $item->formatStopTime() . "<br>"; echo $item->category ; echo '</div>'; echo '<div class="prg_desc">'; echo $item->desc; echo '</div>'; echo "</td>"; } } echo "</tr>"; } echo "</table>"; } */ //=================================================================================================================================================== //--- main function --- //=================================================================================================================================================== $xml = xml_parser_create(); $xtvp = new PHxmltvParser; //$xtvp->setDate($date); xml_set_object($xml, $xtvp); xml_set_element_handler($xml, 'start_element', 'end_element'); xml_set_character_data_handler($xml, 'character_data'); xml_parser_set_option($xml, XML_OPTION_CASE_FOLDING, false); // $file = "../programm.xml"; // $file = "test.xml"; //$file="http://www.tuyaux-turf.com/divers/TVguide.xml"; $file="epg.xml"; $fp = fopen($file, 'r') or die("unable to open file!"); while($data = fread($fp, 4096)) { xml_parse($xml, $data, feof($fp)) or die("unable to parse data!"); } fclose($fp); xml_parser_free($xml); //------------------------ $PrgDataObj = $xtvp->getPrgDataObj(); //dump($PrgDataObj, $date, $catFilter); $channels = new collection; $dates = new collection; $categories = new collection; //echo "$PrgDataObj->idxMax<br>"; $prgitem = $PrgDataObj->getFirst(); while(!is_null($prgitem)) { $channels->add($prgitem->channel); $dates->add($prgitem->date); $categories->add($prgitem->category); $prgitem = $PrgDataObj->getNext(); } $channels->sort(); $dates->sort(); $categories->sort(); $PrgDataObj->orderByDateTime(); $firstdate = $dates->getFirst(); if(isset($_GET['cboDate']) AND isset($_GET['cboCateg'])){ $dat = $dates->getFirst(); while(!is_null($dat)) { if($dat == $_GET['cboDate'] || $_GET['cboDate'] == OPT_ALL){ $prgitem = $PrgDataObj->getFirst(); while(!is_null($prgitem)) { if($prgitem->date == $dat && ($prgitem->channel == $_GET['cboCateg'] || $_GET['cboCateg'] == OPT_ALL)) { $EMISSIONS[] = array('debut'=>$prgitem->start, 'fin'=>$prgitem->stop, 'titre'=>utf8_decode($prgitem->title), 'specialid'=>md5(utf8_decode($prgitem->title).$prgitem->start.$prgitem->stop.$prgitem->channel)); } if(md5(utf8_decode($prgitem->title).$prgitem->start.$prgitem->stop.$prgitem->channel) == $_GET['indic_name']){ $EMISSION=array('debut'=>$prgitem->start, 'fin'=>$prgitem->stop, 'titre'=>utf8_decode($prgitem->title), 'soustitre'=>utf8_decode($prgitem->subtitle), 'description'=>utf8_decode($prgitem->desc), 'categorie'=>utf8_decode($prgitem->category), 'episode'=>utf8_decode($prgitem->episode), 'realisateur'=>utf8_decode($prgitem->director), 'duree'=>utf8_decode($prgitem->lenght), 'acteur'=>utf8_decode($prgitem->acteur), 'note'=>utf8_decode($prgitem->note), 'icone'=>utf8_decode($prgitem->icon), 'presentateur'=>utf8_decode($prgitem->presentateur)); } $prgitem = $PrgDataObj->getNext(); } } $dat = $dates->getNext(); } }else{ $categ = $channels->getFirst(); while(!is_null($categ)) { $info_chaine = search_chan($categ); $CHAINES[]=array('nom'=>$categ, 'indicatif'=>$categ, 'ico'=>$info_chaine['ico'], 'recordable'=>true); $categ = $channels->getNext(); } } // Cr\xE9e la liste des jours disponibles $dat = $dates->getFirst(); while(!is_null($dat)) { $DATES[]=$dat; $dat = $dates->getNext(); } // Fonction permettant de transformer les dates comme il faut function rebuild_date($date){ $year = substr($date, 0, 4); $month = substr($date, 4, 2); $day = substr($date, 6, 2); return($day.'/'.$month.'/'.$year); } $smarty->assign('cboDate',$_GET['cboDate']); $smarty->assign('cboCateg',$_GET['cboCateg']); $smarty->assign('MIN',$_GET['min']); if(isset($EMISSION)){ $info_chaine = search_chan($_GET['cboCateg']); $smarty->assign('info_chaine',$info_chaine); $LINK['red'] = 'tvprogram.php?cboDate='.$_GET['cboDate'].'&cboCateg='.urlencode($_GET['cboCateg']).'&min='.$min; $smarty->assign('TITRE','Programme t\xE9l\xE9 - '.urldecode($_GET['cboCateg']).' - '.date('d/m/Y', $_GET['cboDate'])); $smarty->assign('EMISSION',$EMISSION); $smarty->assign('CONTENT',$smarty->fetch('guidetv.tpl')); }elseif(isset($EMISSIONS)) { $info_chaine = search_chan($_GET['cboCateg']); $smarty->assign('info_chaine',$info_chaine); $LINK['red'] = 'tvprogram.php'; foreach($DATES as $dat_new){ $MENU_ALT[] = array('lien'=>'tvprogram.php?cboDate='.$dat_new.'&cboCateg='.$_GET['cboCateg'], 'nom'=>date('d/m/Y', $dat_new), 'selected'=>$dat_new==$_GET['cboDate']); } $year = substr($_GET['cboDate'], 0, 4); $month = substr($_GET['cboDate'], 4, 2); $day = substr($_GET['cboDate'], 6, 2); $smarty->assign('TITRE','Programme t\xE9l\xE9 - '.$_GET['cboCateg'].' - '.date('d/m/Y', $_GET['cboDate'])); $smarty->assign('EMISSIONS',$EMISSIONS); $smarty->assign('CONTENT',$smarty->fetch('guidetv.tpl')); }else{ $smarty->assign('DATE',$firstdate); $smarty->assign('CHAINE',$CHAINES); $smarty->assign('CONTENT',$smarty->fetch('guidetv.tpl')); } $smarty->display('interface.tpl'); ?> \ No newline at end of file +<?php $RACINE_REP = "../../"; require($RACINE_REP.'_framework/framework.php'); if(isset($_GET['min'])){ $min = $_GET['min']; }else{ $min = 0; } if(filemtime('epg.xml')+86400<time()){ $value = file_get_contents('http://easybobox.free.fr/epg.xml'); file_put_contents('epg.xml', $value); } $contenu = @file_get_contents ($USER.'multiposte.m3u'); $ereg = '#EXTINF:0,(.{1,3}) - (.{1,40})rtsp:\/\/mafreebox.freebox.fr\/freeboxtv\/s?t?r?e?a?m?\??i?d?=?(.{1,3})'; preg_match_all("/$ereg/s", $contenu, $valeur); function search_chan($chan){ global $USER, $valeur; if($chan=='tf1' OR $chan=='canalplus'){ $CHAINE=array('id'=>'inc', 'nom'=>$chan, 'num'=>'inc', 'ico'=>$chan.'.gif'); }else{ $id=0; $chgmt=intval(abs(count($valeur[1]) / 2)); foreach($valeur[2] as $key => $value){ $ico = utf8_decode($valeur[2][$key]); if (eregi("France 3",$valeur[2][$key])){ $ico = "France 3"; }elseif (eregi("nantes",$valeur[2][$key])){ $ico = "Telenantes_Nantes 7"; } if(eregi($chan,str_replace(' ','',trim(utf8_decode($valeur[2][$key]))))){ $CHAINE=array('id'=>trim($valeur[1][$key]), 'nom'=>trim(utf8_decode($valeur[2][$key])), 'num'=>trim($valeur[3][$key]), 'ico'=>trim(str_replace(array('>',' !',' ','\xE9','\xEE','\xF4'),array('','','','e','i','o'),$ico)).'.gif'); } } } return $CHAINE; } include "class.phxmltvparser.php"; include "class.collection.php"; include_once "phxpconfig.php"; /* function getLink($prgItem) { $title = $prgItem->title; $title = eregi_replace('\xE4', 'ae', $title); $title = eregi_replace('\xF6', 'oe', $title); $title = eregi_replace('\xFC', 'ue', $title); $title = eregi_replace('\xEE', 'ss', $title); $title = ucwords($title); //ucase first letter $title = eregi_replace("[^a-z0-9_]","",$title); //strip all special chars $paras = '&chan=' . $prgItem->channel; $paras .= '&date=' . $prgItem->date; $paras .= '&start=' . htmlspecialchars($prgItem->formatStartTime()); $paras .= '&stop=' . htmlspecialchars($prgItem->formatStopTime()); $paras .= '&title=' . $title; $call = '<A class="prg_title" href="' . PRG_CALL . $paras . '" name="record" target="blank">' . $prgItem->title . '</A>'; return($call); } // view ordered by channel function dump($prgObj, $date, $catFilter) { echo '<div class="prg_date">' . substr($date,6,2) . '.' . substr($date,4,2) . '</div>'; echo "<table>"; foreach ($prgObj->arrData as $channel => $arrItems) { echo "<tr>"; echo '<td class="prg_channel">'; echo "$channel<br>"; echo "</td>"; foreach ($arrItems as $start => $item) { if(strlen($catFilter) > 0) $hit = eregi($catFilter, $item->category); else $hit = true; if($hit) { echo '<td class="prg_cell">'; $title = $item->title; $title = eregi_replace('\xE4', 'ae', $title); $title = eregi_replace('\xF6', 'oe', $title); $title = eregi_replace('\xFC', 'ue', $title); $title = eregi_replace('\xEE', 'ss', $title); $title =ucwords($title); //ucase first letter $title = eregi_replace("[^a-z0-9_]","",$title); //strip all special characters $paras = '&chan=' . $channel; $paras .= '&date=' . $item->date; $paras .= '&start=' . htmlspecialchars($item->formatStartTime()); $paras .= '&stop=' . htmlspecialchars($item->formatStopTime()); $paras .= '&title=' . $title; $call = '<A class="prg_title" href="neu.php?action=show' . $paras . '" name="record" target="blank">' . $item->title . '</A>'; echo $call . "<br>"; echo '<div class="prg_subtitle">' . $item->subtitle . '</div>'; echo '<div class="prg_extra_data">'; echo $item->formatStartTime() . "-" . $item->formatStopTime() . "<br>"; echo $item->category ; echo '</div>'; echo '<div class="prg_desc">'; echo $item->desc; echo '</div>'; echo "</td>"; } } echo "</tr>"; } echo "</table>"; } */ //=================================================================================================================================================== //--- main function --- //=================================================================================================================================================== $xml = xml_parser_create(); $xtvp = new PHxmltvParser; //$xtvp->setDate($date); xml_set_object($xml, $xtvp); xml_set_element_handler($xml, 'start_element', 'end_element'); xml_set_character_data_handler($xml, 'character_data'); xml_parser_set_option($xml, XML_OPTION_CASE_FOLDING, false); // $file = "../programm.xml"; // $file = "test.xml"; //$file="http://www.tuyaux-turf.com/divers/TVguide.xml"; $file="epg.xml"; $fp = fopen($file, 'r') or die("unable to open file!"); while($data = fread($fp, 4096)) { xml_parse($xml, $data, feof($fp)) or die("unable to parse data!"); } fclose($fp); xml_parser_free($xml); //------------------------ $PrgDataObj = $xtvp->getPrgDataObj(); //dump($PrgDataObj, $date, $catFilter); $channels = new collection; $dates = new collection; $categories = new collection; //echo "$PrgDataObj->idxMax<br>"; $prgitem = $PrgDataObj->getFirst(); while(!is_null($prgitem)) { $channels->add($prgitem->channel); $dates->add($prgitem->date); $categories->add($prgitem->category); $prgitem = $PrgDataObj->getNext(); } $channels->sort(); $dates->sort(); $categories->sort(); $PrgDataObj->orderByDateTime(); $firstdate = $dates->getFirst(); if(isset($_GET['cboDate']) AND isset($_GET['cboCateg'])){ $dat = $dates->getFirst(); while(!is_null($dat)) { if($dat == $_GET['cboDate'] || $_GET['cboDate'] == OPT_ALL){ $prgitem = $PrgDataObj->getFirst(); while(!is_null($prgitem)) { if($prgitem->date == $dat && ($prgitem->channel == $_GET['cboCateg'] || $_GET['cboCateg'] == OPT_ALL)) { $EMISSIONS[] = array('debut'=>$prgitem->start, 'fin'=>$prgitem->stop, 'titre'=>utf8_decode($prgitem->title), 'specialid'=>md5(utf8_decode($prgitem->title).$prgitem->start.$prgitem->stop.$prgitem->channel)); } if(md5(utf8_decode($prgitem->title).$prgitem->start.$prgitem->stop.$prgitem->channel) == $_GET['indic_name']){ $EMISSION=array('debut'=>$prgitem->start, 'fin'=>$prgitem->stop, 'titre'=>utf8_decode($prgitem->title), 'soustitre'=>utf8_decode($prgitem->subtitle), 'description'=>utf8_decode($prgitem->desc), 'categorie'=>utf8_decode($prgitem->category), 'episode'=>utf8_decode($prgitem->episode), 'realisateur'=>utf8_decode($prgitem->director), 'duree'=>utf8_decode($prgitem->lenght), 'acteur'=>utf8_decode($prgitem->acteur), 'note'=>utf8_decode($prgitem->note), 'icone'=>utf8_decode($prgitem->icon), 'presentateur'=>utf8_decode($prgitem->presentateur)); } $prgitem = $PrgDataObj->getNext(); } } $dat = $dates->getNext(); } }else{ $categ = $channels->getFirst(); while(!is_null($categ)) { $info_chaine = search_chan($categ); $CHAINES[]=array('nom'=>$categ, 'indicatif'=>$categ, 'ico'=>$info_chaine['ico'], 'recordable'=>true); $categ = $channels->getNext(); } } // Cr\xE9e la liste des jours disponibles $dat = $dates->getFirst(); while(!is_null($dat)) { $DATES[]=$dat; $dat = $dates->getNext(); } // Fonction permettant de transformer les dates comme il faut function rebuild_date($date){ $year = substr($date, 0, 4); $month = substr($date, 4, 2); $day = substr($date, 6, 2); return($day.'/'.$month.'/'.$year); } $smarty->assign('cboDate',$_GET['cboDate']); $smarty->assign('cboCateg',$_GET['cboCateg']); $smarty->assign('MIN',$_GET['min']); if(isset($EMISSION)){ $info_chaine = search_chan($_GET['cboCateg']); $smarty->assign('info_chaine',$info_chaine); $LINK['red'] = 'tvprogram.php?cboDate='.$_GET['cboDate'].'&cboCateg='.urlencode($_GET['cboCateg']).'&min='.$min; $smarty->assign('TITRE','Programme t\xE9l\xE9 - '.urldecode($_GET['cboCateg']).' - '.date('d/m/Y', $_GET['cboDate'])); $smarty->assign('EMISSION',$EMISSION); $smarty->assign('CONTENT',$smarty->fetch('guidetv.tpl')); }elseif(isset($EMISSIONS)) { $info_chaine = search_chan($_GET['cboCateg']); $smarty->assign('info_chaine',$info_chaine); $LINK['red'] = 'tvprogram.php'; foreach($DATES as $dat_new){ $MENU_ALT[] = array('lien'=>'tvprogram.php?cboDate='.$dat_new.'&cboCateg='.$_GET['cboCateg'], 'nom'=>date('d/m/Y', $dat_new), 'selected'=>$dat_new==$_GET['cboDate']); } $year = substr($_GET['cboDate'], 0, 4); $month = substr($_GET['cboDate'], 4, 2); $day = substr($_GET['cboDate'], 6, 2); $smarty->assign('TITRE','Programme t\xE9l\xE9 - '.$_GET['cboCateg'].' - '.date('d/m/Y', $_GET['cboDate'])); $smarty->assign('EMISSIONS',$EMISSIONS); $smarty->assign('CONTENT',$smarty->fetch('guidetv.tpl')); }else{ $smarty->assign('DATE',$firstdate); $smarty->assign('CHAINE',$CHAINES); $smarty->assign('CONTENT',$smarty->fetch('guidetv.tpl')); } $smarty->display('interface.tpl'); ?> \ No newline at end of file Modified: trunk/module/multiposte/add.php =================================================================== --- trunk/module/multiposte/add.php 2006-10-26 18:00:27 UTC (rev 38) +++ trunk/module/multiposte/add.php 2006-10-26 19:29:22 UTC (rev 39) @@ -45,18 +45,23 @@ //Cr\xE9ation du fichier bat de lancement + $contenu_html = @file_get_contents ($USER.'multiposte.m3u'); + if(eregi('stream?id=', $contenu_html)){ + $moreinfo = 'stream?id='; + } + //Profils d'encodage if($ini[multiposte][cvid]!='none' AND $ini[multiposte][caud]!='none'){ - $link = 'start vlc\vlc.exe --wx-systray --intf=dummy --extraintf=http --http-src="'.realpath(realpath("../../").'/http-vlc').'" --http-host=:8082 --http-charset=ISO-8859-1 --quiet --dummy-quiet -vvv rtsp://mafreebox.freebox.fr/freeboxtv/'.$chaine[2].' --sout=#transcode{vcodec='.$ini[multiposte][cvid].',vb='.$ini[multiposte][bvid].',scale=1,acodec='.$ini[multiposte][caud].',ab='.$ini[multiposte][baud].',channels=2} --sout=#duplicate{dst=std{access=file,mux='.$ini[multiposte][muxer].',url="'.$fichier.'"} + $link = 'start vlc\vlc.exe --wx-systray --intf=dummy --extraintf=http --http-src="'.realpath(realpath("../../").'/http-vlc').'" --http-host=:8082 --http-charset=ISO-8859-1 --quiet --dummy-quiet -vvv rtsp://mafreebox.freebox.fr/freeboxtv/'.$moreinfo.$chaine[2].' --sout=#transcode{vcodec='.$ini[multiposte][cvid].',vb='.$ini[multiposte][bvid].',scale=1,acodec='.$ini[multiposte][caud].',ab='.$ini[multiposte][baud].',channels=2} --sout=#duplicate{dst=std{access=file,mux='.$ini[multiposte][muxer].',url="'.$fichier.'"} start http://localhost:8080/lecteur/lunch_rec.php?id='.(sqlite_num_rows($result)+1); }elseif($ini[multiposte][cvid]=='none' AND $ini[multiposte][caud]=='none'){ - $link = 'start vlc\vlc.exe --wx-systray --intf=dummy --extraintf=http --http-src="'.realpath(realpath("../../").'/http-vlc').'" --http-host=:8082 --http-charset=ISO-8859-1 --quiet --dummy-quiet -vvv rtsp://mafreebox.freebox.fr/freeboxtv/'.$chaine[2].' --sout=#duplicate{dst=std{access=file,mux='.$ini[multiposte][muxer].',url="'.$fichier.'"} + $link = 'start vlc\vlc.exe --wx-systray --intf=dummy --extraintf=http --http-src="'.realpath(realpath("../../").'/http-vlc').'" --http-host=:8082 --http-charset=ISO-8859-1 --quiet --dummy-quiet -vvv rtsp://mafreebox.freebox.fr/freeboxtv/'.$moreinfo.$chaine[2].' --sout=#duplicate{dst=std{access=file,mux='.$ini[multiposte][muxer].',url="'.$fichier.'"} start http://localhost:8080/lecteur/lunch_rec.php?id='.(sqlite_num_rows($result)+1); }elseif($ini[multiposte][cvid]!='none' AND $ini[multiposte][caud]=='none'){ - $link = 'start vlc\vlc.exe --wx-systray --intf=dummy --extraintf=http --http-src="'.realpath(realpath("../../").'/http-vlc').'" --http-host=:8082 --http-charset=ISO-8859-1 --quiet --dummy-quiet -vvv rtsp://mafreebox.freebox.fr/freeboxtv/'.$chaine[2].' --sout=#transcode{vcodec='.$ini[multiposte][cvid].',vb='.$ini[multiposte][bvid].',scale=1} --sout=#duplicate{dst=std{access=file,mux... [truncated message content] |