script/lib/iri_tweet/utils.py
changeset 203 8124cde38141
parent 122 4c3a15877f80
child 242 cdd7d3c0549c
child 248 ffb0a6d08000
equal deleted inserted replaced
202:2bf0fd3432bf 203:8124cde38141
   324                       help="verbose", metavar="VERBOSE", default=0)
   324                       help="verbose", metavar="VERBOSE", default=0)
   325     parser.add_option("-q", dest="quiet", action="count",
   325     parser.add_option("-q", dest="quiet", action="count",
   326                       help="quiet", metavar="QUIET", default=0)
   326                       help="quiet", metavar="QUIET", default=0)
   327 
   327 
   328     
   328     
   329 def get_filter_query(session, start_date, end_date, hashtags, tweet_exclude_table):
   329 def get_filter_query(session, start_date, end_date, hashtags, tweet_exclude_table, user_whitelist):
   330     
   330     
   331     query = session.query(Tweet).join(EntityHashtag).join(Hashtag)
   331     query = session.query(Tweet).join(EntityHashtag).join(Hashtag)
   332     if tweet_exclude_table is not None:
   332     if tweet_exclude_table is not None:
   333         query = query.filter(~Tweet.id.in_(select([tweet_exclude_table.c.id]))) #@UndefinedVariable
   333         query = query.filter(~Tweet.id.in_(select([tweet_exclude_table.c.id]))) #@UndefinedVariable
   334         
   334         
   335     query = query.filter(Tweet.created_at >=  start_date).filter(Tweet.created_at <=  end_date)
   335     query = query.filter(Tweet.created_at >=  start_date).filter(Tweet.created_at <=  end_date)
       
   336 
       
   337     if user_whitelist:
       
   338         query = query.join(User).filter(User.screen_name.in_(user_whitelist))
       
   339 
   336     
   340     
   337     if hashtags :
   341     if hashtags :
   338         def merge_hash(l,h):
   342         def merge_hash(l,h):
   339             l.extend(h.split(","))
   343             l.extend(h.split(","))
   340             return l
   344             return l
   341         htags = reduce(merge_hash, hashtags, [])
   345         htags = reduce(merge_hash, hashtags, [])
   342         
   346         
   343         query = query.filter(or_(*map(lambda h: Hashtag.text.contains(h), htags))) #@UndefinedVariable
   347         query = query.filter(or_(*map(lambda h: Hashtag.text.contains(h), htags))) #@UndefinedVariable
       
   348         
   344     
   349     
   345     return query
   350     return query
   346     
   351     
   347 
   352 
   348 def get_user_query(session, start_date, end_date, hashtags, tweet_exclude_table):
   353 def get_user_query(session, start_date, end_date, hashtags, tweet_exclude_table):