script/lib/iri_tweet/models.py
changeset 253 e9335ee3cf71
parent 250 6334869ab06d
parent 243 9213a63fa34a
child 254 2209e66bb50b
equal deleted inserted replaced
252:2ebf22c65168 253:e9335ee3cf71
    40     def __init__(self, **kwargs):
    40     def __init__(self, **kwargs):
    41         for key, value in kwargs.items():
    41         for key, value in kwargs.items():
    42             if hasattr(self,key):
    42             if hasattr(self,key):
    43                 setattr(self,key,value)
    43                 setattr(self,key,value)
    44 
    44 
    45 
    45 class TweetSource(Base):
       
    46     __tablename__ = 'tweet_tweet_source'
       
    47     id = Column(Integer, primary_key = True, autoincrement=True)
       
    48     original_json = Column(String)
       
    49     received_at = Column(DateTime, default=datetime.datetime.now())
       
    50     
       
    51     def __init__(self, **kwargs):
       
    52         for key, value in kwargs.items():
       
    53             if hasattr(self,key):
       
    54                 setattr(self,key,value)
       
    55 
       
    56 
       
    57 class TweetLog(Base):
       
    58     
       
    59     TWEET_STATUS = {
       
    60         'OK' : 1,
       
    61         'ERROR' : 2,
       
    62     }
       
    63     
       
    64     __tablename__ = 'tweet_tweet_log'
       
    65     id = Column(Integer, primary_key = True, autoincrement=True)
       
    66     tweet_source_id = Column(Integer, ForeignKey('tweet_tweet_source.id'))
       
    67     tweet_source = relationship("TweetSource", backref="logs")
       
    68     status = Column(Integer)
       
    69     error = Column(String)
       
    70     error_stack = Column(String)
       
    71  
       
    72     
    46 class Tweet(Base):
    73 class Tweet(Base):
    47     __tablename__ = 'tweet_tweet'
    74     __tablename__ = 'tweet_tweet'
    48 
    75 
    49     id = Column(BigInteger, primary_key=True, autoincrement=False)
    76     id = Column(BigInteger, primary_key=True, autoincrement=False)
    50     id_str = Column(String)
    77     id_str = Column(String)
    63     retweeted = Column(Boolean)
    90     retweeted = Column(Boolean)
    64     source = Column(String)
    91     source = Column(String)
    65     text = Column(String)
    92     text = Column(String)
    66     truncated = Column(Boolean)
    93     truncated = Column(Boolean)
    67     user_id = Column(Integer, ForeignKey('tweet_user.id'))
    94     user_id = Column(Integer, ForeignKey('tweet_user.id'))
    68     original_json = Column(String)
    95     user = relationship("User", backref="tweets")
       
    96     tweet_source_id = Column(Integer, ForeignKey('tweet_tweet_source.id'))
       
    97     tweet_source = relationship("TweetSource", backref="tweet")
    69     entity_list = relationship(Entity, backref='tweet')
    98     entity_list = relationship(Entity, backref='tweet')
    70     received_at = Column(DateTime, default=datetime.datetime.now())
    99     received_at = Column(DateTime, default=datetime.datetime.now())
    71     
   100         
    72     #user = relationship(User, primaryjoin=user_id == User.id)
       
    73     
       
    74     def __init__(self, **kwargs):
   101     def __init__(self, **kwargs):
    75         for key, value in kwargs.items():
   102         for key, value in kwargs.items():
    76             if hasattr(self,key):
   103             if hasattr(self,key):
    77                 setattr(self,key,value)
   104                 setattr(self,key,value)
    78 
   105 
    79 class UserMessage(Base):
   106 class UserMessage(Base):
    80     __tablename__ = "tweet_user_message"
   107     __tablename__ = "tweet_user_message"
    81 
   108 
    82     id = Column(Integer, primary_key = True)
   109     id = Column(Integer, primary_key = True)
    83     user_id = Column(Integer, ForeignKey('tweet_user.id'))
   110     user_id = Column(Integer, ForeignKey('tweet_user.id'))
       
   111     user = relationship("User", backref="messages")
    84     created_at = Column(DateTime, default=datetime.datetime.now())
   112     created_at = Column(DateTime, default=datetime.datetime.now())
    85     message_id = Column(Integer, ForeignKey('tweet_message.id'))
   113     message_id = Column(Integer, ForeignKey('tweet_message.id'))
    86 
   114 
    87 class Message(Base):
   115 class Message(Base):
    88     
       
    89     __tablename__ = "tweet_message"
   116     __tablename__ = "tweet_message"
    90     
   117     
    91     id = Column(Integer, primary_key = True)
   118     id = Column(Integer, primary_key = True)
    92     created_at = Column(DateTime, default=datetime.datetime.now())
   119     created_at = Column(DateTime, default=datetime.datetime.now())
    93     text = Column(String)
   120     text = Column(String)
   129     statuses_count = Column(Integer)
   156     statuses_count = Column(Integer)
   130     time_zone= Column(String)
   157     time_zone= Column(String)
   131     url= Column(String)
   158     url= Column(String)
   132     utc_offset = Column(Integer)
   159     utc_offset = Column(Integer)
   133     verified= Column(Boolean)
   160     verified= Column(Boolean)
   134     tweets = relationship(Tweet, backref='user')
       
   135     messages  = relationship(UserMessage, backref='user')
       
   136 
   161 
   137     def __init__(self, **kwargs):
   162     def __init__(self, **kwargs):
   138         for key, value in kwargs.items():
   163         for key, value in kwargs.items():
   139             if hasattr(self,key):
   164             if hasattr(self,key):
   140                 setattr(self,key,value)    
   165                 setattr(self,key,value)