SRU

RSS Feed Script (SRU EDiT)

SRU
Oct 24th, 2011
367
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 11.79 KB | None | 0 0
  1. ;*****************************************************************************************************************************************************************************************************************
  2. ;*** ######   #####   #####                                                      
  3. ;*** #     # #     # #     #           ####  ######  ####  ##### #  ####  #    #
  4. ;*** #     # #       #                #      #      #    #   #   # #    # ##   #
  5. ;*** ######   #####   #####            ####  #####  #        #   # #    # # #  #
  6. ;*** #   #         #       #               # #      #        #   # #    # #  # #
  7. ;*** #    #  #     # #     #          #    # #      #    #   #   # #    # #   ##
  8. ;*** #     #  #####   #####            ####  ######  ####    #   #  ####  #    #
  9. ;*****************************************************************************************************************************************************************************************************************
  10. ;*** RSS Feed Script by Ford_Lawnmower ( Original download from: http://www.hawkee.com/snippet/5925/ )
  11.  
  12. on @*:TEXT:!RSS*Status:#: { var %timer.num = $timer(0),%timer.timer = 1 | while (%timer.num) { $iif($left($timer(%timer.num),3) == rss,.timer 1 %timer.timer .msg $iif($nick !isop $chan,$nick,#) $+($replace($timer(%timer.num).com,RSS.Feed,[07RSS] 5Name:4,http,2http,$+($chr(32),$chr(35)), 14-4#14- 5Output: 3#),sec delay) 5Next Check: $duration($timer(%timer.num).secs) seconds away) | inc %timer.timer | dec %timer.num } }
  13. on @*:TEXT:!RSS*HELP:#: { msg # [7RSS-7CMDS] !RSS HELP 14-4#14- !RSS LiST 14-4#14- !RSS STATUS 15ooO( Will give you status over which RSS Feeds are added and when next update is 15) }
  14. on @*:TEXT:!RSS*LiST:#: {
  15.   msg # [7RSS-7LiST] 5PM'iNG $nick 5the full list
  16.   .msg $nick ToTT 15(2http://www.tokeofthetown.com/rss.xml15) | .msg $nick Ohh 15(2http://ohhburn.com/feed/15)
  17.   .msg $nick HighTimes 15(2http://hightimes.com/feeds/home.xml15) | .msg $nick IToTD 15(2http://feeds.feedburner.com/InterestingThingOfTheDay15)
  18.   .msg $nick BT 15(2http://www.bt.dk/bt/seneste/rss15) | .msg $nick EkstraBladet 15(2http://ekstrabladet.dk/rss2/?mode=normal15)
  19.   .msg $nick FOX 15(2http://feeds.feedburner.com/foxnews/latest15) | .msg $nick Tech 15(2http://techcrunch.com/feed/15)
  20.   .msg $nick MOViE 15(2http://blog.moviefone.com/rss.xml15) | .msg $nick TRAiLER 15(2http://trailers.apple.com/trailers/home/rss/newtrailers.rss15)
  21.   .msg $nick CNN 15(2http://rss.cnn.com/rss/edition.rss15) | .msg $nick FARK 15(2http://www.fark.com/fark.rss15)
  22.   .msg $nick Boing 15(2http://feeds.boingboing.net/boingboing/iBag15) | .msg $nick Hawkee 15(2http://www.hawkee.com/comment.rss.php15)
  23.  
  24. }
  25. ;************************************************************************************************************************************************************************************************************************
  26. menu * {
  27.   -
  28.   .RSSFeed1.0
  29.   ..Dialogs:RSS1.0
  30.   ..List Feeds:RSS.Status
  31.   -  
  32. }
  33. ;************************************************************************************************************************************************************************************************************************
  34. on *:sockopen:RSS: {
  35.   ;  echo -at There has been opend a connection to $+(%RSSsite,%RSSurl)
  36.   sockwrite -nt $sockname GET %RSSurl HTTP/1.0
  37.   sockwrite -n $sockname User-Agent: Opera 9.6
  38.   sockwrite -n $sockname Host: %RSSsite $+ $CRLF $+ $CRLF
  39. }
  40. ;************************************************************************************************************************************************************************************************************************
  41. on *:sockread:RSS: {
  42.   if ($sockerr > 0) { echo -at There has been an error... >RSS1.0<>Sock Error< |  RSS.clear }
  43.   else { var %RSSvar |  sockread %RSSvar
  44.     if (<entry> isin %RSSvar) { set %RSS.Start on }
  45.     if (</entry> isin %RSSvar) || (</item> isin %RSSvar) { set %RSS.Dup Off
  46.       ;*** SETTiNG FiNAL OUTPUT
  47.       set -u3 %MSG $replace(%RSS.Name,HighTimes,9_\|/_8HighTimes9_\|/_,ToTT,9_\|/_15ToTT9_\|/_,BAKED,9_\|/_15Good14&15Baked9_\|/_,Ohh,3_\|/_15OhhhBurn3_\|/_,Tech,/15Tech14Church\,IToTD,2\7IToTD2/7,Hawkee,14/4Hawkee14\13,Boing,$+(5/4,$chr(44),1boingboing5\7),MOViE,$+(/4,$chr(44),0MOViEFONE\7),TRAiLER,/5mTRAiLER\7,FOX,0\2FOX15News0/7,CNN,\4CNN15News/7,FARK,\14FARK15News/7,BT,\4BT15News/4,EkstraBladet,$+(\0,$chr(44),4EkstraBladet/4)) $&
  48.         $+($iif(%RSS.Name != Hawkee,),$replacex($mLiNK-ReplaceR($remove(%RSS.Title,&amp;,&quot;,&gt;)),$+($chr(32),commented on), commented on,$+(mIRC Snippet:,$chr(32)),$+(m,IRC Snippet:,$chr(32),7),$+(:,$chr(32)),$+(:,$chr(32),7)),) $&
  49.         $+(15,$chr(40),2,$strip($replace($nospace(%RSS.Link),$chr(32),$+($chr(37),20))),15,$chr(41),)
  50.       ;*************************************************************************************************************************************************
  51.       if ($hfind(%RSSsite,$right($remove(%RSS.title,$chr(32)),70))) { set %RSS.Dup ON }
  52.       if (%RSS.Dup == Off) && (%RSS.Count <= %RSS.Max) { set %RSS.Output 1
  53.         while $gettok(%RSS.Chans,%RSS.Output,44) {
  54.           if ($gettok(%RSS.Chans,%RSS.Output,44) ischan) {
  55.             .msg $gettok(%RSS.Chans,%RSS.Output,44) %MSG
  56.           }
  57.           inc %RSS.Output
  58.         }
  59.         inc %RSS.Count
  60.       }
  61.       hadd %RSSsite $right($remove(%RSS.title,$chr(32)),70) %RSS.Link $+ $chr(7) $+ %RSS.Title $+ $chr(7) $+ %RSS.Date $+ $chr(7)
  62.     }
  63.     ;*** TiTLE
  64.     if (<title> isin %RSSvar) { set %RSS.Title $remove($gettok($replace(%RSSvar,<title>,$chr(7),</title>,$chr(7)),2,7),<![CDATA[,]]>)) }
  65.     if ($left(%RSSvar,7) == <title>) { set %RSS.Title $remove(%RSSvar,<title>,</title>,<![CDATA[,]]>) }
  66.     ;*** LiNK
  67.     if (<link href=" isin %RSSvar) { set %RSS.Link $nospace($remove(%RSSvar,<link href="," />)) }
  68.     if (<link> isin %RSSvar) { set %RSS.Link $gettok($replace(%RSSvar,<link>,$chr(7),</link>,$chr(7)),2,7) }
  69.     if ($left(%RSSvar,6) == <link>) { set %RSS.Link $remove(%RSSvar,<link>,</link>) }
  70.     ;*** DATE
  71.     if  (<updated> isin %RSSvar) { set %RSS.Date $gettok($replace(%RSSvar,<updated>,$chr(7),</updated>,$chr(7)),2,7) }
  72.     if ($left(%RSSvar,9) == <updated>) { set %RSS.Date $remove(%RSSvar,<updated>,</updated>) }
  73.     if (<pubdate> isin %RSSvar) { set %RSS.Date $gettok($replace(%RSSvar,<pubdate>,$chr(7),</pubdate>,$chr(7)),2,7) }
  74.     if ($left(%RSSvar,9) == <pubdate>) { set %RSS.Date $remove(%RSSvar,<pubdate>,</pubdate>) }
  75.     ;*** CLEAR
  76.     if (</feed> isin %RSSvar) || (</rss> isin %RSSvar) || (</channel> isin %RSSvar) { RSS.Clear }
  77.   }
  78. }
  79. ;************************************************************************************************************************************************************************************************************************
  80. on *:Connect: { $iif(!$hget(RSSFeed),hmake RSSFeed 5) | RSS.StartUp }
  81. on *:Start: { $iif(!$hget(RSSFeed),hmake RSSFeed 5) | $iif($isfile(RSSFeed.hsh),hload -s RSSFeed RSSFeed.hsh) }
  82. on *:Exit: { $iif($hget(RSSFeed),hsave RSSFeed RSSFeed.hsh) | hfree RSSFeed }
  83. on *:Disconnect: { $iif($hget(RSSFeed),hsave RSSFeed RSSFeed.hsh) }
  84. on *:Unload: { hfree RSSFeed }
  85. ;************************************************************************************************************************************************************************************************************************
  86. ;*** Dialog
  87. alias RSS1.0 { dialog -m RSSFeed1 RSSFeed1 }
  88. ;***********************************************
  89. dialog RSSFeed1 {
  90.   title "RSS Feed 1.0"
  91.   size -1 -1 104 136
  92.   option dbu
  93.   list 1, 8 16 90 82
  94.   button "Add", 2, 8 104 29 12
  95.   button "Delete", 3, 40 104 29 12
  96.   button "Edit", 4, 72 104 29 12
  97.   button "Close", 5, 8 120 93 12, ok cancel
  98.   text "Click Add or Click a feed to Edit/Del ", 6, 8 8 89 8, center
  99. }
  100. ;***********************************************
  101. dialog RSSFeed2 {
  102.   title "RSS Feed 1.0 Add/Edit"
  103.   size -1 -1 104 104
  104.   option dbu
  105.   edit "", 1, 8 16 42 10, autohs
  106.   text "RSS Name", 2, 8 8 41 8, center
  107.   edit "", 3, 8 40 90 10, autohs
  108.   edit "", 4, 56 16 42 10, autohs
  109.   text "Delay in Seconds", 5, 56 8 41 8, center
  110.   text "RSS Feed Link - ie http://Rss.Bla", 6, 8 32 89 8, center
  111.   edit "", 7, 8 64 90 10, autohs
  112.   text "Chans for Feed Separate  w/Space", 8, 8 56 89 8
  113.   button "Accept", 9, 8 80 37 12, ok
  114.   button "Cancel", 10, 60 80 37 12, cancel
  115. }
  116. ;***********************************************
  117. on *:dialog:RSSFeed1:init:*: { didtok RSSFeed1 1 32 %Global.Feed.List }
  118. ;***********************************************
  119. on *:dialog:RSSFeed2:init:*: {
  120.   did -a RSSFeed2 1 %Feed.Name
  121.   did -a RSSFeed2 3 %Feed.Link
  122.   did -a RSSFeed2 4 %Feed.Delay
  123.   did -a RSSFeed2 7 %Feed.Chans
  124. }
  125. ;***********************************************
  126. on *:dialog:RSSFeed1:Sclick:*: {
  127.   if ($did == 2) {
  128.     dialog -x RSSFeed1
  129.     dialog -m RSSFeed2 RSSFeed2
  130.   }
  131.   if ($did == 3) {
  132.     if ($did(1).sel) {
  133.       .timerRSS [ $+ [ $gettok($hget(rssfeed,$did(1).seltext),1,32) ]  ] off
  134.       hdel  RSSFeed $did(1).seltext
  135.       did -d RSSFeed1 1 $did(1).sel
  136.       set %Global.Feed.List $didtok(RSSFeed1,1,32)
  137.       else { return }
  138.     }
  139.   }
  140.   if ($did == 4) {
  141.     if ($did(1).sel) {
  142.       set %Feed.Name $did(1).seltext
  143.       set %Feed.Link $gettok($hget(rssfeed,$did(1).seltext),1,32)
  144.       set %Feed.Chans $gettok($hget(rssfeed,$did(1).seltext),2,32)
  145.       set %Feed.Delay $gettok($hget(rssfeed,$did(1).seltext),3,32)
  146.       dialog -x RSSFeed1
  147.       dialog -m RSSFeed2 RSSFeed2
  148.     }
  149.     else { halt }
  150.   }
  151. }
  152. ;***********************************************
  153. on *:dialog:RSSFeed2:Sclick:*: {
  154.   if ($did == 9) {
  155.     if ($hget(rssfeed,%Feed.Name)) {
  156.       .timerRSS [ $+ [ $gettok($hget(rssfeed,%Feed.Name),1,32) ]  ] off      
  157.       hdel RSSFeed %Feed.Name
  158.       set %Global.Feed.List $remove(%Global.Feed.List,$replace(%Feed.Name,$chr(32),-))
  159.     }
  160.     if (%Feed.Name.Temp) {
  161.       if ($hget(rssfeed,$replace(%Feed.Name.Temp,$chr(32),-))) {
  162.         .timerRSS [ $+ [ $gettok($hget(rssfeed,%Feed.Name.Temp),1,32) ]  ] off      
  163.         hdel RSSFeed %Feed.Name.Temp
  164.         set %Global.Feed.List $remove(%Global.Feed.List,$replace(%Feed.Name.Temp,$chr(32),-))
  165.       }
  166.       set %Feed.Name %Feed.Name.Temp
  167.     }
  168.     if (%Feed.Link.Temp) { set %Feed.Link %Feed.Link.Temp }
  169.     if (%Feed.Delay.Temp) { set %Feed.Delay %Feed.Delay.Temp }
  170.     if (%Feed.Chans.Temp) { set %Feed.Chans %Feed.Chans.Temp }
  171.     if (!%Feed.Name) || (!%Feed.Link) || (!%Feed.Delay) || (!%Feed.Chans) { echo -a You must fill in all the boxes!!! | dialog RSSFeed2 | halt }
  172.     unset *.Temp
  173.     if (!$hget(RSSFeed)) { hmake RSSFeed 5 }
  174.     hadd RSSFeed $replace(%Feed.Name,$chr(32),-) $remove(%Feed.Link,$chr(32)) $replace(%Feed.Chans,$chr(32),$chr(44)) $remove(%Feed.Delay,$chr(32))
  175.     RSS.Feed $replace(%Feed.Name,$chr(32),-) $remove(%Feed.Link,$chr(32)) $replace(%Feed.Chans,$chr(32),$chr(44)) $remove(%Feed.Delay,$chr(32))
  176.     set %Global.Feed.List %Global.Feed.List $replace(%Feed.Name,$chr(32),-)
  177.   }
  178.   unset %Feed.*
  179.   dialog -m RSSFeed1 RSSFeed1
  180. }
  181. ;***********************************************
  182. if ($did == 10) { unset *.Temp %Feed.* | dialog -m RSSFeed1 RSSFeed1 }
  183. ;***********************************************
  184. on *:dialog:RSSFeed2:edit:*: {
  185.   if ($did == 1) { set %Feed.Name.Temp $did(RSSFeed2,1) }
  186.   if ($did == 3) { set %Feed.Link.Temp $did(RSSFeed2,3) }
  187.   if ($did == 4) { set %Feed.Delay.Temp $did(RSSFeed2,4) }
  188.   if ($did == 7) { set %Feed.Chans.Temp $did(RSSFeed2,7) }
  189. }
  190. ;************************************************************************************************************************************************************************************************************************
Advertisement
Add Comment
Please, Sign In to add comment