<?php
###############################################################
################# Générateur de présentation  #################
###################### Version 1.0 Béta #######################
##################### Auteur : Belzebuth ######################
################### Version du script : 1.0 ###################
############ Mail : fantasygraph@fantasy-graph.net ############
###############################################################

// Fonctions

// Récupération d'une page distante
function getContenuURL($url,$estImg='')
{
	$contenuPage = '';

	// à preciser dans le header 
	if (methodscan != 'curl') {
	$contenuPage = @file_get_contents($url);

	}else{
	$ch = curl_init();
	curl_setopt ($ch, CURLOPT_URL, $url);
	curl_setopt ($ch, CURLOPT_HEADER, 0);
	ob_start();
	curl_exec ($ch);
	curl_close ($ch);
	$contenuPage = ob_get_contents();
	ob_end_clean();
	}
	return $contenuPage;
}

// Chercher expression
function getEpression($chaine,$expression)
{
	preg_match_all($expression,$chaine, $trouve);

	if( count($trouve[0])!=0 )
	{
		return($trouve[1]);
	}
	else return(false);
}

// ------------------------------------------

	function getListSerieAllocine($url)
	{
	global $url_default;
		$erreur = '';
		$series = '';

		if( $contenuUrl = getContenuURL($url) )
		{
			// on isole le bloc de résultats
			if($resultats = getEpression($contenuUrl,'#<table class="totalwidth noborder purehtml">(.*?)</table>#is'))
			{
				$resultats = $resultats[0];
				// on isole les lignes de résultats
				if(preg_match_all('#<tr>(.*?)</tr>#is',$resultats, $lignesResultats))
				{
					$i = 0;
					// pour chaque ligne de resultat
					foreach($lignesResultats[0] as $unResultat)
					{
						// si c'est une ligne de series
						if($estUneSerie=getEpression($unResultat,'#<a href=\'/series/ficheserie_gen_cserie=(.*?)<img#is'))
						{
							if( $afficheTmp = getEpression($unResultat,"#src='http://images.allocine.fr/r_75_106/(.*?)'#is") )
							{
								$series[$i]['affiche'] = 'http://images.allocine.fr/r_75_106/'.$afficheTmp[0];
							}
                            elseif( $afficheTmp = getEpression($unResultat,'#src=\'http://fr.web.img[^"]+.acsta.net/r_75_106/medias/(.*?)\'#is') )
							{
							    $series[$i]['affiche'] = 'http://fr.web.img1.acsta.net/r_75_106/medias/'.$afficheTmp[0];
								$series[$i]['affiche'] = 'http://fr.web.img2.acsta.net/r_75_106/medias/'.$afficheTmp[0];
							}
							else
							{
								$series[$i]['affiche'] = $url_default.'images/no_image.png';
							}
							if( $titreTmp = getEpression($unResultat,'#<div><div style="margin-top:-5px;">(.*?)</a>#is') )
							{
								$series[$i]['titre'] = strip_tags($titreTmp[0]);
								$series[$i]['titre'] = strip_tags(utf8_decode($titreTmp[0]));
								$series[$i]['titre'] = str_replace(array("\t","\r","\n","  "),array('','','',''),$series[$i]['titre']);
							}

							if( $idTmp = getEpression($unResultat,"#<a href='/series/ficheserie_gen_cserie=(.*?).html'#is") )
							{
								$series[$i]['id'] = strip_tags($idTmp[0]);
							}
	
							if( $acteursTmp = getEpression($unResultat,'#avec (.*?)</span>#is') )
							{
								$series[$i]['acteurs'] = strip_tags(utf8_decode($acteursTmp[0]));
							}
							else
							{
								$series[$i]['acteurs'] = 'Aucune Information ...';
							}
							if( $anneeTmp = getEpression($unResultat,'#<span class="fs11">(.*?)<br />#is') )
							{
								$series[$i]['annee'] = strip_tags($anneeTmp[0]);
								$series[$i]['annee'] = strip_tags(utf8_decode($anneeTmp[0]));
							}
							$i++;
						}
					}
				}
			}
		}

		else $erreur[] = "impossible de lire la page";	

		return(array($series,$erreur));	
	}

// ------------------------------------------

	function getInfoSerieALLOCINE($url)
	{
		$erreur = '';
		// $date = getValeur("date","");
		
		if( $contenuUrl = getContenuURL($url) )
		{
			list($serie,$erreurs) = scanContenuALLOCINE($contenuUrl);
			if(!empty($date))
			{
				$serie['date'] = $date;
			}
			if(!empty($erreurs))
			{
				$erreur = array_merge($erreur,$erreurs);
			}
		}
		else $erreur[] = "impossible de lire la page";

		return(array($serie,$erreur));
	}

// ------------------------------------------

	function scanContenuALLOCINE($contenuUrl)
	{
	global $url_default;
			$erreur = "";

			$serie['titre'] = '';
			$serie['resume'] = '';
			$serie['image'] = '';
			$serie['statut'] = '';
			$serie['real'] = '';
			$serie['acteurs']= '';
			$serie['duree'] = '';
			$serie['genre'] = '';
			$serie['date'] = '';
			$serie['pays'] = '';
			
			function net_resume_allo($string){

            $string= strtr($string,"c?d?j?l?m?n?s?t?","c'd'j'l'm'n's't'");

            $string= str_replace("c'ur", 'c&oelig;ur', $string);

            $string = preg_replace('`[a-zA-Z]{1}\?[a-zA-Z]`',"'",$string);

            $string= str_replace(" ' ", ' ? ', $string);

            $string = preg_replace('#\'$#is',"...",$string);

            return $string;

        } ;

			// on récupere le titre
			if( $titreTmp = getEpression($contenuUrl,'#<!-- /breadcrumbs -->(.*?)</span>#is') )
			{
				$serie['titre'] = strip_tags($titreTmp[0]);
				$serie['titre']  = str_replace("  ",'',$serie['titre']);
				$serie['titre']  = str_replace("\n",'',$serie['titre']);
				$serie['titre']  = str_replace("\r",'',$serie['titre']);
				$serie['titre']  = trim($serie['titre']);
			}

		// on récupere le résumé
		if( $resumeTmp = getEpression($contenuUrl,'#<p itemprop="description">(.*?)</p>#is') )
		{
			
				$serie['resume'] = net_resume_allo(utf8_decode(strip_tags($resumeTmp[0])));
				$serie['resume']  = trim($serie['resume']);
		}
		else
		{ 
		$film['resume'] = 'Aucun Synopsis de la part d\'allo-ciné ...';}
	
		// on récupere l'url de l'image
		if( $imageTmp = getEpression($contenuUrl,"#http://images.allocine.fr/c_160_214/(.*?).jpg'#is" ))
		{
			$serie['image'] = 'http://images.allocine.fr/c_160_214/' .$imageTmp[0].'.jpg';
		}
		elseif( $imageTmp = getEpression($contenuUrl,'#<link rel="image_src" href="http://fr.web.img(.*?)"#is' ))
		{
			$serie['image'] = 'http://fr.web.img' .$imageTmp[0];
		}
		else
		{
			$serie['image'] = $url_default.'images/no_image.png';
		}

			// on récupère qlq infos sur le statut de la série
			if( $statutTmp = getEpression($contenuUrl,'#<span class="star_info lighten">Statut</span>(.*?)</li>#is') )
			{
				$serie['statut'] = strip_tags(utf8_decode($statutTmp[0]));
				$serie['statut']  = str_replace("  ",'',$serie['statut']);
				$serie['statut']  = str_replace("\n",'',$serie['statut']);
				$serie['statut']  = str_replace("\r",'',$serie['statut']);
				$serie['statut']  = trim($serie['statut']);
			}
			else
			{ 
				$serie['statut'] = 'Aucune Information ...';
			}

			// on récupere le titre original
			if( $tit_origiTmp = getEpression($contenuUrl,'#<li><span class="star_info lighten">Titre original(.*?)</li>#is') )
			{
				$serie['tit_origi'] = strip_tags(utf8_decode($tit_origiTmp[0]));
				$serie['tit_origi']  = str_replace("  ",'',$serie['tit_origi']);
				$serie['tit_origi']  = str_replace("\n",'',$serie['tit_origi']);
				$serie['tit_origi']  = str_replace("\r",'',$serie['tit_origi']);
				$serie['tit_origi']  = trim($serie['tit_origi']);
			}
			else
			{ 
				$serie['tit_origi'] = 'Aucune information ...';
			}

			// on récupère le nom du ou des reals
			if( $realTmp = getEpression($contenuUrl,'#<span class="star_info lighten">Cr[^"]+[^"]+e par</span>(.*?)</li>#is') )
			{
				$serie['real'] = strip_tags($realTmp[0]);
				$serie['real']  = str_replace("  ",'',$serie['real']);
				$serie['real']  = str_replace("\n",'',$serie['real']);
				$serie['real']  = str_replace("\r",'',$serie['real']);
				$serie['real']  = trim($serie['real']);
			}
			else
			{ 
				$serie['real'] = 'Aucune Information ...';
			}

			// on récupère le genre
			if( $genreTmp = GetEpression($contenuUrl,'#<span class="film_info lighten fl">Genre</span>(.*?)</li>#is') )
			{
				$serie['genre'] = strip_tags($genreTmp[0]);
				$serie['genre']  = str_replace("  ",'',$serie['genre']);
				$serie['genre']  = str_replace("\n",'',$serie['genre']);
				$serie['genre']  = str_replace("\r",'',$serie['genre']);
				$serie['genre']  = trim($serie['genre']);
			}
			else
			{ 
				$serie['genre'] = 'Aucune Information ...';
			}

			// on récupere la date de la première diffusion
			if( $dateTmp = getEpression($contenuUrl,'#<li><span class="star_info lighten">Format</span>(.*?)</li>#is') )
			{
				$serie['date'] = strip_tags(utf8_decode($dateTmp[0]));
				$serie['date']  = str_replace("\n",'',$serie['date']);
				$serie['date']  = str_replace("\r",'',$serie['date']);
				$serie['date']  = str_replace("    ",'',$serie['date']);
				$serie['date']  = trim($serie['date']);
			}
			else
			{ 
				$serie['date'] = 'Aucune Information ...';
			}

			// on récupere les acteurs principaux
			if( $avecTmp = getEpression($contenuUrl,'#<span class="star_info lighten">Avec</span>(.*?)plus#is') )
			{
				$serie['acteurs'] = strip_tags(utf8_decode($avecTmp[0]));
				$serie['acteurs']  = str_replace("  ",'',$serie['acteurs']);
				$serie['acteurs']  = str_replace("\n",'',$serie['acteurs']);
				$serie['acteurs']  = str_replace("\r",'',$serie['acteurs']);
				$serie['acteurs']  = trim($serie['acteurs']);
			}
			else
			{ 
				$serie['acteurs'] = 'Aucune Information ...';
			}

			// on récupère le pays d'origine de la série
			if( $paysTmp = getEpression($contenuUrl,'#<span class="star_info lighten">Nationalit[^"]+</span>(.*?)</span>#is') )
			{
				$serie['pays'] = strip_tags(utf8_decode($paysTmp[0]));
			}
			else
			{ 
				$serie['pays'] = 'Aucune Information ...';
			}

			// on récupere la note top série
			if( $noteTmp = getEpression($contenuUrl,'#<span class="note" itemprop="ratingValue" content="(.*?)">#is') )   
			{
				$serie['note'] = utf8_decode($noteTmp[0]);
				$serie['note'] = strip_tags(trim($noteTmp[0])).' sur 5';
				$serie['note'] = str_replace(array("\t","\r","\n","  "),array('','','',''),$serie['note']);
				
			}
			else { $serie['note'] = 'Aucune note ...'; }

		return(array($serie,$erreur));
	}

?>