| 1234567891011121314151617181920212223242526272829303132333435363738 |
- # -*- coding: utf-8 -*-
- from app.visa_free_config_fetchers.base_fetcher import BaseFetcher
- class BLSFetcher(BaseFetcher):
- def __init__(self):
- super(BLSFetcher, self).__init__("bls")
- 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()
- visa_clean = visa_type.lower().strip()
- missions = self.metadata.get("missions", {})
- mission_key = "{}_{}".format(origin_clean, target_clean)
- mission_data = missions.get(mission_key, {})
- free_config = {
- "domain": mission_data.get("domain", ""),
- "ocr_model": mission_data.get("ocr_model", "bls_v1"),
- "apt_configs": {}
- }
- vacs = self.metadata.get("vacs", {})
- vac_key = "{}_{}_{}_{}".format(origin_clean, target_clean, vac_clean, visa_clean)
- vac_info = vacs.get(vac_key, {})
- if not vac_info and vac_clean:
- for k, v in vacs.items():
- if k.startswith("{}_{}_{}".format(origin_clean, target_clean, vac_clean)):
- vac_info = v
- break
- if vac_info or vac_clean:
- routing_key = "slot.{}.{}.{}".format(vac_clean, target_clean, visa_clean)
- free_config["apt_configs"][routing_key] = vac_info
- return free_config
|