🐛 处理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:
AzideCupric 2023-09-04 20:43:51 +08:00 committed by GitHub
parent fe214f717b
commit 3039ba7bf9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 1 deletions

View File

@ -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)

View File

@ -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])