Bot pour canal de webradio (by a noob :d)

Contenu du snippet

Ce code est un simple bot IRC avec des options de merdes ... vu que je suis un noob et que c'est ma 1ere source merci de ne pas être trop mechant avec moi ... Je poste quand même ce script (sans trop de pub ^^) car il n'y en a AUCUN ! J'ai dailleur chercher longtemps ... en tout cas, ce qu'il manque vraiment à cette add-on c'est un interface et aussi un truc en socket qui chercher sur un site web (ex: http://www.watchout.net:8012 ) le nombre de personnes qui ecoutent la radio ou quelle musique passe ... J'éspère que vous serez compréensifs face à ma nulité en IRC Scripting et en Orthographe ;)

Source / Exemple :


alias msg { 
  if (%msgqueue) { 
    .timermsgqueue off 
    .timer 1 %msgqueue raw privmsg $1 : $+ $2- 
    .timermsgqueue 1 $calc(%msgqueue +1) unset %msgqueue 
    inc %msgqueue 
  } 
  else { raw privmsg $1 : $+ $2- | inc %msgqueue | .timermsgqueue 1 1 unset %msgqueue } 
} 
alias notice { 
  if (%noticequeue) { 
    .timernoticequeue off 
    .timer 1 %noticequeue raw notice $1 : $+ $2- 
    .timernoticequeue 1 $calc(%noticequeue +1) unset %noticequeue 
    inc %noticequeue 
  } 
  else { raw notice $1 : $+ $2- | inc %noticequeue | .timernoticequeue 1 1 unset %noticequeue } 
}

