File size: 1,731 Bytes
c7dfe8b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
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()
|