Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;Wikipedia Script by Ford_Lawnmower -- irc.mindforge.org #USA-Chat
- alias wikisocket {
- var %sockname $+(wiki,$network,$1,$ticks)
- sockclose %sockname
- sockopen %sockname en.wikipedia.org 80
- sockmark %sockname $2-3 $fixurl($formaturl($4-))
- }
- alias wikipedia { wikisocket $me echo -a $1- }
- On $*:Text:/(^[!@])wiki +/Si:#: {
- if ($regml(1) == @) && ($nick isop $chan) {
- wikisocket $chan .msg $chan $2-
- }
- else {
- if (!$timer(wiki $+ $nick)) {
- .timer $+ $+(wiki,$nick) 1 10 noop
- wikisocket $chan .notice $nick $2-
- }
- }
- }
- On *:Sockopen:wiki*: {
- sockwrite -nt $sockname GET $+(/w/index.php?title=,$gettok($sock($sockname).mark,3,32),&redirect=yes) HTTP/1.1
- sockwrite -n $sockname User-Agent: Opera 9.6
- sockwrite -n $sockname Host: en.wikipedia.org $+ $str($crlf,2)
- }
- on *:sockread:wiki*: {
- if ($sockerr > 0) { echo -at >Sock Error< Wikipedia | sockclose $sockname }
- else {
- sockread -n &wiki
- if $bvar(&wiki, 0) {
- if ($bintween(&wiki,<b>,</p>,1)) {
- var %msgs $gettok($sock($sockname).mark,1,32), %targets $gettok($sock($sockname).mark,2,32)
- bset -t &result 1 $bvar($bintween(&wiki,<p>,</p>,1), 1, $bvar(&wiki, 0)).text
- if (may refer to: isin $bvar($binstrip(&result),1,429).text) {
- %msgs %targets Nothing Found! Please refine your search and check your spelling.
- sockclose $sockname
- halt
- }
- put %msgs %targets $fixascii($bvar($binstrip(&result),1,$bvar(&result, 0)).text) $+(http://en.wikipedia.org/w/index.php?title=,$gettok($sock($sockname).mark,3,32),&redirect=yes)
- sockclose $sockname
- }
- }
- }
- }
- alias -l binstrip {
- while ($bfind($1, 1 ,<)) && ($bfind($1, 1, >)) {
- var %first = $bfind($1, 1, <), %last $calc($bfind($1, 1, >) - $bfind($1, 1, <) + 1)
- noop = $bremove($1, $bvar($1, %first, %last).text)
- }
- while ($bfind($1, 1 ,$chr(91))) && ($bfind($1, 1, $chr(93))) {
- %first = $bfind($1, 1, $chr(91))
- %last = $calc($bfind($1, 1, $chr(93)) - $bfind($1, 1, $chr(91)) + 1)
- noop = $bremove($1, $bvar($1, %first, %last).text)
- }
- return $1
- }
- ;bremove by jaytea
- alias bremove {
- if (!$isid) || ($0 < 2) || (!$regex($1,/^&[^ ]+$/)) {
- echo -ces i * Invalid parameters: $!bremove
- return
- }
- if ($bvar($1,0)) {
- var %x = 1
- while (%x < $0) {
- inc %x
- var %i = 1, %t = $eval($ $+ %x,2) $chr(32)
- while ($bfind($1,%i,$left(%t,-2)) [ $+ [ $iif($prop == text,.text) ] ]) {
- var %i = $v1, %p = $iif($prop != text && $regex(bremove,%t,/^ *\d+(?: +\d+)* *$/i),$numtok(%t,32),$len($mid(%t,3))) + %i
- if (%p <= $bvar($1,0)) bcopy -c $1 %i $1 %p -1
- elseif ($calc(%i - 1)) bset -c $1 $v1 $bvar($1,$v1)
- else bunset $1
- }
- inc %x 2
- }
- }
- return $1
- }
- alias -l bintween {
- bunset &tempbin
- var %count = 1, %mark = 0, %mark2 = 0
- while (%count <= $4) {
- if ($bfind($1, %mark2, $2).text) {
- %mark = $calc($bfind($1, %mark2, $2).text + $len($2))
- if ($bfind($1, %mark, $3).text) {
- %mark2 = $bfind($1, %mark, $3).text
- }
- else { return 0 }
- }
- else { return 0 }
- inc %count
- }
- bset -t &tempbin 1 $bvar($1, $iif(%mark > 0,%mark,1), $calc(%mark2 - %mark)).text
- return &tempbin
- }
- alias -l Put {
- if (!$regex($1,/(\.|^)(msg|notice|echo)$/Si)) || (!$3) { echo -st **Put error** Syntax /Put msg #channel text - or - /Put notice nickname text | return }
- var %tokens $0, %Tstart 3, %Dtimer 1000
- if ($timer($+(Put,$2,$network)).secs) { %Dtimer = $calc($v1 * 1000) }
- while ($len($($+($,%Tstart,-,%tokens),2)) > 430) {
- dec %tokens
- if ($len($($+($,%Tstart,-,%tokens),2)) <= 430) {
- .timer -m 1 %Dtimer $1-2 $($+($,%Tstart,-,%tokens),2))
- inc %Dtimer 1500
- %Tstart = $calc(%tokens + 1)
- %tokens = $0
- }
- }
- .timer -m 1 %Dtimer $1-2 $($+($,%Tstart,-,%tokens),2))
- .timer $+ $+(Put,$2,$network) -m 1 $calc(%Dtimer + 1000) noop
- }
- alias -l fixascii { return $regsubex($1-,/&#(\d{2,3});/g,$chr($regml(\n))) }
- alias -l fixurl return $regsubex($strip($1-),/([^a-z0-9])/ig,% $+ $base($asc(\t),10,16,2))
- alias -l formaturl {
- var %count = $gettok($1-,0,32), %counter = 1, %return
- while (%counter <= %count) {
- if ($regex($gettok($1-,%counter,32),/^us$|^up$|^to$|^so$|^or$|^on$|^of$|^off$|^no$|^it$|^in$|^if$|^go$|^do$|^by$|^be$|^at$|$&
- |^as$|^an$|^is$|^the$|^are$|^there$|^where$|^not$|^and$|^flew$|^over$|^the$|^nest$|^was$/)) {
- %return = %return $gettok($1-,%counter,32)
- }
- else {
- %return = %return $upper($left($gettok($1-,%counter,32),1)) $+ $right($gettok($1-,%counter,32),$calc($len($gettok($1-,%counter,32)) - 1))
- }
- inc %counter
- }
- return $replace($upper($left(%return,1)) $+ $right(%return,$calc($len(%upper) - 1)),$chr(32),_)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement