script/lib/iri_tweet/utils.py
changeset 248 ffb0a6d08000
parent 247 e6b328970ee8
parent 203 8124cde38141
child 250 6334869ab06d
equal deleted inserted replaced
247:e6b328970ee8 248:ffb0a6d08000
   337                       help="verbose", metavar="VERBOSE", default=0)
   337                       help="verbose", metavar="VERBOSE", default=0)
   338     parser.add_option("-q", dest="quiet", action="count",
   338     parser.add_option("-q", dest="quiet", action="count",
   339                       help="quiet", metavar="QUIET", default=0)
   339                       help="quiet", metavar="QUIET", default=0)
   340 
   340 
   341     
   341     
   342 def get_filter_query(session, start_date, end_date, hashtags, tweet_exclude_table):
   342 def get_filter_query(session, start_date, end_date, hashtags, tweet_exclude_table, user_whitelist):
   343     
   343     
   344     query = session.query(Tweet).join(EntityHashtag).join(Hashtag)
   344     query = session.query(Tweet).join(EntityHashtag).join(Hashtag)
   345     if tweet_exclude_table is not None:
   345     if tweet_exclude_table is not None:
   346         query = query.filter(~Tweet.id.in_(select([tweet_exclude_table.c.id]))) #@UndefinedVariable
   346         query = query.filter(~Tweet.id.in_(select([tweet_exclude_table.c.id]))) #@UndefinedVariable
   347         
   347         
   348     query = query.filter(Tweet.created_at >=  start_date).filter(Tweet.created_at <=  end_date)
   348     query = query.filter(Tweet.created_at >=  start_date).filter(Tweet.created_at <=  end_date)
       
   349 
       
   350     if user_whitelist:
       
   351         query = query.join(User).filter(User.screen_name.in_(user_whitelist))
       
   352 
   349     
   353     
   350     if hashtags :
   354     if hashtags :
   351         def merge_hash(l,h):
   355         def merge_hash(l,h):
   352             l.extend(h.split(","))
   356             l.extend(h.split(","))
   353             return l
   357             return l
   354         htags = reduce(merge_hash, hashtags, [])
   358         htags = reduce(merge_hash, hashtags, [])
   355         
   359         
   356         query = query.filter(or_(*map(lambda h: Hashtag.text.contains(h), htags))) #@UndefinedVariable
   360         query = query.filter(or_(*map(lambda h: Hashtag.text.contains(h), htags))) #@UndefinedVariable
       
   361         
   357     
   362     
   358     return query
   363     return query
   359     
   364     
   360 
   365 
   361 def get_user_query(session, start_date, end_date, hashtags, tweet_exclude_table):
   366 def get_user_query(session, start_date, end_date, hashtags, tweet_exclude_table):