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')