128){ if(($c >= 254)) return false; elseif($c >= 252) $bits=6; elseif($c >= 248) $bits=5; elseif($c >= 240) $bits=4; elseif($c >= 224) $bits=3; elseif($c >= 192) $bits=2; else return false; if(($i+$bits) > $len) return false; while($bits > 1){ $i++; $b=ord($str[$i]); if($b < 128 || $b > 191) return false; $bits--; } } } return true; } // on se connecte à la base de données $apconnect = mysql_connect("localhost", "indesradios", "indesradios82"); mysql_select_db("agregateurs",$apconnect) or die ('Problème de connection: ' . mysql_error()); // on récupère le dernier titre en base pour la radio $liste=mysql_query("SELECT titre,artiste FROM metadatas WHERE radio=\"".$_GET['radio']."\" ORDER BY id DESC"); // on vérifie le dernier titre pour ne pas avoir de doublon if((mysql_result($liste,0,'titre')!=$_GET['titre'] OR mysql_result($liste,0,'artiste')!=$_GET['artiste']) AND $_GET['titre'] AND $_GET['artiste'] AND $_GET['titre']!="LA MUSIQUE REVIENT DANS UN INSTANT" AND $_GET['titre']!="La musique revient dans un instant") { $pochette = ""; // si c'est une radio d'Urban Hit on passe à une interrogation XML pour récupération pochette if($_GET['radio']=="2174546520932614835") // Urban Hit { // on va appeler le fichier de métadonnées de la radio $contenu = file_get_contents("http://metadatas.lesindesradios.fr/metadatas/indesradios/urbanhit.xml"); preg_match_all("`\([^[]+)\`",$contenu,$out, PREG_SET_ORDER); $pochette = $out[0][1]; } if($_GET['radio']=="3494735640663178673") // Urban Hit black { // on va appeler le fichier de métadonnées de la radio $contenu = file_get_contents("http://metadatas.lesindesradios.fr/metadatas/indesradios/urbanhitblack.xml"); preg_match_all("`\([^[]+)\`",$contenu,$out, PREG_SET_ORDER); $pochette = $out[0][1]; } if($_GET['radio']=="3130341601832862855") // Urban Hit Rap Fr { // on va appeler le fichier de métadonnées de la radio $contenu = file_get_contents("http://metadatas.lesindesradios.fr/metadatas/indesradios/urbanhitrap.xml"); preg_match_all("`\([^[]+)\`",$contenu,$out, PREG_SET_ORDER); $pochette = $out[0][1]; } if($_GET['radio']=="3130341601832862811") // Urban Hit Rap US { // on va appeler le fichier de métadonnées de la radio $contenu = file_get_contents("http://metadatas.lesindesradios.fr/metadatas/indesradios/urbanhitus.xml"); preg_match_all("`\([^[]+)\`",$contenu,$out, PREG_SET_ORDER); $pochette = $out[0][1]; } if($_GET['radio']=="3130341601832862993") // Urban Hit Latino { // on va appeler le fichier de métadonnées de la radio $contenu = file_get_contents("http://metadatas.lesindesradios.fr/metadatas/indesradios/urbanhitreggaeton.xml"); preg_match_all("`\([^[]+)\`",$contenu,$out, PREG_SET_ORDER); $pochette = $out[0][1]; } if($_GET['radio']=="3130341601832862929") // Urban Hit à l'ancienne { // on va appeler le fichier de métadonnées de la radio $contenu = file_get_contents("http://metadatas.lesindesradios.fr/metadatas/indesradios/urbanhitalancienne.xml"); preg_match_all("`\([^[]+)\`",$contenu,$out, PREG_SET_ORDER); $pochette = $out[0][1]; } if($_GET['radio']=="3130341601832863042") // Urban Hit RainB { // on va appeler le fichier de métadonnées de la radio $contenu = file_get_contents("http://metadatas.lesindesradios.fr/metadatas/indesradios/urbanhitrai.xml"); preg_match_all("`\([^[]+)\`",$contenu,$out, PREG_SET_ORDER); $pochette = $out[0][1]; } if($_GET['radio']=="2180540611545792571") // Africa 1 { // on va appeler le fichier de métadonnées de la radio $contenu = file_get_contents("http://metadatas.lesindesradios.fr/metadatas/indesradios/africa_n-1.xml"); preg_match_all("`\([^[]+)\`",$contenu,$out, PREG_SET_ORDER); $pochette = $out[0][1]; $pochette = str_replace(" ", "%20", $pochette); } if($_GET['radio']=="3134161803443964439") // Africa 1 Club { // on va appeler le fichier de métadonnées de la radio $contenu = file_get_contents("http://metadatas.lesindesradios.fr/metadatas/indesradios/africa-club.xml"); preg_match_all("`\([^[]+)\`",$contenu,$out, PREG_SET_ORDER); $pochette = $out[0][1]; $pochette = str_replace(" ", "%20", $pochette); } if($_GET['radio']=="3134161803443964308") // Africa 1 Coupé décalé { // on va appeler le fichier de métadonnées de la radio $contenu = file_get_contents("http://metadatas.lesindesradios.fr/metadatas/indesradios/africa-coupe-decale.xml"); preg_match_all("`\([^[]+)\`",$contenu,$out, PREG_SET_ORDER); $pochette = $out[0][1]; $pochette = str_replace(" ", "%20", $pochette); } if($_GET['radio']=="3134161803443964359") // Africa 1 Mandingue { // on va appeler le fichier de métadonnées de la radio $contenu = file_get_contents("http://metadatas.lesindesradios.fr/metadatas/indesradios/africa-mandingue.xml"); preg_match_all("`\([^[]+)\`",$contenu,$out, PREG_SET_ORDER); $pochette = $out[0][1]; $pochette = str_replace(" ", "%20", $pochette); } if($_GET['radio']=="3134161803443964385") // Africa 1 naija { // on va appeler le fichier de métadonnées de la radio $contenu = file_get_contents("http://metadatas.lesindesradios.fr/metadatas/indesradios/africa-naija.xml"); preg_match_all("`\([^[]+)\`",$contenu,$out, PREG_SET_ORDER); $pochette = $out[0][1]; $pochette = str_replace(" ", "%20", $pochette); } if($_GET['radio']=="3134161803443964413") // Africa 1 rumba { // on va appeler le fichier de métadonnées de la radio $contenu = file_get_contents("http://metadatas.lesindesradios.fr/metadatas/indesradios/africa-rumba.xml"); preg_match_all("`\([^[]+)\`",$contenu,$out, PREG_SET_ORDER); $pochette = $out[0][1]; $pochette = str_replace(" ", "%20", $pochette); } if($_GET['radio']=="3134161803444013443") // Africa 1 selecta { // on va appeler le fichier de métadonnées de la radio $contenu = file_get_contents("http://metadatas.lesindesradios.fr/metadatas/indesradios/africa-selecta.xml"); preg_match_all("`\([^[]+)\`",$contenu,$out, PREG_SET_ORDER); $pochette = $out[0][1]; $pochette = str_replace(" ", "%20", $pochette); } if(empty($pochette)) { // on regarde dans la base si une pochette existe pour ce titre $test=mysql_query("SELECT cover, amazon_url, itunes_url FROM pochettes WHERE titre=\"".$_GET['titre']."\" AND artiste=\"".$_GET['artiste']."\" ORDER BY id DESC LIMIT 1"); $nb=mysql_num_rows($test); if($nb>0){$pochette=mysql_result($test,0,'cover');$amzURL=mysql_result($test,0,'amazon_url');$itunesURL=mysql_result($test,0,'itunes_url');}else{$pochette = "";$amzURL=""; $itunesURL="";} } // on regarde si c'est de l'utf8 et si oui, on convertit if(is_utf8("".$_GET['titre']."")==1){$titre = utf8_decode($_GET['titre']);}else{$titre = $_GET['titre'];} if(is_utf8("".$_GET['artiste']."")==1){$artiste = utf8_decode($_GET['artiste']);}else{$artiste = $_GET['artiste'];} if($_GET['radio']=="2174546520932614870" OR $_GET['radio']=="2180540611545792571" OR $_GET['radio']=="2174546520932614634" OR $_GET['radio']=="2174546520932614196" OR $_GET['radio']=="2174546520932614166" OR $_GET['radio']=="2174546520932614334" OR $_GET['radio']=="2174546520932614856" OR $_GET['radio']=="2453443399508820009"){$titre = utf8_decode($titre);$artiste = utf8_decode($artiste);$titre = mb_strtoupper($titre);$artiste = mb_strtoupper($artiste);} mysql_query("INSERT INTO metadatas VALUES('',\"".$_GET['radio']."\",\"".$titre."\",\"".$artiste."\", \"".$_GET['time']."\", \"".$pochette."\",'".date("Y-m-d H:i:s")."', '0', '0', '0', '0', '".$amzURL."', '".$itunesURL."');"); $dernierid = mysql_insert_id(); $requetoo = "INSERT INTO metadatas VALUES('',\"".$_GET['radio']."\",\"".$titre."\",\"".$artiste."\", \"".$_GET['time']."\", \"".$pochette."\",'".date("Y-m-d H:i:s")."', '0', '0', '0', '0', '".$amzURL."', '".$itunesURL."');"; // on récupère les identifiants pour les agrégateurs $agreg=mysql_query("SELECT id,orange,tunein,tunein_login,tunein_pwd,radiofr,radiofr_apikey FROM metadatas_radios WHERE radioid=\"".$_GET['radio']."\" ORDER BY id ASC"); // on envoi la métadonnée à Orange if(mysql_result($agreg,0,'orange')!=""){pushorange(mysql_result($agreg,0,'orange'),$_GET['titre'],$_GET['artiste'],$dernierid);} if(mysql_result($agreg,0,'tunein')!=""){pushtunein("".mysql_result($agreg,0,'tunein')."","".$_GET['titre']."","".$_GET['artiste']."",$dernierid,"".mysql_result($agreg,0,'tunein_login')."","".mysql_result($agreg,0,'tunein_pwd')."");} if(mysql_result($agreg,0,'orange')!=""){pushecouterlaradio("".$_GET['radio']."","".$_GET['titre']."","".$_GET['artiste']."","".$dernierid."");} } // Fonction pour Orange Radio function pushorange($radio,$titre,$artiste,$dernierid) { // Complétez le tableau associatif $postFields avec les variables qui seront envoyées par POST au serveur $postFields=array('start_time' => time(), 'duration' => 180, 'onair' => array("title" => "".$titre."", "artist" => "".$artiste."") ); $header = array();$header[] = 'Content-type: application/json';$header[] = 'X-Apiradio-Uid: bdf2e55b589d84309751b0ba6a6e8d3e'; // Tableau contenant les options de téléchargement $options=array( CURLOPT_URL => "http://or-pushlive.kmt.orange.com/v1/radios/".$radio."/now/song", CURLOPT_RETURNTRANSFER => true, CURLOPT_HEADER => false, CURLOPT_HTTPHEADER => $header, CURLOPT_FAILONERROR => true, CURLOPT_GET => true, CURLOPT_GETFIELDS => json_encode($postFields) ); // Création d'un nouvelle ressource cURL $CURL=curl_init(); // Configuration des options de téléchargement curl_setopt_array($CURL,$options); // Exécution de la requête $content=curl_exec($CURL); $resultat = json_decode($content); // Fermeture de la session cURL curl_close($CURL); // si tout fonctionne, on met la base de données à jour mysql_query("UPDATE metadatas SET orange=\"1\" WHERE id=\"".$dernierid."\";"); } // Fonction pour Tune In function pushtunein($radio,$titre,$artiste,$dernierid,$login,$mdp) { // on modifie le titre et l'artiste $titre = str_replace(' ', '+', $titre); $titre = str_replace("'", "\'", $titre); $artiste = str_replace(' ', '+', $artiste); $artiste = str_replace("'", "\'", $artiste); // Get cURL resource $curl = curl_init(); // Set some options - we are passing in a useragent too here curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => "http://api.radiotime.com/Playing.ashx?partnerId=$login&partnerKey=$mdp&id=s".$radio."&title=".$titre."&artist=".$artiste."", )); // Send the request & save response to $resp $resp = curl_exec($curl); // Close request to clear up some resources curl_close($curl); // si tout fonctionne, on met la base de données à jour mysql_query("UPDATE metadatas SET tunein=\"1\" WHERE id=\"".$dernierid."\";"); } // Fonction pour Radio.fr function pushradiofr($radio,$titre,$artiste,$dernierid) { $ch = curl_init("http://api.radio.fr/info/v2/pushmetadata/playingsong?broadcast=".$radio."&title=".urlencode($titre)."&artist=".urlencode($artiste)."&album=&apikey=a816b20a186fec84e04add58fb3200135e93a605"); curl_setopt($ch, CURLOPT_HEADER, 0); $content = curl_exec($ch); curl_close($ch); // Fermeture de la session cURL curl_close($CURL); // si tout fonctionne, on met la base de données à jour mysql_query("UPDATE metadatas SET radiofr=\"1\" WHERE id=\"".$dernierid."\";"); } // on ferme la base de données mysql_close(); $apconnect = mysql_connect("vj143832-001.dbaas.ovh.net:35153", "indesradios", "Indesradios82"); mysql_select_db("agregateurs",$apconnect) or die ('Problème de connection: ' . mysql_error()); mysql_query("".$requetoo.""); mysql_close(); echo $requetoo; exit(); ?>