From 7cfcecc533d8ce7a09e14fdab719a4cd3ff8eae3 Mon Sep 17 00:00:00 2001 From: Kyomotoi <0w0@imki.moe> Date: Sun, 4 Jun 2023 17:57:36 +0800 Subject: =?UTF-8?q?=E2=99=BB=EF=B8=8F=20=E9=87=8D=E6=9E=84=E6=8F=92?= =?UTF-8?q?=E4=BB=B6:=20=E4=BB=A5=E5=9B=BE=E6=90=9C=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ATRI/plugins/saucenao/models.py | 86 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 ATRI/plugins/saucenao/models.py (limited to 'ATRI/plugins/saucenao/models.py') diff --git a/ATRI/plugins/saucenao/models.py b/ATRI/plugins/saucenao/models.py new file mode 100644 index 0000000..bc345cb --- /dev/null +++ b/ATRI/plugins/saucenao/models.py @@ -0,0 +1,86 @@ +from typing import List, Optional, Union, Dict + +from pydantic import BaseModel + + +class SauceNAORequest(BaseModel): + api_key: str + url: str = str() + output_type: int + testmode: int + dbmaski: int + db: int + numres: int + + +class SauceNAOResponseIndexFields(BaseModel): + status: int + parent_id: int + id: int + results: Optional[int] = None + + +class SauceNAOResponseHeader(BaseModel): + user_id: str + account_type: str + short_limit: str + long_limit: str + long_remaining: int + short_remaining: int + status: int + results_requested: int + index: Dict[str, SauceNAOResponseIndexFields] + search_depth: str + minimum_similarity: float + query_image_display: str + query_image: str + results_returned: int + + +class SauceNAOResponseResultsHeader(BaseModel): + similarity: str + thumbnail: str + index_id: int + index_name: str + dupes: int + hidden: int + + +class SauceNAOResponseResultsData(BaseModel): + ext_urls: Optional[List[str]] = None + title: Optional[str] = None + pixiv_id: Optional[int] = None + member_name: Optional[str] = None + member_id: Optional[int] = None + published: Optional[str] = None + service: Optional[str] = None + service_name: Optional[str] = None + id: Optional[str] = None + user_id: Optional[str] = None + user_name: Optional[str] = None + yandere_id: Optional[int] = None + konachan_id: Optional[int] = None + creator: Optional[Union[str, List[str]]] = None + material: Optional[str] = None + characters: Optional[str] = None + source: Optional[str] = None + danbooru_id: Optional[int] = None + gelbooru_id: Optional[int] = None + eng_name: Optional[str] = None + jp_name: Optional[str] = None + + +class SauceNAOResponseResults(BaseModel): + header: SauceNAOResponseResultsHeader + data: SauceNAOResponseResultsData + + +class SauceNAOResponse(BaseModel): + header: SauceNAOResponseHeader + results: List[SauceNAOResponseResults] + + +class SauceNAOResult(BaseModel): + similarity: str + index_name: str + url: str -- cgit v1.2.3