Ford

Twitfeed Updated 5/21/2011

May 21st, 2011
290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 14.24 KB | None | 0 0
  1. ;TwitFeed Twitter RSS Script By Ford_Lawnmower irc.mindforge.org #USA-Chat
  2. alias -l TwitFeed {
  3.   var %sockname $+(TwitFeed,$1,$ticks), %site $gettok($2,2,47)
  4.   sockopen %sockname %site 80
  5.   sockmark %sockname $remove($2,%site,http://) 0 $1 %site 0
  6. }
  7. On *:Sockopen:TwitFeed*: {
  8.   if (!$sockerr) { sockwrite -nt $sockname GET $gettok($sock($sockname).mark,1,32) HTTP/1.0 }
  9.   if (!$sockerr) sockwrite -n $sockname User-Agent: Opera 9.6
  10.   if (!$sockerr) { sockwrite -n $sockname Host: $gettok($sock($sockname).mark,4,32) }
  11.   if (!$sockerr) { sockwrite -n $sockname $crlf }
  12. }
  13. On *:Sockread:TwitFeed*: {
  14.   if ($sockerr) { echo -at >Sock error TwitFeed< }
  15.   else {
  16.     var %TwitFeed | sockread %TwitFeed
  17.     %TwitFeed = $replace(%TwitFeed,$chr(36),$+(,$chr(36),))
  18.     if (<item isin %TwitFeed) || (<id> isin %TwitFeed) { sockmark $sockname $puttok($sock($sockname).mark,$calc($gettok($sock($sockname).mark,2,32) + 1),2,32) }
  19.     if ($gettok($sock($sockname).mark,2,32) >= 5) {
  20.       TwitResults $gettok($sock($sockname).mark,3,32)
  21.       sockmark $sockname $puttok($sock($sockname).mark,0,5,32)
  22.       sockclose $sockname
  23.       return
  24.     }
  25.     if ($gettok($sock($sockname).mark,2,32)) {
  26.       var %xx $calc($gettok($sock($sockname).mark,2,32) + 2)
  27.       while (($between(%TwitFeed,<title>,</title>,%xx))) {
  28.         hadd -m TwitFeed $+($gettok($sock($sockname).mark,3,32),$gettok($sock($sockname).mark,2,32)) $ifmatch
  29.         if ($between(%TwitFeed,<pubdate>,</pubdate>,%xx)) || ($between(%TwitFeed,<published>,</published>,%xx)) || ($between(%TwitFeed,<pubdate>,+,%xx)) || ($between(%TwitFeed,<pubdate>,-,%xx)) {
  30.           hadd -m TwitFeed $+($gettok($sock($sockname).mark,3,32),$gettok($sock($sockname).mark,2,32)) $&
  31.             $hget(TwitFeed,$+($gettok($sock($sockname).mark,3,32),$gettok($sock($sockname).mark,2,32))) $httpstrip($ifmatch)
  32.         }
  33.         if ($between(%TwitFeed,<link>,</link>,%xx)) {
  34.           hadd -m TwitFeed $+($gettok($sock($sockname).mark,3,32),$gettok($sock($sockname).mark,2,32)) $&
  35.             $hget(TwitFeed,$+($gettok($sock($sockname).mark,3,32),$gettok($sock($sockname).mark,2,32))) $+(,$fixspace($ifmatch),)
  36.         }
  37.         inc %xx
  38.         sockmark $sockname $puttok($sock($sockname).mark,$calc($gettok($sock($sockname).mark,2,32) + 1),2,32)
  39.         if (%xx >= 7) {
  40.           TwitResults $gettok($sock($sockname).mark,3,32)
  41.           sockmark $sockname $puttok($sock($sockname).mark,0,5,32)
  42.           sockclose $sockname
  43.           return        
  44.         }      
  45.       }
  46.       if (<title isin %TwitFeed) {
  47.         if ($between(%TwitFeed,<title><![CDATA[,]]></title>,1)) || ($between(%TwitFeed,<title>,</title>,1)) || ($between(%TwitFeed,<title type='text'>,</title>,1)) {
  48.           hadd -m TwitFeed $+($gettok($sock($sockname).mark,3,32),$gettok($sock($sockname).mark,2,32)) $httpstrip($ifmatch)
  49.         }
  50.         else { hadd -m TwitFeed $+($gettok($sock($sockname).mark,3,32),$gettok($sock($sockname).mark,2,32)) $httpstrip($right(%twitFeed,400)) }
  51.       }
  52.       if ($between(%TwitFeed,<pubdate>,</pubdate>,1)) || ($between(%TwitFeed,<pubdate>,+,1)) || ($between(%TwitFeed,<pubdate>,-,1)) || ($between(%TwitFeed,<updated>,</updated>,1)) {
  53.         hadd -m TwitFeed $+($gettok($sock($sockname).mark,3,32),$gettok($sock($sockname).mark,2,32)) $&
  54.           $hget(TwitFeed,$+($gettok($sock($sockname).mark,3,32),$gettok($sock($sockname).mark,2,32))) $ifmatch
  55.       }
  56.       if (<link isin %TwitFeed) || (</link> isin %TwitFeed) {
  57.         if ($between(%TwitFeed,<link>,</link>,1)) {
  58.           hadd -m TwitFeed $+($gettok($sock($sockname).mark,3,32),$gettok($sock($sockname).mark,2,32)) $&
  59.             $hget(TwitFeed,$+($gettok($sock($sockname).mark,3,32),$gettok($sock($sockname).mark,2,32))) $+(,$fixspace($ifmatch),)
  60.         }
  61.         elseif ($between(%TwitFeed,<link rel="alternate" type="text/html" href="," title=",1)) {
  62.           hadd -m TwitFeed $+($gettok($sock($sockname).mark,3,32),$gettok($sock($sockname).mark,2,32)) $&
  63.             $hget(TwitFeed,$+($gettok($sock($sockname).mark,3,32),$gettok($sock($sockname).mark,2,32))) $+(,$v1,)      
  64.         }        
  65.         elseif ($regex(%TwitFeed,/<link rel="alternate".*href="(.*)"/)) {
  66.           hadd -m TwitFeed $+($gettok($sock($sockname).mark,3,32),$gettok($sock($sockname).mark,2,32)) $&
  67.             $hget(TwitFeed,$+($gettok($sock($sockname).mark,3,32),$gettok($sock($sockname).mark,2,32))) $+(,$regml(1),)      
  68.         }
  69.         elseif ($regex(%TwitFeed,/<link rel='alternate'.*href='(.*)'\/><link/)) {
  70.           hadd -m TwitFeed $+($gettok($sock($sockname).mark,3,32),$gettok($sock($sockname).mark,2,32)) $&
  71.             $hget(TwitFeed,$+($gettok($sock($sockname).mark,3,32),$gettok($sock($sockname).mark,2,32))) $+(,$regml(1),)      
  72.         }
  73.         elseif ($between(%TwitFeed,<link rel="alternate" type="text/html" href="," />,1)) {
  74.           hadd -m TwitFeed $+($gettok($sock($sockname).mark,3,32),$gettok($sock($sockname).mark,2,32)) $&
  75.             $hget(TwitFeed,$+($gettok($sock($sockname).mark,3,32),$gettok($sock($sockname).mark,2,32))) $+(,$v1,)      
  76.         }        
  77.         else {
  78.           hadd -m TwitFeed $+($gettok($sock($sockname).mark,3,32),$gettok($sock($sockname).mark,2,32)) $&
  79.             $hget(TwitFeed,$+($gettok($sock($sockname).mark,3,32),$gettok($sock($sockname).mark,2,32))) $+(,$httpstrip($right(%TwitFeed,400)),)        
  80.         }
  81.       }
  82.       if (</rss> isin %TwitFeed) { TwitResults $gettok($sock($sockname).mark,3,32) | sockclose $sockname | return }
  83.     }
  84.   }
  85. }
  86. dialog -l TwitFeed {
  87.   title "TwitFeed"
  88.   size -1 -1 104 120
  89.   option dbu
  90.   text "Network:", 1, 8 6 25 8
  91.   text "Channel:", 2, 8 18 25 8
  92.   text "", 3, 36 6 65 8
  93.   text "", 4, 36 18 65 8
  94.   text "FEEDS", 5, 8 28 89 8
  95.   list 6, 8 37 89 60, size vsbar
  96.   button "Add", 7, 5 106 29 12
  97.   button "Delete", 8, 38 106 29 12
  98.   button "Edit", 9, 71 106 29 12
  99.   text "", 10, 0 97 105 8
  100. }
  101. On *:Dialog:TwitFeed*:init:*: {
  102.   did -a $dname 3 $network
  103.   did -a $dname 4 $active
  104.   var %count $hfind(TwitFeedLIST,$+($network,,$active,*),0,w).item
  105.   while (%count) {
  106.     did -a $dname 6 $gettok($hfind(TwitFeedLIST,$+($network,,$active,*),%count,w).item,3,7)
  107.     dec %count
  108.   }
  109. }
  110. On *:Dialog:TwitFeed*:Sclick:7-9: {
  111.   if ($did == 7) { dialogopen $+(TwitEdit,,$did($dname,3).text,,$did($dname,4).text) TwitEdit | if ($dialog($dname)) { dialog -x $dname } }
  112.   elseif ($did == 8) && ($did($dname,6).seltext) {
  113.     var %removeme $+($did($dname,3).text,,$did($dname,4).text,,$did($dname,6).seltext)
  114.     .timer $+ %removeme off
  115.     hdel TwitFeedLIST %removeme
  116.     did -df $dname 6 $did($dname,6).sel
  117.   }
  118.   elseif ($did == 9) && ($did($dname,6).seltext) {
  119.     dialogopen $+(TwitEdit,,$did($dname,3).text,,$did($dname,4).text,,$did($dname,6).seltext) TwitEdit
  120.     if ($dialog($dname)) { dialog -x $dname }
  121.   }
  122. }
  123. dialog -l TwitEdit {
  124.   title "TwitFeed Add/Edit"
  125.   size -1 -1 104 112
  126.   option dbu
  127.   text "Network:", 1, 8 6 25 8
  128.   text "Channel:", 2, 8 18 25 8
  129.   text "", 3, 36 6 65 8
  130.   text "", 4, 36 18 65 8
  131.   text "FEED NAME", 5, 8 28 89 8
  132.   text "", 10, 0 86 105 8, center
  133.   text "FEED LINK", 6, 8 52 89 8
  134.   edit "", 7, 7 38 90 10, autohs
  135.   edit "", 8, 7 62 90 10, autohs
  136.   button "Cancel", 9, 66 96 29 12
  137.   button "Accept", 11, 8 96 29 12
  138.   text "Delay in Seconds:", 12, 8 77 43 8
  139.   edit "", 13, 54 76 43 10
  140. }
  141. On *:dialog:TwitEdit*:Sclick:9,11: {
  142.   if ($did == 11) {
  143.     if ($did($dname,7).text) && ($did($dname,8).text) && ($did($dname,13).text) {
  144.       if (http:// !isin $did($dname,8).text) {
  145.         did -a $dname 10 Link missing prefix http://
  146.         did -f $dname 8
  147.         .timer 1 4 if ($!dialog($dname)) { did -a $dname 10 }
  148.         return
  149.       }
  150.       if ($did($dname,13).text !isnum) {
  151.         did -a $dname 10 Delay should be a NUMBER
  152.         did -f $dname 13
  153.         .timer 1 4 if ($!dialog($dname)) { did -a $dname 10 }
  154.         return
  155.       }
  156.       var %addit $+($did($dname,3).text,,$did($dname,4).text,,$spunder($did($dname,7).text)), %del $did($dname,13).text, %flink $strip($did($dname,8).text)
  157.       var %netcount $scon(0)
  158.       while %netcount {
  159.         if ($scon(%netcount).network == $did($dname,3).text) { var %netid %netcount }
  160.         dec %netcount
  161.       }
  162.       $iif(%netid,scon %netid) TwitTimer %addit %flink %del
  163.       hadd -m TwitfeedLIST %addit %addit %flink %del
  164.       var %diagname $+(TwitFeed,,$did($dname,3).text,,$did($dname,4).text)
  165.       if ($dialog(%diagname)) { did -a %diagname 6 $spunder($did($dname,7).text) }
  166.       dialogopen %diagname TwitFeed
  167.       if ($dialog($dname)) { dialog -x $dname }
  168.     }
  169.     else {
  170.       did -a $dname 10 Please fill in all of the boxes
  171.       .timer 1 4 if ($!dialog($dname)) { did -a $dname 10 }
  172.     }
  173.   }
  174.   if ($did == 9) {
  175.     var %diagname $+(TwitFeed,,$did($dname,3).text,,$did($dname,4).text)
  176.     dialogopen %diagname TwitFeed
  177.     if ($dialog($dname)) { dialog -x $dname }
  178.   }
  179. }
  180. On *:dialog:TwitEdit*:init:*: {
  181.   tokenize 7 $dname
  182.   did -a $dname 3 $2
  183.   did -a $dname 4 $3
  184.   if ($4) {
  185.     did -am $dname 7 $4
  186.     did -af $dname 8 $gettok($hget(TwitFeedLIST,$remove($dname,TwitEdit)),2,32)
  187.     did -a $dname 13 $gettok($hget(TwitFeedLIST,$remove($dname,TwitEdit)),3,32)
  188.   }
  189. }
  190. On *:Start: { set -z %TwitFeedStartUp 300 }
  191. On *:Connect: {
  192.   if (!$hget(TwitFeedLIST)) {
  193.     hmake TwitFeedLIST 5
  194.     if ($exists(TwitFeedLIST.hsh)) { hload TwitFeedLIST TwitFeedLIST.hsh }
  195.   }
  196.   var %records $hget(TwitFeedLIST,0).item
  197.   while (%records) {
  198.     .timer 1 $calc(%records * 20) TwitTimer $hget(TwitFeedLIST,%records).data
  199.     dec %records
  200.   }
  201. }
  202. On *:Disconnect: {
  203.   if ($hget(TwitFeedLIST)) {
  204.     hsave TwitFeedLIST TwitFeedLIST.hsh
  205.   }
  206. }
  207. On *:Exit: { hfree TwitFeedLIST }
  208. On *:Unload: { hfree TwitFeedLIST }
  209. menu channel {
  210.   TwitFeed:dialogopen $+(Twitfeed,,$network,,$chan) twitfeed
  211. }
  212. alias -l TwitResults {
  213.   var %count 4
  214.   while (%count) {
  215.     if (!$hfind($+(twitfeedDONE,$1),$+(*,$right($hget(TwitFeed,$+($1,%count)),10),*),1,w).data) {
  216.       if ($me ison $gettok($1,2,7)) && ($repchars($hget(TwitFeed,$+($1,%count)))) {
  217.         var %Results $fix&#($v1)
  218.         if (!$%TwitFeedStartUp) && (!$istok(%Twitfeed.Banned,$gettok(%results,1,32),32)) {
  219.           ShrinkLinks Put .msg $gettok($1,2,7) 14T07wit14F06eed $gettok($1,3,7) %Results
  220.         }
  221.       }
  222.     }
  223.     dec %count
  224.   }
  225.   while (%count <= 3) {
  226.     inc %count
  227.     hadd -m $+(TwitFeedDONE,$1) $+($1,%count) $hget(TwitFeed,$+($1,%count))
  228.   }
  229. }
  230. alias -l repchars {
  231.   return $replacex($1-,&amp;gt;,>,&quot;,",&amp;,&,&apos;,',&gt;,>,$chr(124),$chr(166))
  232. }
  233. ;Syntax TwitTimer NetworkChannelFeedName http://full/link/to/feedpage/4325677 delayinseconds
  234. alias -l TwitTimer {
  235.   var %netcount $scon(0)
  236.   while %netcount {
  237.     if ($scon(%netcount).network == $gettok($1,1,7)) { var %netid %netcount }
  238.     dec %netcount
  239.   }
  240.   if (%netid) { scon %netid TwitFeed $1 $2 }
  241.   $iif(%netid,scon %netid) .timer $+ $1 1 $iif($3 > 60,$3,60) $iif(%netid,scon %netid) TwitTimer $1-
  242. }
  243. alias -l fixspace { return $replace($1-,$chr(32),% $+ 20) }
  244. alias -l DialogOpen { dialog $iif($dialog($1),-v,-m) $1- }
  245. alias -l spunder { return $replace($1-,$chr(32),_) }
  246. alias -l httpstrip { var %s $replace($1-,&lt;,<,&gt;,>), %x, %i = $regsub(%s,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x) | return %x }
  247. alias -l fix&# { return $regsubex($1-,/\&\#([0-9]{1,4});/g,$h2u(\t)) }
  248. alias -l between { noop $regex($1,/\Q $+ $2 $+ \E(.*?)\Q $+ $3 $+ \E/gi) | return $regml($4) }
  249. alias -l UTF8 {
  250.   if ($1 < 255) { return $chr($1) }
  251.   if ($1 >= 256) && ($1 < 2048) { return $+($chr($calc(192 + $div($1,64))),$chr($calc(128 + $mod($1,64)))) }
  252.   if ($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)))) }
  253.   if ($1 >= 65536) && ($1 < 2097152) {
  254.     return $+($chr($calc(240 + $div($1,262144))),$chr($calc(128 + $mod($div($1,4096),64))),$chr($calc(128 + $mod($div($1,64),64))),$&
  255.       $chr($calc(128 + $mod($1,64))))
  256.   }
  257. }
  258. alias -l div { return $int($calc($1 / $2)) }
  259. alias -l mod {
  260.   var %int $int($calc($1 / $2))
  261.   return $calc($1 - (%int * $2))
  262. }
  263. alias -l H2U { return $utf8($base($1,16,10)) }
  264. alias -l Put {
  265.   if (!$regex($1,/(\.|^)(msg|notice)$/Si)) || (!$3) { echo -st **Put error** Syntax /Put msg #channel text - or - /Put notice nickname text  | return }
  266.   var %tokens $0, %Tstart 3, %Dtimer 1500
  267.   if ($timer($+(Put,$2,$network)).secs) { %Dtimer = $calc($v1 * 1300) }  
  268.   while ($len($($+($,%Tstart,-,%tokens),2)) > 430) {
  269.     dec %tokens
  270.     if ($len($($+($,%Tstart,-,%tokens),2)) <= 430) {
  271.       .timer -m 1 %Dtimer $1-2 $($+($,%Tstart,-,%tokens),2))
  272.       inc %Dtimer 1500
  273.       %Tstart = $calc(%tokens + 1)
  274.       %tokens = $0
  275.     }
  276.   }
  277.   .timer -m 1 %Dtimer $1-2 $($+($,%Tstart,-,%tokens),2))
  278.   .timer $+ $+(Put,$2,$network) -m 1 $calc(%Dtimer + 1500) noop
  279. }
  280. alias -l shrinklinks {
  281.   if ($wildtok($strip($4-),http://*.*,0,32) == $wildtok($strip($4-),http://tinyurl.com*,0,32)) {
  282.     $eval($1-,1)
  283.     return
  284.   }
  285.   var %count $wildtok($strip($4-),http://*.*,0,32), %text $strip($4-)
  286.   while %count {
  287.     if ($left($wildtok(%text,http://*.*,%count,32),18) != http://tinyurl.com) {
  288.       tiny $1-3 $wildtok(%text,http://*.*,%count,32) $4-
  289.       %count = 0
  290.       return
  291.     }
  292.     dec %count
  293.   }
  294. }
  295. alias -l Tiny {
  296.   var %sockname $+(Tiny,$network,$ticks,$r(1,$ticks))
  297.   sockopen %sockname tinyurl.com 80
  298.   sockmark %sockname $1-3 $+(/create.php?url=,$4) $4 $5-
  299. }
  300. On *:sockopen:Tiny*: {
  301.   if (!$sockerr) {
  302.     sockwrite -nt $sockname GET $gettok($sock($sockname).mark,4,32) HTTP/1.0
  303.     sockwrite -n $sockname Host: tinyurl.com
  304.     sockwrite -n $sockname $crlf
  305.   }
  306.   else { echo -st Socket Error $nopath($script) | sockclose $sockname | return }
  307. }
  308. On *:sockread:Tiny*: {
  309.   if ($sockerr) { echo -st Socket Error $nopath($script) | sockclose $sockname | return }
  310.   else {
  311.     var %Tiny | sockread %Tiny
  312.     if ($regex(%Tiny,/<blockquote><b>(.*)<\/b><br><small>/i)) {
  313.       tokenize 32 $sock($sockname).mark
  314.       shrinklinks $1-3 $replace($6-,$5,$regml(1))
  315.       sockclose $sockname
  316.       return
  317.     }
  318.   }
  319. }
  320. alias -l Network {
  321.   if ($Network) { return $v1 }
  322.   else { return Unknown }
  323. }
  324. alias -l net {
  325.   var %netcount $scon(0)
  326.   while %netcount {
  327.     if ($scon(%netcount).network == $1) { var %netid %netcount }
  328.     dec %netcount
  329.   }
  330.   return %netid
  331. }
Advertisement
Add Comment
Please, Sign In to add comment