Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 1941b25

Browse files
committedDec 18, 2023
✨ add hishel controller
1 parent 40e1a26 commit 1941b25

File tree

2 files changed

+17
-5
lines changed

2 files changed

+17
-5
lines changed
 

‎nonebot_bison/platform/ceobecanteen/cache.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33
from types import MappingProxyType
44
from collections.abc import Callable
55

6+
from nonebot import get_driver
67
from expiringdictx import ExpiringDict
78
from httpx import AsyncClient, AsyncHTTPTransport
8-
from hishel import AsyncCacheTransport, AsyncInMemoryStorage
9+
from hishel import Controller, AsyncCacheTransport, AsyncInMemoryStorage
910

1011
from .const import DATASOURCE_URL
1112
from .utils import process_response
@@ -14,11 +15,14 @@
1415
cache_transport = AsyncCacheTransport(
1516
AsyncHTTPTransport(),
1617
storage=AsyncInMemoryStorage(),
18+
controller=Controller(
19+
allow_heuristics=True,
20+
),
1721
)
1822

1923
CeobeClient = partial(
2024
AsyncClient,
21-
headers={"Bot": "Nonebot-Bison"},
25+
headers={"Bot": f"Nonebot-Bison/{get_driver().config.nickname}", "User-Agent": "MountainDash/Nonebot-Bison"},
2226
transport=cache_transport,
2327
)
2428

‎tests/platforms/test_ceobecanteen.py

+11-3
Original file line numberDiff line numberDiff line change
@@ -94,15 +94,23 @@ async def test_batch_fetch_new_with_single(
9494
from nonebot_bison.post import Post
9595
from nonebot_bison.types import SubUnit
9696

97+
mock_respone_headers = {
98+
"Content-Encoding": "br",
99+
"Content-Type": "application/json; charset=utf-8",
100+
"Date": "Thu, 08 Jul 2021 14:00:00 GMT",
101+
# "Date": datetime.utcnow().strftime("%a, %d %b %Y %H:%M:%S GMT"),
102+
"Vary": "origin; access-control-request-method; access-control-request-headers",
103+
}
104+
97105
targets_router = respx.get("https://server.ceobecanteen.top/api/v1/canteen/config/datasource/list")
98106
comb_id_router = respx.post("https://server.ceobecanteen.top/api/v1/canteen/user/getDatasourceComb")
99107
cookie_id_router = respx.get("http://cdn.ceobecanteen.top/datasource-comb/2")
100108
cookies_router = respx.get("https://server-cdn.ceobecanteen.top/api/v1/cdn/cookie/mainList/cookieList")
101109

102-
targets_router.mock(return_value=Response(200, json=ceobecanteen_targets))
110+
targets_router.mock(return_value=Response(200, json=ceobecanteen_targets, headers=mock_respone_headers))
103111
comb_id_router.mock(return_value=Response(200, json=ceobecanteen_comb_id_0))
104-
cookie_id_router.mock(return_value=Response(200, json=ceobecanteen_cookie_id_0))
105-
cookies_router.mock(return_value=Response(200, json=ceobecanteen_cookies_0))
112+
cookie_id_router.mock(return_value=Response(200, json=ceobecanteen_cookie_id_0, headers=mock_respone_headers))
113+
cookies_router.mock(return_value=Response(200, json=ceobecanteen_cookies_0, headers=mock_respone_headers))
106114

107115
assert await ceobecanteen.get_target_name(None, dummy_target) == "明日方舟-B站"
108116
assert await ceobecanteen.parse_target("明日方舟-B站") == dummy_target

0 commit comments

Comments
 (0)
Please sign in to comment.