summaryrefslogtreecommitdiff
path: root/ATRI/plugins/saucenao/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'ATRI/plugins/saucenao/models.py')
1 files changed, 86 insertions, 0 deletions
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