mirror of
https://github.com/home-assistant/core.git
synced 2025-12-16 21:09:18 +00:00
36 lines
835 B
Python
36 lines
835 B
Python
"""Helpers for Duck DNS integration."""
|
|
|
|
from aiohttp import ClientSession
|
|
|
|
from homeassistant.helpers.typing import UNDEFINED, UndefinedType
|
|
|
|
UPDATE_URL = "https://www.duckdns.org/update"
|
|
|
|
|
|
async def update_duckdns(
|
|
session: ClientSession,
|
|
domain: str,
|
|
token: str,
|
|
*,
|
|
txt: str | None | UndefinedType = UNDEFINED,
|
|
clear: bool = False,
|
|
) -> bool:
|
|
"""Update DuckDNS."""
|
|
params = {"domains": domain, "token": token}
|
|
|
|
if txt is not UNDEFINED:
|
|
if txt is None:
|
|
# Pass in empty txt value to indicate it's clearing txt record
|
|
params["txt"] = ""
|
|
clear = True
|
|
else:
|
|
params["txt"] = txt
|
|
|
|
if clear:
|
|
params["clear"] = "true"
|
|
|
|
resp = await session.get(UPDATE_URL, params=params)
|
|
body = await resp.text()
|
|
|
|
return body == "OK"
|