#!/usr/bin/env python3

import requests
import re
import json
import sys

sess = requests.Session()
sess.headers['user-agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36 Edg/98.0.1108.43'

tiendasHtml = sess.get('https://cashconverters.es/tiendas/').text

zipCodes = sorted({x.group(1) for x in re.finditer(r'<p class="map-popup-text">(?:[^<]+), ([0-9]{5})</p>', tiendasHtml)})

storesByCode = dict()
for zipCode in zipCodes:
	reply = sess.get(f'https://www.cashconverters.es/on/demandware.store/Sites-CashConvertersSpain-Site/es/StoreInventory-ShowAvailableStoresFromZipCodeJson?zipCode={zipCode}').json()
	for store in reply:
		storesByCode[store['storeId']] = {
			'address': store['address1'],
			'city': store['city'],
			'province': store['stateCode'],
			'zip': store['postalCode'],
		}

sortedStores = {k: storesByCode[k] for k in sorted(storesByCode.keys())}
json.dump(sortedStores, sys.stdout, ensure_ascii=False, indent='\t')
