cs_Naza
Messages postés179Date d'inscriptionmercredi 5 novembre 2003StatutMembreDernière intervention23 juin 2005
-
18 mai 2004 à 20:21
cs_Naza
Messages postés179Date d'inscriptionmercredi 5 novembre 2003StatutMembreDernière intervention23 juin 2005
-
22 mai 2004 à 16:29
Voilà en fait, je me suis fait un petit système d'input personnel.
Pour le môment j'ai changer la couleur si un pseudo est sur le chan de la fenêtre active, et la je bloque.
Comment souligné ou autre.. les mots commencant par http:// ( les urls quoi..) ?
J'ai pas tellement envie de faire en if $1 == http:// ...
Vous avez une solution ?
Je vous montre mon code.
on 1:input:*:{
if $left($1,1) == / { goto fin }
if $left($1,1) == ! { msg $active $1- | halt }
if $left($1,1) == . { msg $active $1- | halt }
if $left($active,2) == #! { msg $active 2 $1- | halt }
else {
set %texte $1-
set %i 1
while $nick($chan,%i) {
if $nick($chan,%i) isin %texte {
set %nick1 $nick($chan,%i)
set %nick2 14 $+ ‹ $+ $nick($chan,%i) $+ › $+ 2
set %texte $replace(%texte,%nick1,%nick2)
}
inc %i
}
msg $active 2 %texte
halt
:fin
}
}
cs_SornDrixer
Messages postés2084Date d'inscriptionjeudi 12 décembre 2002StatutMembreDernière intervention30 janvier 20118 19 mai 2004 à 07:18
Bonjour,
Tu peux faire une boucle sur un gettok($1-,XX,32) (où XX est la variable incrémentée à chaque boucle), pour retourner chaque mot, et sur chaque mot (à chaque boucle donc), tu vérifies si $left($gettok($1,XX,32),7) == http:// Ensuite il ne te reste plus qu'à renvoyer le résultat en ayant souligné le bon $gettok($1,XX,32)
(tu peux toutefois terminer la boucle, pour vérifier si il n'y a pas d'autres url à souligner dans la même phrase)
Mais comme tu vas le voir si tu testes, c'est loin d'être un résultat convainquant :/
-<gras>[ Sorn_Drixer ]-</gras>
-
Un problème ? une question ? N'hésitez pas, le forum est là pour ça.
:question) Vous pouvez me retrouver sur koliserv.dyndns.org:6667
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 22 mai 2004 à 16:21
pourquoi pas une expression régulière ? t'auras un résultat sans faille sans boucle donc sans ramer ...
voila ce que j'utilise pour modérer :
if ($regex($strip($1-),/( http:[\/\w.-]+[.]+[\/\w.-]+)/i)) { detect $chan $nick Pub $1- | halt }
le mask est ptet a retravailler...je mets volontairement ci dessous un mask bcp plus simple qui vérifie juste ke http:// est le début d'un mot , et que la suite est composée de caractères avec au moins un point et une extension (2 a 4 lettres) puis n'importe koi ...
ca donnerait un truc de ce genre a la fin de ton code, l'avantage étant donc de pas avoir de boucle et de faire la même chose facilement pour les www. et que le masque peut selon comment tu le travailles vérifier de facon certaine si le mot n'est pas une url ...
var %x = $regsub(%texte,/ (http:\/{2}.*\.[a-z]{2,4}.*) /gi,controlu\1controlu,%variable)
msg $active %variable
PaDa
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 22 mai 2004 à 16:25
je retire tout de suite :x c un peu con ce ke j'ai mis j'pense ke ceci marchera mieux :
var %x = $regsub(%texte,/ (http:\/{2}\S*\.[a-z]{2,4}\S*) /gi,controlu\1controlu,%variable)
(le fait de mettre un "." remplace n'importe kel caractère et donc \1 aurait certainement contenu un peu toute la phrase .. mettre \S va permettre d'évaluer aussi le plus large possible mais sur des caractères différents des espaces pour plus de précision un tuto d'Averel très bien pour débuter sur mircscriptsfrfm.com et LE tuto de sax sur scriptsdb :))
en espérant t'avoir aidé