mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2025-06-02 09:26:12 +08:00
🐛 处理topic_info字段缺失的问题 (#354)
* 🐛 处理topic_info字段缺失的问题 * ✅ 补充测试 * ♻️ dict get 默认为 None Co-authored-by: felinae98 <731499577@qq.com> * ♻️ 原地tp? Co-authored-by: felinae98 <731499577@qq.com> --------- Co-authored-by: felinae98 <731499577@qq.com>
This commit is contained in:
parent
fe214f717b
commit
3039ba7bf9
@ -123,7 +123,11 @@ class Bilibili(NewMessage):
|
||||
return self._do_get_category(post_type)
|
||||
|
||||
def get_tags(self, raw_post: RawPost) -> list[Tag]:
|
||||
return [*(tp["topic_name"] for tp in raw_post["display"]["topic_info"]["topic_details"])]
|
||||
# FIXME: 更深的原因可能是返回格式的变动,需要进一步确认
|
||||
if topic_info := raw_post["display"].get("topic_info"):
|
||||
return [tp["topic_name"] for tp in topic_info["topic_details"]]
|
||||
|
||||
return []
|
||||
|
||||
def _text_process(self, dynamic: str, desc: str, title: str) -> str:
|
||||
similarity = 1.0 if len(dynamic) == 0 or len(desc) == 0 else text_similarity(dynamic, desc)
|
||||
|
@ -40,6 +40,36 @@ def without_dynamic(app: App):
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_tag_without_topic_info(bilibili, bing_dy_list):
|
||||
simple_raw_post = {
|
||||
"display": {
|
||||
"topic_info": {
|
||||
"topic_details": [
|
||||
{
|
||||
"topic_name": "可露希尔的秘密档案",
|
||||
},
|
||||
{
|
||||
"topic_name": "罗德岛相簿",
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
simple_raw_post_without_topic_info = {
|
||||
"display": {
|
||||
"damedane": "dameyo",
|
||||
},
|
||||
}
|
||||
|
||||
res1 = bilibili.get_tags(simple_raw_post)
|
||||
assert res1 == ["可露希尔的秘密档案", "罗德岛相簿"]
|
||||
|
||||
res2 = bilibili.get_tags(simple_raw_post_without_topic_info)
|
||||
assert res2 == []
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_video_forward(bilibili, bing_dy_list):
|
||||
post = await bilibili.parse(bing_dy_list[1])
|
||||
|
Loading…
x
Reference in New Issue
Block a user