1 from sqlalchemy import Boolean, Table, Column, BigInteger, Integer, String, \ |
1 from sqlalchemy import (Boolean, Column, BigInteger, Integer, String, ForeignKey, |
2 MetaData, ForeignKey, DateTime, create_engine |
2 DateTime, create_engine) |
3 from sqlalchemy.ext.declarative import declarative_base |
3 from sqlalchemy.ext.declarative import declarative_base |
4 from sqlalchemy.orm import relationship, backref |
4 from sqlalchemy.orm import relationship |
|
5 import anyjson |
5 import datetime |
6 import datetime |
6 import email.utils |
7 import email.utils |
7 import anyjson |
|
8 |
8 |
9 |
9 |
10 Base = declarative_base() |
10 Base = declarative_base() |
11 |
11 |
12 APPLICATION_NAME = "IRI_TWITTER" |
12 APPLICATION_NAME = "IRI_TWITTER" |
13 CONSUMER_KEY = "54ThDZhpEjokcMgHJOMnQA" |
13 CONSUMER_KEY = "54ThDZhpEjokcMgHJOMnQA" |
14 CONSUMER_SECRET = "wUoL9UL2T87tfc97R0Dff2EaqRzpJ5XGdmaN2XK3udA" |
14 CONSUMER_SECRET = "wUoL9UL2T87tfc97R0Dff2EaqRzpJ5XGdmaN2XK3udA" |
|
15 ACCESS_TOKEN_KEY = None |
|
16 ACCESS_TOKEN_SECRET = None |
15 #ACCESS_TOKEN_KEY= "47312923-LiNTtz0I18YXMVIrFeTuhmH7bOvYsK6p3Ln2Dc" |
17 #ACCESS_TOKEN_KEY= "47312923-LiNTtz0I18YXMVIrFeTuhmH7bOvYsK6p3Ln2Dc" |
16 #ACCESS_TOKEN_SECRET = "r3LoXVcjImNAElUpWqTu2SG2xCdWFHkva7xeQoncA" |
18 #ACCESS_TOKEN_SECRET = "r3LoXVcjImNAElUpWqTu2SG2xCdWFHkva7xeQoncA" |
17 |
19 |
18 def adapt_date(date_str): |
20 def adapt_date(date_str): |
19 ts = email.utils.parsedate_tz(date_str) |
21 ts = email.utils.parsedate_tz(date_str) #@UndefinedVariable |
20 return datetime.datetime(*ts[0:7]) |
22 return datetime.datetime(*ts[0:7]) |
21 |
23 |
22 def adapt_json(obj): |
24 def adapt_json(obj): |
23 if obj is None: |
25 if obj is None: |
24 return None |
26 return None |
70 |
72 |
71 def __init__(self, **kwargs): |
73 def __init__(self, **kwargs): |
72 for key, value in kwargs.items(): |
74 for key, value in kwargs.items(): |
73 if hasattr(self,key): |
75 if hasattr(self,key): |
74 setattr(self,key,value) |
76 setattr(self,key,value) |
75 |
77 |
|
78 class UserMessage(Base): |
|
79 __tablename__ = "tweet_user_message" |
|
80 |
|
81 id = Column(Integer, primary_key = True) |
|
82 user_id = Column(Integer, ForeignKey('tweet_user.id')) |
|
83 created_at = Column(DateTime, default=datetime.datetime.now()) |
|
84 message_id = Column(Integer, ForeignKey('tweet_message.id')) |
|
85 |
|
86 class Message(Base): |
|
87 |
|
88 __tablename__ = "tweet_message" |
|
89 |
|
90 id = Column(Integer, primary_key = True) |
|
91 created_at = Column(DateTime, default=datetime.datetime.now()) |
|
92 text = Column(String) |
|
93 users = relationship(UserMessage, backref='message') |
|
94 |
76 |
95 |
77 class User(Base): |
96 class User(Base): |
78 __tablename__ = "tweet_user" |
97 __tablename__ = "tweet_user" |
79 |
98 |
80 id = Column(Integer, primary_key = True, autoincrement=False) |
99 id = Column(Integer, primary_key = True, autoincrement=False) |
110 time_zone= Column(String) |
129 time_zone= Column(String) |
111 url= Column(String) |
130 url= Column(String) |
112 utc_offset = Column(Integer) |
131 utc_offset = Column(Integer) |
113 verified= Column(Boolean) |
132 verified= Column(Boolean) |
114 tweets = relationship(Tweet, backref='user') |
133 tweets = relationship(Tweet, backref='user') |
115 |
134 messages = relationship(UserMessage, backref='user') |
116 def __init__(self, **kwargs): |
135 |
117 for key, value in kwargs.items(): |
136 def __init__(self, **kwargs): |
118 if hasattr(self,key): |
137 for key, value in kwargs.items(): |
119 setattr(self,key,value) |
138 if hasattr(self,key): |
120 |
139 setattr(self,key,value) |
121 |
140 |
122 |
141 |
123 class Hashtag(Base): |
142 class Hashtag(Base): |
124 __tablename__ = "tweet_hashtag" |
143 __tablename__ = "tweet_hashtag" |
125 id = Column(Integer, primary_key=True) |
144 id = Column(Integer, primary_key=True) |