Spell Checker
Platform: mIRC
Published Feb 06, 2010
Updated Feb 07, 2010
Spell checker. Thanks to napa182 for some corrections + FordLawnmower for many great suggestions.
on $*:text:/^[!.@]s(pell|pelling)? \w+$/Si:#: {
if (!$sock(spell)) {
msg # Looking up results for $+([,$chr(3),12,$2,$chr(15),],:)
sockopen spell www.spellcheck.net 80
sockmark spell $chan $2
}
}
on *:sockopen:spell: {
sockwrite -n $sockname GET /cgi-bin/spell.exe?action=CHECKWORD&string= $+ $gettok($sock(spell).mark,2,32) HTTP/1.1
sockwrite -n $sockname Host: www.spellcheck.net
sockwrite -n $sockname Connection: Close
sockwrite -n $sockname $crlf
}
on *:sockread:spell: {
var %sresults | sockread %sresults
var %sword $gettok($sock(spell).mark,2,32)
var %schan $gettok($sock(spell).mark,1,32)
if ($regex(%sresults,/is misspelled/Sig)) { msg %schan $+([,$chr(3),12,%sword,$chr(15),],:) 4Misspelled. | set %spellyesorno yes }
if ($regex(%sresults,/is spelled correctly/Sig)) { msg %schan $+([,$chr(3),12,%sword,$chr(15),],:) 3Spelled correctly. | sockclose spell }
if ($regex(%sresults,/^(\w+)<BR>$/Sig)) { sockmark spell $addtok($sock(spell).mark,$nohtml($regml(1)),32) }
}
on *:sockclose:spell: {
var %sword $gettok($sock(spell).mark,2,32)
var %schan $gettok($sock(spell).mark,1,32)
if (%spellyesorno) { msg %schan Suggestions for $+([,$chr(3),12,%sword,$chr(15),],:) $chr(3) $+ 7 $+ $gettok($sock(spell).mark,3-,32) }
unset %spellyesorno
}
alias nohtml {
var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x, )
return %x
}