Mon add-on (avec sockets), dont un moyen de télécharger des "petits" add-ons

Contenu du snippet

Voila la présentation de mon add-on, qui en plus d'avoir des fonctions basiques (comme d'habitude : slaps, protections, répondeur, mp3, blacklist, ...)
Mais il y a en plus depuis quelques version un système d'auto-mise à jour du script (sur demande uniquement), ainsi que la possibilité de télécharger quelques "petits" add-ons, du genre sockets (Google, Gametiger, Programme TV, Vossey, et pas mal d'autres), utilitaires (Calendrier, Liste des chars ascii, bloqueur de queries, calculatrice, ...), outils pour chan (scan de clones, panneau de modes sur le chan avec apercu du topic, Stats du chan, ...), ou encore jeux (Papier Pierre Ciseaux, Wolf-Territory (mon jeu qui est sur ce site)) directement à partir de mon ftp, et que ce soit installé, sans rien avoir à faire à part taper /install.script "le nom du script".
exemple du téléchargement :
[14:37:49] [ Déchargement du script en cours ... ]
[14:37:49] [ Connexion au server ... ]
[14:37:49] [ Négociations avec le serveur en cours ... ]
[14:37:49] [ Début du téléchargement de Evenement ... ] (le nom du script sur lequel j'ai fait l'exemple)
[14:37:49] [ Téléchargement terminé, chargement du script en cours ... ]
[14:37:49] [ Script téléchargé en 0.531s ]
[14:37:49] [ Script correctement chargé. ]

Il est également prévu de pouvoir voir la liste des scripts téléchargeables (mise à jour automatique, par sockets) à grâce à la commande /check.script.
Cette liste peut être décomposée en quatre parties, à savoir Tools, Games, ChanTools, Sockets.
Il faut taper /check.script "Tools" (par exemple) pour voir la liste des scripts rangés dans Tools.
exemple d'une présentation d'un script :
[ PC Informations : ]
[ Langage : Anglais ]
[ Commande : /pcinfos ]
[ Description : Regardez la configuration de votre PC et montrez la à vos amis. ]
[ Pour télécharger : /install.script PCInfos ]
[ Requis : Script-ArKanis version 2.4 ] (Actuellement version 2.6b)
[ Auteur : ArKanis ]
[ Script déjà installé ] (il indique ici si le script a déjà été téléchargé)

Vous pouvez également desinstaller un script, à l'aide d'un autre script téléchargeable (Uninstall-Module) à l'aide de /uninstall "script"
exemple :
[14:30:48] [ Mise à jour de la liste des add-ons en cours ... Connection au serveur ... ]
[14:30:48] [ Preparing to download List.txt ]
[14:30:48] [ Downloading List.txt ... ]
[14:30:49] [ Téléchargement de List.txt terminé. ]
[14:30:49] [ Fichier téléchargé en 0.203s ]
[14:30:49] [ Téléchargement du module de désinstallation ]
[14:30:49] [ Preparing to download Module-Uninstall.txt ]
[14:30:49] [ Downloading Module-Uninstall.txt ... ]
[14:30:50] [ Téléchargement de Module-Uninstall.txt terminé. ]
[14:30:50] [ Fichier téléchargé en 0.406s ]
[14:30:51] [ Désinstallation en cours ... Votre ordinateur peut rammer. ]
[14:31:07] [ Add-on désinstallé. Rechargement du script et déchargement du module ... ]
[14:31:10] [ Script correctement chargé. ]
[14:31:10] [ Vous n'avez pas de rendez-vous aujourd'hui. ]
[14:31:10] [ Module correctement déchargé. ]

Encore une autre possibilité, c'est de voir les dernières "news" à propos de mon script. La commande est /news.arka

En résumé, il s'agit donc d'un add-on (qui ne modifie pas vos configurations), et qui est principalement constitué de sockets (surtout concernant les dernières versions) qui mettent tout à jour à partir de mon FTP.

En ce moment, je cherche des idées d'add-ons à inclure, donc si vous avez des idées contactez moi. Je mettrai bien évidement dans la liste qui est l'auteur, et autres remarques, ...
Ce qu'il faudrait pour ces scripts : ne pas avoir plein de ON *:TEXT, NOTICE, ... ou autres du même type. Le ON *:LOAD est transformé car il s'agit ici d'un "commentaire" qui s'inscrit dans un .txt (une sorte de LOG des downloads), du type ;commentFR Bonjour !
Le ON *:UNLOAD est ici ;uninstall unset %tv* | .timertv* off
et il y a d'autres petites astuces du genre :)
A noter qu'il est également possible de faire télécharger des fichiers (comme des .dll) de ce genre :
if (!$exists(ScreenSaver.exe)) { download.arkanis.ask /Public/Divers/ScreenSaver.exe | return }
cet alias posera une question sur si il doit télécharger ou pas :)

