Despite knowing essentially nothing about socket scripts (I take your word that it works),
it is obvious why it never returns the url.
There are 2 identical if statements trying to parse the same data in 2 different ways. mirc will never see the second if.
Try this.
on *:SOCKREAD:clan.*: {
if ($sockerr) {
%clan.way. Socket Error: $sockname $+ . Error code: $sockerr Please inform $me of this error message.
return
}
else {
var %sockreader
sockread %sockreader
if (*|* iswm %sockreader) {
noop $regex(%sockreader,/(.*?)\|(.*)/Si)
set %clan.name $regml(1)
set %clan.url $regml(2)
%clan.way. Clan: %clan.name URL: %clan.url
sockclose $sockname
}
elseif (*Not Found* iswm %sockreader) {
%clan.way. ERROR: %clan.nick. isn't in any clanlist.
sockclose $sockname
}
}
}
If it works, say so, and we'll call it even