; ------------------------------------------------
; 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
;