Aller au contenu

[Recherche] Script Top20 pour icecast


Marwinzien

Messages recommandés

Bonjour,

Après de nombreuses recherche sur plusieurs centaines de pages du forum, je n'ai trouvé que un top20 pour les serveurs Shoutcast et pour les radios Radionomy.

Donc j'aurais voulu savoir si vous auriez le script Top20 pour les serveurs Icecast.

Cordialement, Marwinzien.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Après de nombreuses recherche sur plusieurs centaines de pages du forum, je n'ai trouvé que un top20 pour les serveurs Shoutcast et pour les radios Radionomy.

Donc j'aurais voulu savoir si vous auriez le script Top20 pour les serveurs Icecast.

Cordialement, Marwinzien.

Salut t'as regardé sur ce site ?

Je sais qu'il y a des scripts pour icecast. Jette un oeil.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...
  • 1 month later...

en gros tous ce système reviens a coder l'ancien TOP20 de Shotucast. et de remettre en norme le fichier onair.php

Voila par exemple

un Top 20 depuis le MySql de Sam Braodcaster!

Attention il faut mettre a jour la base de Sam Broadcaster

et adapter le fichier plus.php et moins.php

Pour ma part, je suis en train de le refaire,.. en mieux...

onair.php

Lien vers le commentaire
Partager sur d’autres sites

TOP 20 Radionomy

Je préféré dire qu'il faut lui faire quelques modifications

notablement une clé API

Donc tu dois modifier la page "pastoucher.php"

sinon le serveur API de Radionomy va te bannir pour requête excessive !!!

Allez je suis gentil:http://forum.radionomy.com/viewtopic.php?f=81&t=20091

top20v1.zip

Lien vers le commentaire
Partager sur d’autres sites

Salut Marwinzien!

Je suis aussi à l'affu d'un script équivalent pour icecast... j'ai regardé le script onair.php et je dois admettre que je suis bien incapable de le rendre compatible Icecast...

De ton coté, as-tu trouvé las solution?

Lien vers le commentaire
Partager sur d’autres sites

Je suis en train de modifier le onair "un minimum" afin de le faire fonctionner pour iCecast.

Je pense le mettre en ligne dès la réussite des tests.

Franchement mec, ce serait top! vraiment... j'attend ta modification avec impatience :)

Et un Top 20 Shoutcast ça existe ? Avec Wordpress ?

Une fois le système modifié pour icecast il sera facile de l'adapter à shoutcast.

L'intégration wordpress est encore plus simple... à la limite ça, je pourrai te donner la solution car je le ferai pour moi ;)

Ya plus qu'à attendre la modif de Marwinzien :P

Lien vers le commentaire
Partager sur d’autres sites

Bonjour

a mes confrères:

Voici un sujet pour le fichier onair.php

Sources:http://www.gentilkiw...e-en-cours..htm

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Starm et Merci...

Par contre je ne vois pas très bien comment intégrer ce code dans le système. Je sais que tout se passe dans onair.php mais je ne vois pas ou apporter les modifs... -_-

Je t'en serai très reconnaissant si tu pouvais m'orienter

Merci

Lien vers le commentaire
Partager sur d’autres sites

je test moi aussi des trucs, mais sa ne marche pas...

Ci joint le contenue de mon fichier onair.php

<?php

function connect_icecast($host, $port){

$fp = @fsockopen($host, $port, $errno, $errstr, 3);

if(!$fp){

return false;

} else {

fputs($fp, 'GET /status2.xsl' . " HTTP/1.0\r\nUser-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)\r\n\r\n");

$page = '';

while(!feof($fp)){

$page .= fread($fp, 1000);

}

fclose($fp);

return $page;

}

}

function kiwi_icecast($host, $port){

$contenu = connect_icecast($host, $port);

$tabChamps = array(3 => 'nom', 4 => 'auditeurs', 5 => 'max', 6 => 'titre');

if ($contenu){

if (preg_match_all('`([[:cntrl:]]/|//::///)([^,]*),([^,]*),([[:digit:]]*),([[:digit:]]*),([^/]*)`', $contenu, $resultat)){

foreach($resultat[2] as $numPoint => $mountName)

foreach ($tabChamps as $index => $champ)

$tabIce[$mountName][$champ] = $resultat[$index][$numPoint];

return $tabIce;

} else {

return false;

}

}

else{

return false;

}

}

$tabIceCast = kiwi_icecast('localhost', 9000);

if($tabIceCast){

echo '<h1>Ma radio : ' . $tabIceCast['live']['nom'] . '</h1>';

echo 'Utilisateur(s) : ' . $tabIceCast['live']['auditeurs'] . ' (max : ' . $tabIceCast['Modem-Radio-flux-Souvenir']['max'] . ')<br />';

echo 'Titre en cours : ' . $tabIceCast['live']['titre'];

echo '<h2>Toutes les radios :</h2>';

echo '<pre>';

print_r($tabIceCast);

echo '</pre>';

} else {

echo 'Parsing impossible';

}

?>

je te tiens au courant, si je trouve une piste...

Lien vers le commentaire
Partager sur d’autres sites

Hello !

