diff options
author | clarkzjw <[email protected]> | 2023-02-20 13:47:26 -0800 |
---|---|---|
committer | clarkzjw <[email protected]> | 2023-02-20 13:47:26 -0800 |
commit | f7f99f41e768e6740adbf2ee708488b29fe6265a (patch) | |
tree | 125b6ec833af57b2ec1813309506dbe6b791b35f /foursquare | |
parent | 3a230798be1bc63b363cf75b8b1cae3a508cca84 (diff) | |
download | swarm2fediverse-f7f99f41e768e6740adbf2ee708488b29fe6265a.tar.gz |
implemented basic functions:
- send a location from Telegram to bot
- query a list (7) of POIs from Foursquare
- send user inline keyboard button to choose a location
- post toot status update to Mastodon with a link to OSM
- store previously seen locations in local db
Diffstat (limited to 'foursquare')
-rw-r--r-- | foursquare/query_poi.py | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/foursquare/query_poi.py b/foursquare/query_poi.py index 64ded55..efdd1b1 100644 --- a/foursquare/query_poi.py +++ b/foursquare/query_poi.py | |||
@@ -1,18 +1,33 @@ | |||
1 | import requests | 1 | import requests |
2 | import json | 2 | import json |
3 | from config import FSQ_API_KEY | 3 | from config import FSQ_API_KEY |
4 | from dbstore.dbm_store import get_loc, store_loc | ||
4 | 5 | ||
5 | POI_API_ENDPOINT = "https://api.foursquare.com/v3/places/nearby?ll={}%2C{}" | 6 | POI_API_ENDPOINT = "https://api.foursquare.com/v3/places/nearby?ll={}%2C{}" |
6 | 7 | OSM_ENDPOINT = "https://www.openstreetmap.org/?mlat={}&mlon={}&zoom=15&layers=M" | |
7 | 8 | ||
8 | def query_poi(latitude, longitude): | 9 | def query_poi(latitude, longitude): |
9 | url = POI_API_ENDPOINT.format(latitude, longitude) | 10 | locations = list() |
10 | 11 | ||
12 | url = POI_API_ENDPOINT.format(latitude, longitude) | ||
11 | headers = { | 13 | headers = { |
12 | "accept": "application/json", | 14 | "accept": "application/json", |
13 | "Authorization": FSQ_API_KEY | 15 | "Authorization": FSQ_API_KEY |
14 | } | 16 | } |
15 | 17 | ||
16 | response = requests.get(url, headers=headers) | 18 | response = requests.get(url, headers=headers) |
17 | print(response.text) | 19 | |
18 | return json.loads(response.text)["results"][:2] | 20 | for poi in json.loads(response.text)["results"]: |
21 | loc = { | ||
22 | "fsq_id": poi["fsq_id"], | ||
23 | "name": poi["name"], | ||
24 | "locality": poi["location"]["locality"], | ||
25 | "region": poi["location"]["region"], | ||
26 | "latitude": poi["geocodes"]["main"]["latitude"], | ||
27 | "longitude": poi["geocodes"]["main"]["longitude"], | ||
28 | "osm_url": OSM_ENDPOINT.format(poi["geocodes"]["main"]["latitude"], poi["geocodes"]["main"]["longitude"]) | ||
29 | } | ||
30 | locations.append(loc) | ||
31 | store_loc(loc) | ||
32 | |||
33 | return locations | ||