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): |