Je viens de modifier "Onair.php" pour finalement supprimer le "$radioiUD" pour finalement mettre l'URL .XML du serveur iceCast (http://monserveur.com:monport/status2.xsl) et ainsi celui-ci récupère le titre du fichier.

Voici le code de mon fichier xsl :


<pre>
MountPoint,Connections,Stream Name,Current Listeners,Description,Currently Playing,Stream URL Global,Client:392782 Source: ,,0,, /live,,,0,, - Jingle-Only-Hit,
</pre>

Et le code de Onair :


<?php


$api = "http://monserveur:monport/status2.xsl";
putenv("TZ=Europe/Paris");
$file = @fopen($api, 'r');
if ($file){
$text = implode("",file($api));
$motif='#, - (.*?),#is';
preg_match_all($motif,$text,$out,PREG_PATTERN_ORDER);
foreach ($out[1] as $link) {
$titre = $link;
}
$motif='#<cover>(.*?)</cover>#is';
preg_match_all($motif,$text,$out,PREG_PATTERN_ORDER);
foreach ($out[1] as $link) {
$cover = $link;
}
$motif='#<starttime>(.*?)</starttime>#is';
preg_match_all($motif,$text,$out,PREG_PATTERN_ORDER);
foreach ($out[1] as $link) {
$debut = substr($link, 0, strpos($link, "."));
$debut = strtotime($debut);
}
$motif='#<playduration>(.*?)</playduration>#is';
preg_match_all($motif,$text,$out,PREG_PATTERN_ORDER);
foreach ($out[1] as $link) {
$duree = round($link / 1000) + 17;
}
if( empty($cover) ) {
$cover='images/pas_pochette.png';
}
}
$actuel = time();
$refresh = $duree - ($actuel - $debut);
echo '<META HTTP-EQUIV="Refresh" CONTENT="'.$refresh.'"> ';

$titre = str_replace("ÿ","é",$titre);
$titre = str_replace("'"," ",$titre);

?>

Il faut noter que j'ai enlevé les votes "artistes" pour mettre seulement les titres (avec artiste la plupart du temps)

Voilà, dite moi si ça fonctionne, chez moi sa marche. :)

Lien vers le commentaire
Partager sur d’autres sites

Pfff mec tu dé-fon-ces!

C'est juste mortel!!!

Par contre ya un truc que je cherche à faire mais que j'ai vraiment du mal à mettre au point.

En fait mon idée et de pouvoir rajouter ce système de vote à un player afin que l’ergonomie en soit optimale.

Le problème et que le titre du morceau ne se rafraîchit pas automatiquement et que dès que l'utilisateur vote la page entière se recharge... donc fatalement le flux est coupé...

Connaîtrais-tu l'astuce jQuery afin de le rendre autonome et ainsi de pouvoir l'incorporer comme un widget à une page...

Je te donne le lien de mon player qui est actuellement en développement... http://nessradio.com/player/player_v5/

Merci pour le partage!

[EDIT]

Je viens d'utiliser la fonction <iframe>

Je sais pas ce que ça vaut mais ça permet de l'utiliser sous la forme d'un widget...

Si un de vous a une meilleure méthode... n'hésitez pas...

Bon je continue à bidouiller le truc... et je vous dit

Lien vers le commentaire
Partager sur d’autres sites

Salut à tous!

Bon j'ai fait ma petite tambouille... résultat www.nessradio.com (cliquez sur "Ecoutez la radio")

J'ai inclus le système en <iframe> et j'ai utilisé la fonction <meta http-equiv="refresh" content="5"> pour faire que le titre se mette à jour automatiquement... j'ai essayé d'utiliser la fonction jQuery de rafraîchissement d'une <div> mais ce fut sans succés...

Si quelqu'un améliore le système je suis curieux de voir le résultat.

Encore merci à Marwinzien pour son script!

++

Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...

Dans le fichier "onair.php" tu dois mettre par exemple une pochette indisponible, si le radio manager ne trouve pas la pochette du titre. Après à toi de le personnaliser ton thème de classement ^^

Exemple dans le fichier "onair.php" :

if( empty($cover) ) {

$cover='../imagesv1/pocchetteindisp.png'; // a modifier en cas d'aucune pochette détecté ...

Lien vers le commentaire
Partager sur d’autres sites

Je vois les pochettes, sauf celles qui ne sont pas disponible :

Remplace ça dans ta ligne 46 :

$cover='http://www.metalsickness.com/tl_files/images/pochettes/pochette_indisponible.jpg';

}

créer un répertoire dans ton dossier "top20" appelle le "images" et ajoute une flèche haute avec comme nom de fichier "haut.png" par exemple :

http://icdn.pro/images/fr/f/l/fleche-jusqua-icone-9608-128.png

Lien vers le commentaire
Partager sur d’autres sites

  • 4 weeks later...

Bonjour à tous,

je viens de tester l'installation du script avec les modifications de Marwinzien et malheureusement cela ne fonctionne pas pour moi. Mais j'ai un doute sur mon fichier status2.xsl. Je ne comprends pas bien si je dois remplacer le contenu du fichier entier, le contenu de la balise <Pre> ou seulement ajouter ou si tu nous l'a fourni pour info mais ce n'est pas necessaire de modifier mon fichier status2.xsl d'origine.

Desolé de la question de noob

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...