Пример #1
0
class RssHandler(tornado.web.RequestHandler):
    def initialize(self):
        self.q = []
        us = db.GqlQuery("SELECT * FROM Feed ORDER BY created DESC LIMIT 50")

        for i in us:
            self.q.append(i.url)
            
        self.opener = URLOpener()

    def ensure_login(self):
        if 't' not in self.opener.cookie:
            login_form = urllib.urlencode({
                'email': '*****@*****.**',
                'password': '******',
                'autoLogin': '******',
                'origURL': 'http://www.renren.com/SysHome.do',
                'domain': 'renren.com'})
            url = 'http://www.renren.com/PLogin.do'
            self.opener.open(url, login_form)
            
        self.write('%r\n' % self.opener.cookie)
        
    def post(self):
        global work_, rss2queue_
        if work_: return
        
        self.set_header("Content-Type", "text/plain; charset=UTF-8")

        try:
            work_ = True
            index = current_ % len(rss2queue_)
            url, feeds = rss2queue_[index]
            if feeds:
                self.post_once(feeds)
            else:
                self.rss_once(url, feeds)
        #except Exception, e:
        #    self.write('got exception: %r\n' % e)
        finally:
            work_ = False

    def get(self):
        #self.set_header("Content-Type", "text/plain; charset=UTF-8")
        #self.zhan_post('test', 'hello')
        self.post()

    def fetch(self, url, headers=None):
        rpc = urlfetch.create_rpc()
        if headers is None:
            headers = {}
        urlfetch.make_fetch_call(rpc, url, headers=headers)
        try:
            result = rpc.get_result()
        except urlfetch.InvalidURLError,e: #DownloadError,e:
            self.write('fetch: disable\n')
            return ''
        except urlfetch.DownloadError,e:
            self.write('fetch: download error\n')
            return # appengine system error?
Пример #2
0
    def initialize(self):
        self.q = []
        us = db.GqlQuery("SELECT * FROM Feed ORDER BY created DESC LIMIT 10")

        for i in us:
            self.q.append(i.url)
            
        self.opener = URLOpener()