Addon radio script

Contenu du snippet

Bon voila, c'est un petit script radio que moi et un copain on avais trouvé il y à quelques temps...avec le temps on la amélioré car au départ c'était pas mal que du bordel, et voila pour l'utilisé loadé le simplement dans votre mirc, ensuite configuré le pour qu'il fonctionne correctement pour votre radio la configuration se fait sois par un clic droit dans une fenetre de votre mirc ou par Command dans la menubar...c'est la premiere source que je post, mais pas la première que je fait..laissez vos commentaires ca peut toujours etre utile.

Source / Exemple :


; ------------------------------------------------
; Radio Script 1.0
; ------------------------------------------------
; ------------------------------------------------
; Fenêtre de dialogue pour configuration
; ------------------------------------------------

; ------------------------------------------------
; Menu contextuels
; ------------------------------------------------

menu channel {
  -
  &Config Radio
  .Nom de la Radio:set %radio.name $?="Nom de la radio"
  .Nom du Bot Radio:set %radio.nick $?="Nom du Bot Radio"
  .Canal principal de la radio:set %radio.mainchan $?="Canal principal de la radio"
  .Canal d'administration du Bot Radio:set %radio.adminchan $?="Canal d'administration du Bot Radio"
  .Serveur principal de la radio:set %radio.network $?="Serveur principal de la radio"
  .Lien pour ecouter la radio:set %radio.link $?="Lien pour ecouter la radio"
  .Site web de la radio:set %radio.url $?="Site web de la radio"
  .Ip du serveur Shoutcast:set %radio.ip $?="Ip du serveur Shoutcast"
  .Port du serveur Shoutcast:set %radio.port $?="Port du serveur Shoutcast"
  .-
  .Reset:rsfirststart
}

menu menubar {
  -
  &Config Radio
  .Nom de la Radio:set %radio.name $?="Nom de la radio"
  .Nom du Bot Radio:set %radio.nick $?="Nom du Bot Radio"
  .Canal principal de la radio:set %radio.mainchan $?="Canal principal de la radio"
  .Canal d'administration du Bot Radio:set %radio.adminchan $?="Canal d'administration du Bot Radio"
  .Serveur principal de la radio:set %radio.network $?="Serveur principal de la radio"
  .Lien pour ecouter la radio:set %radio.link $?="Lien pour ecouter la radio"
  .Site web de la radio:set %radio.url $?="Site web de la radio"
  .Ip du serveur Shoutcast:set %radio.ip $?="Ip du serveur Shoutcast"
  .Port du serveur Shoutcast:set %radio.port $?="Port du serveur Shoutcast"
  .-
  .Reset:rsfirststart
}

; ------------------------------------------------
; Aide des commandes (!aide)
; ------------------------------------------------

