from settings import username, password, url import ox import json import codecs api = ox.api.API(url) user = api.signin({'username': username, 'password': password}) if user['data'].has_key("errors"): print "Authentication Failed!" def titleContains(string): return api.find({ 'sort': [{ 'key': 'title', 'operator': '+' }], 'query': { 'conditions': [ { 'key': 'title', 'value': string, 'operator': '' } ], 'operator': '&' }, 'keys': ['id', 'title'] }) def getIdFromTitle(string): result = api.find({ 'sort': [{ 'key': 'title', 'operator': '+' }], 'query': { 'conditions': [ { 'key': 'title', 'value': string, 'operator': '=' } ], 'operator': '&' }, 'keys': ['id', 'title'] }) items = result['data']['items'] if (len(items) > 1): raise Exception("more than 1 item matches title") elif (len(items) == 0): return None else: return items[0]['id'] def addFeaturedPerson(id, person): result = api.get({'id': id, 'keys': 'featured'}) featured = result['data']['featured'] if person in featured: return else: featured.append(person) return api.edit({ 'id': id, 'featured': featured }) def dumpUnknownPlaces(): result = api.findPlaces({ "query": { "conditions": [{ 'key': 'lat', 'value': None, 'operator': '=' }], "operator": "" }, "keys": [ "id", "countryCode", "type", "name", "alternativeNames", "lat", "lng", "area", "area", "geoname", "matches", "matches" ], "range": [ 0, 5000 ], "sort": [ { "key": "geoname", "operator": "+" } ] }) out = codecs.open("unknownplaces.json", "w", encoding="utf-8") json.dump(result['data']['items'], out) out.close() return result def dumpKnownPlaces(): result = api.findPlaces({ "query": { "conditions": [{ 'key': 'lat', 'value': None, 'operator': '!' }], "operator": "" }, "keys": [ "id", "countryCode", "type", "name", "alternativeNames", "lat", "lng", "area", "area", "geoname", "matches", "matches" ], "range": [ 0, 5000 ], "sort": [ { "key": "geoname", "operator": "+" } ] }) out = codecs.open("knownplaces.json", "w", encoding="utf-8") json.dump(result['data']['items'], out) out.close() return result #def replaceAnnotation(track, old, new): def getIds(result): return [item.id for item in result['data']['items']]