bls_fetcher.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. # -*- coding: utf-8 -*-
  2. from app.visa_free_config_fetchers.base_fetcher import BaseFetcher
  3. class BLSFetcher(BaseFetcher):
  4. def __init__(self):
  5. super(BLSFetcher, self).__init__("bls")
  6. def fetch_free_config(self, origin, target, visa_type, vac_code=None):
  7. origin_clean = origin.lower().strip()
  8. target_clean = target.lower().strip()
  9. vac_clean = (vac_code or "").lower().strip()
  10. visa_clean = visa_type.lower().strip()
  11. missions = self.metadata.get("missions", {})
  12. mission_key = "{}_{}".format(origin_clean, target_clean)
  13. mission_data = missions.get(mission_key, {})
  14. free_config = {
  15. "domain": mission_data.get("domain", ""),
  16. "ocr_model": mission_data.get("ocr_model", "bls_v1"),
  17. "apt_configs": {}
  18. }
  19. vacs = self.metadata.get("vacs", {})
  20. vac_key = "{}_{}_{}_{}".format(origin_clean, target_clean, vac_clean, visa_clean)
  21. vac_info = vacs.get(vac_key, {})
  22. if not vac_info and vac_clean:
  23. for k, v in vacs.items():
  24. if k.startswith("{}_{}_{}".format(origin_clean, target_clean, vac_clean)):
  25. vac_info = v
  26. break
  27. if vac_info or vac_clean:
  28. routing_key = "slot.{}.{}.{}".format(vac_clean, target_clean, visa_clean)
  29. free_config["apt_configs"][routing_key] = vac_info
  30. return free_config