script/lib/iri_tweet/models.py
changeset 98 6e8930a1b8f7
parent 18 bd595ad770fc
child 122 4c3a15877f80
equal deleted inserted replaced
97:861cae17abda 98:6e8930a1b8f7
     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)