🐛 修复微博更换长内容接口 (#645)

This commit is contained in:
洛梧藤 2024-10-30 23:49:39 +08:00 committed by GitHub
parent d4f45571b3
commit 77a4dcd70e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 13 additions and 22997 deletions

View File

@ -152,7 +152,7 @@ class Weibo(NewMessage):
try: try:
client = await self.ctx.get_client() client = await self.ctx.get_client()
weibo_info = await client.get( weibo_info = await client.get(
"https://m.weibo.cn/statuses/show", "https://m.weibo.cn/statuses/extend",
params={"id": weibo_id}, params={"id": weibo_id},
headers=_HEADER, headers=_HEADER,
) )
@ -166,7 +166,7 @@ class Weibo(NewMessage):
async def _parse_weibo(self, info: dict) -> Post: async def _parse_weibo(self, info: dict) -> Post:
if info["isLongText"] or info["pic_num"] > 9: if info["isLongText"] or info["pic_num"] > 9:
info["text"] = (await self._get_long_weibo(info["mid"]))["text"] info["text"] = (await self._get_long_weibo(info["mid"]))["longTextContent"]
parsed_text = self._get_text(info["text"]) parsed_text = self._get_text(info["text"])
raw_pics_list = info.get("pics", []) raw_pics_list = info.get("pics", [])
pic_urls = [img["large"]["url"] for img in raw_pics_list] pic_urls = [img["large"]["url"] for img in raw_pics_list]

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -45,7 +45,7 @@ async def test_fetch_new(weibo, dummy_user_subinfo):
from nonebot_bison.types import Target, SubUnit from nonebot_bison.types import Target, SubUnit
ak_list_router = respx.get("https://m.weibo.cn/api/container/getIndex?containerid=1076036279793937") ak_list_router = respx.get("https://m.weibo.cn/api/container/getIndex?containerid=1076036279793937")
detail_router = respx.get("https://m.weibo.cn/statuses/show?id=4649031014551911") detail_router = respx.get("https://m.weibo.cn/statuses/extend?id=4649031014551911")
ak_list_router.mock(return_value=Response(200, json=get_json("weibo_ak_list_0.json"))) ak_list_router.mock(return_value=Response(200, json=get_json("weibo_ak_list_0.json")))
detail_router.mock(return_value=Response(200, text=get_file("weibo_detail_4649031014551911"))) detail_router.mock(return_value=Response(200, text=get_file("weibo_detail_4649031014551911")))
image_cdn_router.mock(Response(200, content=b"")) image_cdn_router.mock(Response(200, content=b""))
@ -77,7 +77,7 @@ async def test_fetch_new(weibo, dummy_user_subinfo):
@pytest.mark.asyncio @pytest.mark.asyncio
@respx.mock @respx.mock
async def test_fetch_repost(weibo): async def test_fetch_repost(weibo):
repost_detail_router = respx.get("https://m.weibo.cn/statuses/show?id=4645748019299849") repost_detail_router = respx.get("https://m.weibo.cn/statuses/extend?id=4645748019299849")
repost_detail_router.mock(return_value=Response(200, text=get_file("weibo_detail_4645748019299849"))) repost_detail_router.mock(return_value=Response(200, text=get_file("weibo_detail_4645748019299849")))
image_cdn_router.mock(Response(200, content=b"")) image_cdn_router.mock(Response(200, content=b""))
raw_post = get_json("weibo_ak_list_1.json")["data"]["cards"][3] raw_post = get_json("weibo_ak_list_1.json")["data"]["cards"][3]
@ -121,7 +121,7 @@ async def test_fetch_repost(weibo):
@pytest.mark.asyncio @pytest.mark.asyncio
@respx.mock @respx.mock
async def test_video_cover(weibo): async def test_video_cover(weibo):
router = respx.get("https://m.weibo.cn/statuses/show?id=4645748019299849") router = respx.get("https://m.weibo.cn/statuses/extend?id=4645748019299849")
router.mock(return_value=Response(200, text=get_file("weibo_detail_4645748019299849"))) router.mock(return_value=Response(200, text=get_file("weibo_detail_4645748019299849")))
image_cdn_router.mock(Response(200, content=b"")) image_cdn_router.mock(Response(200, content=b""))
raw_post = get_json("weibo_ak_list_1.json")["data"]["cards"][0] raw_post = get_json("weibo_ak_list_1.json")["data"]["cards"][0]
@ -152,7 +152,7 @@ async def test_classification(weibo):
@pytest.mark.asyncio @pytest.mark.asyncio
@respx.mock @respx.mock
async def test_parse_long(weibo): async def test_parse_long(weibo):
detail_router = respx.get("https://m.weibo.cn/statuses/show?id=4645748019299849") detail_router = respx.get("https://m.weibo.cn/statuses/extend?id=4645748019299849")
detail_router.mock(return_value=Response(200, text=get_file("weibo_detail_4645748019299849"))) detail_router.mock(return_value=Response(200, text=get_file("weibo_detail_4645748019299849")))
raw_post = get_json("weibo_ak_list_1.json")["data"]["cards"][0] raw_post = get_json("weibo_ak_list_1.json")["data"]["cards"][0]
post = await weibo.parse(raw_post) post = await weibo.parse(raw_post)