J'attends pas mal de remarques sur ce système de "banque du script", qui pourrait vraiment être beaucoup plus développé :)
Voici un screen de toutes les boites de dialogue du script au moment ou je l'ai fait (de nouvelles sont apparues avec les "petits" add-ons) :

Voici le script du /check.script, mais attention, il manque pas mal d'aliases (il y en a beaucoup pour tous les coller), donc allez plutôt télécharger le script :)

Source / Exemple :


;**************************************
; Download an ArKanis' Little Script
;**************************************
alias check.script {
  unset %news.arka.maj
  unset %check.script
  if ($1) { set %check.script $1 }
  unset %o
  sockclose arkanis.check
  sockopen arkanis.check users.rockweb.org 80
  set %temp.ticks $ticks
}
on *:sockopen:arkanis.check:{
  if ($sockerr > 0) return
  if (%langage.arka == France) {
    if (%check.script) { sockwrite -n $sockname GET $+(http://users.rockweb.org/ArKanis/Public/Scripts/Script-Download/,%check.script,FR.txt) HTTP/1.0 }
    else sockwrite -n $sockname GET http://users.rockweb.org/ArKanis/Public/Scripts/Script-Download/Script-DownloadFR.txt HTTP/1.0 
  }
  if (%langage.arka != France) {
    if (%check.script) { sockwrite -n $sockname GET $+(http://users.rockweb.org/ArKanis/Public/Scripts/Script-Download/,%check.script,UK.txt) HTTP/1.0 }
    else sockwrite -n $sockname GET http://users.rockweb.org/ArKanis/Public/Scripts/Script-Download/Script-DownloadUK.txt HTTP/1.0 
  }
  sockwrite -n $sockname $crlf
  unset %temp.arkanis.*
}
alias install.script {
  if (!$1) { return }
  if ($readini(ArKanis-Little-Script.ini,Installed,$+($1,.txt))) {
    if (%langage.arka == France) { echo -a 2 $+ $asctime([HH:nn:ss]) 12,1[ 0Ce script a déjà été téléchargé. Abandon du téléchargement. 12] }
    if (%langage.arka != France) { echo -a 2 $+ $asctime([HH:nn:ss]) 12,1[ 0This script had already been downloaded. Giving up download. 12] }
    return
  }
  if (!$exists(ArKanis-Little-Script.mrc)) {
    write ArKanis-Little-Script.mrc ;*********************
    write ArKanis-Little-Script.mrc ; Script by #ArKanis
    write ArKanis-Little-Script.mrc ;*********************
    write ArKanis-Little-Script.mrc ON $+(*:LOAD:,$chr(123))
    write ArKanis-Little-Script.mrc if (%langage.arka == France) $chr(123) echo -a $+($chr(36),asctime([HH:nn:ss])) 12,1[ 0Script correctement chargé. 12] $chr(125)
    write ArKanis-Little-Script.mrc if (%langage.arka != France) $chr(123) echo -a $+($chr(36),asctime([HH:nn:ss])) 12,1[ 0Script correctly loaded. 12] $chr(125)
    write ArKanis-Little-Script.mrc $chr(125)

  }
  if ($script(ArKanis-Little-Script.mrc)) {
    .unload -rs ArKanis-Little-Script.mrc
    if (%langage.arka == France) { echo -a 2 $+ $asctime([HH:nn:ss]) 12,1[ 0Déchargement du script en cours ... 12] }
    if (%langage.arka != France) { echo -a 2 $+ $asctime([HH:nn:ss]) 12,1[ 0Unloading the script 12] }
  }
  set %little.arkanis $+($1,.txt)
  if ($right(%little.arkanis,8) == .txt.txt) { set %little.arkanis $left(%little.arkanis,-4) }
  if (%langage.arka == France) { echo -a 2 $+ $asctime([HH:nn:ss]) 12,1[ 0Connexion au server ... 12] }
  if (%langage.arka != France) { echo -a 2 $+ $asctime([HH:nn:ss]) 12,1[ 0Connecting to the server ... 12] }
  sockclose download.arkanis.little
  sockopen download.arkanis.little users.rockweb.org 80
  set %temp.ticks3 $ticks
}
on *:sockopen:download.arkanis.little:{
  if ($sockerr > 0) return
  if (%langage.arka == France) { echo -a 2 $+ $asctime([HH:nn:ss]) 12,1[ 0Négociations avec le serveur en cours ... 12] }
  if (%langage.arka != France) { echo -a 2 $+ $asctime([HH:nn:ss]) 12,1[ 0Negociating with the server ... 12] }
  if (!%little.arkanis) { sockclose $sockname | return }
  unset %ok
  sockwrite -n $sockname GET $+(http://users.rockweb.org/ArKanis/Public/Scripts/Script-Download/,%little.arkanis) HTTP/1.0
  sockwrite -n $sockname $crlf
}
on *:sockread:download.arkanis.little:{
  sockread %a
  if ((%ok) && (%a)) { set %ok 2 | write ArKanis-Little-Script.mrc %a | if ((($left(%a,10) == $+($chr(59),commentFR)) && (%langage.arka == France)) || (($left(%a,10) == $+($chr(59),commentUK)) && (%langage.arka != France))) { if (!$exists(Log-ArKanis-Little-Script.txt)) { write Log-ArKanis-Little-Script.txt -- ArKanis Little Script LOG -- | write Log-ArKanis-Little-Script.txt $iif(%langage.arka == France,Crée le $date à $time,Created the $date at $time) } | write Log-ArKanis-Little-Script.txt $replace($remove(%a,;commentFR,;commentUK),'time',$time,'date',$date) } }
  if (------------------------ isin %a) {
    set %ok 1
    if (%langage.arka == France) { echo -a 2 $+ $asctime([HH:nn:ss]) 12,1[ 0Début du téléchargement de $nopath($gettok(%little.arkanis,1,46)) ... 12] }
    if (%langage.arka != France) { echo -a 2 $+ $asctime([HH:nn:ss]) 12,1[ 0Begining downloading $nopath(%little.arkanis) ... 12] }
  }
}
on *:sockclose:download.arkanis.little:{
  if (%ok != 2) {
    unset %t
    .remini ArKanis-Little-Script.ini Installed %little.arkanis
    if ($exists(ArKanis-Little-Script.mrc)) { var %t = 1 }
    if (%langage.arka == France) { echo -a 2 $+ $asctime([HH:nn:ss]) 12,1[ 0Fichier non trouvé. Faites attention aux majuscules du script. $iif(%t,Chargement du script en cours ...) 12] }
    if (%langage.arka != France) { echo -a 2 $+ $asctime([HH:nn:ss]) 12,1[ 0File not found. Warning with the blocks letters of the script. $iif(%t,Loading script ...) 12] }
    if (%t) { goto load }
    return
  }
  if (%langage.arka == France) { echo -a 2 $+ $asctime([HH:nn:ss]) 12,1[ 0Téléchargement terminé, chargement du script en cours ... 12] }
  if (%langage.arka != France) { echo -a 2 $+ $asctime([HH:nn:ss]) 12,1[ 0Download finished, loading script ... 12] }
  if (!$exists(ArKanis-Little-Script.mrc)) { echo -a 2 $+ $asctime([HH:nn:ss]) 12,1[ 0Error 12] | return }
  writeini -n ArKanis-Little-Script.ini Installed %little.arkanis 1
  if (%temp.ticks3) {
    echo -a 2 $+ $asctime([HH:nn:ss]) 12,1[0 $iif(%langage.arka == France,Script téléchargé en,Script downloaded in)  $+($calc(($ticks - %temp.ticks3) / 1000),s) 12]
    unset %temp.ticks3
  }
  :load
  .load -rs ArKanis-Little-Script.mrc
  .timersaveini 1 2 .saveini
  if ($exists(Log-ArKanis-Little-Script.txt)) {
    run Log-ArKanis-Little-Script.txt
  }
}

Conclusion :


Script téléchargeable sur http://scripts.arkanis.info (Script-ArKanis.zip)
Mise à jour du script proposée dans menubar, channel, ...
Le script est moitié anglais, moitié francais (il est possible de choisir sa langue)
Pour l'installer, il est fortement conseillé de lire le fichier Install.txt qui est à l'intérieur du script :D

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.