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?
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()