wrolpi/modules/archive/schema.py
Roland d0b9355beb
Add Domains to the Other search tab
Domains match the search text by name and/or any of the Tags, like Channels.
The list and its estimate share one query.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 16:56:26 -06:00

66 lines
1.3 KiB
Python

from dataclasses import dataclass, field
from typing import List, Optional
@dataclass
class ArchiveDict:
id: int
url_id: int
domain_id: int
singlefile_path: str
readability_path: str
readability_json_path: str
readability_txt_path: str
screenshot_path: str
title: str
@dataclass
class ArchiveSearchRequest:
search_str: Optional[str] = None
domain: Optional[str] = None
offset: Optional[int] = None
limit: Optional[int] = None
order_by: Optional[str] = None
tag_names: List[str] = field(default_factory=list)
headline: bool = False
deep: bool = False # When True, search all text including page contents (d_text)
@dataclass
class DomainSearchRequest:
tag_names: List[str] = field(default_factory=list)
search_str: Optional[str] = None
@dataclass
class ArchiveSearchResponse:
file_groups: List[ArchiveDict]
totals: dict
@dataclass
class ArchiveFileFormatRequest:
archive_file_format: str
@dataclass
class ArchiveStatistics:
archives: int
week: int
month: int
year: int
sum_size: int
max_size: int
@dataclass
class DomainStatistics:
domains: int
tagged_domains: int
@dataclass
class ArchiveStatisticsResponse:
archives: ArchiveStatistics
domains: DomainStatistics