__init__.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. # coding=utf-8
  2. from ._base import SimpleProvider # noqa: F401
  3. from .alidns import AlidnsProvider
  4. from .callback import CallbackProvider
  5. from .cloudflare import CloudflareProvider
  6. from .dnscom import DnscomProvider
  7. from .dnspod import DnspodProvider
  8. from .dnspod_com import DnspodComProvider
  9. from .he import HeProvider
  10. from .huaweidns import HuaweiDNSProvider
  11. from .tencentcloud import TencentCloudProvider
  12. from .debug import DebugProvider
  13. def get_provider_class(provider_name):
  14. # type: (str) -> type[SimpleProvider]
  15. """
  16. 获取指定的DNS提供商类
  17. :param provider_name: 提供商名称
  18. :return: 对应的DNS提供商类
  19. """
  20. provider_name = str(provider_name).lower()
  21. mapping = {
  22. # dnspod.cn
  23. "dnspod": DnspodProvider,
  24. "dnspod_cn": DnspodProvider, # 兼容旧的dnspod_cn
  25. # dnspod.com
  26. "dnspod_com": DnspodComProvider,
  27. "dnspod_global": DnspodComProvider, # 兼容旧的dnspod_global
  28. # tencent cloud dnspod
  29. "tencentcloud": TencentCloudProvider,
  30. "tencent": TencentCloudProvider, # 兼容tencent
  31. "qcloud": TencentCloudProvider, # 兼容qcloud
  32. # cloudflare
  33. "cloudflare": CloudflareProvider,
  34. # aliyun alidns
  35. "alidns": AlidnsProvider,
  36. "aliyun": AlidnsProvider, # 兼容aliyun
  37. # dns.com
  38. "dnscom": DnscomProvider,
  39. "51dns": DnscomProvider, # 兼容旧的51dns
  40. "dns_com": DnscomProvider, # 兼容旧的dns_com
  41. # he.net
  42. "he": HeProvider,
  43. "he_net": HeProvider, # 兼容he.net
  44. # huawei
  45. "huaweidns": HuaweiDNSProvider,
  46. "huawei": HuaweiDNSProvider, # 兼容huawei
  47. "huaweicloud": HuaweiDNSProvider,
  48. # callback
  49. "callback": CallbackProvider,
  50. "webhook": CallbackProvider, # 兼容
  51. "http": CallbackProvider, # 兼容
  52. # debug
  53. "print": DebugProvider,
  54. "debug": DebugProvider, # 兼容print
  55. }
  56. return mapping.get(provider_name) # type: ignore[return-value]