Commit | Line | Data |
---|---|---|
eb9781ed | 1 | import os |
18cab06a O |
2 | from sqlalchemy import create_engine |
3 | from sqlalchemy.orm import sessionmaker | |
eb9781ed | 4 | from .table_def import * |
18cab06a | 5 | |
b2b933a9 | 6 | |
18cab06a O |
7 | class RainbowDB(): |
8 | ||
b2b933a9 | 9 | engine = None |
18cab06a O |
10 | |
11 | def __init__(self): | |
eb9781ed O |
12 | if not os.path.isfile('rainbow.db'): |
13 | init_db() | |
18cab06a O |
14 | self.engine = create_engine('sqlite:///rainbow.db', echo=False) |
15 | ||
305ce127 | 16 | def tweet_store(self, tweet_id): |
908d5012 | 17 | """ |
18 | Store tweet id | |
19 | """ | |
18cab06a O |
20 | Session = sessionmaker(bind=self.engine) |
21 | session = Session() | |
4cf86720 VNM |
22 | t = Tweet(tweet_id) |
23 | session.add(t) | |
18cab06a O |
24 | session.commit() |
25 | ||
305ce127 | 26 | def rainbow_to_tweet_query(self, rid): |
908d5012 | 27 | """ |
28 | Query base of rainbow id | |
29 | """ | |
18cab06a O |
30 | Session = sessionmaker(bind=self.engine) |
31 | session = Session() | |
305ce127 | 32 | res = session.query(Tweet).filter_by(rainbow_id=rid).all() |
18cab06a O |
33 | return res |
34 | ||
305ce127 | 35 | def tweet_to_rainbow_query(self, tid): |
908d5012 | 36 | """ |
37 | Query base of tweet id | |
38 | """ | |
18cab06a O |
39 | Session = sessionmaker(bind=self.engine) |
40 | session = Session() | |
305ce127 | 41 | res = session.query(Tweet).filter_by(tweet_id=tid).all() |
42 | return res | |
43 | ||
44 | def message_store(self, message_id): | |
45 | """ | |
46 | Store message id | |
47 | """ | |
48 | Session = sessionmaker(bind=self.engine) | |
49 | session = Session() | |
50 | m = Message(message_id) | |
51 | session.add(m) | |
52 | session.commit() | |
53 | ||
54 | def rainbow_to_message_query(self, rid): | |
55 | """ | |
56 | Query base of rainbow id | |
57 | """ | |
58 | Session = sessionmaker(bind=self.engine) | |
59 | session = Session() | |
60 | res = session.query(Message).filter_by(rainbow_id=rid).all() | |
61 | return res | |
62 | ||
63 | def message_to_rainbow_query(self, mid): | |
64 | """ | |
65 | Query base of message id | |
66 | """ | |
67 | Session = sessionmaker(bind=self.engine) | |
68 | session = Session() | |
69 | res = session.query(Message).filter_by(message_id=mid).all() | |
70 | return res | |
4cf86720 VNM |
71 | |
72 | def theme_store(self, theme_name): | |
73 | """ | |
74 | Store theme | |
75 | """ | |
76 | Session = sessionmaker(bind=self.engine) | |
77 | session = Session() | |
78 | th = Theme(theme_name) | |
79 | session.add(th) | |
80 | session.commit() | |
81 | ||
82 | def theme_update(self, theme_name): | |
83 | """ | |
84 | Update theme | |
85 | """ | |
86 | Session = sessionmaker(bind=self.engine) | |
87 | session = Session() | |
88 | res = session.query(Theme).all() | |
89 | for r in res: | |
90 | r.theme_name = theme_name | |
91 | session.commit() | |
92 | ||
93 | def theme_query(self): | |
94 | """ | |
95 | Query theme | |
96 | """ | |
97 | Session = sessionmaker(bind=self.engine) | |
98 | session = Session() | |
99 | res = session.query(Theme).all() | |
100 | return res | |
9683e61d O |
101 | |
102 | def semaphore_store(self, flag): | |
103 | """ | |
104 | Store semaphore flag | |
105 | """ | |
106 | Session = sessionmaker(bind=self.engine) | |
107 | session = Session() | |
108 | th = Semaphore(flag) | |
109 | session.add(th) | |
110 | session.commit() | |
111 | ||
112 | def semaphore_update(self, flag): | |
113 | """ | |
114 | Update semaphore flag | |
115 | """ | |
116 | Session = sessionmaker(bind=self.engine) | |
117 | session = Session() | |
118 | res = session.query(Semaphore).all() | |
119 | for r in res: | |
120 | r.flag = flag | |
121 | session.commit() | |
122 | ||
123 | def semaphore_query(self): | |
124 | """ | |
125 | Query semaphore | |
126 | """ | |
127 | Session = sessionmaker(bind=self.engine) | |
128 | session = Session() | |
129 | res = session.query(Semaphore).all() | |
130 | return res[0].flag |