Input > Url ?

cs_Naza Messages postés 179 Date d'inscription mercredi 5 novembre 2003 Statut Membre Dernière intervention 23 juin 2005 - 18 mai 2004 à 20:21
cs_Naza Messages postés 179 Date d'inscription mercredi 5 novembre 2003 Statut Membre Dernière intervention 23 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
  }
}

Solutions ? :p

6 réponses

cs_SornDrixer Messages postés 2084 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 30 janvier 2011 8
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)

Autre solution, mais moins parfaite :
$replace($1-,http://,http://,/,/)

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
0
cs_Naza Messages postés 179 Date d'inscription mercredi 5 novembre 2003 Statut Membre Dernière intervention 23 juin 2005 1
19 mai 2004 à 13:16
Tient, j'y avais pas pensé ;)
Même si c'est pas "convainquant" ça me va.
Merci, @+
0
cs_Naza Messages postés 179 Date d'inscription mercredi 5 novembre 2003 Statut Membre Dernière intervention 23 juin 2005 1
20 mai 2004 à 20:49
Ha bah j'ai réussit :)
Jvai m'amuser, merci encore

Nazario - Naika.tk
0
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
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é

PaDa
0
cs_Naza Messages postés 179 Date d'inscription mercredi 5 novembre 2003 Statut Membre Dernière intervention 23 juin 2005 1
22 mai 2004 à 16:29
Ha oué c'est pas con ça
Jte remercit ^^

Nazario - Naika.tk
0
Rejoignez-nous