# HG changeset patch # User Raphael Velt # Date 1323883388 -3600 # Node ID 97c082990f8d931e4a63fed2ca38aae56c9abbc1 # Parent 4141c5821c98ba58e5d6cb8569b495ad13f6bb94# Parent bf5cf5a9e737e6a8c210a7a4c3f6a57ec0c08647 Merge with facc7cc5c7f0457ee36d5d71b3fc93e363348032 diff -r 4141c5821c98 -r 97c082990f8d script/lib/iri_tweet/models.py --- a/script/lib/iri_tweet/models.py Wed Dec 14 18:22:27 2011 +0100 +++ b/script/lib/iri_tweet/models.py Wed Dec 14 18:23:08 2011 +0100 @@ -152,7 +152,7 @@ id = Column(BigInteger, primary_key=True, autoincrement=False) id_str = Column(String) contributors_enabled = Column(Boolean) - created_at = Column(DateTime) + created_at = Column(DateTime, index=True) description = Column(String) favourites_count = Column(Integer) follow_request_sent = Column(Boolean) diff -r 4141c5821c98 -r 97c082990f8d script/lib/iri_tweet/utils.py --- a/script/lib/iri_tweet/utils.py Wed Dec 14 18:22:27 2011 +0100 +++ b/script/lib/iri_tweet/utils.py Wed Dec 14 18:23:08 2011 +0100 @@ -199,6 +199,8 @@ def __get_user(self, user_dict, do_merge, query_twitter = False): get_logger().debug("Get user : " + repr(user_dict)) #@UndefinedVariable + + user_dict = adapt_fields(user_dict, fields_adapter["stream"]["user"]) user_id = user_dict.get("id",None) user_name = user_dict.get("screen_name", user_dict.get("name", None)) @@ -211,8 +213,17 @@ user = self.obj_buffer.get(User, id=user_id) else: user = self.obj_buffer.get(User, screen_name=user_name) - + + #to do update user id needed if user is not None: + user_created_at = None + if user.args is not None: + user_created_at = user.args.get('created_at', None) + if user_created_at is None and user_dict.get('created_at', None) is not None and do_merge: + if user.args is None: + user.args = user_dict + else: + user.args.update(user_dict) return user #todo : add methpds to objectbuffer to get buffer user @@ -222,8 +233,12 @@ else: user_obj = self.session.query(User).filter(User.screen_name.ilike(user_name)).first() - if user_obj is not None: - user = ObjectBufferProxy(User, None, None, False, user_obj) + #todo update user if needed + if user_obj is not None: + if user_obj.created_at is not None or user_dict.get('created_at', None) is None or not do_merge : + user = ObjectBufferProxy(User, None, None, False, user_obj) + else: + user = self.obj_buffer.add_object(User, None, user_dict, True, user_obj) return user user_created_at = user_dict.get("created_at", None) @@ -244,21 +259,17 @@ get_logger().info("get_user : TWITTER ERROR : " + repr(e)) #@UndefinedVariable get_logger().info("get_user : TWITTER ERROR : " + str(e)) #@UndefinedVariable return None - - user_dict = adapt_fields(user_dict, fields_adapter["stream"]["user"]) + if "id" not in user_dict: return None #TODO filter get, wrap in proxy user_obj = self.session.query(User).filter(User.id == user_dict["id"]).first() - if user_obj is not None: - if not do_merge: - return ObjectBufferProxy(User, None, None, False, user_obj) - - user = self.obj_buffer.add_object(User, None, user_dict, True) - - return user + if user_obj is not None and not do_merge: + return ObjectBufferProxy(User, None, None, False, user_obj) + else: + return self.obj_buffer.add_object(User, None, user_dict, True) def __get_or_create_object(self, klass, filter_by_kwargs, filter, creation_kwargs, must_flush, do_merge): diff -r 4141c5821c98 -r 97c082990f8d web/res/css/tweetcast.css diff -r 4141c5821c98 -r 97c082990f8d web/res/js-tweetcast/live-polemic.js