def take_suggestions(): if os.path.exists(LATESTFILE_SUG): fp = open(LATESTFILE_SUG) lastid = fp.read().strip() fp.close() if lastid == '': lastid = 0 else: lastid = 0 result = api.GetMentions(since_id = lastid) #No mention, no suggestion print lastid if len(result) == 0: print "No mention received" return [] else : fp = open(LATESTFILE_SUG, 'w') fp.write(str(max([x.id for x in result]))) fp.close() entry = History.query.descending('mongo_id').first() for x in result: print x.text #Somebody already suggested.. if entry.next_location.name != entry.suggested_location.name : print "There already is a suggestion. Fitz is currently headed to "+entry.next_location.name return [] else : candidates = {} #Walk through all the mentions we got here.. for x in result : mention_entry = x.text.split(' ') s_user = x.user.screen_name #Locations have to be proposed in a form of "Check out ***" if mention_entry[1] == 'Check' and mention_entry[2] == 'out': s_key = s_user + ":" + ' '.join(mention_entry[3:]) s_geo = geocoder(' '.join(mention_entry[3:])) distance = gcd(entry.next_location.geocode[0], entry.next_location.geocode[1], s_geo[1], s_geo[2]) candidates[s_key] = distance #Got somethin' but no useful words if len(candidates) == 0: print "Got some words, but no suggestions.." return [] #Got somewhere to go! else : next_move = min(candidates, key=candidates.get) print candidates[candidates.keys()[0]] > candidates[candidates.keys()[1]] print next_move l = Location() l.name = next_move.split(':')[1] l.geocode = geocoder(next_move.split(':')[1])[1:] entry.suggested_location = l entry.suggested_by = next_move.split(':')[0] entry.save() user_sug = [] user_sug.append(next_move.split(':')[0]) user_sug.append(next_move.split(':')[1]) return user_sug
def suggest(): entry = History.query.descending('mongo_id').first() suggested_point = app.config['SUGGESTED_POINT'] geocode = geocoder(suggested_point) location = Location() location.name = geocode[0] location.geocode = (geocode[1],geocode[2]) entry.suggested_location = location entry.save() return suggested_point + " suggested!"