X-Git-Url: https://vcs.fsf.org/?p=rainbowstream.git;a=blobdiff_plain;f=rainbowstream%2Fdb.py;h=fabc3a4c26bcee11f65cbc4fcd4211b7079fccaf;hp=d81f5ae192d3e995cbe84e5a2f4fc9dcae2ec1ac;hb=833204994b972f905a249985d0a914b1f051f606;hpb=18cab06ae81a383f8eaf3117d3377c0424b86782 diff --git a/rainbowstream/db.py b/rainbowstream/db.py index d81f5ae..fabc3a4 100644 --- a/rainbowstream/db.py +++ b/rainbowstream/db.py @@ -1,30 +1,70 @@ +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) + m = Tweet(tweet_id) session.add(m) session.commit() - def rainbow_query(self, rid): + def rainbow_to_tweet_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(Tweet).filter_by(rainbow_id=rid).all() return res - def tweet_query(self, tid): + def tweet_to_rainbow_query(self, tid): + """ + Query base of tweet id + """ Session = sessionmaker(bind=self.engine) session = Session() - res = session.query(Map).filter("tweet_id =:tid").params(tid=tid).all() + 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_to_message_query(self, rid): + """ + Query base of rainbow id + """ + Session = sessionmaker(bind=self.engine) + session = Session() + res = session.query(Message).filter_by(rainbow_id=rid).all() + return res + + 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