# Path: dyndnsc/updater/base.py
# class UpdateProtocol(Subject, DynamicCliMixin):
#     """Base class for all update protocols that use a simple http GET protocol."""
# 
#     theip = None
#     __hostname = None  # private place to store the property 'hostname'
#     configuration_key = None
# 
#     @property
#     def hostname(self):
#         """
#         Return the hostname managed by this updater.
# 
#         May be implemented or overwritten in updater subclasses.
#         """
#         return self.__hostname
# 
#     @hostname.setter
#     def hostname(self, value):
#         """
#         Set the hostname managed by this updater.
# 
#         May be implemented or overwritten in updater subclasses.
#         """
#         self.__hostname = value
# 
#     @staticmethod
#     def configuration_key_prefix():
#         """
#         Return a human readable string classifying this class as an updater.
# 
#         Should not be be implemented or overwritten in updater subclasses.
#         """
#         return "updater"
# 
#     def update(self, ip):
#         """
#         Update the hostname on the remote service.
# 
#         Abstract method, must be implemented in subclass.
#         """
#         raise NotImplementedError("Please implement in subclass")
# 
# Path: dyndnsc/common/constants.py
# REQUEST_HEADERS_DEFAULT = {
#     # dyndns2 standard requires that we set our own user agent:
#     "User-Agent": "python-dyndnsc/%s" % __version__,
# }


from logging import getLogger
from .base import UpdateProtocol
from ..common import constants
import requests
# -*- coding: utf-8 -*-

"""Module containing the logic for updating DNS records using the duckdns protocol.

From the duckdns.org website:

https://{DOMAIN}/update?domains={DOMAINLIST}&token={TOKEN}&ip={IP}

where:
    DOMAIN the service domain
    DOMAINLIST is either a single domain or a comma separated list of domains
    TOKEN is the API token for authentication/authorization
    IP is either the IP or blank for auto-detection

"""




LOG = getLogger(__name__)



# Path: dyndnsc/updater/base.py
# class UpdateProtocol(Subject, DynamicCliMixin):
#     """Base class for all update protocols that use a simple http GET protocol."""
# 
#     theip = None
#     __hostname = None  # private place to store the property 'hostname'
#     configuration_key = None
# 
#     @property
#     def hostname(self):
#         """
#         Return the hostname managed by this updater.
# 
#         May be implemented or overwritten in updater subclasses.
#         """
#         return self.__hostname
# 
#     @hostname.setter
#     def hostname(self, value):
#         """
#         Set the hostname managed by this updater.
# 
#         May be implemented or overwritten in updater subclasses.
#         """
#         self.__hostname = value
# 
#     @staticmethod
#     def configuration_key_prefix():
#         """
#         Return a human readable string classifying this class as an updater.
# 
#         Should not be be implemented or overwritten in updater subclasses.
#         """
#         return "updater"
# 
#     def update(self, ip):
#         """
#         Update the hostname on the remote service.
# 
#         Abstract method, must be implemented in subclass.
#         """
#         raise NotImplementedError("Please implement in subclass")
# 
# Path: dyndnsc/common/constants.py
# REQUEST_HEADERS_DEFAULT = {
#     # dyndns2 standard requires that we set our own user agent:
#     "User-Agent": "python-dyndnsc/%s" % __version__,
# }


# Path: dyndnsc/updater/duckdns.py
from logging import getLogger
from .base import UpdateProtocol
from ..common import constants
import requests

# -*- coding: utf-8 -*-

"""Module containing the logic for updating DNS records using the duckdns protocol.

From the duckdns.org website:

https://{DOMAIN}/update?domains={DOMAINLIST}&token={TOKEN}&ip={IP}

where:
    DOMAIN the service domain
    DOMAINLIST is either a single domain or a comma separated list of domains
    TOKEN is the API token for authentication/authorization
    IP is either the IP or blank for auto-detection

"""




LOG = getLogger(__name__)



class UpdateProtocolDuckdns(UpdateProtocol):