// on vérifie que les champs obligatoires sont bien là
//if(!$_GET['radio'] OR !$_GET['titre'] OR !$_GET['artiste']){header("HTTP/1.0 400 Bad Request");exit();}else{header("HTTP/1.0 200 Success");}
// fonction pour voir si on est sur de l'utf8 ou non
function is_utf8($str) {
$c=0; $b=0;
$bits=0;
$len=strlen($str);
for($i=0; $i<$len; $i++){
$c=ord($str[$i]);
if($c > 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();
?>