flash / Database /sql /userinfo_sql.py
Karma
Add files via upload
c7dfe8b
raw
history blame
1.73 kB
import threading
from sqlalchemy import BigInteger, Column, UnicodeText
from Database.sql import BASE, SESSION
class UserInfo(BASE):
__tablename__ = "userinfo"
user_id = Column(BigInteger, primary_key=True)
info = Column(UnicodeText)
def __init__(self, user_id, info):
self.user_id = user_id
self.info = info
def __repr__(self):
return "<User info %d>" % self.user_id
class UserBio(BASE):
__tablename__ = "userbio"
user_id = Column(BigInteger, primary_key=True)
bio = Column(UnicodeText)
def __init__(self, user_id, bio):
self.user_id = user_id
self.bio = bio
def __repr__(self):
return "<User info %d>" % self.user_id
UserInfo.__table__.create(checkfirst=True)
UserBio.__table__.create(checkfirst=True)
INSERTION_LOCK = threading.RLock()
def get_user_me_info(user_id):
userinfo = SESSION.query(UserInfo).get(user_id)
SESSION.close()
if userinfo:
return userinfo.info
return None
def set_user_me_info(user_id, info):
with INSERTION_LOCK:
userinfo = SESSION.query(UserInfo).get(user_id)
if userinfo:
userinfo.info = info
else:
userinfo = UserInfo(user_id, info)
SESSION.add(userinfo)
SESSION.commit()
def get_user_bio(user_id):
userbio = SESSION.query(UserBio).get(user_id)
SESSION.close()
if userbio:
return userbio.bio
return None
def set_user_bio(user_id, bio):
with INSERTION_LOCK:
userbio = SESSION.query(UserBio).get(user_id)
if userbio:
userbio.bio = bio
else:
userbio = UserBio(user_id, bio)
SESSION.add(userbio)
SESSION.commit()