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