def search(item): spellings = ItemSpelling.objects.filter(item = item.id, item__active = True) modifiers = eval(item.modifier.data) radius = eval(item.radius.data) log.debug('MODIFIERS: ' + ', '.join(modifiers)) for modifier in modifiers: log.debug('MODIFIER: ' + modifier) # continue for spelling in spellings: if len(modifier): search_text = spelling.text + ' ' + modifier geocode = () else: search_text = spelling.text if radius: geocode = radius else: geocode = () log.debug('SEARCH TEXT: ' + search_text) log.debug('RADIUS DATA LENGTH: %d' % (len(geocode))) search_log = SearchLog.objects.filter( item = item.id, spelling = spelling.text, modifier = modifier, radius = item.radius ).order_by( '-last_twitter_id' ) if search_log: twitter_since_id = search_log[0].last_twitter_id else: twitter_since_id = None log.debug('SINCE TWEET ID: ' + str(twitter_since_id)) search = None search_error = False try: search = api.GetSearch( search_text, per_page = 100, geocode = geocode, since_id = twitter_since_id ) except: search_error = True if search_error: try: search = api.GetSearch( search_text, per_page = 100, geocode = geocode ) except: pass if search and len(search) > 0: # Save record of search. first_search_id = search[len(search) - 1].id last_search_id = search[0].id log.debug('FIRST TWEET ID: %d' % (first_search_id)) log.debug('LAST TWEET ID: %d' % (last_search_id)) search_log = SearchLog() search_log.item = item search_log.spelling = spelling.text search_log.modifier = modifier search_log.radius = item.radius search_log.amount = len(search) search_log.maximum = 100 search_log.first_twitter_id = str(first_search_id) search_log.last_twitter_id = str(last_search_id) search_log.save() for s in search: # print s # continue handler.save_new_tweet(s, modifier, radius, item, spelling)