mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2025-06-05 19:36:43 +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)
|
return self._do_get_category(post_type)
|
||||||
|
|
||||||
def get_tags(self, raw_post: RawPost) -> list[Tag]:
|
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:
|
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)
|
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
|
@pytest.mark.asyncio
|
||||||
async def test_video_forward(bilibili, bing_dy_list):
|
async def test_video_forward(bilibili, bing_dy_list):
|
||||||
post = await bilibili.parse(bing_dy_list[1])
|
post = await bilibili.parse(bing_dy_list[1])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user