All pastes #738482 Raw Edit

Mine

public text v1 · immutable
·published 2007-10-16 11:03 UTC
rendered paste body
def GetFeed(self, url, target):
        self.feed = twisted.web.client.getPage(url,timeout=10,followRedirect=0)
        #print 'url: %s' % url
        self.feed2 = self.feed.addCallback(self.parse_feed, url)
        self.feed.addErrback(self.feed_error,url)
        self.feed2.addCallback(self.output_feed,target,url)

    def feed_error(self, data, url):
        print 'error: %s' % data
    # FeedMe Callback, Result processing. FIXME, blocking sorta.
    def parse_feed(self, data, url):
            url = url.split("?")[0]
           #print 'url is: ', url
            once = 0
            link = {}
            doc = libxml2dom.parseString(data, html=1)
            items = doc.getElementsByTagName('item')
            top = items[0]
            bottom = items[len(items)-1]
            title_top = top.getElementsByTagName('title')[0].childNodes[0].value
            title_bottom = bottom.getElementsByTagName('title')[0].childNodes[0].value
            if title_top > title_bottom:
                item = top
            elif title_bottom > title_top:
                item = bottom

            title = item.getElementsByTagName('title')[0].childNodes[0].value
            guid = item.getElementsByTagName('guid')[0].childNodes[0].value
            latesturl = MakeMeTiny(url +'%s' % guid)
           # print 'result feed me: %s' % latesturl
            d = defer.Deferred()
            if not latesturl is None:
                result = latesturl
            else:
                result = 'Fail'
            reactor.callLater(1,d.callback,result)
            return d

    def output_feed(self,data, channel, url):
        self.msg(channel,'url: %s link to latest kill: %s' % (url.strip('/?a=feed'),data))
        #print 'output_feed: %s' % data