Question

I am trying to code rss news feeder bot for irc. So I search a bit on web a little and made out this code

#this code is for local testing
import feedparser
feed_list = {}
channel = '#hackingdefined'

class Feed:
    def __init__(self, name, url):
        self.name = name
        self.url = url
        self.feeds = {}
        self.newest = ''

    def update(self):
        self.feeds = feedparser.parse(self.url)
        if self.newest != self.feeds['items'][0].title:
            self.newest = self.feeds['items'][0].title
            say('{}: {} '.format(self.name,self.newest))
            say('URL: {} '.format(self.feeds.entries[0].link))

def say(data=''):
    print('PRIVMSG '+channel+' :'+ data+'\r\n')

def url_loader(txt):
    f = open(txt, 'r')
    for line in f:
        name, url = line.split(':',1) # check how to spilt only once
        print name+" "+url
        feed_list[name] = Feed(name,url)
    print feed_list

url_loader('feed_list.txt')
for feed in feed_list.values():
    print feed
    feed.update()

When I run the code I get this error

Traceback (most recent call last):
  File "C:\Or\define\projects\rss feed\the progect\test.py", line 33, in <module>
    feed.update()
  File "C:\Or\define\projects\rss feed\the progect\test.py", line 14, in update
    if self.newest != self.feeds['items'][0].title:
IndexError: list index out of range

Now the wierd thing is, if I create a new Feed class like test = Feed('example', 'http://rss.packetstormsecurity.com/') and call test.update() Its all work fine, but the automation script raise an error.

So i checked my url_load and the test file,The test file is something like this:

packet storm:http://rss.packetstormsecurity.com/
sans:http://www.sans.org/rss.php/
...

And its all seems fine to me. Any one have a clue what this could be?

Thanks, Or

EDIT:

Its been solved, one of my url was wrong. All seem clear after good night sleep :-)

Was it helpful?

Solution

Its been solved, one of my url that i post into the file was wrong. The solution is use try on every url in the list.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top