Sanj
12 years ago
commit
89221c78b6
3 changed files with 162 additions and 0 deletions
@ -0,0 +1,5 @@ |
|||
create a file called settings.py like this: |
|||
|
|||
username = 'yourusername' |
|||
password = 'yourpassword' |
|||
url = 'http://next.pad.ma/api' |
@ -0,0 +1,157 @@ |
|||
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']] |
Loading…
Reference in new issue