Accueil > > > SNIPPET: INTERCONNECTION SYSTEM
SNIPPET: INTERCONNECTION SYSTEM
Information sur la source
Description
Ce petit snippet va vous permettre d'établir une connection entre mIRC et le server IRC.
Ce code n'est qu'un début de possibilité. Vous pouvez ajouter des commandes dans le on sockread pour ajouter des fonctions de filtre.
Les fakes events envoient a votre mIRC des messages en se faisant passre pour le server. L'intéret est de tester des events sans affecter les autres users de l'IRC
Vous trouverez également quelques systèmes comme un monitoring de ping, un ctcp version/ping blocker ou un log des messages entrant et sortant de mIRC (commande /debug)
La différence entre ces systèmes et ce que l'on trouve d'habitude est que cette fois ci mIRC en tant que client IRC ne verra rien passer.
Pour ouvrir une connection utilisant l'interconnection: /server -q server port
Le reste des commandes est décrit dans le remote file.
Je suis ouvert à toute proposition de nouvelle fonction a ajouter à ce système.
Source
- ; InterConnection system v1.0 by Seregon®
- ;
- ; Ce système va vous permettre d'établir un filtre sur vos connections et ainsi de ne pas faire parvenir certains messages à mIRC
- ; Pour le moment seules quelques commandes simples:
- ; - ctcp ping/version block
- ; - Monitoring de ping (sans passer par mIRC)
- ; - Fakes events
- ; Ce code n'est pas un addon en lui même, il s'agit d'un point de départ (snippet) servant à ouvrir sur plusieurs possibilités de réalisations.
- ; Vous pouvez le modifier: n'hésitez pas à me faire part de modification si celles-ci valent la peine d'etre ajoutées. Mais ne me donnez pas vos codes lol je préfère
- ; réaliser les systèmes moi même :).
- ;
- ; Le multi server est géré, cependant le /server -mq ... bug toujours, j'essayerai de le corriger dans la prochaine version du script.
- ;
- ; Description des commandes:
- ;
- ; /server -q <server> [port] : Se connecte au server sur le port spécifié. Si vous spécifiez d'autres flags, ils ne seront pas pris en compte. (J'ai l'intention d'ajouter
- ; le flag m prochainement
- ;
- ; /s.filter ctcp <type> <params> : Gère les reply sur les ctcp ping comme indiqué ci-dessous.
- ; /s.filter ctcp version <on|off|change> [text] : "on" entraine un bloquage total des reply sur le ctcp version
- ; "off" laisse mIRC gérer les replies
- ; "change" Envoie un message de version personalisé
- ; Si "text" est spécifié, le message personalisé envoyé (si les ctcp version sont en mode "change") sera remplacé par celui-ci
- ; /s.filter ctcp ping <on|off|disturb> : "on" active le bloquage des replies sur le ctcp ping
- ; "off" laisse mIRC gérer les ping replies
- ; "disturb" envoie une reply incohérente :p
- ;
- ; /s.filter pingmon <cid> <on|off> [time] : Ceci active ou désactive un système de monitoring de ping (la nouveauté ici est que mIRC en tant que client IRC ne verra rien!
- ; <cid> : représente le cid sur lequel vous souhaitez commencer le monitoring
- ; <on|off> : Active/désactive le monitoring sur le cid spécifié.
- ; [time] : Obligatoire si "on" est spécifié, détermine le temps de refresh de votre monitoring (en secondes)
- ; NB: Le ping monitoring déclenchera un signal ping.mon où $1 retournera la valeur (en milisecondes) du ping
- ;
- ; /s.filter fake <cid> <event> <params> : Ceci déclenche un fake event sous mIRC selon les paramètres spécifiés par l'user.
- ; <cid> Le cid sur lequel le fake event doit avoir lieu
- ; Ci-dessous la liste des events disponibles et de leurs paramètres:
- ;
- ; Event: Paramètres
- ; Join: <nick|address> <channel>
- ; Part: <nick|address> <channel>
- ; Quit: <nick|address>
- ; Privmsg: <nick|address> <target> (peut etre un channel, un channel prefixé (+#chan,@chan...), $me (private message) ou * (general message)) <text>
- ; Action: <nick|address> <target> (peut etre un channel, prefixé ou non (voir l'event privmsg) ou $me) <text>
- ; Notice: <nick|address> <target> (même format que pour l'event privmsg) <text>
- ; Kick: <nick|address> <chan> <nick> <raison> (le second nick est le nick kické et le 1er est l'auteur du kick)
- ; Rawmode: <nick|address> <channel> <modes> [nicks] (gère les mode channels aussi bien que les modes users)
- ; Topic: <nick|address> <channel> <text>
- ; ServerNotice: <text>
- ;
- ; /s.filter log <on|off> <@window> : Log les messages reçus du server dans une @window (pareil que la commande /debug)
-
- alias server {
- if ($left($1,1) == -) && (q isin $1) && ($2) {
- if ($scid($cid).status == connected) {
- hadd filter $+(reco-,$cid) $2 $iif($3,$3,6667)
- scid $cid disconnect
- halt
- }
- hdel -w filter $+(buffer-,$cid,-*)
- socklisten $+(FirebirD-,$activecid)
- sockopen $+(AnduriL-,$activecid) $2 $iif($3,$3,6667)
- }
- else server $1-
- }
- on 1:start: { hmake filter 50 | if ($exists($scriptdirfilter.hash) == $true) hload -o filter $+(",$scriptdirfilter.hash,") }
- on 1:exit: hsave -o filter $+(",$scriptdirfilter.hash,")
- on 1:sockopen:AnduriL-*: { server 127.0.0.1 $sock($+(FirebirD-,$gettok($sockname,-1,45))).bindport }
- on 1:socklisten:FirebirD-*: {
- sockaccept $+(NarsiL-,$gettok($sockname,-1,45))
- sockclose $+(FirebirD-,$gettok($sockname,-1,45))
- var %i = 1, %n = $hfind(filter,$+(buffer-,$gettok($sockname,-1,45),-*),0,w)
- while (%i <= %n) {
- sockwrite -n $+(NarsiL-,$gettok($sockname,-1,45)) $hget(filter,$hfind(filter,$+(buffer-,$gettok($sockname,-1,45),-*),%i,w))
- inc %i
- }
- hdel -w filter $+(buffer-,$gettok($sockname,-1,45),-*)
- }
- on 1:sockread:NarsiL-*: {
- sockread %NarsiL
- if ($hget(filter,debug)) $hget(filter,debug) $+(=NarsiL,$gettok($sockname,-1,45),=) %NarsiL
- sockwrite -n $+(AnduriL-,$cid) %NarsiL
- }
- on 1:sockread:AnduriL-*: {
- sockread %AnduriL
- tokenize 32 %AnduriL
- if ($sock($+(NarsiL-,$gettok($sockname,-1,45)))) {
- if ($hget(filter,debug)) $hget(filter,debug) $+(=AnduriL,$gettok($sockname,-1,45),=) $1-
- if ($gettok($1-,2,58) == version) {
- if ($hget(filter,version) == change) sockwrite -n $sockname NOTICE $gettok($gettok($1-,1,58),1,33) $+(:,,VERSION,$chr(32),$hget(filter,versiontxt),)
- elseif ($hget(filter,version) == block) halt
- .signal filter version $gettok($gettok($1-,1,58),1,33) $hget(filter,version)
- }
- elseif ($regex($gettok($1-,2,58),^(ping) [[:digit:]]*) == 1) {
- if ($hget(filter,ping) == disturb) sockwrite -n $sockname NOTICE $gettok($gettok($1-,1,58),1,33) :PING just disturbing your ping :p
- elseif ($hget(filter,ping) == block) halt
- .signal filter ping $gettok($gettok($1-,1,58),1,33) $hget(filter,ping)
- }
- elseif ($2 == PONG) && ($4 == :monitoring) { .signal sfilter.ping $calc($ticks - $hget(filter,$+(reply-,$gettok($sockname,-1,45)))) | hdel filter $+(reply-,$gettok($sockname,-1,45)) }
- else sockwrite -n $+(NarsiL-,$gettok($sockname,-1,45)) $1-
- }
- elseif ($sock($+(FirebirD-,$gettok($sockname,-1,45)))) hadd filter $+(buffer-,$gettok($sockname,-1,45),-,$calc($hfind(filter,$+(buffer-,$gettok($sockname,-1,45),-*),0,w) + 1)) $1-
- }
- on 1:sockclose:AnduriL-*: {
- if ($scid($cid).server) scid $cid disconnect
- sockclose $+(NarsiL-,$gettok($sockname,-1,45))
- if ($hget(filter,$+(reco-,$gettok($sockname,-1,45)))) {
- socklist
- scid $cid server -q $hget(filter,$+(reco-,$gettok($sockname,-1,45)))
- hdel filter $+(reco-,$gettok($sockname,-1,45))
- }
- }
- on 1:sockclose:NarsiL-*: {
- if ($scid($cid).server) scid $cid disconnect
- sockclose $+(AnduriL-,$gettok($sockname,-1,45))
- if ($hget(filter,$+(reco-,$gettok($sockname,-1,45)))) {
- socklist
- scid $cid server -q $hget(filter,$+(reco-,$gettok($sockname,-1,45)))
- hdel filter $+(reco-,$gettok($sockname,-1,45))
- }
- }
- alias s.filter {
- if ($isid == $false) {
- if (!$1) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
- elseif ($1 == ctcp) && ((!$2) || (!$3)) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
- elseif ($1 == ctcp) && ($2 == version) {
- if ($3 == change) && (!$4) && (!$hget(filter,versiontxt)) { echo $color(info) -a *** /s.filter: no version message specified | halt }
- elseif ($3 == change) && (!$4) && ($hget(filter,versiontxt)) hadd filter verison change
- elseif ($3 == change) && ($4) { hadd filter versiontxt $4- | hadd filter version change }
- elseif ($3 == off) hadd filter version allow
- elseif ($3 == on) hadd filter version block
- }
- elseif ($1 == ctcp) && ($2 == ping) {
- if (!$3) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
- elseif ($3 == on) hadd filter ping block
- elseif ($3 == off) hadd filter ping allow
- elseif ($3 == disturb) hadd filter ping disturb
- }
- elseif ($1 == log) {
- if (!$2) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
- if ($2 == on) && (!$3) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
- elseif ($2 == off) { hdel filter debug | halt }
- elseif ($2 == on) && (($left($3,1) != @) || ($len($3) == 1)) { echo $color(info) -a *** /s.filter: invalid parameters | halt }
- elseif ($2 == on) && ($left($3,1) == @) {
- if (!$window($3)) window -ae $3
- hadd filter debug aline -ph $3
- halt
- }
- }
- elseif ($1 == pingmon) {
- if (!$2) || (!$3) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
- elseif ($3 == off) && (!$timer($+(pingmon-,$2))) { echo $color(info) -a *** /s.filter: no such monitoring | halt }
- elseif ($3 == off) && ($timer($+(pingmon-,$2))) { $+(.timerpingmon-,$2) off | if ($hget(filter,$+(reply-,$2))) { hdel filter $+(reply-,$2) } | halt }
- elseif ($3 == on) && ($timer($+(pingmon-,$2))) { echo $color(info) -a *** /s.filter: already monitoring $2 | halt }
- elseif ($3 == on) && ($int($2) != $2) || ($3 <= 0) { echo $color(info) -a *** /s.filter: invalid parameters | halt }
- elseif ($3 == on) && (!$scid($2)) { echo $color(info) -a *** /s.filter: no such cid | halt }
- elseif ($3 == on) { $+(.timerpingmon-,$2) 0 $3 ping.mon $2 }
- }
- elseif ($1 == fake) {
- if ($2 !isnum) { echo $color(info) -a *** /s.filter: invalid parameters | halt }
- elseif (!$sock($+(Narsil-,$2))) { echo $color(info) -a *** /s.filter: invalid cid | halt }
-
- elseif ($3 == join) || ($3 == part) {
- if (!$5) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
- elseif ($5 !ischan) { echo $color(info) -a *** /s.filter: invalid parameters | halt }
- sockwrite -n $+(NarsiL-,$2) $+(:,$4) $upper($3) $5
- halt
- }
- elseif ($3 == quit) {
- if (!$4) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
- sockwrite -n $+(NarsiL-,$2) $+(:,$4) $upper($3)
- halt
- }
- elseif ($3 == privmsg) || ($3 == action) {
- if (!$6) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
- sockwrite -n $+(NarsiL-,$2) $+(:,$4) PRIVMSG $5 $+(:,$iif($3 == action,ACTION $6- $+ ,$6-))
- halt
- }
- elseif ($3 == notice) {
- if (!$6) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
- sockwrite -n $+(NarsiL-,$2) $+(:,$4) NOTICE $5 $+(:,$6-)
- halt
- }
- elseif ($3 == servernotice) {
- if (!$4) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
- sockwrite -n $+(NarsiL-,$2) $+(:,$scid($cid).server) NOTICE $4-
- halt
- }
- elseif ($3 == kick) {
- if (!$5) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
- sockwrite -n $+(NarsiL-,$2) $+(:,$4) KICK $5-6 $+(:,$7-)
- halt
- }
- elseif ($3 == rawmode) {
- if (!$6) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
- sockwrite -n $+(NarsiL-,$2) $+(:,$4) MODE $5-
- halt
- }
- elseif ($3 == topic) {
- if (!$5) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
- sockwrite -n $+(NarsiL-,$2) $+(:,$4) TOPIC $5-
- halt
- }
- }
- }
- }
- alias ping.mon {
- if (!$hget(filter,$+(reply-,$1))) {
- if ($scid($1).status == connected) { hadd filter $+(reply-,$1) $ticks | sockwrite -n $+(AnduriL-,$1) ping monitoring }
- else .signal sfilter.ping N/A
- }
- }
; InterConnection system v1.0 by Seregon®
;
; Ce système va vous permettre d'établir un filtre sur vos connections et ainsi de ne pas faire parvenir certains messages à mIRC
; Pour le moment seules quelques commandes simples:
; - ctcp ping/version block
; - Monitoring de ping (sans passer par mIRC)
; - Fakes events
; Ce code n'est pas un addon en lui même, il s'agit d'un point de départ (snippet) servant à ouvrir sur plusieurs possibilités de réalisations.
; Vous pouvez le modifier: n'hésitez pas à me faire part de modification si celles-ci valent la peine d'etre ajoutées. Mais ne me donnez pas vos codes lol je préfère
; réaliser les systèmes moi même :).
;
; Le multi server est géré, cependant le /server -mq ... bug toujours, j'essayerai de le corriger dans la prochaine version du script.
;
; Description des commandes:
;
; /server -q <server> [port] : Se connecte au server sur le port spécifié. Si vous spécifiez d'autres flags, ils ne seront pas pris en compte. (J'ai l'intention d'ajouter
; le flag m prochainement
;
; /s.filter ctcp <type> <params> : Gère les reply sur les ctcp ping comme indiqué ci-dessous.
; /s.filter ctcp version <on|off|change> [text] : "on" entraine un bloquage total des reply sur le ctcp version
; "off" laisse mIRC gérer les replies
; "change" Envoie un message de version personalisé
; Si "text" est spécifié, le message personalisé envoyé (si les ctcp version sont en mode "change") sera remplacé par celui-ci
; /s.filter ctcp ping <on|off|disturb> : "on" active le bloquage des replies sur le ctcp ping
; "off" laisse mIRC gérer les ping replies
; "disturb" envoie une reply incohérente :p
;
; /s.filter pingmon <cid> <on|off> [time] : Ceci active ou désactive un système de monitoring de ping (la nouveauté ici est que mIRC en tant que client IRC ne verra rien!
; <cid> : représente le cid sur lequel vous souhaitez commencer le monitoring
; <on|off> : Active/désactive le monitoring sur le cid spécifié.
; [time] : Obligatoire si "on" est spécifié, détermine le temps de refresh de votre monitoring (en secondes)
; NB: Le ping monitoring déclenchera un signal ping.mon où $1 retournera la valeur (en milisecondes) du ping
;
; /s.filter fake <cid> <event> <params> : Ceci déclenche un fake event sous mIRC selon les paramètres spécifiés par l'user.
; <cid> Le cid sur lequel le fake event doit avoir lieu
; Ci-dessous la liste des events disponibles et de leurs paramètres:
;
; Event: Paramètres
; Join: <nick|address> <channel>
; Part: <nick|address> <channel>
; Quit: <nick|address>
; Privmsg: <nick|address> <target> (peut etre un channel, un channel prefixé (+#chan,@chan...), $me (private message) ou * (general message)) <text>
; Action: <nick|address> <target> (peut etre un channel, prefixé ou non (voir l'event privmsg) ou $me) <text>
; Notice: <nick|address> <target> (même format que pour l'event privmsg) <text>
; Kick: <nick|address> <chan> <nick> <raison> (le second nick est le nick kické et le 1er est l'auteur du kick)
; Rawmode: <nick|address> <channel> <modes> [nicks] (gère les mode channels aussi bien que les modes users)
; Topic: <nick|address> <channel> <text>
; ServerNotice: <text>
;
; /s.filter log <on|off> <@window> : Log les messages reçus du server dans une @window (pareil que la commande /debug)
alias server {
if ($left($1,1) == -) && (q isin $1) && ($2) {
if ($scid($cid).status == connected) {
hadd filter $+(reco-,$cid) $2 $iif($3,$3,6667)
scid $cid disconnect
halt
}
hdel -w filter $+(buffer-,$cid,-*)
socklisten $+(FirebirD-,$activecid)
sockopen $+(AnduriL-,$activecid) $2 $iif($3,$3,6667)
}
else server $1-
}
on 1:start: { hmake filter 50 | if ($exists($scriptdirfilter.hash) == $true) hload -o filter $+(",$scriptdirfilter.hash,") }
on 1:exit: hsave -o filter $+(",$scriptdirfilter.hash,")
on 1:sockopen:AnduriL-*: { server 127.0.0.1 $sock($+(FirebirD-,$gettok($sockname,-1,45))).bindport }
on 1:socklisten:FirebirD-*: {
sockaccept $+(NarsiL-,$gettok($sockname,-1,45))
sockclose $+(FirebirD-,$gettok($sockname,-1,45))
var %i = 1, %n = $hfind(filter,$+(buffer-,$gettok($sockname,-1,45),-*),0,w)
while (%i <= %n) {
sockwrite -n $+(NarsiL-,$gettok($sockname,-1,45)) $hget(filter,$hfind(filter,$+(buffer-,$gettok($sockname,-1,45),-*),%i,w))
inc %i
}
hdel -w filter $+(buffer-,$gettok($sockname,-1,45),-*)
}
on 1:sockread:NarsiL-*: {
sockread %NarsiL
if ($hget(filter,debug)) $hget(filter,debug) $+(=NarsiL,$gettok($sockname,-1,45),=) %NarsiL
sockwrite -n $+(AnduriL-,$cid) %NarsiL
}
on 1:sockread:AnduriL-*: {
sockread %AnduriL
tokenize 32 %AnduriL
if ($sock($+(NarsiL-,$gettok($sockname,-1,45)))) {
if ($hget(filter,debug)) $hget(filter,debug) $+(=AnduriL,$gettok($sockname,-1,45),=) $1-
if ($gettok($1-,2,58) == version) {
if ($hget(filter,version) == change) sockwrite -n $sockname NOTICE $gettok($gettok($1-,1,58),1,33) $+(:,,VERSION,$chr(32),$hget(filter,versiontxt),)
elseif ($hget(filter,version) == block) halt
.signal filter version $gettok($gettok($1-,1,58),1,33) $hget(filter,version)
}
elseif ($regex($gettok($1-,2,58),^(ping) [[:digit:]]*) == 1) {
if ($hget(filter,ping) == disturb) sockwrite -n $sockname NOTICE $gettok($gettok($1-,1,58),1,33) :PING just disturbing your ping :p
elseif ($hget(filter,ping) == block) halt
.signal filter ping $gettok($gettok($1-,1,58),1,33) $hget(filter,ping)
}
elseif ($2 == PONG) && ($4 == :monitoring) { .signal sfilter.ping $calc($ticks - $hget(filter,$+(reply-,$gettok($sockname,-1,45)))) | hdel filter $+(reply-,$gettok($sockname,-1,45)) }
else sockwrite -n $+(NarsiL-,$gettok($sockname,-1,45)) $1-
}
elseif ($sock($+(FirebirD-,$gettok($sockname,-1,45)))) hadd filter $+(buffer-,$gettok($sockname,-1,45),-,$calc($hfind(filter,$+(buffer-,$gettok($sockname,-1,45),-*),0,w) + 1)) $1-
}
on 1:sockclose:AnduriL-*: {
if ($scid($cid).server) scid $cid disconnect
sockclose $+(NarsiL-,$gettok($sockname,-1,45))
if ($hget(filter,$+(reco-,$gettok($sockname,-1,45)))) {
socklist
scid $cid server -q $hget(filter,$+(reco-,$gettok($sockname,-1,45)))
hdel filter $+(reco-,$gettok($sockname,-1,45))
}
}
on 1:sockclose:NarsiL-*: {
if ($scid($cid).server) scid $cid disconnect
sockclose $+(AnduriL-,$gettok($sockname,-1,45))
if ($hget(filter,$+(reco-,$gettok($sockname,-1,45)))) {
socklist
scid $cid server -q $hget(filter,$+(reco-,$gettok($sockname,-1,45)))
hdel filter $+(reco-,$gettok($sockname,-1,45))
}
}
alias s.filter {
if ($isid == $false) {
if (!$1) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
elseif ($1 == ctcp) && ((!$2) || (!$3)) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
elseif ($1 == ctcp) && ($2 == version) {
if ($3 == change) && (!$4) && (!$hget(filter,versiontxt)) { echo $color(info) -a *** /s.filter: no version message specified | halt }
elseif ($3 == change) && (!$4) && ($hget(filter,versiontxt)) hadd filter verison change
elseif ($3 == change) && ($4) { hadd filter versiontxt $4- | hadd filter version change }
elseif ($3 == off) hadd filter version allow
elseif ($3 == on) hadd filter version block
}
elseif ($1 == ctcp) && ($2 == ping) {
if (!$3) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
elseif ($3 == on) hadd filter ping block
elseif ($3 == off) hadd filter ping allow
elseif ($3 == disturb) hadd filter ping disturb
}
elseif ($1 == log) {
if (!$2) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
if ($2 == on) && (!$3) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
elseif ($2 == off) { hdel filter debug | halt }
elseif ($2 == on) && (($left($3,1) != @) || ($len($3) == 1)) { echo $color(info) -a *** /s.filter: invalid parameters | halt }
elseif ($2 == on) && ($left($3,1) == @) {
if (!$window($3)) window -ae $3
hadd filter debug aline -ph $3
halt
}
}
elseif ($1 == pingmon) {
if (!$2) || (!$3) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
elseif ($3 == off) && (!$timer($+(pingmon-,$2))) { echo $color(info) -a *** /s.filter: no such monitoring | halt }
elseif ($3 == off) && ($timer($+(pingmon-,$2))) { $+(.timerpingmon-,$2) off | if ($hget(filter,$+(reply-,$2))) { hdel filter $+(reply-,$2) } | halt }
elseif ($3 == on) && ($timer($+(pingmon-,$2))) { echo $color(info) -a *** /s.filter: already monitoring $2 | halt }
elseif ($3 == on) && ($int($2) != $2) || ($3 <= 0) { echo $color(info) -a *** /s.filter: invalid parameters | halt }
elseif ($3 == on) && (!$scid($2)) { echo $color(info) -a *** /s.filter: no such cid | halt }
elseif ($3 == on) { $+(.timerpingmon-,$2) 0 $3 ping.mon $2 }
}
elseif ($1 == fake) {
if ($2 !isnum) { echo $color(info) -a *** /s.filter: invalid parameters | halt }
elseif (!$sock($+(Narsil-,$2))) { echo $color(info) -a *** /s.filter: invalid cid | halt }
elseif ($3 == join) || ($3 == part) {
if (!$5) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
elseif ($5 !ischan) { echo $color(info) -a *** /s.filter: invalid parameters | halt }
sockwrite -n $+(NarsiL-,$2) $+(:,$4) $upper($3) $5
halt
}
elseif ($3 == quit) {
if (!$4) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
sockwrite -n $+(NarsiL-,$2) $+(:,$4) $upper($3)
halt
}
elseif ($3 == privmsg) || ($3 == action) {
if (!$6) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
sockwrite -n $+(NarsiL-,$2) $+(:,$4) PRIVMSG $5 $+(:,$iif($3 == action,ACTION $6- $+ ,$6-))
halt
}
elseif ($3 == notice) {
if (!$6) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
sockwrite -n $+(NarsiL-,$2) $+(:,$4) NOTICE $5 $+(:,$6-)
halt
}
elseif ($3 == servernotice) {
if (!$4) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
sockwrite -n $+(NarsiL-,$2) $+(:,$scid($cid).server) NOTICE $4-
halt
}
elseif ($3 == kick) {
if (!$5) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
sockwrite -n $+(NarsiL-,$2) $+(:,$4) KICK $5-6 $+(:,$7-)
halt
}
elseif ($3 == rawmode) {
if (!$6) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
sockwrite -n $+(NarsiL-,$2) $+(:,$4) MODE $5-
halt
}
elseif ($3 == topic) {
if (!$5) { echo $color(info) -a *** /s.filter: insufficient parameters | halt }
sockwrite -n $+(NarsiL-,$2) $+(:,$4) TOPIC $5-
halt
}
}
}
}
alias ping.mon {
if (!$hget(filter,$+(reply-,$1))) {
if ($scid($1).status == connected) { hadd filter $+(reply-,$1) $ticks | sockwrite -n $+(AnduriL-,$1) ping monitoring }
else .signal sfilter.ping N/A
}
}
Conclusion
Le /server -mq n'est pas encore fonctionnel, j'essayerai de corriger le probleme le plus vite possible.
Je rappelle que ce code n'est qu'un snippet et n'est donc pas un système fini: Il ouvre à la création d'addons sur cette base.
Si vous voulez deux trois explications supplémentaires sur le fonctionnement, n'hesitez pas à me pmsg ou à laisser vos questions en commentaire.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
[SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson
Forum
RE : AIDERE : AIDE par Nico26000
Cliquez pour lire la suite par Nico26000 RE : AIDERE : AIDE par WorldDMT
Cliquez pour lire la suite par WorldDMT AIDEAIDE par Nico26000
Cliquez pour lire la suite par Nico26000
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|