on *:TEXT:*:*:{
  if (($chr(35) isin $1-) && ($nick !isop $chan)) {   msg $nick 0,7.:4|0:. 8Evite de puber et join & perform12 %radio.chan 8! 0,7.:4|0:. }
  if ($1 == !help) { .notice $nick 0,7.:4|0:. 8pv un admin ou laisse moi un message en disant 5!msg 0,7.:4|0:. }
  if ($1 == !url) { .notice $nick 0,7.:4|0:. 8Stream is currently %thestream 8on %theurl 0,7.:4|0:. }
  if ($1 == !anim) {
    if (%onair = offair) { .notice $nick 0,7.:4|0:. 4personne 8n'est actuellement 0n air ! 0,7.:4|0:. }
    if (%onair != offair) { .notice $nick 0,7.:4|0:.4 %onair 8est actuellement9 0n air7 ! 0,7.:4|0:. }
  }
  if ($1 == !dedi) {
    if (%onair = offair) { .notice $nick 0,7.:4|0:. 4personne 8n'est actuellement 0n air tu ne peux donc 4pas faire8 de dedi ! 0,7.:4|0:. }
    if (%onair != offair) {
      .query %onair voici le ce que $nick m'a dit (en dedicasse): $2-
      .notice $nick 0,7.:4|0:.8 ta dedicasse4 ( $2- )8 est partit à4 %onair 8! 0,7.:4|0:.
    }
  }
  if (($1 == !msg) && ($chan == %radio.chan)) { query $nick 0,7.:4|0:. 8pose ton message ici en disant !msg xxx (xxx => ton msg) 0,7.:4|0:. }
  if (($1 == !msg) && ($chan == $null)) {
    if ($2 == $null) { return }
    set -u0 %a 0
    :loop
    inc %a
    if (%a >= 5) { .notice $nick 0,7.:4|0:. 8La liste est pleine  0,7.:4|0:. | return }
    if (%msg [ $+ [ %a ] ] == $null) { set %msg [ $+ [ %a ] ] $2- | set %nickofmsg [ $+ [ %a ] ] $nick | .msg $nick 0,7.:4|0:. 8Msg enregistré 0,7.:4|0:. | return }
    goto loop
  }
  if ($1 == !news) {
    .notice $nick %news1
    .notice $nick %news2
    .notice $nick %news3
    .notice $nick %news4
  }
  if ($1 == !cmds) {
    .notice $nick 0,7.:4|0:. 8Les commandes du bot sont les suivantes:0,7 .:4|0:.
    .notice $nick 0,7.:4|0:. 8!url (pour connaitre l'adresse du stream et son statut) 0,7.:4|0:.
    .notice $nick 0,7.:4|0:. 8!anim (pour savoir qui anim) 0,7.:4|0:.
    .notice $nick 0,7.:4|0:. 8!dedi xxx (pour faire le dedicasse xxx si quelqun est 0nAir) 0,7.:4|0:.
    .notice $nick 0,7.:4|0:. 8!news (pour connaitre les news) 0,7.:4|0:.
    .notice $nick 0,7.:4|0:. 8!help (si vous avez des problemmes) 0,7.:4|0:.
    .notice $nick 0,7.:4|0:. 8!msg (pour laisser un message aux admins) 0,7.:4|0:.
    if ($nick isop $chan) {
      .notice $nick 0,7.:4|0:. 4op cmd: 8!opcmds (pour connaitre les commandes des operateurs) 0,7.:4|0:.
    }
  }

  if ($nick !isop %radio.chan) { return }
  if ($1 == !onair) { .notice $nick 0,7.:4|0:. 8ok tu es maintenant onair ! 0,7.:4|0:. | set %onair $nick }
  if ($1 == !offair) { .notice $nick 0,7.:4|0:. 8ok: personne n'est onair :'( 0,7.:4|0:. | set %onair offair }
  if ($1 == !do) {
      $2-
      .notice $nick 0,7.:4|0:. 8Action réalisée 0,7.:4|0:.
  }
  if (($1 == !readmsg) && ($2 isnum) && ($2 > 0)) {
    if (%msg [ $+ [ $2 ] ] == $null) { .notice $nick Msg n'existe pas | return }
    .notice $nick Msg $2 : %msg [ $+ [ $2 ] ] :: par : %nickofmsg [ $+ [ $2 ] ]
  }
  if ($1 == !readallmsg) {
    set -u0 %a 0
    set -u0 %b 0
    :hum
    inc %a
    inc %b 2
    if (%msg [ $+ [ %a ] ] == $null) { .timer 1 %b notice $nick Lecture Finie | return }
    .timer 1 %b .notice $nick Msg %a : %msg [ $+ [ %a ] ] :: par : %nickofmsg [ $+ [ %a ] ]
    goto hum
  }
  if ($1 == !opcmds) {
    .notice $nick 0,7.:4|0:. 8!do xxx (pour que le bot fasse exactement xxx) 0,7.:4|0:.
    .notice $nick 0,7.:4|0:. 8!saynews (pour que le bot dise les news sur tous les chans) 0,7.:4|0:.
    .notice $nick 0,7.:4|0:. 8!setnews(1,2,3,4) (pour que le bot configure les news 1,2,3 et 4) 0,7.:4|0:.
    .notice $nick 0,7.:4|0:. 8!readallmsg (pour que le bot vous dise les msgs) 0,7.:4|0:.
    .notice $nick 0,7.:4|0:. 8!supprallmsg/supprmsg x (pour que le bot supprime tous les msgs ou 1 en particulier) 0,7.:4|0:.
    .notice $nick 0,7.:4|0:. 8!onair/offair (pour vous mettre onair/offair aupres du bot sur %radio.chan !) 0,7.:4|0:.
    .notice $nick 0,7.:4|0:. 8!seturl (url)/!setstream (1/0) (pour configurer l'url et le status du stream !) 0,7.:4|0:.
    .notice $nick 0,7.:4|0:. 8!massvoice (1/0) (met l'auto voice on/off) 0,7.:4|0:.
  }
  if ($1 == !seturl) {
    set %theurl $2-
    .notice $nick 0,7.:4|0:. 8Stream is currently %thestream 8on %theurl 0,7.:4|0:.
  }
  if ($1 == !massvoice) {
      set %voiceonjoin $2
  }
  if ($1 == !setstream) {
    if ($2 == 1) {
      set %thestream 9UP 
      .notice $nick 0,7.:4|0:. 8Stream is currently %thestream 8on %theurl 0,7.:4|0:.
    }
    if ($2 == 0) {
      set %thestream 4DOWN
      .notice $nick 0,7.:4|0:. 8Stream is currently %thestream 8on %theurl 0,7.:4|0:.
    }
  }
  if ($1 == !saynews) {
    amsg %news1
    amsg %news2
    amsg %news3
    amsg %news4
  }
  if ($1 == !setnews) { .notice $nick les cmds sont !setnews1 !setnews2 !setnews3 !setnews4 !news !saynews }
  if (($left($1,8) == !setnews) && ($len($1) == 9)) {
    set %news [ $+ [ $right($1,1) ] ] $2- | .notice $nick voici la news $right($1,1) : $2-
  }
  if ($1 == !supprallmsg) {
    unset %nickofmsg* %msg* | .notice $nick Tous les messages ont été effacés
  }
  if (($1 == !supprmsg) && ($2 isnum) && ($2 > 0)) {
    if (%msg [ $+ [ $2 ] ] == $null) { .notice $nick Msg n'existe pas | return }
    set -u0 %a $2
    dec %a
    :del
    inc %a
    if (%msg [ $+ [ %a ] ] == $null) { .notice $nick Msg $2 effacé | return }
    set -u0 %t %msg [ $+ [ $calc(%a +1) ] ]
    set %msg [ $+ [ %a ] ] %t
    set -u0 %t %nickofmsg [ $+ [ $calc(%a +1) ] ]
    set %nickoffmsg [ $+ [ %a ] ] %t
  }
}

ON *:LOAD:{
  .echo -a 0,7.:4|0:. 8Bot pour chan de radio installé 0,7.:4|0:.
  .echo -a 0,7.:4|0:. 8Des dialogues devraient apparaitre ... remplissez bien les 2 premiers ! 0,7.:4|0:.
  .echo -a 0,7.:4|0:. 8Bot by b3b3n (b3n_j@voila.fr) ! 0,7.:4|0:.

  set %botsrv $?="serveur irc du bot (irc.quakenet.eU.org/irc.voila.fr/...)"
  set %radio.chan $?="Nom du chan principal ?"
  set %botnick $?="Nom du bot ?"
  set %botpass $?="owner pass (pour la cmd !do uniquement)"
  set %Qauth $?="compte Q du bot"
  set %Qpass $?="pass Q du bot"
  if if (%botsrv) {
  .server -m %botsrv
}
}

ON *:UNLOAD:{
  .echo -a 0,7.:4|0:. 8Bot pour chan de radio désinstallé 0,7.:4|0:.
  .echo -a 0,7.:4|0:. 8Bot by b3b3n (b3n_j@voila.fr) ! 0,7.:4|0:.
}

alias botsrv {
set %botsrv $?="serveur irc du bot (irc.quakenet.eU.org/irc.voila.fr/...)"
}

alias botchan {
set %radio.chan $?="Nom du chan principal ?"
}

alias botnick {
set %botnick $?="Nick du bot"
}
alias botQpass {
set %Qpass $?="pass Q du bot"
}
alias botpass {
set %botpass $?="pass du bot (pour la cmd !do"
}

ON *:CONNECT:{
  .msg Q@Cserve.Quakenet.org auth %Qauth %Qpass
  mode $me +x
  /join %radio.chan
}

ON *:START:{
/server -m %botsrv
/nick %botnick
}
on *:JOIN:%radio.chan:{
  .notice $nick 0,7.:4|0:. 8Welcome²5 %radio.chan 8! dites 1 !cmds 8pour les connaitre ! 0,7.:4|0:.
  if (%voiceonjoin == 1) {
    mode $chan +v $nick
  }
}

menu menubar,channel,query,status {
  -
  ? Bot Pour Radio-Channel ?
  .Nick du bot ( %botnick ): /botnick
  .Serveur du bot  ( %botsrv ):/botsrv
  .Chan principal ( %radio.chan ):/botchan
  .Q auth du bot ( %Qauth ):/botQauth
  .Q pass du bot ( %Qpass ):/botQpass
}

Conclusion :


le debut du code (anti exess flood) fait partit d'un autre post sur ce site ... j'en remerci l'auteur ^:p
Je rapelle que si des vrais scripteurs regardaient ce code et le rendent potable ca serait cool ... Soyez indulgent !

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.

Du même auteur (b3b3n)