district.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. # -*- coding: utf-8 -*-
  2. """
  3. :copyright: ©2018 by IPIP.net
  4. """
  5. from .database import Reader
  6. class DistrictInfo:
  7. country_name = ""
  8. region_name = ""
  9. city_name = ""
  10. district_name = ""
  11. china_admin_code = ""
  12. covering_radius = ""
  13. latitude = ""
  14. longitude = ""
  15. def __init__(self, **kwargs):
  16. self._map = kwargs
  17. for key in self._map:
  18. self.__dict__[key] = self._map[key]
  19. class District:
  20. db = None
  21. def __init__(self, name):
  22. self.db = Reader(name)
  23. def reload(self, name):
  24. try:
  25. db = Reader(name)
  26. self.db = db
  27. return True
  28. except:
  29. return False
  30. def find(self, addr, language):
  31. return self.db.find(addr, language)
  32. def find_map(self, addr, language):
  33. return self.db.find_map(addr, language)
  34. def find_info(self, addr, language):
  35. m = self.db.find_map(addr, language)
  36. if m is None:
  37. return None
  38. return DistrictInfo(**m)
  39. def is_ipv4(self):
  40. return self.db.is_support_ipv4()
  41. def is_ipv6(self):
  42. return self.db.is_support_ipv6()
  43. def languages(self):
  44. return self.db.support_languages()
  45. def fields(self):
  46. return self.db.support_fields()
  47. def build_time(self):
  48. return self.db.build_utc_time()