X-Git-Url: https://vcs.fsf.org/?p=rainbowstream.git;a=blobdiff_plain;f=rainbowstream%2Fdb.py;h=5bfb04081c715ad1b8f2690b1527a42987e9222a;hp=d81f5ae192d3e995cbe84e5a2f4fc9dcae2ec1ac;hb=e3dd260211d9d10a4f102a5d64b2adee2379d0e7;hpb=18cab06ae81a383f8eaf3117d3377c0424b86782 diff --git a/rainbowstream/db.py b/rainbowstream/db.py index d81f5ae..5bfb040 100644 --- a/rainbowstream/db.py +++ b/rainbowstream/db.py @@ -1,30 +1,100 @@ +import os from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker -from table_def import Map +from .table_def import * class RainbowDB(): - engine=None + engine = None def __init__(self): + if not os.path.isfile('rainbow.db'): + init_db() self.engine = create_engine('sqlite:///rainbow.db', echo=False) - def store(self, tweet_id): + def tweet_store(self, tweet_id): + """ + Store tweet id + """ Session = sessionmaker(bind=self.engine) session = Session() - m = Map(tweet_id) + t = Tweet(tweet_id) + session.add(t) + session.commit() + + def rainbow_to_tweet_query(self, rid): + """ + Query base of rainbow id + """ + Session = sessionmaker(bind=self.engine) + session = Session() + res = session.query(Tweet).filter_by(rainbow_id=rid).all() + return res + + def tweet_to_rainbow_query(self, tid): + """ + Query base of tweet id + """ + Session = sessionmaker(bind=self.engine) + session = Session() + res = session.query(Tweet).filter_by(tweet_id=tid).all() + return res + + def message_store(self, message_id): + """ + Store message id + """ + Session = sessionmaker(bind=self.engine) + session = Session() + m = Message(message_id) session.add(m) session.commit() - def rainbow_query(self, rid): + def rainbow_to_message_query(self, rid): + """ + Query base of rainbow id + """ Session = sessionmaker(bind=self.engine) session = Session() - res = session.query(Map).filter("rainbow_id =:rid").params(rid=rid).all() + res = session.query(Message).filter_by(rainbow_id=rid).all() return res - def tweet_query(self, tid): + def message_to_rainbow_query(self, mid): + """ + Query base of message id + """ + Session = sessionmaker(bind=self.engine) + session = Session() + res = session.query(Message).filter_by(message_id=mid).all() + return res + + def theme_store(self, theme_name): + """ + Store theme + """ + Session = sessionmaker(bind=self.engine) + session = Session() + th = Theme(theme_name) + session.add(th) + session.commit() + + def theme_update(self, theme_name): + """ + Update theme + """ + Session = sessionmaker(bind=self.engine) + session = Session() + res = session.query(Theme).all() + for r in res: + r.theme_name = theme_name + session.commit() + + def theme_query(self): + """ + Query theme + """ Session = sessionmaker(bind=self.engine) session = Session() - res = session.query(Map).filter("tweet_id =:tid").params(tid=tid).all() + res = session.query(Theme).all() return res