#!/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 --------