class Reply(db.Model): id = db.Column(db.Integer, primary_key=True) topic_id = db.Column(db.Integer, db.ForeignKey('topic.id')) author_id = db.Column(db.Integer, db.ForeignKey('user.id')) notify = db.relationship('Notify', backref='reply', lazy='dynamic') text = db.Column(db.Text) text_origin = db.Column(db.Text) bills = db.relationship('Bill', backref='reply', uselist=False, lazy='dynamic') date = db.Column(db.Integer) number = db.Column(db.Integer) type = db.Column(db.Integer) def __init__(self, topic, author, text, text_origin, number=1, type=0): self.topic = topic self.author = author self.text = text self.text_origin = text_origin self.date = int(time.time()) self.number = number self.type = type def __repr__(self): return '<Reply %r>' % self.text
class User(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50), unique=True) email = db.Column(db.String(120), unique=True) password = db.Column(db.String(120)) time = db.Column(db.Integer) timeswitch = db.Column(db.Integer) topswitch = db.Column(db.Integer) emailswitch = db.Column(db.Integer) timetop = db.Column(db.Integer) usercenter = db.Column(db.String(50), unique=True) status = db.Column(db.Integer) steam_id = db.Column(db.Integer) description = db.Column(db.Text) website = db.Column(db.Text) date = db.Column(db.Integer) tab_id = db.Column(db.Integer) topics = db.relationship('Topic', backref='author', lazy='dynamic') replys = db.relationship('Reply', backref='author', lazy='dynamic') bills = db.relationship('Bill', backref='author', lazy='dynamic') notifications = db.relationship('Notify', backref='author', lazy='dynamic') favorites = db.relationship('Topic', secondary=favorites, backref=db.backref('followers', lazy='dynamic')) votes = db.relationship('Topic', secondary=votes, backref=db.backref('voters', lazy='dynamic')) thanks = db.relationship('Reply', secondary=thanks, backref=db.backref('thankers', lazy='dynamic')) city_id = db.Column(db.Integer, db.ForeignKey('city.id')) reads = db.relationship('Topic', secondary=reads, backref=db.backref('readers', lazy='dynamic')) def __init__(self, name, email, password, time, date): self.name = name self.email = email self.password = password self.time = time self.timeswitch = 1 self.timetop = 1 self.topswitch = 1 self.emailswitch = 1 self.usercenter = name self.status = 1 self.steam_id = 1 self.description = u'' self.website = u'' self.date = date self.tab_id = -1 def get_gravatar_url(self, size=80): return 'http://www.gravatar.com/avatar/%s?d=identicon&s=%d' % \ (md5(self.email.strip().lower().encode('utf-8')).hexdigest(), size) def __repr__(self): return '<User %r>' % (self.name)
class Nodeclass(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50), unique=True) description = db.Column(db.Text) nodes = db.relationship('Node', backref='nodeclass', lazy='dynamic') topics = db.relationship('Topic', backref='nodeclass', lazy='dynamic') status = db.Column(db.Integer) def __init__(self, name): self.name = name self.description = u'' self.status = 1 def __repr__(self): return '<Nodeclass %r>' % self.name
class Topic(db.Model): id = db.Column(db.Integer, primary_key=True) author_id = db.Column(db.Integer, db.ForeignKey('user.id')) notify = db.relationship('Notify', backref='topic', lazy='dynamic', uselist=False) title = db.Column(db.String(80)) text = db.Column(db.Text) text_origin = db.Column(db.Text) replys = db.relationship('Reply', backref='topic', lazy='dynamic') bills = db.relationship('Bill', backref='topic', uselist=False, lazy='dynamic') node_id = db.Column(db.Integer, db.ForeignKey('node.id')) nodeclass_id = db.Column(db.Integer, db.ForeignKey('nodeclass.id')) vote = db.Column(db.Integer) report = db.Column(db.Integer) date = db.Column(db.Integer) last_reply_date = db.Column(db.Integer) reply_count = db.Column(db.Integer) def __init__(self, author, title, text, text_origin, node, reply_count, report=0): self.author = author self.title = title self.text = text self.text_origin = text_origin self.node = node self.nodeclass = node.nodeclass self.vote = 0 self.report = report self.date = int(time.time()) self.last_reply_date = int(time.time()) self.reply_count = reply_count def get_reply_count(self): return len(self.replys.all()) if self.replys else 0 def __repr__(self): return '<Topic %r>' % self.title
class Node(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50), unique=True) site = db.Column(db.String(50), unique=True) description = db.Column(db.Text) header = db.Column(db.Text) description_origin = db.Column(db.Text) header_origin = db.Column(db.Text) nodeclass_id = db.Column(db.Integer, db.ForeignKey('nodeclass.id')) topics = db.relationship('Topic', backref='node', lazy='dynamic') status = db.Column(db.Integer) date = db.Column(db.Integer) style = db.Column(db.Text) def __init__(self, name, site, description, description_origin, nodeclass, style=None): self.name = name self.site = site self.description = description self.description_origin = description_origin self.header = u'' self.header_origin = u'' self.status = 1 self.date = int(time.time()) self.nodeclass = nodeclass def __repr__(self): return '<Node %r>' % self.name
class City(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50), unique=True) site = db.Column(db.String(50), unique=True) description = db.Column(db.Text) users = db.relationship('User', backref='city', lazy='dynamic') def __init__(self, name): self.name = name self.site = name self.description = u'' def __repr__(self): return '<City %r>' % (self.name)