on *:Text:!aide*:#:{
  if (!$2) {
    msg # Voici les commandes disponibles.
    msg # 12Pour tout le monde (sur tout les canaux) => !aide !radio !web !toune !auditeur !dj !demande !ecouter
    if ($chan == %radio.adminchan) { .timer 1 2 msg # 4Pour les admins (sur %radio.adminchan seulement) => !chanjoin !chanpart !setdj !setshow !mustquit !pub !showtitle !setbotnick !serverjoin !adddj !remdj }
    .timer2 1 2 msg # Pour de plus ample imformations relatives aux commandes, faites !aide <commande> !!!!
  }
  else {
    if ($2 == !aide) { msg # Affiche l'aide sur les commandes disponibles. Usage: !aide [commande] }
    if ($2 == !radio) { msg # Affiche les infos relatives a la radio (Lien pour se connecter, Deejay qui annime). Usage: !radio }
    if ($2 == !web) { msg # Affiche le lien du site web de la radio. Usage: !web }
    if ($2 == !toune) { msg # Affiche le titre de la chanson en cours. Usage: !toune }
    if ($2 == !auditeur) { msg # Affiche le nombre d'auditeur qui écoutent la radio. Usage: !auditeur }
    if ($2 == !dj) { msg # Affiche le nick du Deejay qui anime ainsi que le nom de son show. Usage: !dj }
    if ($2 == !demande) { msg # Envoie votre demande spéciale au Deejay. Usage: !demande <artiste - titre> }
    if ($2 == !ecouter) { msg # Affiche le lien pour ecouter la radio. Usage: !ecouter }
    if ($chan == %radio.adminchan) {
      if ($2 == !chanjoin) { msg # Fait joindre $me sur un canal. Usage: !chanjoin <#canal> }
      if ($2 == !chanpart) { msg # Fait partir $me de sur un canal. Usage: !chanpart <#canal> }
      if ($2 == !setdj) { msg # Règle le nom du Deejay. Doit être identique au nick utiliser pour le Deejay. Usage: !setdj <nick_du_deejay/offline> }
      if ($2 == !setbotnick) { msg # Règle le nom du Bot Radio. Usage: !setbotnick <nom_du_bot> }
      if ($2 == !setshow) { msg # Règle le titre du Show en cours. Usage: !setshow <nom_du_show> }
      if ($2 == !serverjoin) { msg # Fait connecter $me sur un nouveau server. Fait joindre en même temps %radio.mainchan et %radio.adminchan . Usage: !serverjoin <server_irc[:port]> }
      if ($2 == !mustquit) { msg # Fait deconnecter $me . A n'utiliser qu'en cas de problême de connection. Usage: !mustquit }
      if ($2 == !pub) { msg # Affiche(une fois)/Affiche(aux 30 minutes)/Arrête la pub de la radio sur tout les canaux ou $me est. Usage: !pub <rien/on/off> }
      if ($2 == !showtitle) { msg # Démarre/arrête l'affichage automatique du titre de la chanson en cours sur %radio.mainchan . Usage: !showtitle <on/off> }
      if ($2 == !adddj) { msg # Ajoute un Admin au bot radio }
      if ($2 == !remdj) { msg # Supprime un Admin au bot radio }
    }
  }
}

; ------------------------------------------------
; Commandes de canaux
; ------------------------------------------------

on *:Text:*:#:{
  if ($1 == !radio) { radiolink }
  elseif ($1 == !web) { msg # 4Site web 7:14 %radio.url }
  elseif ($1 == !toune) { msg # %radio.info }
  elseif ($1 == !auditeur) { msg # 4Nombre d'auditeurs présentements connectés sur la radio14:7 %radio.listen 4Maximum atteint14:7 %radio.maxlisten }
  elseif ($1 == !dj) { msg $chan 14.::4 %radio.name 14::. 4Voici notre Deejay qui envoie notre musique direct à vos oreilles 14.::7 Dj- $+ %radio.djnick 14::.4 @7 %radio.show }
  elseif ($1 == !demande) { radioask $2- }
  elseif ($1 == !ecouter) { msg # 14.::4 %radio.name 14::. 4Voici notre petite adresse pour vous connecter: %radio.link }
  elseif ($chan == %radio.adminchan && $ulevel >= 500) {
    if ($1 == !chanjoin) { join $2 | msg # Je viens de joindre $2 }
    elseif ($1 == !chanpart) { part $2 Désoler mais je dois partir | msg # Je pars de $2 }
    elseif ($1 == !setdj) {
      if (($2 ison %radio.mainchan) || ($2 ison %radio.adminchan)) {
        set %radio.djnick $2
        set %radio.djserver $cid
        msg # Voici votre nouveau Dj aux tables tournantes :7 %radio.djnick
      }
      elseif (!$2) { msg # Vous devez spécifier un nick pour le Deejay }
      else {
        msg # Désoler, je ne vois pas4 $2 sur7 %radio.mainchan ou7 %radio.adminchan $+ . Veuillez écrire le nom du Deejay correctement.
        msg # Votre Deejay reste %radio.djnick
      }
    }
    elseif ($1 == !setbotnick) { set %radio.nick $2- | scon -a nick %radio.nick }
    elseif ($1 == !setshow) { set %radio.show $2- | msg # Le nom du présent show est :7 %radio.show }
    elseif ($1 == !serverjoin) { /server -m $2- | /nick %radio.nick | /join %radio.mainchan | /j %radio.adminchan }
    elseif ($1 == !mustquit) { /quit Je reviendrai plus tard }
    elseif ($1 == !showtitle) { askssong $2 }
    elseif ($1 == !pub) {
      if (!$2) { radiopub }
      elseif ($2 == on) { /timerradioppub 0 1800 /radiopub | radiopub }
      elseif ($2 == off) { timerradioppub off | msg # Arrêt de l'affichage automatique de la pub }
      else halt
    }
    elseif ($1 == !adddj) { guser 500 $2 2 | msg # $2 ajouter a la liste d'accès du bot }
    elseif ($1 == !remdj) { ruser $2 2 | msg # $2 supprimé a la liste d'accès du bot }
    else halt
  }
  else halt
}

; --------------------------------------------------------------------------------
; Ne pas editer au-dela de ce point, sous risque que le script ne fonctionne plus.
; Editez a vos propre risque
; --------------------------------------------------------------------------------

;on 1:Load:{ rsfirststart }
on *:connect:{
  /timer $+ $cid 0 15 /showsong
  /j %radio.mainchan
  if ($network == %radio.network) {
    /j %radio.adminchan
    /timerradioshhop 0 15 /shop
  }
}
on *:nick:if ( $nick == %radio.djnick ) { /set %radio.djnick $newnick }

alias rsfirststart {
  set %radio.name $?="Nom de la radio"
  set %radio.mainchan $?="Canal principal de la radio"
  set %radio.adminchan $?="Canal d'administration du Bot Radio"
  set %radio.network $?="Serveur principal de la radio"
  set %radio.link $?="Lien pour ecouter la radio"
  set %radio.url $?="Site web de la radio"
  set %radio.ip $?="Ip du serveur Shoutcast"
  set %radio.port $?="Port du serveur Shoutcast"
}

alias radioask {
  if (!$1) { notice $nick Usage : !demande <artiste - titre> }
  else {
    scid %radio.djserver msg %radio.djnick 14.::4 %radio.name 14 ::. 4Demande spécial fait par7: [ $+ $nick $+ ]
    scid %radio.djserver msg %radio.djnick 4Voici sa demande:7 $1- 
    notice $nick 4Nous avons bien recu votre demande spécial :7 $1- 4. Veuiller patienter pendant que notre dj joue du pied
    write demandespeciale.txt $date $time $1-
  }
}

alias askssong {
  if ($1 == on || !$1) { /timer $+ $cid 0 15 /showsong | msg # Démarrage de l'affichage automatique des chansons en cours }
  elseif ($1 == off) { /timer $+ $cid off | msg # Arrêt de l'affichage automatique des chansons en cours }
}

alias showsong {
  if ( %radio.song != %radio.songold ) {
    if (%radio.showlink >= 3) {
      msg %radio.mainchan 14.::4 %radio.name 14::. 4Voici notre petite adresse pour vous connecter: %radio.link
    }
    msg %radio.mainchan %radio.info
  }
}

alias radiopubshow { if ($2 == $null) { radiopub } | elseif ($2 == on) { /timerradioppub 0 1800 /radiopub | radiopub } | elseif ($2 == off) { timerradioppub off } | else halt }

alias radiopub {
  //amsg 7 $+ %radio.name $+  présente 7 $+ %radio.show $+  avec 7Dj- $+ %radio.djnick $+  aux tables tournantes. Pour écouter=> %radio.link Pour une demande spéciale=> 12!demande <artiste - titre> ¡!¡!¡!¡! %radio.info
}

alias radiolink {
  shop
  msg # 14.::4 %radio.name 14::.
  msg # 4Pour connexion: %radio.link %radio.bitrate
  .timer 1 2 msg # 4Votre Dj: 14.::7 %radio.djnick 4@7 %radio.show 14::.
}

alias radiodj {
  msg # 14.::4 %radio.name 14::. 4Voici notre Dj qui envoie notre musique direct à vos oreilles 14.::7 Dj- $+ %radio.djnick 14::.4 @7 %radio.show
}

alias shop { sockopen shtxt %radio.ip %radio.port }

on *:sockopen:shtxt:{ 
  write -c shop.txt 
  sockwrite -c $sockname GET /7.html HTTP/1.1 
  sockwrite -n $sockname Accept: */* 
  sockwrite -n $sockname Accept-Language: nl 
  sockwrite -n $sockname Accept-Encoding: gzip, deflate 
  sockwrite -n $sockname User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) 
  sockwrite -n $sockname Host: Radio %radio.port | sockwrite -n $sockname Connection: Keep-Alive 
  sockwrite -n $sockname $crlf 
} 

on *:sockread:shtxt:{ 
  if ($sockerr) { 
    return 
  } 
  sockread -f &xsh.txt 
  bwrite shop.txt -1 -1 &xsh.txt 
} 

on *:sockclose:shtxt:{ 
  if ($regex(hs,$read(shop.txt,4),dy>(.*)</b)) { 
    getsm $regml(hs,1) 
  } 
} 

alias getsm { 
  tokenize 44 $1- 
  tokenize 32 $1- 
  if ($5 == $null) { 
    return 
  } 
  if ( %radio.song != %radio.songold ) {
    set %radio.songold %radio.song
    set %radio.showlink %radio.showlink + 1
    write playlist.txt $date $time %radio.songold
  }
  if (%radio.showlink >= 4) {
    set %radio.showlink 0
  }
  set %radio.song $7-
  set %radio.info 4Chanson en cours de diffusion:12 $7-
  set %radio.listen $5
  set %radio.maxlisten $3
  set %radio.bitrate 7(12 $6 $+ 12Kbps 7)
}

; ????????????????????????????????????????????????
; End of file
; ????????????????????????????????????????????????

Conclusion :


Point fort du script :
  • Ajout et suppression rapide des personnes ayant access au commande dite "admin" avec !adddj et !remdj.
  • Canal d'administration unique certaine commande du script ne peuvent etre faite qu'a partir de ce canal la.
  • Regroupe la plupart des informations nécéssaires au bon fonctionnement d'un canal irc concu pour une web radio.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.