Advertisement
Ford

Twitter Stream / Debug Code

May 29th, 2011
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 11.47 KB | None | 0 0
  1. ;Twitter Channel by Ford_Lawnmower irc.GeekShed.net #Script-Help
  2. ;;;;;;;;;;;;;;;;;
  3. ;::Start Setup::;
  4. ;;;;;;;;;;;;;;;;;
  5. ;Edit the lines below to reflect your Twitter Application info.
  6. alias -l consumer_key return PutYourConsumerKeyHere
  7. alias -l consumer_secret return PutYourConsumerSecretHere
  8. alias -l oauth_token return PutYourOauthTokenHere
  9. alias -l oauth_token_secret return PutYourOauthTokenSecretHere
  10. ;;;;;;;;;;;;;;;
  11. ;::End Setup::;
  12. ;;;;;;;;;;;;;;;
  13. menu * {
  14.   .Twitter Channel
  15.   ..$iif($timer(mIRCTwitter),Off,On): {
  16.     if ($timer(mIRCTwitter)) {
  17.       .timermIRCTwitter off
  18.       hadd -m mIRCTwitter Status 0
  19.     }
  20.     else {
  21.       mIRCTwitter
  22.       .timermIRCTwitter -o 0 $iif($hget(mIRCTwitter,Delay),$hget(mIRCTwitter,Delay),60) mIRCTwitter
  23.       hadd -m mIRCTwitter Status 1
  24.     }
  25.   }
  26.   ..SetUp
  27.   ...Set Delay:hadd -m mIRCTwitter Delay $iif($$?="Enter Delay in Seconds" > 29,$!,60) | mtsave
  28.   ...Set Method of Output
  29.   ....Bot Message(.msg #Channel):hadd mIRCTwitter Method $network .msg $$?="Enter the Channel Name including the #prefix" | mtsave
  30.   ....Message(msg #Channel):hadd mIRCTwitter Method $network msg $$?="Enter the Channel Name including the #prefix" | mtsave
  31.   ....Echo(Echo -at):hadd mIRCTwitter Method echo -at | mtsave
  32.   ....Window(Echo -t @Twitter):hadd mIRCTwitter Method echo -t @Twitter | mtsave
  33. }
  34. alias -l mIRCTwitter mTwitterGetStatus echo -a $consumer_key $consumer_secret $oauth_token $oauth_token_secret
  35. alias mIRCTweet mTwitterUpdate echo -a $consumer_key $consumer_secret $oauth_token $oauth_token_secret $1-
  36. ;Syntax mTwitterUpdate echo -a consumer_key consumer_secret oauth_token oauth_token_secret status update here
  37. ;Note that echo -a can be changed to msg $chan or notice $nick ( must be two words )
  38. alias -l mTwitterUpdate {
  39.   var %ots $ctime, %sockname mTwitterUpdate, %once $md5(%sockname)
  40.   var %os $signature(post,http://twitter.com/statuses/update.xml,$3,$4,$5,$6,%once,%ots,$+(status=,$tuenc($7-)))
  41.   .sockclose %sockname
  42.   sockopen %sockname twitter.com 80
  43.   sockmark %sockname $1-2 $space2comma($+(oauth_nonce=,$qt(%once)) $osmqt $+(oauth_timestamp=,$qt(%ots)) $+(oauth_consumer_key=,$qt($tuenc($3))) $&
  44.     $+(oauth_token=,$qt($tuenc($5))) $+(oauth_signature=,$qt($suenc(%os))) $overqt) $+(status=,$tuenc($7-))
  45. }
  46. on *:sockopen:mTwitterUpdate: {
  47.   if ($sockerr) echo -st Socket Error $nopath($script)
  48.   else {
  49.     tokenize 32 $sock($sockname).mark
  50.     sockwrite -n $sockname POST /statuses/update.xml HTTP/1.1
  51.     sockwrite -n $sockname Host: twitter.com
  52.     sockwrite -n $sockname User-Agent: Lawnmower 9.64
  53.     sockwrite -n $sockname Authorization: OAuth realm="/statuses/update.xml", $3
  54.     sockwrite -n $sockname Content-Type: application/x-www-form-urlencoded
  55.     sockwrite -n $sockname Content-Length: $len($4)
  56.     sockwrite -n $sockname
  57.     sockwrite -n $sockname $4
  58.     sockwrite -n $sockname
  59.   }
  60. }
  61. on *:sockread:mTwitterUpdate: {
  62.   if ($sockerr) { $gettok($sock($sockname).mark,1-2,32) Unknown Socket error $nopath($script) }
  63.   else {
  64.     var %mTwitterUpdatevar | sockread %mTwitterUpdatevar
  65.     if (HTTP/1.1 401 isin %mTwitterUpdatevar) {
  66.       $gettok($sock($sockname).mark,1-2,32) Password/Username Error --> %mTwitterUpdatevar
  67.       sockclose $sockname | return
  68.     }
  69.     elseif (HTTP/1.1 502 isin %mTwitterUpdatevar) || (HTTP/1.1 503 isin %mTwitterUpdatevar) {
  70.       $gettok($sock($sockname).mark,1-2,32) Server Busy Error --> %mTwitterUpdatevar
  71.       sockclose $sockname | return
  72.     }
  73.     elseif (HTTP/1.1 500 isin %mTwitterUpdatevar) {
  74.       $gettok($sock($sockname).mark,1-2,32) Server Side Error --> %mTwitterUpdatevar
  75.       sockclose $sockname | return      
  76.     }
  77.     elseif (HTTP/1.1 403 isin %mTwitterUpdatevar) {
  78.       $gettok($sock($sockname).mark,1-2,32) Connection Actively Refused --> %mTwitterUpdatevar
  79.       sockclose $sockname | return      
  80.     }
  81.     elseif (HTTP/1.1 400 isin %mTwitterUpdatevar) {
  82.       $gettok($sock($sockname).mark,1-2,32) Unknown Error --> %mTwitterUpdatevar
  83.       sockclose $sockname | return
  84.     }
  85.     elseif (HTTP/1.1 200 isin %mTwitterUpdatevar) {
  86.       $gettok($sock($sockname).mark,1-2,32) Updating Status Please Wait.........
  87.     }
  88.     elseif (</status> isin %mTwitterUpdatevar) {
  89.       .timer 1 3 $gettok($sock($sockname).mark,1-2,32) Your Status has been updated :)
  90.       sockclose $sockname | return
  91.     }
  92.   }
  93. }
  94. alias -l mTwitterGetStatus {
  95.   var %ots $ctime, %sockname mTwitterGetStatus, %once $md5(%sockname)
  96.   var %os $signature(GET,http://twitter.com/statuses/home_timeline.rss,$3,$4,$5,$6,%once,%ots,$+(since_id=,$hget(mirctwitter,last_id)))
  97.   .sockclose %sockname
  98.   sockopen %sockname twitter.com 80
  99.   sockmark %sockname $1-2 $space2comma($+(oauth_nonce=,$qt(%once)) $osmqt $+(oauth_timestamp=,$qt(%ots)) $+(oauth_consumer_key=,$qt($tuenc($3))) $&
  100.     $+(oauth_token=,$qt($tuenc($5))) $+(oauth_signature=,$qt($suenc(%os))) $overqt $+(since_id=,$hget(mirctwitter,last_id))) 1
  101. }
  102. on *:sockopen:mTwitterGetStatus: {
  103.   if ($sockerr) echo -st Socket Error $nopath($script)
  104.   else {
  105.     tokenize 32 $sock($sockname).mark
  106.     sockwrite -n $sockname GET /statuses/home_timeline.rss? $+ $+(since_id=,$hget(mirctwitter,last_id)) HTTP/1.1
  107.     sockwrite -n $sockname Host: twitter.com
  108.     sockwrite -n $sockname User-Agent: Lawnmower 9.64
  109.     sockwrite -n $sockname Authorization: OAuth realm="/statuses/home_timeline.rss", $3
  110.     sockwrite -n $sockname Content-Type: application/x-www-form-urlencoded
  111.     sockwrite -n $sockname $crlf
  112.   }
  113. }
  114. On *:sockread:mTwitterGetStatus: {
  115.   if ($sockerr) { echo -st Socket Error $nopath($script) | sockclose $sockname | return }
  116.   else {
  117.     var %mTwitterGetStatus | sockread %mTwitterGetStatus
  118.     echo -gat %mTwitterGetStatus
  119.     if (<item> isin %mTwitterGetStatus) { sockmark $sockname $puttok($sock($sockname).mark,1,3,32) }
  120.     elseif ($regex(%mTwitterGetStatus,/<title>Twitter\s\/\s(.*)\swith\sfriends<\/title>/i)) hadd -m mIRCTwitter Name $+(@,$regml(1))
  121.     elseif ($gettok($sock($sockname).mark,4,32)) && ($regex(%mTwitterGetStatus,/<guid>http:\/\/twitter\.com\/.*\/statuses\/(.*?)<\/guid>/i)) {
  122.       hadd mirctwitter Last_ID $regml(1)
  123.       sockmark $sockname $puttok($sock($sockname).mark,0,4,32)      
  124.     }
  125.     elseif ($gettok($sock($sockname).mark,3,32)) && ($regex(%mTwitterGetStatus,<title>(.*)</title>)) {
  126.       sockmark $sockname $puttok($sock($sockname).mark,$calc($gettok($sock($sockname).mark,5,32) + 1),5,32)
  127.       var %Method $hget(mTwitterGetStatus,Method)
  128.       if (%Method == echo -at) { %Method $fix&#($+(09<07,$gettok($regml(1),1,58),09>04) $gettok($regml(1),2-,58)) }
  129.       elseif ($me ison $gettok(%Method,3,32)) {
  130.         .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))
  131.       }
  132.       else {
  133.         if (!$window(@Twitter)) { window -E @Twitter }
  134.         var %NextTweet $fix&#($+(09<07,$gettok($regml(1),1,58),09>04) $gettok($regml(1),2-,58)) 02,08[04RT02]
  135.         echo -t @Twitter %NextTweet
  136.         if ($istok(%NextTweet,$hget(mIRCTwitter,Name),32)) {
  137.           if (!$window($hget(mIRCTwitter,Name))) { window -E $hget(mIRCTwitter,Name) }
  138.           echo -t $hget(mIRCTwitter,Name) %NextTweet
  139.           noop $tip($hget(mIRCTwitter,Name),Twitter $hget(mIRCTwitter,Name),%NextTweet,60,,,,)
  140.         }
  141.       }
  142.     }
  143.   }
  144. }
  145. ;Syntax $signature(POST/GET,URL,consumer_key,consumer_secret,oauth_token,oauth_token_secret,oauth_nonce,oauth_timestamp,PostData)
  146. alias -l signature {
  147.   var %method $+($upper($1),&), %url $+($tuenc($2),&), %ck $tuenc&($+(oauth_consumer_key=,$3)), %ot $tuenc&($+(oauth_token=,$5))
  148.   var %once $tuenc&($+(oauth_nonce=,$7)), %ots $tuenc&($+(oauth_timestamp=,$8)), %post $iif($9-,$tuenc($+(&,$9-)))
  149.   return $hmacsha1($+($4,&,$iif($6,$6)),$+(%method,%url,%ck,%once,$tuenc&($osm),%ots,%ot,$tuenc($over),%post))
  150. }
  151. alias -l osm return oauth_signature_method=HMAC-SHA1
  152. alias -l osmqt return oauth_signature_method="HMAC-SHA1"
  153. alias -l over return oauth_version=1.0
  154. alias -l overqt return oauth_version="1.0"
  155. alias -l tuenc return $regsubex($replace($1-,+,$chr(32)),/([^a-z0-9._-])/ig,% $+ $base($asc(\t),10,16,2))
  156. alias -l suenc return $regsubex($1-,/([^a-z0-9._-])/ig,% $+ $base($asc(\t),10,16,2))
  157. alias -l space2comma return $replace($1-,$chr(32),$chr(44))
  158. alias -l tuenc& return $tuenc($+($1,&))
  159. ;hmacsha1 by Ford_Lawnmower irc.GeekShed.net #Script-Help
  160. ;Syntax hmacsha1 key message or $hmacsha1(key,message)
  161. alias -l hmacsha1 {
  162.   var %key $1, %data $2
  163.   bset -c &key 1 $regsubex(%key,/(.)/g, $asc(\1) $chr(32))
  164.   bset -c &data 1 $regsubex(%data,/(.)/g, $asc(\1) $chr(32))
  165.   if ($bvar(&key,0) > 64) bset -c &key 1 $hex2chr($sha1(&key,1))
  166.   bset -c &ipad 1 $xorall($str($+(54,$chr(32)),64),$bvar(&key,1-))
  167.   bset -c &opad 1 $xorall($str($+(92,$chr(32)),64),$bvar(&key,1-))
  168.   bcopy &ipad $calc($bvar(&ipad,0) + 1) &data 1 -1
  169.   bset -c &ipad 1 $hex2chr($sha1(&ipad,1))
  170.   bcopy &opad $calc($bvar(&opad,0) + 1) &ipad 1 -1
  171.   bset -c &return 1 $hex2chr($sha1(&opad,1))
  172.   noop $encode(&return, mb)
  173.   $iif($isid,return,$iif(#,say,echo -a)) $bvar(&return, 1-).text
  174. }
  175. alias -l hex2chr return $regsubex($1-,/(.{2})/g, $base(\t,16,10) $chr(32))
  176. alias -l xorall {
  177.   var %p $1, %k $2, %end $iif($regex($1,/([\d]{1,})/g) > $regex($2,/([\d]{1,})/g),$v1,$v2)
  178.   return $regsubex($str(.,%end),/(.)/g,$+($xor($iif($gettok(%p,\n,32),$v1,0),$iif($gettok(%k,\n,32),$v1,0)),$chr(32)))
  179. }
  180. On *:input:@Twitter,$hget(mIRCTwitter,Name): {
  181.   if ($left($1,1) != /) {
  182.     haltdef
  183.     echo -t $active $+(07<09,$mid($hget(mIRCTwitter,Name),2-),07>09) $1-
  184.     mIRCTweet $1-
  185.   }
  186. }
  187. alias -l fix&# {
  188.   return $regsubex($replace($regsubex($1-,/\&\#([0-9]{1,});/g,$utf8(\t)),&quot;,",&amp;,&,&gt;,>,&lt;,<,&#39;,',$chr(9),$chr(32)),$&
  189.     /([$\|%\[\]\}\{][^\s]*)/g,$+($chr(2),$chr(2),\t))
  190. }
  191. alias -l UTF8 {
  192.   if ($version >= 7) return $chr($1)
  193.   elseif ($1 < 255) { return $chr($1) }
  194.   elseif ($1 >= 256) && ($1 < 2048) { return $+($chr($calc(192 + $div($1,64))),$chr($calc(128 + $mod($1,64)))) }
  195.   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)))) }
  196.   elseif ($1 >= 65536) && ($1 < 2097152) {
  197.     return $+($chr($calc(240 + $div($1,262144))),$chr($calc(128 + $mod($div($1,4096),64))),$chr($calc(128 + $mod($div($1,64),64))),$&
  198.       $chr($calc(128 + $mod($1,64))))
  199.   }
  200. }
  201. alias -l div { return $int($calc($1 / $2)) }
  202. alias -l mod {
  203.   var %int $int($calc($1 / $2))
  204.   return $calc($1 - (%int * $2))
  205. }
  206. alias -l H2U { return $utf8($base($1,16,10)) }
  207. alias -l mtsave {
  208.   if ($hget(mIRCTwitter,Status)) {
  209.     .timermIRCTwitter -o 0 $iif($hget(mIRCTwitter,Delay),$hget(mIRCTwitter,Delay),60) mIRCTwitter
  210.   }
  211.   if ($hget(mIRCTwitter)) { hsave mIRCTwitter mIRCTwitter.hsh }
  212. }
  213. on ^$*:HOTLINK:/^<([^<>]*)>/S:@Twitter,$hget(mIRCTwitter,Name):{
  214.   if ($1) { return }
  215.   halt
  216. }
  217. on ^$*:HOTLINK:/^\[RT\]/S:@Twitter,$hget(mIRCTwitter,Name):{
  218.   if ($1) { return }
  219.   halt
  220. }
  221. on $*:HOTLINK:/^<([^<>]*)>/S:@Twitter,$hget(mIRCTwitter,Name):{
  222.   if ($mouse.key) { editbox $active $+(@,$strip($regml(1))) }
  223.   halt
  224. }
  225. on $*:HOTLINK:/^\[RT\]/S:@Twitter,$hget(mIRCTwitter,Name):{
  226.   if ($mouse.key) {
  227.     noop $regex($hotline,/<([^<>]*)>(.*)\[RT\]/S)
  228.     editbox $active RT $strip($+(@,$regml(1)) $regml(2))
  229.   }
  230.   halt
  231. }
  232. On *:Start: {
  233.   hmake mIRCTwitter 1
  234.   if ($isfile(mIRCTwitter.hsh)) { hload mIRCTwitter mIRCTwitter.hsh | mtsave }
  235. }
  236. On *:Unload: {
  237.   if ($hget(mIRCTwitter)) { hfree mIRCTwitter }
  238.   if ($isfile(mIRCTwitter.hsh)) { .remove mIRCTwitter.hsh }
  239. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement