def add(cls, name=None, uid=None, session_id=None): cursor = None user = None name = "" if name is None else name uid = "" if uid is None else uid session_id = session_id if session_id else randbytes(8) try: cursor = db_conn.execute( """insert into user (uid, name, session_id) values (%s, %s, %s)""", (uid, name, session_id)) user_id = cursor.lastrowid if uid == "": cursor = db_conn.execute( """update user set uid=%s where id=%s""", (user_id, user_id), cursor=cursor) db_conn.commit() cls._clear_cache(None) user = cls.get(user_id) except IntegrityError: db_conn.rollback() finally: cursor and cursor.close() return user
def add(cls, user_id, origin_id, create_time, site, category, title, text=None, raw=None): status = None cursor = None try: cursor = db_conn.execute( """insert into status (user_id, origin_id, create_time, site, category, title) values (%s,%s,%s,%s,%s,%s)""", (user_id, origin_id, create_time, site, category, title), ) db_conn.commit() status_id = cursor.lastrowid if text is not None: mongo_conn.set(cls.STATUS_REDIS_KEY % status_id, json_encode(text)) if raw is not None: mongo_conn.set(cls.RAW_STATUS_REDIS_KEY % status_id, raw) cls._clear_cache(user_id, None, cate=category) status = cls.get(status_id) except IntegrityError: # log.warning("add status duplicated, ignore...") db_conn.rollback() finally: cursor and cursor.close() return status
def update_uid(self, uid): assert isinstance(uid, basestring) if self.id != self.uid: return False, "already_set" if uid == self.uid: return True, "same_with_old" if len(uid) > User.UID_MAX_LEN: return False, u"太长了,不能超过%s" %User.UID_MAX_LEN if len(uid) < User.UID_MIN_LEN: return False, u"太短了,不能小于%s" %User.UID_MIN_LEN uid_re = re.compile(User.UID_RE) if not uid_re.match(uid): return False, u"只能包括字母数字和.-_" uid = uid.lower() if uid in ["user", "pdf", "explore", "home", "visual", "settings", "admin", "past", "connect", "bind", "i", "notes", "note", "status", "share", "timeline", "post", "login", "logout", "sync", "about", "connect", "dev", "api", "thepast", "thepast.me", ]: return False, u"被系统占用了:)" try: cursor = db_conn.execute("""update user set uid=%s where id=%s""", (uid, self.id)) db_conn.commit() User._clear_cache(self.id) return True, u"设置成功" except IntegrityError: db_conn.rollback() return False, u"被别人占用了:)" finally: cursor and cursor.close() return False, "fail"
def add(cls, user_id, origin_id, create_time, site, category, title, text=None, raw=None): status = None cursor = None try: cursor = db_conn.execute( """insert into status (user_id, origin_id, create_time, site, category, title) values (%s,%s,%s,%s,%s,%s)""", (user_id, origin_id, create_time, site, category, title)) status_id = cursor.lastrowid if status_id > 0: text = json_encode(text) if text is not None else "" raw = json_encode(raw) if raw is not None else "" RawStatus.set(status_id, text, raw) db_conn.commit() status = cls.get(status_id) except IntegrityError: log.warning( "add status duplicated, uniq key is %s:%s:%s, ignore..." % (origin_id, site, category)) db_conn.rollback() finally: cls._clear_cache(user_id, None, cate=category) cursor and cursor.close() return status
def update_uid(self, uid): assert isinstance(uid, basestring) if self.id != self.uid: return False, "already_set" if uid == self.uid: return True, "same_with_old" if len(uid) > User.UID_MAX_LEN: return False, u"太长了,不能超过%s" % User.UID_MAX_LEN if len(uid) < User.UID_MIN_LEN: return False, u"太短了,不能小于%s" % User.UID_MIN_LEN uid_re = re.compile(User.UID_RE) if not uid_re.match(uid): return False, u"只能包括字母数字和.-_" uid = uid.lower() if uid in [ "user", "pdf", "explore", "home", "visual", "settings", "admin", "past", "connect", "bind", "i", "notes", "note", "status", "share", "timeline", "post", "login", "logout", "sync", "about", "connect", "dev", "api", "thepast", "thepast.me", ]: return False, u"被系统占用了:)" try: cursor = db_conn.execute("""update user set uid=%s where id=%s""", (uid, self.id)) db_conn.commit() User._clear_cache(self.id) return True, u"设置成功" except IntegrityError: db_conn.rollback() return False, u"被别人占用了:)" finally: cursor and cursor.close() return False, "fail"
def add(cls, name=None, uid=None, session_id=None): cursor = None user = None name = "" if name is None else name uid = "" if uid is None else uid session_id = session_id if session_id else randbytes(8) try: cursor = db_conn.execute("""insert into user (uid, name, session_id) values (%s, %s, %s)""", (uid, name, session_id)) user_id = cursor.lastrowid if uid == "": cursor = db_conn.execute("""update user set uid=%s where id=%s""", (user_id, user_id), cursor=cursor) db_conn.commit() cls._clear_cache(None) user = cls.get(user_id) except IntegrityError: db_conn.rollback() finally: cursor and cursor.close() return user
def remove(cls, key_): cursor = None try: cursor = db_conn.execute('''delete from kv where `key` = %s''', key_) db_conn.commit() cls.clear_cache(key_) except IntegrityError: db_conn.rollback() cursor and cursor.close()
def remove(cls, status_id): cursor = None try: cursor = db_conn.execute('''delete from raw_status where status_id = %s''', status_id ) db_conn.commit() cls.clear_cache(status_id) except IntegrityError: db_conn.rollback() cursor and cursor.close()
def remove(cls, user_id): cursor = None try: cursor = db_conn.execute('''delete from user_profile where user_id= %s''', user_id) db_conn.commit() cls.clear_cache(user_id) except IntegrityError: db_conn.rollback() cursor and cursor.close()
def add(cls, random_id, text): cursor = None try: cursor = db_conn.execute("""insert into confirmation (random_id, text) values(%s, %s)""", (random_id, text)) db_conn.commit() return True except IntegrityError: db_conn.rollback() finally: cursor and cursor.close()
def add_user_id(cls, user_id): cursor = None try: cursor = db_conn.execute('''insert into pdf_settings (user_id) values (%s)''', user_id) db_conn.commit() cls._clear_cache(user_id) return True except IntegrityError: db_conn.rollback() finally: cursor and cursor.close()
def add(cls, random_id, text): cursor = None try: cursor = db_conn.execute( '''insert into confirmation (random_id, text) values(%s, %s)''', (random_id, text)) db_conn.commit() return True except IntegrityError: db_conn.rollback() finally: cursor and cursor.close()
def add_user_id(cls, user_id): cursor = None try: cursor = db_conn.execute( '''insert into pdf_settings (user_id) values (%s)''', user_id) db_conn.commit() cls._clear_cache(user_id) return True except IntegrityError: db_conn.rollback() finally: cursor and cursor.close()
def add(cls, user_id, weixin_name): cursor = None try: cursor = db_conn.execute('''insert into user_weixin (user_id, weixin_name) values (%s, %s) on duplicate key update user_id=%s''', (user_id, weixin_name, user_id)) db_conn.commit() cls.clear_cache(user_id, weixin_name) return cls.get_by_weixin(weixin_name) except IntegrityError: db_conn.rollback() finally: cursor and cursor.close()
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()
def set(cls, user_id, val): cursor = None val = json_encode(val) if not isinstance(val, basestring) else val try: cursor = db_conn.execute('''replace into user_profile (user_id, profile) values(%s,%s)''', (user_id, val)) db_conn.commit() cls.clear_cache(user_id) except IntegrityError: db_conn.rollback() cursor and cursor.close()
def add(cls, user_id, token, device=""): cursor = None try: cursor = db_conn.execute( '''insert into user_tokens (user_id, token, device) values (%s, %s, %s)''', (user_id, token, device)) id_ = cursor.lastrowid db_conn.commit() return cls.get(id_) except IntegrityError: db_conn.rollback() finally: cursor and cursor.close()
def set(cls, status_id, text, raw): cursor = None text = json_encode(text) if not isinstance(text, basestring) else text raw = json_encode(raw) if not isinstance(raw, basestring) else raw try: cursor = db_conn.execute('''replace into raw_status (status_id, text, raw) values(%s,%s,%s)''', (status_id, text, raw)) db_conn.commit() cls.clear_cache(status_id) except IntegrityError: db_conn.rollback() cursor and cursor.close()
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()
def add(cls, task_id, task_kind): task = None cursor = None try: cursor = db_conn.execute("""insert into task_queue (task_id, task_kind) values (%s,%s)""", (task_id, task_kind)) db_conn.commit() task = cls.get(cursor.lastrowid) except IntegrityError: db_conn.rollback() finally: cursor and cursor.close() return task
def add(cls, user_id, token, device=""): cursor = None try: cursor = db_conn.execute( """insert into user_tokens (user_id, token, device) values (%s, %s, %s)""", (user_id, token, device), ) id_ = cursor.lastrowid db_conn.commit() return cls.get(id_) except IntegrityError: db_conn.rollback() finally: cursor and cursor.close()
def add(cls, category, user_id): task = None cursor = None try: cursor = db_conn.execute("""insert into sync_task (category, user_id) values (%s,%s)""", (category, user_id)) db_conn.commit() task_id = cursor.lastrowid task = cls.get(task_id) except IntegrityError: db_conn.rollback() finally: cursor and cursor.close() return task
def add(cls, alias_id, access_token, refresh_token): ot = None cursor = None try: cursor = db_conn.execute("""replace into oauth2_token (alias_id, access_token, refresh_token) values (%s, %s, %s)""", (alias_id, access_token, refresh_token)) db_conn.commit() ot = cls.get(alias_id) except IntegrityError: db_conn.rollback() finally: cursor and cursor.close() return ot
def add(cls, alias_id, access_token, refresh_token): ot = None cursor = None try: cursor = db_conn.execute( """replace into oauth2_token (alias_id, access_token, refresh_token) values (%s, %s, %s)""", (alias_id, access_token, refresh_token)) db_conn.commit() ot = cls.get(alias_id) except IntegrityError: db_conn.rollback() finally: cursor and cursor.close() return ot
def bind_to_exists_user(cls, user, type_, alias): ua = cls.get(type_, alias) if ua: return None ua = None cursor = None try: cursor = db_conn.execute("""insert into user_alias (`type`,alias,user_id) values (%s, %s, %s)""", (type_, alias, user.id)) db_conn.commit() ua = cls.get(type_, alias) except IntegrityError: db_conn.rollback() finally: cursor and cursor.close() return ua
def bind_to_exists_user(cls, user, type_, alias): ua = cls.get(type_, alias) if ua: return None ua = None cursor = None try: cursor = db_conn.execute( """insert into user_alias (`type`,alias,user_id) values (%s, %s, %s)""", (type_, alias, user.id)) db_conn.commit() ua = cls.get(type_, alias) except IntegrityError: db_conn.rollback() finally: cursor and cursor.close() return ua
def add(cls, user_id, origin_id, create_time, site, category, title, text=None, raw=None): status = None cursor = None try: cursor = db_conn.execute("""insert into status (user_id, origin_id, create_time, site, category, title) values (%s,%s,%s,%s,%s,%s)""", (user_id, origin_id, create_time, site, category, title)) status_id = cursor.lastrowid try: if text is not None: mongo_conn.set(cls.STATUS_REDIS_KEY %status_id, json_encode(text)) if raw is not None: mongo_conn.set(cls.RAW_STATUS_REDIS_KEY %status_id, raw) except Exception, e: log.warning('ERROR_MONGODB:%s' % e) db_conn.rollback() else:
def add(cls, user_id, title, content, fmt=consts.NOTE_FMT_PLAIN, privacy=consts.STATUS_PRIVACY_PUBLIC): cursor = None try: cursor = db_conn.execute('''insert into note (user_id, title, content, create_time, fmt, privacy) values (%s, %s, %s, %s, %s, %s)''', (user_id, title, content, datetime.datetime.now(), fmt, privacy)) db_conn.commit() note_id = cursor.lastrowid note = cls.get(note_id) from past.model.status import Status Status.add(user_id, note_id, note.create_time, config.OPENID_TYPE_DICT[config.OPENID_THEPAST], config.CATE_THEPAST_NOTE, "") cls._clear_cache(user_id, None) return note except IntegrityError: db_conn.rollback() finally: cursor and cursor.close()
def add(cls, user_id, origin_id, create_time, site, category, title, text=None, raw=None): status = None cursor = None try: cursor = db_conn.execute("""insert into status (user_id, origin_id, create_time, site, category, title) values (%s,%s,%s,%s,%s,%s)""", (user_id, origin_id, create_time, site, category, title)) status_id = cursor.lastrowid if status_id > 0: text = json_encode(text) if text is not None else "" raw = json_encode(raw) if raw is not None else "" RawStatus.set(status_id, text, raw) db_conn.commit() status = cls.get(status_id) except IntegrityError: #log.warning("add status duplicated, ignore...") db_conn.rollback() finally: cls._clear_cache(user_id, None, cate=category) cursor and cursor.close() return status
(user_id, origin_id, create_time, site, category, title)) status_id = cursor.lastrowid try: if text is not None: mongo_conn.set(cls.STATUS_REDIS_KEY %status_id, json_encode(text)) if raw is not None: mongo_conn.set(cls.RAW_STATUS_REDIS_KEY %status_id, raw) except Exception, e: log.warning('ERROR_MONGODB:%s' % e) db_conn.rollback() else: db_conn.commit() status = cls.get(status_id) except IntegrityError: #log.warning("add status duplicated, ignore...") db_conn.rollback() finally: cls._clear_cache(user_id, None, cate=category) cursor and cursor.close() return status @classmethod def add_from_obj(cls, user_id, d, raw=None): origin_id = d.get_origin_id() create_time = d.get_create_time() title = d.get_title() content = d.get_content() site = d.site category = d.category