Пример #1
0
 def set_email(self, email):
     cursor = None
     try:
         cursor = db_conn.execute("""replace into passwd (user_id, email) values (%s,%s)""", (self.id, email))
         db_conn.commit()
         return True
     except IntegrityError:
         db_conn.rollback()
         return False
     finally:
         mc.delete("user_email:%s" % self.id)
         cursor and cursor.close()
Пример #2
0
 def set_email(self, email):
     cursor = None
     try:
         cursor = db_conn.execute(
             '''replace into passwd (user_id, email) values (%s,%s)''',
             (self.id, email))
         db_conn.commit()
         return True
     except IntegrityError:
         db_conn.rollback()
         return False
     finally:
         mc.delete("user_email:%s" % self.id)
         cursor and cursor.close()
Пример #3
0
def bind(uid, feed_uri):
    user = User.get(uid)
    if not user:
        print 'no user'
        return
    ua = UserAlias.bind_to_exists_user(
        user, config.OPENID_TYPE_DICT[config.OPENID_WORDPRESS], feed_uri)
    if not ua:
        print "no user alias"
    else:
        ##添加同步任务
        t = SyncTask.add(config.CATE_WORDPRESS_POST, user.id)
        t and TaskQueue.add(t.id, t.kind)
        ##删除confiration记录
        mc.delete("wordpress_bind:%s" % user.id)
Пример #4
0
def bind(uid, feed_uri):
    user = User.get(uid)
    if not user:
        print 'no user'
        return
    ua = UserAlias.bind_to_exists_user(user, 
            config.OPENID_TYPE_DICT[config.OPENID_WORDPRESS], feed_uri)
    if not ua:
        print "no user alias"
    else:
        ##添加同步任务
        t = SyncTask.add(config.CATE_WORDPRESS_POST, user.id)
        t and TaskQueue.add(t.id, t.kind)
        ##删除confiration记录
        mc.delete("wordpress_bind:%s" %user.id)
Пример #5
0
 def _clear_cache(cls, user_id, status_id, cate=""):
     if status_id:
         mc.delete("status:%s" % status_id)
     if user_id:
         mc.delete("status_ids:user:%scate:" % user_id)
         if cate:
             mc.delete("status_ids:user:%scate:%s" % (user_id, cate))
Пример #6
0
 def _clear_cache(self, user_id, status_id, cate=None):
     if status_id:
         mc.delete("status:%s" % status_id)
     if user_id:
         mc.delete("status_ids:user:%scate:None" % user_id)
         if cate:
             mc.delete("status_ids:user:%scate:%s" % (user_id, cate))
Пример #7
0
 def _clear_cache(cls, user_id=None):
     if user_id:
         mc.delete("pdf_settings:u%s" % user_id)
     mc.delete("pdf_settings:all_uids")
Пример #8
0
 def _clear_cache(cls, user_id):
     if user_id:
         mc.delete("user:%s" % user_id)
         UserProfile.clear_cache(user_id)
     mc.delete("user:ids")
Пример #9
0
 def clear_cache(cls, user_id):
     mc.delete("mc_user_profile:%s" %user_id)
Пример #10
0
 def clear_cache(cls, status_id):
     mc.delete("mc_raw_status:%s" %status_id)
Пример #11
0
 def _clear_cache(cls, user_id):
     if user_id:
         mc.delete("user:%s" % user_id)
         UserProfile.clear_cache(user_id)
     mc.delete("user:ids")
Пример #12
0
 def _(*a, **kw):
     key, args = gen_key(*a, **kw)
     r = f(*a, **kw)
     mc.delete(key)
     return r
Пример #13
0
 def _clear_cache(self):
     mc.delete("user_token:%s" % self.id)
     mc.delete("user_token:%s" % self.token)
     mc.delete("user_token_ids:%s" % self.user_id)
Пример #14
0
 def set_profile(self, profile):
     mongo_conn.set("/profile/%s" % self.id, json_encode(profile))
     mc.delete("user_profile:%s" % self.id)
     return self.get_profile()
Пример #15
0
 def clear_cache(cls, user_id, weixin_name):
     mc.delete("user_weixin:%s" % weixin_name)
Пример #16
0
def bind_wordpress():
    if not g.user:
        flash(u"请先使用豆瓣、微博、QQ、Twitter任意一个帐号登录后,再来做绑定blog的操作^^", "tip")
        return redirect("/home")
    user = g.user

    intros = [
        g.user.get_thirdparty_profile(x).get("intro")
        for x in config.OPENID_TYPE_DICT.values()
    ]
    intros = filter(None, intros)

    uas = g.user.get_alias()
    wordpress_alias_list = [
        x for x in uas
        if x.type == config.OPENID_TYPE_DICT[config.OPENID_WORDPRESS]
    ]

    step = "1"
    random_id = mc.get("wordpress_bind:%s" % g.user.id)
    c = random_id and Confirmation.get_by_random_id(random_id)
    if c:
        _, feed_uri = c.text.split(":", 1)
        step = "2"
    else:
        feed_uri = ""

    if request.method == "GET":
        return render_template("v2/bind_wordpress.html",
                               consts=consts,
                               **locals())

    elif request.method == "POST":
        ret = {}
        ret['ok'] = False
        if step == '1':
            feed_uri = request.form.get("feed_uri")
            if not feed_uri:
                ret['msg'] = 'feed地址不能为空'
            elif not (feed_uri.startswith("http://")
                      or feed_uri.startswith("https://")):
                ret['msg'] = 'feed地址貌似不对'
            else:
                ua = UserAlias.get(
                    config.OPENID_TYPE_DICT[config.OPENID_WORDPRESS], feed_uri)
                if ua:
                    ret['msg'] = '该feed地址已被绑定'
                else:
                    ##设置一个激活码
                    code = randbytes(16)
                    val = "%s:%s" % (g.user.id, feed_uri)
                    r = Confirmation.add(code, val)
                    if r:
                        ret['ok'] = True
                        ret['msg'] = '为了验证blog的主人^^,请发一篇blog,内容为 %s,完成该步骤后,请点下一步完成绑定' \
                                % code
                        mc.set("wordpress_bind:%s" % g.user.id, code)
                    else:
                        ret['msg'] = '抱歉,出错了,请重试, 或者给管理员捎个话:[email protected]'
            return json_encode(ret)
        elif step == '2':
            if not (random_id and c):
                ret['msg'] = '出错了,激活码不对^^'
            else:
                text = c.text
                user_id, feed_uri = text.split(":", 1)
                ## 同步一下,看看验证码的文章是否正确
                client = Wordpress(feed_uri)
                rs = client.get_feeds(refresh=True)
                if not rs:
                    ret['msg'] = '没有发现含有验证码的文章,请检查后再提交验证'
                else:
                    latest_post = rs[0]
                    if not latest_post:
                        ret['msg'] = "你的feed地址可能无法访问,请检查下"
                    else:
                        content = latest_post.get_content(
                        ) or latest_post.get_summary()
                        if content and content.encode("utf8")[:100].find(
                                str(random_id)) != -1:
                            ua = UserAlias.bind_to_exists_user(
                                g.user, config.OPENID_TYPE_DICT[
                                    config.OPENID_WORDPRESS], feed_uri)
                            if not ua:
                                ret['msg'] = '出错了,麻烦你重试一下吧^^'
                            else:
                                ##添加同步任务
                                t = SyncTask.add(config.CATE_WORDPRESS_POST,
                                                 g.user.id)
                                t and TaskQueue.add(t.id, t.kind)
                                ##删除confiration记录
                                c.delete()
                                mc.delete("wordpress_bind:%s" % g.user.id)

                                ret['ok'] = True
                                ret['msg'] = '恭喜,绑定成功啦'
                        else:
                            ret['msg'] = "没有发现含有验证码的文章,请检查后再提交验证"
            return json_encode(ret)
    else:
        return "method not allowed"
Пример #17
0
 def _clear_cache(self):
     mc.delete("user_token:%s" % self.id)
     mc.delete("user_token:%s" % self.token)
     mc.delete("user_token_ids:%s" % self.user_id)
Пример #18
0
 def _clear_cache(cls, user_id=None):
     if user_id:
         mc.delete("pdf_settings:u%s" % user_id)
     mc.delete("pdf_settings:all_uids")
Пример #19
0
 def _clear_cache(cls, user_id):
     if user_id:
         mc.delete("user:%s" % user_id)
     mc.delete("user:ids")
Пример #20
0
 def clear_cache(cls, key_):
     mc.delete("mc_kv:%s" %key_)
Пример #21
0
 def _clear_cache(cls, user_id, note_id):
     if user_id:
         mc.delete("note_ids:%s" % user_id)
         mc.delete("note_ids_asc:%s" % user_id)
     if note_id:
         mc.delete("note:%s" % note_id)
Пример #22
0
def bind_wordpress():
    if not g.user:
        flash(u"请先使用豆瓣、微博、QQ、Twitter任意一个帐号登录后,再来做绑定blog的操作^^", "tip")
        return redirect("/home")

    intros = [g.user.get_thirdparty_profile(x).get("intro") for x in config.OPENID_TYPE_DICT.values()]
    intros = filter(None, intros)

    uas = g.user.get_alias()
    wordpress_alias_list = [x for x in uas if x.type == config.OPENID_TYPE_DICT[config.OPENID_WORDPRESS]]

    step = "1"
    random_id = mc.get("wordpress_bind:%s" % g.user.id)
    c = random_id and Confirmation.get_by_random_id(random_id)
    if c:
        _, feed_uri = c.text.split(":", 1)
        step = "2"
    else:
        feed_uri = ""
    

    if request.method == "GET":
        return render_template("bind_wordpress.html", consts=consts, **locals())
    
    elif request.method == "POST":
        ret = {}
        ret['ok'] = False
        if step == '1':
            feed_uri = request.form.get("feed_uri")
            if not feed_uri:
                ret['msg'] = 'feed地址不能为空'
            elif not (feed_uri.startswith("http://") or feed_uri.startswith("https://")):
                ret['msg'] = 'feed地址貌似不对'
            else:
                ua = UserAlias.get(config.OPENID_TYPE_DICT[config.OPENID_WORDPRESS], feed_uri)
                if ua:
                    ret['msg'] = '该feed地址已被绑定'
                else:
                    ##设置一个激活码
                    code = randbytes(16)
                    val = "%s:%s" % (g.user.id, feed_uri)
                    r = Confirmation.add(code, val)
                    if r:
                        ret['ok'] = True
                        ret['msg'] = '为了验证blog的主人^^,请发一篇blog,内容为 %s,完成该步骤后,请点下一步完成绑定' \
                                % code
                        mc.set("wordpress_bind:%s" %g.user.id, code)
                    else:
                        ret['msg'] = '抱歉,出错了,请重试, 或者给管理员捎个话:[email protected]'
            return json_encode(ret)
        elif step == '2':
            if not (random_id and c):
                ret['msg'] = '出错了,激活码不对^^'
            else:
                text = c.text
                user_id, feed_uri = text.split(":", 1)
                ## 同步一下,看看验证码的文章是否正确
                client = Wordpress(feed_uri)
                rs = client.get_feeds(refresh=True)
                if not rs:
                    ret['msg'] = '没有发现含有验证码的文章,请检查后再提交验证'
                else:
                    latest_post = rs[0]
                    if not latest_post:
                        ret['msg'] = "你的feed地址可能无法访问,请检查下"
                    else:
                        content = latest_post.get_content() or latest_post.get_summary()
                        if content and content.encode("utf8")[:100].find(str(random_id)) != -1:
                            ua = UserAlias.bind_to_exists_user(g.user, 
                                    config.OPENID_TYPE_DICT[config.OPENID_WORDPRESS], feed_uri)
                            if not ua:
                                ret['msg'] = '出错了,麻烦你重试一下吧^^'
                            else:
                                ##添加同步任务
                                t = SyncTask.add(config.CATE_WORDPRESS_POST, g.user.id)
                                t and TaskQueue.add(t.id, t.kind)
                                ##删除confiration记录
                                c.delete()
                                mc.delete("wordpress_bind:%s" %g.user.id)

                                ret['ok'] = True
                                ret['msg'] = '恭喜,绑定成功啦'
                        else:
                            ret['msg'] = "没有发现含有验证码的文章,请检查后再提交验证"
            return json_encode(ret)
    else:
        return "method not allowed"
Пример #23
0
 def _(*a, **kw):
     key, args = gen_key(*a, **kw)
     r = f(*a, **kw)
     mc.delete(key)
     return r