Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;Twitter Channel by Ford_Lawnmower irc.GeekShed.net #Script-Help
- ;;;;;;;;;;;;;;;;;
- ;::Start Setup::;
- ;;;;;;;;;;;;;;;;;
- ;Edit the lines below to reflect your Twitter Application info.
- alias -l consumer_key return PutYourConsumerKeyHere
- alias -l consumer_secret return PutYourConsumerSecretHere
- alias -l oauth_token return PutYourOauthTokenHere
- alias -l oauth_token_secret return PutYourOauthTokenSecretHere
- ;;;;;;;;;;;;;;;
- ;::End Setup::;
- ;;;;;;;;;;;;;;;
- menu * {
- .Twitter Channel
- ..$iif($timer(mIRCTwitter),Off,On): {
- if ($timer(mIRCTwitter)) { .timermIRCTwitter off }
- else {
- mIRCTwitter
- .timermIRCTwitter -o 0 $iif($hget(mIRCTwitter,Delay),$hget(mIRCTwitter,Delay),60) mIRCTwitter
- }
- }
- ..SetUp
- ...Set Delay:hadd -m mIRCTwitter Delay $iif($$?="Enter Delay in Seconds" > 29,$!,60) | mtsave
- ...Set Method of Output
- ....Bot Message(.msg #Channel):hadd mIRCTwitter Method $network .msg $$?="Enter the Channel Name including the #prefix" | mtsave
- ....Message(msg #Channel):hadd mIRCTwitter Method $network msg $$?="Enter the Channel Name including the #prefix" | mtsave
- ....Echo(Echo -at):hadd mIRCTwitter Method echo -at | mtsave
- ....Window(Echo -t @Twitter):hadd mIRCTwitter Method echo -t @Twitter | mtsave
- }
- alias -l mIRCTwitter mTwitterGetStatus echo -a $consumer_key $consumer_secret $oauth_token $oauth_token_secret
- alias -l TwitterAuthCheck {
- var %sockname $+(mTwitterAuthCheck,$network,$2,$ticks)
- sockopen %sockname twitter.com 80
- sockmark %sockname /account/verify_credentials.xml $encode($1,m)
- }
- On *:sockopen:mTwitterAuthCheck*: {
- if (!$sockerr) {
- sockwrite -nt $sockname GET $gettok($sock($sockname).mark,1,32) HTTP/1.0
- sockwrite -n $sockname Host: twitter.com
- sockwrite -n $sockname Authorization: Basic $gettok($sock($sockname).mark,2,32)
- sockwrite -n $sockname $crlf
- }
- else { echo -st Socket Error $nopath($script) | sockclose $sockname | return }
- }
- On *:sockread:mTwitterAuthCheck*: {
- if ($sockerr) { echo -st Socket Error $nopath($script) | sockclose $sockname | return }
- else {
- var %mTwitterAuthCheck | sockread %mTwitterAuthCheck
- if (HTTP/1.1 401 Unauthorized isin %mTwitterAuthCheck) {
- echo -a Incorrect UserName:Password Combination!! Please Try Again with the Correct Information.
- sockclose $sockname
- return
- }
- elseif ($regex(%mTwitterAuthCheck,/<name>(.*)</name>/)) {
- echo -a $regml(1) Your Account has been Verified and Your Information has been Stored in my Secure Encrypted Database.
- hadd -m mIRCTwitter Active $gettok($sock($sockname).mark,2,32)
- set %MyTwitterName $+(@,$gettok($decode($hget(mIRCTwitter,Active),m),1,58))
- mtsave
- sockclose $sockname
- }
- }
- }
- alias mIRCTweet mTwitterUpdate echo -a $consumer_key $consumer_secret $oauth_token $oauth_token_secret $1-
- ;Syntax mTwitterUpdate echo -a consumer_key consumer_secret oauth_token oauth_token_secret status update here
- ;Note that echo -a can be changed to msg $chan or notice $nick ( must be two words )
- alias -l mTwitterUpdate {
- var %ots $ctime, %sockname $+(mTwitterUpdate,$network,$ticks,$r(1,10000)), %once $md5(%sockname)
- var %os $signature(post,http://twitter.com/statuses/update.xml,$3,$4,$5,$6,%once,%ots,$+(status=,$tuenc($7-)))
- sockopen %sockname twitter.com 80
- sockmark %sockname $1-2 $space2comma($+(oauth_nonce=,$qt(%once)) $osmqt $+(oauth_timestamp=,$qt(%ots)) $+(oauth_consumer_key=,$qt($tuenc($3))) $&
- $+(oauth_token=,$qt($tuenc($5))) $+(oauth_signature=,$qt($suenc(%os))) $overqt) $+(status=,$tuenc($7-))
- }
- on *:sockopen:mTwitterUpdate*: {
- if ($sockerr) echo -st Socket Error $nopath($script)
- else {
- tokenize 32 $sock($sockname).mark
- sockwrite -n $sockname POST /statuses/update.xml HTTP/1.1
- sockwrite -n $sockname Host: twitter.com
- sockwrite -n $sockname User-Agent: Lawnmower 9.64
- sockwrite -n $sockname Authorization: OAuth realm="/statuses/update.xml", $3
- sockwrite -n $sockname Content-Type: application/x-www-form-urlencoded
- sockwrite -n $sockname Content-Length: $len($4)
- sockwrite -n $sockname
- sockwrite -n $sockname $4
- sockwrite -n $sockname
- }
- }
- on *:sockread:mTwitterUpdate*: {
- if ($sockerr) { $gettok($sock($sockname).mark,1-2,32) Unknown Socket error $nopath($script) }
- else {
- var %mTwitterUpdatevar | sockread %mTwitterUpdatevar
- if (HTTP/1.1 401 isin %mTwitterUpdatevar) {
- $gettok($sock($sockname).mark,1-2,32) Password/Username Error --> %mTwitterUpdatevar
- sockclose $sockname | return
- }
- elseif (HTTP/1.1 502 isin %mTwitterUpdatevar) || (HTTP/1.1 503 isin %mTwitterUpdatevar) {
- $gettok($sock($sockname).mark,1-2,32) Server Busy Error --> %mTwitterUpdatevar
- sockclose $sockname | return
- }
- elseif (HTTP/1.1 500 isin %mTwitterUpdatevar) {
- $gettok($sock($sockname).mark,1-2,32) Server Side Error --> %mTwitterUpdatevar
- sockclose $sockname | return
- }
- elseif (HTTP/1.1 403 isin %mTwitterUpdatevar) {
- $gettok($sock($sockname).mark,1-2,32) Connection Actively Refused --> %mTwitterUpdatevar
- sockclose $sockname | return
- }
- elseif (HTTP/1.1 400 isin %mTwitterUpdatevar) {
- $gettok($sock($sockname).mark,1-2,32) Unknown Error --> %mTwitterUpdatevar
- sockclose $sockname | return
- }
- elseif (HTTP/1.1 200 isin %mTwitterUpdatevar) {
- $gettok($sock($sockname).mark,1-2,32) Updating Status Please Wait.........
- }
- elseif (</status> isin %mTwitterUpdatevar) {
- .timer 1 3 $gettok($sock($sockname).mark,1-2,32) Your Status has been updated :)
- sockclose $sockname | return
- }
- }
- }
- alias -l mTwitterGetStatus {
- var %ots $ctime, %sockname $+(mTwitterGetStatus,$network,$ticks,$r(1,10000)), %once $md5(%sockname)
- var %os $signature(GET,http://twitter.com/statuses/home_timeline.rss,$3,$4,$5,$6,%once,%ots,$+(since_id=,$hget(mirctwitter,last_id)))
- sockopen %sockname twitter.com 80
- sockmark %sockname $1-2 $space2comma($+(oauth_nonce=,$qt(%once)) $osmqt $+(oauth_timestamp=,$qt(%ots)) $+(oauth_consumer_key=,$qt($tuenc($3))) $&
- $+(oauth_token=,$qt($tuenc($5))) $+(oauth_signature=,$qt($suenc(%os))) $overqt $+(since_id=,$hget(mirctwitter,last_id))) 1
- }
- on *:sockopen:mTwitterGetStatus*: {
- if ($sockerr) echo -st Socket Error $nopath($script)
- else {
- tokenize 32 $sock($sockname).mark
- sockwrite -n $sockname GET /statuses/home_timeline.rss? $+ $+(since_id=,$hget(mirctwitter,last_id)) HTTP/1.1
- sockwrite -n $sockname Host: twitter.com
- sockwrite -n $sockname User-Agent: Lawnmower 9.64
- sockwrite -n $sockname Authorization: OAuth realm="/statuses/home_timeline.rss", $3
- sockwrite -n $sockname Content-Type: application/x-www-form-urlencoded
- sockwrite -n $sockname $crlf
- }
- }
- On *:sockread:mTwitterGetStatus*: {
- if ($sockerr) { echo -st Socket Error $nopath($script) | sockclose $sockname | return }
- else {
- var %mTwitterGetStatus | sockread %mTwitterGetStatus
- if (<item> isin %mTwitterGetStatus) { sockmark $sockname $puttok($sock($sockname).mark,1,3,32) }
- elseif ($regex(%mTwitterGetStatus,/<title>Twitter\s\/\s(.*)\swith\sfriends<\/title>/i)) set %MyTwitterName $+(@,$regml(1))
- elseif ($gettok($sock($sockname).mark,4,32)) && ($regex(%mTwitterGetStatus,/<guid>http:\/\/twitter\.com\/.*\/statuses\/(.*?)<\/guid>/i)) {
- hadd mirctwitter Last_ID $regml(1)
- sockmark $sockname $puttok($sock($sockname).mark,0,4,32)
- }
- elseif ($gettok($sock($sockname).mark,3,32)) && ($regex(%mTwitterGetStatus,<title>(.*)</title>)) {
- sockmark $sockname $puttok($sock($sockname).mark,$calc($gettok($sock($sockname).mark,5,32) + 1),5,32)
- var %Method $hget(mTwitterGetStatus,Method)
- if (%Method == echo -at) { %Method $fix&#($+(09<07,$gettok($regml(1),1,58),09>04) $gettok($regml(1),2-,58)) }
- elseif ($me ison $gettok(%Method,3,32)) {
- .timer 1 $gettok($sock($sockname).mark,5,32) $gettok(%Method,2-,32) $fix&#($+(09<07,$gettok($regml(1),1,58),09>04) $gettok($regml(1),2-,58))
- }
- else {
- if (!$window(@Twitter)) { window -E @Twitter }
- var %NextTweet $fix&#($+(09<07,$gettok($regml(1),1,58),09>04) $gettok($regml(1),2-,58)) 02,08[04RT02]
- echo -t @Twitter %NextTweet
- if ($istok(%NextTweet,%MyTwitterName,32)) {
- if (!$window(%MyTwitterName)) { window -E %MyTwitterName }
- echo -t %MyTwitterName %NextTweet
- noop $tip(%MyTwitterName,Twitter %MyTwitterName,%NextTweet,60,,,,)
- }
- }
- }
- }
- }
- ;Syntax $signature(POST/GET,URL,consumer_key,consumer_secret,oauth_token,oauth_token_secret,oauth_nonce,oauth_timestamp,PostData)
- alias -l signature {
- var %method $+($upper($1),&), %url $+($tuenc($2),&), %ck $tuenc&($+(oauth_consumer_key=,$3)), %ot $tuenc&($+(oauth_token=,$5))
- var %once $tuenc&($+(oauth_nonce=,$7)), %ots $tuenc&($+(oauth_timestamp=,$8)), %post $iif($9-,$tuenc($+(&,$9-)))
- return $hmacsha1($+($4,&,$iif($6,$6)),$+(%method,%url,%ck,%once,$tuenc&($osm),%ots,%ot,$tuenc($over),%post))
- }
- alias -l osm return oauth_signature_method=HMAC-SHA1
- alias -l osmqt return oauth_signature_method="HMAC-SHA1"
- alias -l over return oauth_version=1.0
- alias -l overqt return oauth_version="1.0"
- alias -l tuenc return $regsubex($replace($1-,+,$chr(32)),/([^a-z0-9._-])/ig,% $+ $base($asc(\t),10,16,2))
- alias -l suenc return $regsubex($1-,/([^a-z0-9._-])/ig,% $+ $base($asc(\t),10,16,2))
- alias -l space2comma return $replace($1-,$chr(32),$chr(44))
- alias -l tuenc& return $tuenc($+($1,&))
- ;hmacsha1 by Ford_Lawnmower irc.GeekShed.net #Script-Help
- ;Syntax hmacsha1 key message or $hmacsha1(key,message)
- alias -l hmacsha1 {
- var %key $1, %data $2
- bset -c &key 1 $regsubex(%key,/(.)/g, $asc(\1) $chr(32))
- bset -c &data 1 $regsubex(%data,/(.)/g, $asc(\1) $chr(32))
- if ($bvar(&key,0) > 64) bset -c &key 1 $hex2chr($sha1(&key,1))
- bset -c &ipad 1 $xorall($str($+(54,$chr(32)),64),$bvar(&key,1-))
- bset -c &opad 1 $xorall($str($+(92,$chr(32)),64),$bvar(&key,1-))
- bcopy &ipad $calc($bvar(&ipad,0) + 1) &data 1 -1
- bset -c &ipad 1 $hex2chr($sha1(&ipad,1))
- bcopy &opad $calc($bvar(&opad,0) + 1) &ipad 1 -1
- bset -c &return 1 $hex2chr($sha1(&opad,1))
- noop $encode(&return, mb)
- $iif($isid,return,$iif(#,say,echo -a)) $bvar(&return, 1-).text
- }
- alias -l hex2chr return $regsubex($1-,/(.{2})/g, $base(\t,16,10) $chr(32))
- alias -l xorall {
- var %p $1, %k $2, %end $iif($regex($1,/([\d]{1,})/g) > $regex($2,/([\d]{1,})/g),$v1,$v2)
- return $regsubex($str(.,%end),/(.)/g,$+($xor($iif($gettok(%p,\n,32),$v1,0),$iif($gettok(%k,\n,32),$v1,0)),$chr(32)))
- }
- On *:input:@Twitter,%MyTwitterName: {
- if ($left($1,1) != /) {
- haltdef
- echo -t $active $+(07<09,$mid(%MyTwitterName,2-),07>09) $1-
- mIRCTweet $1-
- }
- }
- alias -l fix&# { return $replace($regsubex($1-,/\&\#([0-9]{1,});/g,$utf8(\t)),",",&,&,>,>,<,<,',',|,,$chr(9),$chr(32)) }
- alias -l UTF8 {
- if ($version >= 7) return $chr($1)
- elseif ($1 < 255) { return $chr($1) }
- elseif ($1 >= 256) && ($1 < 2048) { return $+($chr($calc(192 + $div($1,64))),$chr($calc(128 + $mod($1,64)))) }
- elseif ($1 >= 2048) && ($1 < 65536) { return $+($chr($calc(224 + $div($1,4096))),$chr($calc(128 + $mod($div($1,64),64))),$chr($calc(128 + $mod($1,64)))) }
- elseif ($1 >= 65536) && ($1 < 2097152) {
- return $+($chr($calc(240 + $div($1,262144))),$chr($calc(128 + $mod($div($1,4096),64))),$chr($calc(128 + $mod($div($1,64),64))),$&
- $chr($calc(128 + $mod($1,64))))
- }
- }
- alias -l div { return $int($calc($1 / $2)) }
- alias -l mod {
- var %int $int($calc($1 / $2))
- return $calc($1 - (%int * $2))
- }
- alias -l H2U { return $utf8($base($1,16,10)) }
- alias -l mtsave {
- .timermIRCTwitter -o 0 $iif($hget(mIRCTwitter,Delay),$hget(mIRCTwitter,Delay),60) mIRCTwitter
- if ($hget(mIRCTwitter)) { hsave mIRCTwitter mIRCTwitter.hsh }
- }
- on ^$*:HOTLINK:/^<([^<>]*)>/S:@Twitter,%MyTwitterName:{
- if ($1) { return }
- halt
- }
- on ^$*:HOTLINK:/^\[RT\]/S:@Twitter,%MyTwitterName:{
- if ($1) { return }
- halt
- }
- on $*:HOTLINK:/^<([^<>]*)>/S:@Twitter,%MyTwitterName:{
- if ($mouse.key) { editbox $active $+(@,$strip($regml(1))) }
- halt
- }
- on $*:HOTLINK:/^\[RT\]/S:@Twitter,%MyTwitterName:{
- if ($mouse.key) {
- noop $regex($hotline,/<([^<>]*)>(.*)\[RT\]/S)
- editbox $active RT $strip($+(@,$regml(1)) $regml(2))
- }
- halt
- }
- On *:Start: {
- hmake mIRCTwitter 1
- if ($isfile(mIRCTwitter.hsh)) { hload mIRCTwitter mIRCTwitter.hsh | mtsave }
- }
- On *:Unload: {
- if ($hget(mIRCTwitter)) { hfree mIRCTwitter }
- if ($isfile(mIRCTwitter.hsh)) { .remove mIRCTwitter.hsh }
- unset %MyTwitterName
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement