|
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] |