Exemplo n.º 1
0
 def post(self):
     screen_name = self.get_argument("screen_name", '')
     intro = self.get_argument("intro", '')
     port = self.get_argument("port", None)
     access_token = self.profiles.weibo_access_token
     if not access_token:
         raise HTTPError(500, "Weibo access_token not found")
     
     if 0<len(screen_name)<72 and 0<len(intro)<192:
         if port == "weibo":
             request_url = self._OAUTH_USER_INFO_URL + "?" + urlencode({"access_token":access_token, "screen_name":screen_name.encode("utf-8")})
             http_client = AsyncHTTPClient()
             http_client.fetch(request_url, callback=(yield gen.Callback("resp")))
             response = yield gen.Wait("resp")
             if response.code == 200:
                 content = json.loads(response.body)
                 username = "******" %(content.get("screen_name"), port)
                 member = Member.getMemberByOAuth2ID(str(content.get("id")), port)
                 if member:
                     member.has_fetcher = "suspend"
                     member.task_intro = intro
                     member.save()
                 else:
                     member = Member.create(
                         username=username, 
                         nickname=content.get("screen_name"),
                         port=port,
                         oauth_id=str(content.get("id")),
                         has_fetcher="suspend",
                         task_intro=intro,
                         oauth_info={
                             "description": content.get("description").encode("utf-8"),
                             "province": content.get("province"),
                             "city": content.get("city"),
                             "location": content.get("location"),
                             "profile_image_url": content.get("profile_image_url"),            
                         },
                         created=datetime.now(),
                         modified=datetime.now()
                     )
                 self.finishedMsg(status="success", info="submit success")
             else:
                 self.finishedMsg(status="error", info="could not connect to weibo api")
         else:
             self.finishedMsg(status="error", info="others ports not supported")
     else:
         self.finishedMsg(start="error", info="argument error")
Exemplo n.º 2
0
    def _on_auth(self, user):
        next = self.get_argument("next", self.prefix_url)
        if not user:
            raise HTTPError(500, "Weibo auth failed")
        else:
            user['oauth_info'].update(description=striping(user['oauth_info']['description'], 0, 35))
            member = Member.getObject(oauth_id=user["oauth_id"], port="weibo")
            if member:
                member.access_token = user["access_token"]
                member.oauth_info.update(user["oauth_info"])
                member.save()                
            else:
                user.update(created=datetime.now())
                user.update(modified=datetime.now())
                member = Member.create(**user)

            self.session["logined"] = True
            self.session["mid"] = member.mid
            self.session.save()
            cookie_string = self.dumpsJson(logined=True, mid=member.mid)
            self.set_secure_cookie(self.cookie_name, cookie_string)
            self.redirect(next)
Exemplo n.º 3
0
    def post(self):
        data = self.request.body
        form_data = json.loads(data)
        regist_id = form_data["regist_id"]
        regist_dict = self.mc.get(str(regist_id))

        if regist_dict:
            email       = regist_dict["email"]
            username    = form_data["username"]
            password    = form_data["password"]
            repeat      = form_data["repeat"]

            if password==repeat:
                is_existed = Member.getMemberByEmailAndUsername(email, username)
                if is_existed:
                    self.finishedMsg(status="error", info="email or username existed")
                else:                    
                    if (time.time() - regist_dict["timestamp"]) < 300:
                        is_saved = Member.create(
                            email       = email,
                            username    = username,
                            password    = getSha1(password),
                            created     = datetime.now(),
                            modified    = datetime.now(),
                            is_enabled  = True
                        )
                        if is_saved:
                            del self.mc[regist_id]                       
                            self.finishedMsg(status="success", info="regist success")
                        else:
                            self.finishedMsg(status="error", info="error when save record")
                    else:
                        self.finishedMsg(status="error", info="regist code expired")
            else:
                self.finishedMsg(status="error", info="password not matched")
        else:
            self.finishedMsg(status="error", info="regist_id not found")