# -*- coding: utf-8 -*- from app.visa_free_config_fetchers.base_fetcher import BaseFetcher CITY_MAP = { "bjs": "Beijing", "can": "Guangzhou", "cng": "Chengdu", "sha": "Shanghai", "she": "Shenyang", "wuh": "Wuhan", "ckg": "Chongqing", "csx": "Changsha", "foc": "Fuzhou", "hgh": "Hangzhou", "kmg": "Kunming", "nkg": "Nanjing", "szx": "Shenzhen", "tna": "Jinan", "xiy": "Xi'an", "lon": "London", "dub": "Dublin", } class TLSFetcher(BaseFetcher): def __init__(self): super(TLSFetcher, self).__init__("tls") def fetch_free_config(self, origin, target, visa_type, vac_code=None): origin_clean = origin.lower().strip() target_clean = target.lower().strip() vac_clean = (vac_code or "").lower().strip() missions = self.metadata.get("missions", {}) mission_key = "{}_{}".format(origin_clean, target_clean) if vac_clean: mission_key = "{}_{}_{}".format(origin_clean, vac_clean, target_clean) mission_data = missions.get(mission_key, {}) if not mission_data and vac_clean: mission_key_no_vac = "{}_{}".format(origin_clean, target_clean) mission_data = missions.get(mission_key_no_vac, {}) if not mission_data: vac_upper = vac_clean.upper() site_id = "{}{}2{}".format(origin_clean, vac_upper, target_clean) tls_url = "https://visas-{}.tlscontact.com/en-us/country/{}/vac/{}".format( target_clean, origin_clean, site_id ) location = CITY_MAP.get(vac_clean, vac_clean.capitalize() if vac_clean else "") mission_data = { "tls_url": tls_url, "site_id": site_id, "location": location } return mission_data