def get(self): auth_client = _oauth(self) if not auth_client.get_cookie(): self.response.out.write('请<a href="/oauth/weibo/login">登录</a>') return try: username = auth_client.get_username() except: self.redirect('/oauth/weibo/login') return gruser = GRUser.get_by_key_name('Key_Weibo_%s' % username) template_value = {} if gruser: mygruser = {} mygruser["username"]=gruser.username mygruser["format"]=gruser.format mygruser["bitlykey"]=gruser.bitlykey mygruser["bitlylogin"]=gruser.bitlylogin mygruser["synctype"]={} mygruser["readerid"]="" if gruser.topic: mygruser["readerid"] = gruser.topic.replace("http://www.google.com/reader/public/atom/user/","") mygruser["readerid"] = mygruser["readerid"].replace("/state/com.google/broadcast","") if not gruser.synctype: mygruser["synctype"] = {"all":"checked","comment":"","Note":""} elif gruser.synctype == "all": mygruser["synctype"] = {"all":"checked","comment":"","Note":""} elif gruser.synctype == "comment": mygruser["synctype"] = {"all":"","comment":"checked","Note":""} else: mygruser["synctype"] = {"all":"","comment":"","Note":"checked"} template_value = {"gruser":mygruser} self.response.out.write(template.render('syncweibo.html', template_value))
def post(self): auth_client = _oauth(self) if auth_client.get_cookie(): username = auth_client.get_username() logging.info(username) grid = self.request.get("grid") if re.search(r"\d*",grid).group(): topic = "http://www.google.com/reader/public/atom/user/%s/state/com.google/broadcast" % grid issync = self.request.get("mode") gruser = GRUser.get_by_key_name('Key_Weibo_%s' % username) if issync == "subscribe": synctype = self.request.get("synctype") logging.info(synctype) if gruser: gruser.topic = topic gruser.synctype = synctype gruser.unsubscribe = False gruser.put() else: logging.info("新用户") gruser = GRUser(key_name='Key_Weibo_'+username,username = username,topic = topic) gruser.put() elif gruser: logging.debug("用户退订") logging.debug(gruser.username) gruser.unsubscribe = True gruser.put() return payload = {"hub.mode":issync,"hub.verify":"sync","hub.callback":"http://reader2twitter.appspot.com/subscriber","hub.topic":topic} payload= urllib.urlencode(payload) url = "http://pubsubhubbub.appspot.com/subscribe" try: result = urlfetch.fetch(url, payload=payload, method=urlfetch.POST)#, headers=headers) logging.info(result.status_code) if result.status_code == 204: logging.info("%s success" % issync) if issync == "unsubscribe": self.response.out.write('同步已被停止。如果有问题,请联系<a href="http://t.sina.com.cn/kangye">开发者</a>。') else: self.response.out.write("同步已设置成功。<a href=\"javascript:var%20b=document.body;var%20GR________bookmarklet_domain='http://www.google.com';if(b&&!document.xmlVersion){void(z=document.createElement('script'));void(z.src='http://www.google.com/reader/ui/link-bookmarklet.js');void(b.appendChild(z));}else{}\">点击测试</a>") else: logging.info("向hub订阅Publisher失败") self.response.out.write('请<a href="/weibo/greader.settings">重试</a>') except: logging.info("和hub连接失败") self.response.out.write('请<a href="/weibo/greader.settings">重试</a>') else: logging.info("google reader id格式错误") self.response.out.write('请试用Google Reader<b>数字</b>ID,<a href="/weibo/greader.settings">重试</a>') else: logging.info("没有oauth认证") self.response.out.write('请<a href="/oauth/weibo/login">登录</a>')
def get(self): auth_client = _oauth(self) if not auth_client.get_cookie(): self.redirect('/') return username = auth_client.get_username() if not username: self.response.out.write('Error occured when conmunicating with Twitter. Please <a href="/">try again</a>.') else: gruser = GRUser.get_by_key_name('Key_Weibo_%s' % username) if not gruser: gruser = GRUser(key_name='Key_Weibo_'+username,username = username, oauth = True) gruser.put() logging.debug("New Weibo-Login user.") logging.info(username) else: gruser.oauth = True gruser.put() self.redirect('/weibo/greader.settings')