Compare commits

..

3 commits

Author SHA1 Message Date
6b72513759
Update Isaac's visited states 2025-12-19 22:17:08 -06:00
be4ecaa42d
Add some TODOs 2025-11-29 21:50:05 -06:00
2f832fa731
Fix Cane's spider
Prior art: AllThePlaces' implementation:
35dc669bef/locations/spiders/raising_canes_us.py
35dc669bef/locations/storefinders/yext_answers.py

Requested-By: Eric Villnow
2025-11-29 21:38:52 -06:00
3 changed files with 44 additions and 23 deletions

View file

@ -17,7 +17,8 @@
- [ ] NHL stadiums filtered for Eric and Chandler have visited -- https://upload.wikimedia.org/wikipedia/commons/2/28/NHL_arenas.jpg - [ ] NHL stadiums filtered for Eric and Chandler have visited -- https://upload.wikimedia.org/wikipedia/commons/2/28/NHL_arenas.jpg
- [ ] Layer for drone imagery a la openaerialmap.com - [ ] Layer for drone imagery a la openaerialmap.com
- [ ] Trip layers/slideshows - [ ] Trip layers/slideshows
- [ ] air service: https://www.mayoclinic.org/ambulance-service/helicopter, https://ambulanceservices.northmemorial.com/air-care/#map, https://lifelinkiii.com/services/air-medical-transport/, etc
- [ ] Parse out location from fire pages, etc? https://hutchinsonfire.posthaven.com/archive (and mcleod, etc)
All filterable by time frame All filterable by time frame

View file

@ -4,34 +4,54 @@ import requests
import json import json
print("Searching for Raising Cane's locations") print("Searching for Raising Cane's locations")
response = requests.get('https://raisingcanes.com/page-data/sq/d/3976656178.json').json()
all_results = []
desired_results = 999999
while len(all_results) < desired_results:
res = requests.get("https://prod-cdn.us.yextapis.com/v2/accounts/me/search/vertical/query", params={
"experienceKey": "locator",
"api_key": "6c78315e15b82a7cccbbf3fad5db0958",
"v": "20220511",
"version": "PRODUCTION",
"locale": "en",
"verticalKey": "locations",
"filters": json.dumps({
"builtin.location": {
"$near": {
"lat": 0,
"lng": 0,
"radius": 100000000,
}
}
}),
"limit": 50,
"offset": len(all_results),
"source": "STANDARD",
})
desired_results = int(res.json()['response']['resultsCount'])
all_results.extend(res.json()['response']['results'])
print(f"Fetched {len(all_results)}/{desired_results} results…")
stores = [] stores = []
for s in response['data']['allPrismicStoreLocation']['nodes']: for s in all_results:
if s['uid'] == 'ara2': # Not sure what's up with this one: https://raisingcanes.com/locations/ara2/
continue
elif s['uid'] == 'c524': # Null island? https://raisingcanes.com/locations/c524/
s['data']['coordinates'] = {
"longitude": -111.9811399,
"latitude": 40.5447361,
}
stores.append({ stores.append({
"type": "Feature", "type": "Feature",
"geometry": { "geometry": {
"type": "Point", "type": "Point",
"coordinates": [float(s['data']['coordinates']['longitude']), float(s['data']['coordinates']['latitude'])], # yes, [lon, lat] since it's [x, y] "coordinates": [float(s['data']['yextDisplayCoordinate']['longitude']), float(s['data']['yextDisplayCoordinate']['latitude'])], # yes, [lon, lat] since it's [x, y]
}, },
"properties": { "properties": {
'name': s['data']['external_location_data']['displayName'], 'name': s['data']['name'],
'nickname': s['data']['external_location_data']['nickname'], 'nickname': s['data']['c_nickname'],
'address': s['data']['external_location_data']['address1'], 'address': s['data']['address']['line1'],
'city': s['data']['external_location_data']['city'], 'city': s['data']['address']['city'],
'state': s['data']['external_location_data']['state'], 'state': s['data']['address']['region'],
'zip': s['data']['external_location_data']['postal_code'], 'zip': s['data']['address']['postalCode'],
'website': f"https://raisingcanes.com/locations/{s['uid']}", 'website': s['data']['websiteUrl'],
'opened': s['data']['external_location_data']['birthdate'], 'opened': s['data']['c_openDate'],
'hours': s['data']['external_location_data']['hours'], 'hours': s['data']['hours'],
}, },
}) })

View file

@ -124,7 +124,7 @@ const visitedStatesLists = {
// 'AL', // 'AL',
'AR', 'AR',
'AZ', 'AZ',
// 'CA', 'CA',
'CO', 'CO',
// 'CT', // 'CT',
'DE', 'DE',
@ -132,7 +132,7 @@ const visitedStatesLists = {
// 'GA', // 'GA',
// 'HI', // 'HI',
'IA', 'IA',
// 'ID', 'ID',
'IL', 'IL',
'IN', 'IN',
'KS', 'KS',
@ -152,7 +152,7 @@ const visitedStatesLists = {
'NH', 'NH',
// 'NJ', // 'NJ',
'NM', 'NM',
// 'NV', 'NV',
'NY', 'NY',
'OH', 'OH',
'OK', 'OK',