diff -r 54d7f1486ac4 -r 4daf47fcf792 script/iri_tweet/models.py --- a/script/iri_tweet/models.py Tue Jan 18 10:08:03 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,314 +0,0 @@ -from sqlalchemy import Boolean, Table, Column, BigInteger, Integer, String, \ - MetaData, ForeignKey, DateTime, create_engine -from sqlalchemy.ext.declarative import declarative_base -from sqlalchemy.orm import relationship, backref -import datetime -import email.utils -import simplejson - - -Base = declarative_base() - -APPLICATION_NAME = "IRI_TWITTER" -CONSUMER_KEY = "54ThDZhpEjokcMgHJOMnQA" -CONSUMER_SECRET = "wUoL9UL2T87tfc97R0Dff2EaqRzpJ5XGdmaN2XK3udA" -#ACCESS_TOKEN_KEY= "47312923-LiNTtz0I18YXMVIrFeTuhmH7bOvYsK6p3Ln2Dc" -#ACCESS_TOKEN_SECRET = "r3LoXVcjImNAElUpWqTu2SG2xCdWFHkva7xeQoncA" - -def adapt_date(date_str): - ts = email.utils.parsedate_tz(date_str) - return datetime.datetime(*ts[0:7]) - -def adapt_json(obj): - if obj is None: - return None - else: - return simplejson.dumps(obj) - -class Entity(Base): - __tablename__ = "tweet_entity" - id = Column(Integer, primary_key = True) - tweet_id = Column(BigInteger, ForeignKey('tweet_tweet.id')) - #tweet = relationship(Tweet, primaryjoin = tweet_id == Tweet.id) - type = Column(String) - indice_start = Column(Integer) - indice_end = Column(Integer) - __mapper_args__ = {'polymorphic_on': type} - - def __init__(self, **kwargs): - for key, value in kwargs.items(): - if hasattr(self,key): - setattr(self,key,value) - - -class Tweet(Base): - __tablename__ = 'tweet_tweet' - - id = Column(BigInteger, primary_key=True, autoincrement=False) - id_str = Column(String) - contributors = Column(String) - coordinates = Column(String) - created_at = Column(DateTime) - favorited = Column(Boolean) - geo = Column(String) - in_reply_to_screen_name = Column(String) - in_reply_to_status_id = Column(BigInteger) - in_reply_to_status_id_str = Column(String) - in_reply_to_user_id = Column(Integer) - in_reply_to_user_id_str = Column(String) - place = Column(String) - retweet_count = Column(Integer) - retweeted = Column(Boolean) - source = Column(String) - text = Column(String) - truncated = Column(Boolean) - user_id = Column(Integer, ForeignKey('tweet_user.id')) - original_json = Column(String) - entity_list = relationship(Entity, backref='tweet') - - #user = relationship(User, primaryjoin=user_id == User.id) - - def __init__(self, **kwargs): - for key, value in kwargs.items(): - if hasattr(self,key): - setattr(self,key,value) - - -class User(Base): - __tablename__ = "tweet_user" - - id = Column(Integer, primary_key = True, autoincrement=False) - id_str= Column(String) - contributors_enabled= Column(Boolean) - created_at= Column(DateTime) - description= Column(String) - favourites_count = Column(Integer) - follow_request_sent = Column(Boolean) - followers_count = Column(Integer) - following = Column(String) - friends_count = Column(Integer) - geo_enabled= Column(Boolean) - is_translator= Column(Boolean) - lang = Column(String) - listed_count = Column(Integer) - location= Column(String) - name = Column(String) - notifications = Column(String) - profile_background_color= Column(String) - profile_background_image_url= Column(String) - profile_background_tile= Column(Boolean) - profile_image_url= Column(String) - profile_link_color= Column(String) - profile_sidebar_border_color= Column(String) - profile_sidebar_fill_color= Column(String) - profile_text_color= Column(String) - profile_use_background_image= Column(Boolean) - protected= Column(Boolean) - screen_name= Column(String) - show_all_inline_media= Column(Boolean) - statuses_count = Column(Integer) - time_zone= Column(String) - url= Column(String) - utc_offset = Column(Integer) - verified= Column(Boolean) - tweets = relationship(Tweet, backref='user') - - def __init__(self, **kwargs): - for key, value in kwargs.items(): - if hasattr(self,key): - setattr(self,key,value) - - - -class Hashtag(Base): - __tablename__ = "tweet_hashtag" - id = Column(Integer, primary_key=True) - text = Column(String, unique = True) - def __init__(self, **kwargs): - for key, value in kwargs.items(): - if hasattr(self,key): - setattr(self,key,value) - - - -class Url(Base): - __tablename__ = "tweet_url" - id = Column(Integer, primary_key=True) - url = Column(String, unique=True) - expanded_url = Column(String) - def __init__(self, **kwargs): - for key, value in kwargs.items(): - if hasattr(self,key): - setattr(self,key,value) - - - -class EntityHashtag(Entity): - __tablename__ = "tweet_entity_hashtag" - __mapper_args__ = {'polymorphic_identity': 'entity_hashtag'} - id = Column(Integer, ForeignKey('tweet_entity.id'), primary_key=True) - hashtag_id = Column(Integer, ForeignKey("tweet_hashtag.id")) - hashtag = relationship(Hashtag, primaryjoin=hashtag_id == Hashtag.id) - def __init__(self, **kwargs): - super(EntityHashtag, self).__init__(**kwargs) - for key, value in kwargs.items(): - if hasattr(self,key): - setattr(self,key,value) - - -class EntityUrl(Entity): - __tablename__ = "tweet_entity_url" - __mapper_args__ = {'polymorphic_identity': 'entity_url'} - id = Column(Integer, ForeignKey('tweet_entity.id'), primary_key=True) - url_id = Column(Integer, ForeignKey("tweet_url.id")) - url = relationship(Url, primaryjoin=url_id == Url.id) - def __init__(self, **kwargs): - super(EntityUrl, self).__init__(**kwargs) - for key, value in kwargs.items(): - if hasattr(self,key): - setattr(self,key,value) - -class EntityUser(Entity): - __tablename__ = "tweet_entity_user" - __mapper_args__ = {'polymorphic_identity': 'entity_user'} - id = Column(Integer, ForeignKey('tweet_entity.id'), primary_key=True) - user_id = Column(Integer, ForeignKey('tweet_user.id')) - user = relationship(User, primaryjoin=user_id == User.id) - - def __init__(self, **kwargs): - super(EntityUser, self).__init__(**kwargs) - for key, value in kwargs.items(): - if hasattr(self,key): - setattr(self,key,value) - - -def setup_database(*args, **kwargs): - - create_all = True - if "create_all" in kwargs: - create_all = kwargs["create_all"] - del(kwargs["create_all"]) - - engine = create_engine(*args, **kwargs) - metadata = Base.metadata - - if create_all: - metadata.create_all(engine) - - return (engine, metadata) - -rest_tweet_tweet = { - u'iso_language_code': 'unicode', - u'text': 'unicode', - u'from_user_id_str': 'unicode', - u'profile_image_url': 'unicode', - u'to_user_id_str': 'NoneType', - u'created_at': 'unicode', - u'source': 'unicode', - u'to_user': 'unicode', - u'id_str': 'unicode', - u'from_user': 'unicode', - u'place': {u'type': 'unicode', u'id': 'unicode', u'full_name': 'unicode'}, - u'from_user_id': 'int', - u'to_user_id': 'NoneType', - u'geo': 'NoneType', - u'id': 'int', - u'metadata': {u'result_type': 'unicode'} -} - -tweet_tweet = { - 'contributors': None, - 'coordinates': None, - 'created_at': 'date', - 'entities': "tweet_entity", - 'favorited': "bool", - 'geo': None, - 'id': "long", - 'id_str': "string", - 'in_reply_to_screen_name': "string", - 'in_reply_to_status_id': "long", - 'in_reply_to_status_id_str': "string", - 'in_reply_to_user_id': "int", - 'in_reply_to_user_id_str': "string", - 'place': "string", - 'retweet_count': "int", - 'retweeted': "bool", - 'source': "string", - 'text': "string", - 'truncated': "bool", - 'user': "tweet_user" -} -tweet_user = { - 'contributors_enabled': 'bool', - 'created_at': 'str', - 'description': 'str', - 'favourites_count': 'int', - 'follow_request_sent': None, - 'followers_count': 'int', - 'following': None, - 'friends_count': 'int', - 'geo_enabled': 'bool', - 'id': 'int', - 'id_str': 'str', - 'is_translator': 'bool', - 'lang': 'str', - 'listed_count': 'int', - 'location': 'str', - 'name': 'str', - 'notifications': 'NoneType', - 'profile_background_color': 'str', - 'profile_background_image_url': 'str', - 'profile_background_tile': 'bool', - 'profile_image_url': 'str', - 'profile_link_color': 'str', - 'profile_sidebar_border_color': 'str', - 'profile_sidebar_fill_color': 'str', - 'profile_text_color': 'str', - 'profile_use_background_image': 'bool', - 'protected': 'bool', - 'screen_name': 'str', - 'show_all_inline_media': 'bool', - 'statuses_count': 'int', - 'time_zone': 'str', - 'url': 'str', - 'utc_offset': 'int', - 'verified': 'bool', -} - - -tweet_entity_hashtag = { - 'hashtag' : 'tweet_hashtag', - 'indice_start' : 'int', - 'indice_end' : 'int', - 'tweet':'tweet_tweet' -} - -tweet_entity_url = { - 'url' : 'tweet_url', - 'indice_start' : 'int', - 'indice_end' : 'int', - 'tweet':'tweet_tweet' -} - -tweet_entity_user = { - 'user' : 'tweet_user', - 'indice_start' : 'int', - 'indice_end' : 'int', - 'tweet':'tweet_tweet' -} - -#id int -#id_str str -#indices list -#name str -#screen_name str - -tweet_hashtag = { - "text": "string" -} - -tweet_url = { - "url": "string", - "expanded_url" : "string", -} -