Skip to content

feat(parser): use the vx twitter API to get the full content.#468

Merged
fllesser merged 4 commits intomasterfrom
feat/x/vxapi
Feb 21, 2026
Merged

feat(parser): use the vx twitter API to get the full content.#468
fllesser merged 4 commits intomasterfrom
feat/x/vxapi

Conversation

@fllesser
Copy link
Owner

No description provided.

@github-actions github-actions bot added the enhancement New feature or request label Feb 21, 2026
@codecov
Copy link

codecov bot commented Feb 21, 2026

❌ 4 Tests Failed:

Tests completed Failed Passed Skipped
40 4 36 5
View the top 3 failed test(s) by shortest run time
tests.parsers.test_twitter::test_video
Stack Traces | 0.075s run time
tests/parsers/test_twitter.py:32: in test_video
    await asyncio.gather(*[parse_video(url) for url in urls])
tests/parsers/test_twitter.py:23: in parse_video
    assert result.title, "标题为空"
E   AssertionError: 标题为空
E   assert None
E    +  where None = platform: 小蓝鸟, timestamp: 1742824800, title: None, text: Don’t miss the (Lucky) Landing.\n\nKeep your eyes peeled. OG Season 3 launches tomorrow., url: None, author: Author(name=Fortnite, avatar_task=download_img | https://pbs.twimg..../profile_images/2023411687844622337/aDs2_-48_normal.jpg, done=False), contents: [VideoContent(task=download_video | https://video.twimg..../avc1/1280x720/h6DPvh41-zCUx_5D.mp4, done=False, cover=task=download_img | https://pbs.twimg.com/media/GmxZe5AWwAEuoiK.jpg, done=False)], extra: {}, repost: <<<<<<<None>>>>>>, render_image: None.title
tests.parsers.test_bilibili::test_dynamic
Stack Traces | 0.796s run time
tests/parsers/test_bilibili.py:87: in test_dynamic
    await asyncio.gather(*[test_parse_dynamic(dynamic_url) for dynamic_url in dynamic_urls])
tests/parsers/test_bilibili.py:76: in test_parse_dynamic
    result = await parser.parse_dynamic_or_opus(dynamic_id)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../parsers/bilibili/__init__.py:167: in parse_dynamic_or_opus
    return await self._parse_bilibli_api_opus(dynamic.turn_to_opus())
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../parsers/bilibili/__init__.py:196: in _parse_bilibli_api_opus
    opus_info = await bili_opus.get_info()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.14.../site-packages/bilibili_api/opus.py:102: in get_info
    await Api(**api, credential=self.credential)
.venv/lib/python3.14.../bilibili_api/utils/network.py:2385: in result
    return await self.request()
           ^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.14.../bilibili_api/utils/network.py:2375: in request
    raise e
.venv/lib/python3.14.../bilibili_api/utils/network.py:2368: in request
    return await self._request(raw=raw, byte=byte)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.14.../bilibili_api/utils/network.py:2334: in _request
    ret = self._process_response(resp=resp, raw=raw)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.venv/lib/python3.14.../bilibili_api/utils/network.py:2304: in _process_response
    raise ResponseCodeException(code, msg, resp_data)
E   bilibili_api.exceptions.ResponseCodeException.ResponseCodeException: 接口返回错误代码:-352,信息:-352。
E   {'code': -352, 'message': '-352', 'ttl': 1}
tests.parsers.test_weibo::test_repost
Stack Traces | 0.901s run time
tests/parsers/test_weibo.py:64: in test_repost
    await asyncio.gather(*[parse_repost(url) for url in urls])
tests/parsers/test_weibo.py:49: in parse_repost
    parse_result = await parser.parse(keyword, searched)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../nonebot_plugin_parser/parsers/base.py:87: in parse
    return await self._handlers[keyword](self, searched)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../parsers/weibo/__init__.py:50: in _parse_m_weibo_cn
    return await self.parse_weibo_id(wid)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../parsers/weibo/__init__.py:198: in parse_weibo_id
    weibo_data = common.decoder.decode(response.content).data
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E   msgspec.ValidationError: Object missing required field `data`
tests.parsers.test_weibo::test_text
Stack Traces | 0.948s run time
tests/parsers/test_weibo.py:116: in test_text
    await asyncio.gather(*[parse_text(url) for url in urls])
tests/parsers/test_weibo.py:110: in parse_text
    result = await parser.parse(keyword, searched)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../nonebot_plugin_parser/parsers/base.py:87: in parse
    return await self._handlers[keyword](self, searched)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../parsers/weibo/__init__.py:50: in _parse_m_weibo_cn
    return await self.parse_weibo_id(wid)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.../parsers/weibo/__init__.py:198: in parse_weibo_id
    weibo_data = common.decoder.decode(response.content).data
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E   msgspec.ValidationError: Object missing required field `data`

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@github-actions
Copy link

github-actions bot commented Feb 21, 2026

类型 PIL 耗时(秒) HTML 耗时(秒) 渲染所用图片总大小(MB) PIL 导出图片大小(MB) HTML 导出图片大小(MB)
微博视频2 0.01282 0.93313 0.01280 0.03541 0.17206
微博视频 0.01568 0.93855 0.01280 0.03432 0.17000
微博纯文2 0.03540 0.99060 0.00605 0.12023 0.28607
微博转发纯文 0.06953 1.13390 0.01382 0.24414 0.40196
微博转发(横图) 0.19282 1.36728 1.26621 0.48412 1.43761
哔哩哔哩动态 0.26940 3.04853 0.01244 0.18458 0.41459
微博转发(竖图) 0.28823 2.10546 1.33334 0.41583 2.48094
微博图集(超过9张) 0.30556 1.23718 1.01493 0.31695 0.68635
微博图集(3张) 0.32360 1.11656 2.73813 0.34359 0.93089
微博图集(2张) 0.33502 1.18421 4.88308 0.64458 1.68558
微博图集(4张) 0.40646 1.59058 2.34023 0.72816 1.69757
微博图集(9张) 1.17125 1.87680 10.98936 0.98579 2.37885

@fllesser fllesser merged commit a32a9e8 into master Feb 21, 2026
16 of 17 checks passed
@fllesser fllesser deleted the feat/x/vxapi branch February 21, 2026 11:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant