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