78 lines
2.1 KiB
Python
78 lines
2.1 KiB
Python
#!/usr/bin/env python3
|
|
from __future__ import annotations
|
|
|
|
from typing import Literal, cast
|
|
|
|
from api_client import DomainsFile, DomainsTable
|
|
|
|
|
|
class DomainsControllerMixin:
|
|
def domains_table_view(self) -> DomainsTable:
|
|
return self.client.domains_table()
|
|
|
|
def domains_file_load(self, name: str) -> DomainsFile:
|
|
nm = name.strip().lower()
|
|
if nm not in (
|
|
"bases",
|
|
"meta",
|
|
"subs",
|
|
"static",
|
|
"smartdns",
|
|
"last-ips-map",
|
|
"last-ips-map-direct",
|
|
"last-ips-map-wildcard",
|
|
"wildcard-observed-hosts",
|
|
):
|
|
raise ValueError(f"Invalid domains file name: {name}")
|
|
return self.client.domains_file_get(
|
|
cast(
|
|
Literal[
|
|
"bases",
|
|
"meta",
|
|
"subs",
|
|
"static",
|
|
"smartdns",
|
|
"last-ips-map",
|
|
"last-ips-map-direct",
|
|
"last-ips-map-wildcard",
|
|
"wildcard-observed-hosts",
|
|
],
|
|
nm,
|
|
)
|
|
)
|
|
|
|
def domains_file_save(self, name: str, content: str) -> None:
|
|
nm = name.strip().lower()
|
|
if nm not in (
|
|
"bases",
|
|
"meta",
|
|
"subs",
|
|
"static",
|
|
"smartdns",
|
|
"last-ips-map",
|
|
"last-ips-map-direct",
|
|
"last-ips-map-wildcard",
|
|
"wildcard-observed-hosts",
|
|
):
|
|
raise ValueError(f"Invalid domains file name: {name}")
|
|
self.client.domains_file_set(
|
|
cast(
|
|
Literal[
|
|
"bases",
|
|
"meta",
|
|
"subs",
|
|
"static",
|
|
"smartdns",
|
|
"last-ips-map",
|
|
"last-ips-map-direct",
|
|
"last-ips-map-wildcard",
|
|
"wildcard-observed-hosts",
|
|
],
|
|
nm,
|
|
),
|
|
content,
|
|
)
|
|
|
|
# -------- Trace --------
|
|
|