def fetch_snow_tweets(): logging.info("Fetching tweets for tag #uksnow") key = 'uksnow' feeditemcount = 1 latest_cached = 0 since_id = models.get_from_keystore(key) tweets = twitter.get_twitter_search('uksnow&filter=links', since_id) for tweet in tweets['results']: if feeditemcount == 1: try: latest_cached = str(tweet['id']) except: latest_cached = 0 taskqueue.add(url='/services/store_tweet', params={ 'userid': tweet['from_user_id'], 'username': tweet['from_user'], 'imgurl': tweet['profile_image_url'], 'message': tweet['text'], 'messageid': tweet['id'], 'message_created': tweet['created_at'], 'geo': tweet['geo'], }) feeditemcount += 1 if latest_cached > 0: models.add_to_keystore(key, latest_cached)
def get_search(query): key = "search_" + query since_id = models.get_from_keystore(key) if not since_id: since_id = "1" url = "http://search.twitter.com/search.json?q=" + query + "&rpp=100&since_id=" + since_id messages = get_from_twitter(url) return messages, url
def get_id_for_tweet(): current_id = models.get_from_keystore("tweet_id") id_as_number = int(current_id) next_id = id_as_number + 1 models.add_to_keystore("tweet_id", str(next_id)) t = datetime.datetime.now() secs = time.mktime(t.timetuple()) milis = int(secs) id_plus_currenttime = str(milis) + current_id return int(id_plus_currenttime)
def handle_searches(messages, searchtag): i = 0 searchtag = "search_" + searchtag since_id = models.get_from_keystore(searchtag) hasurl = False highest_message_id = 0 for message in messages: if i == 0: highest_message_id = str(message['id']) i = 1 if int(message['id']) > int(since_id): if "http://" in message['text'].lower(): messageelements = message['text'].split(" ") newmessageelements = [] for messageelement in messageelements: if messageelement[0:7].lower() == "http://": newmessageelements.append("<a href='"+ messageelement +"' target='_new'>"+ messageelement +"</a>") else: newmessageelements.append(messageelement) markedupmessage = " ".join(newmessageelements) else: markedupmessage = message['text'] if "@" in markedupmessage: messageelements = markedupmessage.split(" ") newmessageelements = [] for messageelement in messageelements: if messageelement[0:1].lower() == "@": if len(messageelement) > 1: newmessageelements.append("<a href='http://twitter.com/"+ messageelement[1: len(messageelement)] +"' target='_new'>"+ messageelement +"</a>") else: newmessageelements.append(messageelement) markedupmessage = " ".join(newmessageelements) if "#" in markedupmessage: messageelements = markedupmessage.split(" ") newmessageelements = [] for messageelement in messageelements: if messageelement[0:1].lower() == "#": if len(messageelement) > 1: newmessageelements.append("<span class='hashtag' id='"+ messageelement[1: len(messageelement)] +"'>"+ messageelement +"</span>") else: newmessageelements.append(messageelement) markedupmessage = " ".join(newmessageelements) models.cache_message(message['profile_image_url'], "searches", message['id'], message['from_user_id'], message['from_user'], markedupmessage, message['created_at'], message_tag=searchtag) if highest_message_id > 0: models.add_to_keystore(searchtag, highest_message_id) return messages, hasurl