Spaces:
Runtime error
Runtime error
File size: 3,382 Bytes
0a1b571 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
from datetime import timedelta
from enum import Enum
from typing import Any, Optional
from hibiapi.utils.cache import cache_config
from hibiapi.utils.config import APIConfig
from hibiapi.utils.decorators import enum_auto_doc
from hibiapi.utils.net import catch_network_error
from hibiapi.utils.routing import BaseEndpoint, dont_route
Config = APIConfig("wallpaper")
@enum_auto_doc
class WallpaperCategoryType(str, Enum):
"""ๅฃ็บธๅ็ฑป"""
girl = "girl"
"""ๅฅณ็"""
animal = "animal"
"""ๅจ็ฉ"""
landscape = "landscape"
"""่ช็ถ"""
anime = "anime"
"""ไบๆฌกๅ
"""
drawn = "drawn"
"""ๆ็ป"""
mechanics = "mechanics"
"""ๆบๆขฐ"""
boy = "boy"
"""็ท็"""
game = "game"
"""ๆธธๆ"""
text = "text"
"""ๆๅญ"""
CATEGORY: dict[WallpaperCategoryType, str] = {
WallpaperCategoryType.girl: "4e4d610cdf714d2966000000",
WallpaperCategoryType.animal: "4e4d610cdf714d2966000001",
WallpaperCategoryType.landscape: "4e4d610cdf714d2966000002",
WallpaperCategoryType.anime: "4e4d610cdf714d2966000003",
WallpaperCategoryType.drawn: "4e4d610cdf714d2966000004",
WallpaperCategoryType.mechanics: "4e4d610cdf714d2966000005",
WallpaperCategoryType.boy: "4e4d610cdf714d2966000006",
WallpaperCategoryType.game: "4e4d610cdf714d2966000007",
WallpaperCategoryType.text: "5109e04e48d5b9364ae9ac45",
}
@enum_auto_doc
class WallpaperOrderType(str, Enum):
"""ๅฃ็บธๆๅบๆนๅผ"""
hot = "hot"
"""็ญ้จ"""
new = "new"
"""ๆๆฐ"""
class WallpaperEndpoint(BaseEndpoint):
base = "http://service.aibizhi.adesk.com"
@dont_route
@catch_network_error
async def request(
self, endpoint: str, *, params: Optional[dict[str, Any]] = None
) -> dict[str, Any]:
response = await self.client.get(
self._join(
base=WallpaperEndpoint.base,
endpoint=endpoint,
params=params or {},
)
)
return response.json()
# ๅฃ็บธๆ้ฒ็้พtoken, ไธๅปบ่ฎฎ้ฟๆถ้ด็ผๅญ
@cache_config(ttl=timedelta(hours=2))
async def wallpaper(
self,
*,
category: WallpaperCategoryType,
limit: int = 20,
skip: int = 0,
adult: bool = True,
order: WallpaperOrderType = WallpaperOrderType.hot,
):
return await self.request(
"v1/wallpaper/category/{category}/wallpaper",
params={
"limit": limit,
"skip": skip,
"adult": adult,
"order": order,
"first": 0,
"category": CATEGORY[category],
},
)
# ๅฃ็บธๆ้ฒ็้พtoken, ไธๅปบ่ฎฎ้ฟๆถ้ด็ผๅญ
@cache_config(ttl=timedelta(hours=2))
async def vertical(
self,
*,
category: WallpaperCategoryType,
limit: int = 20,
skip: int = 0,
adult: bool = True,
order: WallpaperOrderType = WallpaperOrderType.hot,
):
return await self.request(
"v1/vertical/category/{category}/vertical",
params={
"limit": limit,
"skip": skip,
"adult": adult,
"order": order,
"first": 0,
"category": CATEGORY[category],
},
)
|