tls_fetcher.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. # -*- coding: utf-8 -*-
  2. from app.visa_free_config_fetchers.base_fetcher import BaseFetcher
  3. CITY_MAP = {
  4. "bjs": "Beijing",
  5. "can": "Guangzhou",
  6. "cng": "Chengdu",
  7. "sha": "Shanghai",
  8. "she": "Shenyang",
  9. "wuh": "Wuhan",
  10. "ckg": "Chongqing",
  11. "csx": "Changsha",
  12. "foc": "Fuzhou",
  13. "hgh": "Hangzhou",
  14. "kmg": "Kunming",
  15. "nkg": "Nanjing",
  16. "szx": "Shenzhen",
  17. "tna": "Jinan",
  18. "xiy": "Xi'an",
  19. "lon": "London",
  20. "dub": "Dublin",
  21. }
  22. class TLSFetcher(BaseFetcher):
  23. def __init__(self):
  24. super(TLSFetcher, self).__init__("tls")
  25. def fetch_free_config(self, origin, target, visa_type, vac_code=None):
  26. origin_clean = origin.lower().strip()
  27. target_clean = target.lower().strip()
  28. vac_clean = (vac_code or "").lower().strip()
  29. missions = self.metadata.get("missions", {})
  30. mission_key = "{}_{}".format(origin_clean, target_clean)
  31. if vac_clean:
  32. mission_key = "{}_{}_{}".format(origin_clean, vac_clean, target_clean)
  33. mission_data = missions.get(mission_key, {})
  34. if not mission_data and vac_clean:
  35. mission_key_no_vac = "{}_{}".format(origin_clean, target_clean)
  36. mission_data = missions.get(mission_key_no_vac, {})
  37. if not mission_data:
  38. vac_upper = vac_clean.upper()
  39. site_id = "{}{}2{}".format(origin_clean, vac_upper, target_clean)
  40. tls_url = "https://visas-{}.tlscontact.com/en-us/country/{}/vac/{}".format(
  41. target_clean, origin_clean, site_id
  42. )
  43. location = CITY_MAP.get(vac_clean, vac_clean.capitalize() if vac_clean else "")
  44. mission_data = {
  45. "tls_url": tls_url,
  46. "site_id": site_id,
  47. "location": location
  48. }
  49. return mission_data