I got one for ya...
recently I was messing around, trying to come up with a simple "link detector" script..
not as simple as it seems!
the problem was, it wasn't finding a link/parts of a link if it was part of a longer line...
example:
it would find '.com' fine, but not if it was 'warp-radio.com', etc etc
so I started messing around a little...
to combat this, I tried using regsub.. worked, but it acted strange under some/cirtain matches; for example, etv read as .tv so when someone typed "the TV guy" they got booted!
example:
Code: Select all
([regsub -all -nocase "http\:\/\/" $arg "" VarA] > "0")||
([regsub -all -nocase "www\." $arg "" VarA] > "0")||
([regsub -all -nocase "irc\." $arg "" VarA] > "0")||
([regsub -all -nocase ".com" $arg "" VarA] > "0")||
([regsub -all -nocase ".net" $arg "" VarA] > "0")||
([regsub -all -nocase ".org" $arg "" VarA] > "0")||
([regsub -all -nocase ".info" $arg "" VarA] > "0")||
([regsub -all -nocase ".gov" $arg "" VarA] > "0")||
([regsub -all -nocase ".eu" $arg "" VarA] > "0")||
([regsub -all -nocase ".uk" $arg "" VarA] > "0")||
([regsub -all -nocase ".tv" $arg "" VarA] > "0")||
([regsub -all -nocase ".tw" $arg "" VarA] > "0")||
([regsub -all -nocase ".jp" $arg "" VarA] > "0")||
([regsub -all -nocase ".kr" $arg "" VarA] > "0")||
([regsub -all -nocase ".ca" $arg "" VarA] > "0")||
([regsub -all -nocase ".nyan\.cat" $arg "" VarA] > "0")
Code: Select all
bind pubm - * NoLink;
proc NoLink {nick args} {
global MyChan
set arg "[lindex $args end-0]";
set arg "[string map -nocase {" " ""} $arg]";
if {
([isop $nick] != "1")&&(
([lsearch -exact $arg [string map -nocase {"http://" ""} $arg]] < "0")||
([lsearch -exact $arg [string map -nocase {"ftp://" ""} $arg]] < "0")||
([lsearch -exact $arg [string map -nocase {"rtmp://" ""} $arg]] < "0")||
([lsearch -exact $arg [string map -nocase {"ftp." ""} $arg]] < "0")||
([lsearch -exact $arg [string map -nocase {"www." ""} $arg]] < "0")||
([lsearch -exact $arg [string map -nocase {"irc." ""} $arg]] < "0")||
([lsearch -exact $arg [string map -nocase {".com" ""} $arg]] < "0")||
([lsearch -exact $arg [string map -nocase {".org" ""} $arg]] < "0")||
([lsearch -exact $arg [string map -nocase {".net" ""} $arg]] < "0")||
([lsearch -exact $arg [string map -nocase {".gov" ""} $arg]] < "0")||
([lsearch -exact $arg [string map -nocase {".tv" ""} $arg]] < "0")||
([lsearch -exact $arg [string map -nocase {".info" ""} $arg]] < "0")||
([lsearch -exact $arg [string map -nocase {".uk" ""} $arg]] < "0")||
([lsearch -exact $arg [string map -nocase {".eu" ""} $arg]] < "0")||
([lsearch -exact $arg [string map -nocase {".jp" ""} $arg]] < "0")||
([lsearch -exact $arg [string map -nocase {".kr" ""} $arg]] < "0")||
([lsearch -exact $arg [string map -nocase {".ca" ""} $arg]] < "0")
)} {
putquick "PRIVMSG #$MyChan :DETECTED!"
putquick "KILL $nick :**NO** links allowed in the lobby channel... OUT YOU GO!!";
};
return "0";
};
just wondered what ya think...
-DjZ
![Smile :)](./images/smilies/icon_smile.gif)
![Smile :)](./images/smilies/icon_smile.gif)