From 840519baa1c0249a8c52488cb1946c1bee599ce6 Mon Sep 17 00:00:00 2001 From: Sichongzou <68594934+Sichongzou@users.noreply.github.com> Date: Wed, 18 May 2022 09:00:03 +0800 Subject: [PATCH 1/9] Update bilibili.py --- .../nonebot_bison/platform/bilibili.py | 61 ++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/src/plugins/nonebot_bison/platform/bilibili.py b/src/plugins/nonebot_bison/platform/bilibili.py index ad21a8a..3ccd7af 100644 --- a/src/plugins/nonebot_bison/platform/bilibili.py +++ b/src/plugins/nonebot_bison/platform/bilibili.py @@ -5,7 +5,7 @@ import httpx from ..post import Post from ..types import Category, RawPost, Tag, Target -from .platform import CategoryNotSupport, NewMessage +from .platform import CategoryNotSupport, NewMessage,StatusChange class Bilibili(NewMessage): @@ -144,3 +144,62 @@ class Bilibili(NewMessage): else: raise CategoryNotSupport(post_type) return Post("bilibili", text=text, url=url, pics=pic, target_name=target_name) + +class Bilibililive(StatusChange): +# Author : Sichongzou +# Date : 2022-5-18 8:54 +# Description : bilibili开播提醒 +# E-mail : 1557157806@qq.com + categories = {} + platform_name = "bilibililive" + enable_tag = True + enabled = True + is_common = True + schedule_type = "interval" + schedule_kw = {"seconds": 10} + name = "B站直播" + has_target = True + + async def get_target_name(self, target: Target) -> Optional[str]: + async with httpx.AsyncClient() as client: + res = await client.get( + "https://api.bilibili.com/x/space/acc/info", params={"mid": target} + ) + res_data = json.loads(res.text) + if res_data["code"]: + return None + return res_data["data"]["name"] + + async def get_status(self, target: Target): + async with httpx.AsyncClient() as client: + params = {"mid": target} + res = await client.get( + "https://api.bilibili.com/x/space/acc/info", + params=params, + timeout=4.0, + ) + res_dict = json.loads(res.text) + if res_dict["code"] == 0: + info={} + info["uid"]=res_dict["data"]["mid"] + info["uname"]=res_dict["data"]["name"] + info["live_state"]=res_dict["data"]["live_room"]["liveStatus"] + info["url"]=res_dict["data"]["live_room"]["url"] + info["title"]=res_dict["data"]["live_room"]["title"] + info["cover"]=res_dict["data"]["live_room"]["cover"] + return info + else: + return [] + + def compare_status(self, target: Target, old_status, new_status) -> list[RawPost]: + if(new_status["live_state"]!=old_status["live_state"] and new_status["live_state"]==1): + return [new_status] + else: + return[] + + async def parse(self, raw_post: RawPost) -> Post: + url=raw_post["url"] + pic=[raw_post["cover"]] + target_name=raw_post["uname"] + text=target_name+"老师的直播 开播啦!小伙伴们请务必速速来围观!" + return Post("bilibililive", text=text, url=url, pics=pic, target_name=target_name) From aa29c57d05c3b366b327fb7d2e32f9748950ada6 Mon Sep 17 00:00:00 2001 From: Sichongzou <68594934+Sichongzou@users.noreply.github.com> Date: Wed, 18 May 2022 09:02:13 +0800 Subject: [PATCH 2/9] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b9ed3db..527b317 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,7 @@ - 专栏 - 转发 - 纯文字 + - 开播提醒 - RSS - 富文本转换为纯文本 - 提取出所有图片 From 3204e84346594a51b44a5c6c365d7c0921999c3f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 18 May 2022 01:04:24 +0000 Subject: [PATCH 3/9] auto fix by pre-commit hooks --- .../nonebot_bison/platform/bilibili.py | 46 +++++++++++-------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/src/plugins/nonebot_bison/platform/bilibili.py b/src/plugins/nonebot_bison/platform/bilibili.py index 3ccd7af..0c543ff 100644 --- a/src/plugins/nonebot_bison/platform/bilibili.py +++ b/src/plugins/nonebot_bison/platform/bilibili.py @@ -5,7 +5,7 @@ import httpx from ..post import Post from ..types import Category, RawPost, Tag, Target -from .platform import CategoryNotSupport, NewMessage,StatusChange +from .platform import CategoryNotSupport, NewMessage, StatusChange class Bilibili(NewMessage): @@ -145,11 +145,12 @@ class Bilibili(NewMessage): raise CategoryNotSupport(post_type) return Post("bilibili", text=text, url=url, pics=pic, target_name=target_name) + class Bilibililive(StatusChange): -# Author : Sichongzou -# Date : 2022-5-18 8:54 -# Description : bilibili开播提醒 -# E-mail : 1557157806@qq.com + # Author : Sichongzou + # Date : 2022-5-18 8:54 + # Description : bilibili开播提醒 + # E-mail : 1557157806@qq.com categories = {} platform_name = "bilibililive" enable_tag = True @@ -180,26 +181,31 @@ class Bilibililive(StatusChange): ) res_dict = json.loads(res.text) if res_dict["code"] == 0: - info={} - info["uid"]=res_dict["data"]["mid"] - info["uname"]=res_dict["data"]["name"] - info["live_state"]=res_dict["data"]["live_room"]["liveStatus"] - info["url"]=res_dict["data"]["live_room"]["url"] - info["title"]=res_dict["data"]["live_room"]["title"] - info["cover"]=res_dict["data"]["live_room"]["cover"] + info = {} + info["uid"] = res_dict["data"]["mid"] + info["uname"] = res_dict["data"]["name"] + info["live_state"] = res_dict["data"]["live_room"]["liveStatus"] + info["url"] = res_dict["data"]["live_room"]["url"] + info["title"] = res_dict["data"]["live_room"]["title"] + info["cover"] = res_dict["data"]["live_room"]["cover"] return info else: return [] def compare_status(self, target: Target, old_status, new_status) -> list[RawPost]: - if(new_status["live_state"]!=old_status["live_state"] and new_status["live_state"]==1): + if ( + new_status["live_state"] != old_status["live_state"] + and new_status["live_state"] == 1 + ): return [new_status] else: - return[] - + return [] + async def parse(self, raw_post: RawPost) -> Post: - url=raw_post["url"] - pic=[raw_post["cover"]] - target_name=raw_post["uname"] - text=target_name+"老师的直播 开播啦!小伙伴们请务必速速来围观!" - return Post("bilibililive", text=text, url=url, pics=pic, target_name=target_name) + url = raw_post["url"] + pic = [raw_post["cover"]] + target_name = raw_post["uname"] + text = target_name + "老师的直播 开播啦!小伙伴们请务必速速来围观!" + return Post( + "bilibililive", text=text, url=url, pics=pic, target_name=target_name + ) From 63b72d9c5bf9968a3a164b4c3a12d2ff5ff0246f Mon Sep 17 00:00:00 2001 From: Azide Date: Mon, 23 May 2022 14:38:35 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86bilibili?= =?UTF-8?q?=E7=9B=B4=E6=92=AD=E7=9A=84=E5=8D=95=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nonebot_bison/platform/bilibili.py | 16 +-- .../platforms/static/bili_live_status-0.json | 114 ++++++++++++++++++ .../platforms/static/bili_live_status-1.json | 114 ++++++++++++++++++ tests/platforms/test_bilibili_live.py | 41 +++++++ 4 files changed, 277 insertions(+), 8 deletions(-) create mode 100644 tests/platforms/static/bili_live_status-0.json create mode 100644 tests/platforms/static/bili_live_status-1.json create mode 100644 tests/platforms/test_bilibili_live.py diff --git a/src/plugins/nonebot_bison/platform/bilibili.py b/src/plugins/nonebot_bison/platform/bilibili.py index 0c543ff..ae196e4 100644 --- a/src/plugins/nonebot_bison/platform/bilibili.py +++ b/src/plugins/nonebot_bison/platform/bilibili.py @@ -1,4 +1,5 @@ import json +from turtle import title from typing import Any, Optional import httpx @@ -152,13 +153,13 @@ class Bilibililive(StatusChange): # Description : bilibili开播提醒 # E-mail : 1557157806@qq.com categories = {} - platform_name = "bilibililive" + platform_name = "bilibili-live" enable_tag = True enabled = True is_common = True schedule_type = "interval" schedule_kw = {"seconds": 10} - name = "B站直播" + name = "Bilibili直播" has_target = True async def get_target_name(self, target: Target) -> Optional[str]: @@ -185,7 +186,7 @@ class Bilibililive(StatusChange): info["uid"] = res_dict["data"]["mid"] info["uname"] = res_dict["data"]["name"] info["live_state"] = res_dict["data"]["live_room"]["liveStatus"] - info["url"] = res_dict["data"]["live_room"]["url"] + info["room_id"] = res_dict["data"]["live_room"]["roomid"] info["title"] = res_dict["data"]["live_room"]["title"] info["cover"] = res_dict["data"]["live_room"]["cover"] return info @@ -202,10 +203,9 @@ class Bilibililive(StatusChange): return [] async def parse(self, raw_post: RawPost) -> Post: - url = raw_post["url"] + url = "https://live.bilibili.com/{}".format(raw_post["room_id"]) pic = [raw_post["cover"]] target_name = raw_post["uname"] - text = target_name + "老师的直播 开播啦!小伙伴们请务必速速来围观!" - return Post( - "bilibililive", text=text, url=url, pics=pic, target_name=target_name - ) + title = raw_post["title"] + text = "{} 直播中:\n{}\n\n小伙伴们速速前来围观!".format(target_name, title) + return Post(self.name, text=text, url=url, pics=pic, target_name=target_name) diff --git a/tests/platforms/static/bili_live_status-0.json b/tests/platforms/static/bili_live_status-0.json new file mode 100644 index 0000000..e907dc9 --- /dev/null +++ b/tests/platforms/static/bili_live_status-0.json @@ -0,0 +1,114 @@ +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "mid": 13164144, + "name": "魔法Zc目录", + "sex": "男", + "face": "http://i0.hdslb.com/bfs/face/a84fa10f90f7060d0336384954ee1cde7a8e9bc6.jpg", + "face_nft": 0, + "sign": "每日18:00~22:00欢乐直播!请勿在任何乌有相关内容中刷Zc,尊重角色;商务合作qq271374252", + "rank": 10000, + "level": 6, + "jointime": 0, + "moral": 0, + "silence": 0, + "coins": 0, + "fans_badge": true, + "fans_medal": { + "show": false, + "wear": false, + "medal": null + }, + "official": { + "role": 1, + "title": "bilibili 2021百大UP主、知名游戏UP主、直播高能主播", + "desc": "", + "type": 0 + }, + "vip": { + "type": 2, + "status": 1, + "due_date": 1702051200000, + "vip_pay_type": 0, + "theme_type": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 3399, + "name": "2233幻星集", + "image": "http://i0.hdslb.com/bfs/garb/item/20c07ded13498a5b12db99660c766ddd92ecfe31.png", + "expire": 0, + "image_enhance": "http://i0.hdslb.com/bfs/garb/item/20c07ded13498a5b12db99660c766ddd92ecfe31.png", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 1, + "name": "黄金殿堂", + "image": "http://i2.hdslb.com/bfs/face/82896ff40fcb4e7c7259cb98056975830cb55695.png", + "image_small": "http://i0.hdslb.com/bfs/face/627e342851dfda6fe7380c2fa0cbd7fae2e61533.png", + "level": "稀有勋章", + "condition": "单个自制视频总播放数\u003e=100万" + }, + "user_honour_info": { + "mid": 0, + "colour": null, + "tags": [] + }, + "is_followed": true, + "top_photo": "http://i2.hdslb.com/bfs/space/853fea2728651588a2cdef0a1e586bcefff8e3d8.png", + "theme": {}, + "sys_notice": {}, + "live_room": { + "roomStatus": 1, + "liveStatus": 0, + "url": "https://live.bilibili.com/3044248?broadcast_type=0\u0026is_room_feed=1", + "title": "【Zc】早朝危机合约!", + "cover": "http://i0.hdslb.com/bfs/live/new_room_cover/cf7d4d3b2f336c6dba299644c3af952c5db82612.jpg", + "roomid": 3044248, + "roundStatus": 1, + "broadcast_type": 0, + "watched_show": { + "switch": true, + "num": 13753, + "text_small": "1.3万", + "text_large": "1.3万人看过", + "icon": "https://i0.hdslb.com/bfs/live/a725a9e61242ef44d764ac911691a7ce07f36c1d.png", + "icon_location": "", + "icon_web": "https://i0.hdslb.com/bfs/live/8d9d0f33ef8bf6f308742752d13dd0df731df19c.png" + } + }, + "birthday": "07-21", + "school": { + "name": "" + }, + "profession": { + "name": "", + "department": "", + "title": "", + "is_show": 0 + }, + "tags": [ + "评论区UP主", + "目标是星辰大海" + ], + "series": { + "user_upgrade_status": 3, + "show_upgrade_window": false + }, + "is_senior_member": 1 + } +} \ No newline at end of file diff --git a/tests/platforms/static/bili_live_status-1.json b/tests/platforms/static/bili_live_status-1.json new file mode 100644 index 0000000..9d0d02f --- /dev/null +++ b/tests/platforms/static/bili_live_status-1.json @@ -0,0 +1,114 @@ +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "mid": 13164144, + "name": "魔法Zc目录", + "sex": "男", + "face": "http://i0.hdslb.com/bfs/face/a84fa10f90f7060d0336384954ee1cde7a8e9bc6.jpg", + "face_nft": 0, + "sign": "每日18:00~22:00欢乐直播!请勿在任何乌有相关内容中刷Zc,尊重角色;商务合作qq271374252", + "rank": 10000, + "level": 6, + "jointime": 0, + "moral": 0, + "silence": 0, + "coins": 0, + "fans_badge": true, + "fans_medal": { + "show": false, + "wear": false, + "medal": null + }, + "official": { + "role": 1, + "title": "bilibili 2021百大UP主、知名游戏UP主、直播高能主播", + "desc": "", + "type": 0 + }, + "vip": { + "type": 2, + "status": 1, + "due_date": 1702051200000, + "vip_pay_type": 0, + "theme_type": 0, + "label": { + "path": "", + "text": "年度大会员", + "label_theme": "annual_vip", + "text_color": "#FFFFFF", + "bg_style": 1, + "bg_color": "#FB7299", + "border_color": "" + }, + "avatar_subscript": 1, + "nickname_color": "#FB7299", + "role": 3, + "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" + }, + "pendant": { + "pid": 3399, + "name": "2233幻星集", + "image": "http://i0.hdslb.com/bfs/garb/item/20c07ded13498a5b12db99660c766ddd92ecfe31.png", + "expire": 0, + "image_enhance": "http://i0.hdslb.com/bfs/garb/item/20c07ded13498a5b12db99660c766ddd92ecfe31.png", + "image_enhance_frame": "" + }, + "nameplate": { + "nid": 1, + "name": "黄金殿堂", + "image": "http://i2.hdslb.com/bfs/face/82896ff40fcb4e7c7259cb98056975830cb55695.png", + "image_small": "http://i0.hdslb.com/bfs/face/627e342851dfda6fe7380c2fa0cbd7fae2e61533.png", + "level": "稀有勋章", + "condition": "单个自制视频总播放数\u003e=100万" + }, + "user_honour_info": { + "mid": 0, + "colour": null, + "tags": [] + }, + "is_followed": true, + "top_photo": "http://i2.hdslb.com/bfs/space/853fea2728651588a2cdef0a1e586bcefff8e3d8.png", + "theme": {}, + "sys_notice": {}, + "live_room": { + "roomStatus": 1, + "liveStatus": 1, + "url": "https://live.bilibili.com/3044248?broadcast_type=0\u0026is_room_feed=1", + "title": "【Zc】早朝危机合约!", + "cover": "http://i0.hdslb.com/bfs/live/new_room_cover/cf7d4d3b2f336c6dba299644c3af952c5db82612.jpg", + "roomid": 3044248, + "roundStatus": 1, + "broadcast_type": 0, + "watched_show": { + "switch": true, + "num": 13753, + "text_small": "1.3万", + "text_large": "1.3万人看过", + "icon": "https://i0.hdslb.com/bfs/live/a725a9e61242ef44d764ac911691a7ce07f36c1d.png", + "icon_location": "", + "icon_web": "https://i0.hdslb.com/bfs/live/8d9d0f33ef8bf6f308742752d13dd0df731df19c.png" + } + }, + "birthday": "07-21", + "school": { + "name": "" + }, + "profession": { + "name": "", + "department": "", + "title": "", + "is_show": 0 + }, + "tags": [ + "评论区UP主", + "目标是星辰大海" + ], + "series": { + "user_upgrade_status": 3, + "show_upgrade_window": false + }, + "is_senior_member": 1 + } +} \ No newline at end of file diff --git a/tests/platforms/test_bilibili_live.py b/tests/platforms/test_bilibili_live.py new file mode 100644 index 0000000..ccdb78f --- /dev/null +++ b/tests/platforms/test_bilibili_live.py @@ -0,0 +1,41 @@ +from datetime import datetime + +import feedparser +import pytest +import respx +from httpx import Response +from nonebug.app import App +from pytz import timezone + +from .utils import get_file, get_json + + +@pytest.fixture +def bili_live(app: App): + from nonebot_bison.platform import platform_manager + + return platform_manager["bilibili-live"] + + +@pytest.mark.asyncio +@respx.mock +async def test_fetch_bilibili_live_status(bili_live, dummy_user_subinfo): + bili_live_router = respx.get( + "https://api.bilibili.com/x/space/acc/info?mid=13164144" + ) + bili_live_router.mock( + return_value=Response(200, json=get_json("bili_live_status-0.json")) + ) + target = "13164144" + res = await bili_live.fetch_new_post(target, [dummy_user_subinfo]) + assert bili_live_router.called + assert len(res) == 0 + bili_live_router.mock( + return_value=Response(200, json=get_json("bili_live_status-1.json")) + ) + res2 = await bili_live.fetch_new_post(target, [dummy_user_subinfo]) + post = res2[0][1][0] + assert post.target_type == "Bilibili直播" + assert post.text == "魔法Zc目录 直播中:\n【Zc】早朝危机合约!\n\n小伙伴们速速前来围观!" + assert post.url == "https://live.bilibili.com/3044248" + assert post.target_name == "魔法Zc目录" From e375a000ee7e3ee55d0bc53a69936989eb55f283 Mon Sep 17 00:00:00 2001 From: Azide Date: Mon, 23 May 2022 14:54:05 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E7=AE=80=E5=8C=96=E5=8D=95=E5=85=83?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=AD=A5=E9=AA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../platforms/static/bili_live_status-1.json | 114 ------------------ ...ve_status-0.json => bili_live_status.json} | 0 tests/platforms/test_bilibili_live.py | 11 +- 3 files changed, 5 insertions(+), 120 deletions(-) delete mode 100644 tests/platforms/static/bili_live_status-1.json rename tests/platforms/static/{bili_live_status-0.json => bili_live_status.json} (100%) diff --git a/tests/platforms/static/bili_live_status-1.json b/tests/platforms/static/bili_live_status-1.json deleted file mode 100644 index 9d0d02f..0000000 --- a/tests/platforms/static/bili_live_status-1.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "code": 0, - "message": "0", - "ttl": 1, - "data": { - "mid": 13164144, - "name": "魔法Zc目录", - "sex": "男", - "face": "http://i0.hdslb.com/bfs/face/a84fa10f90f7060d0336384954ee1cde7a8e9bc6.jpg", - "face_nft": 0, - "sign": "每日18:00~22:00欢乐直播!请勿在任何乌有相关内容中刷Zc,尊重角色;商务合作qq271374252", - "rank": 10000, - "level": 6, - "jointime": 0, - "moral": 0, - "silence": 0, - "coins": 0, - "fans_badge": true, - "fans_medal": { - "show": false, - "wear": false, - "medal": null - }, - "official": { - "role": 1, - "title": "bilibili 2021百大UP主、知名游戏UP主、直播高能主播", - "desc": "", - "type": 0 - }, - "vip": { - "type": 2, - "status": 1, - "due_date": 1702051200000, - "vip_pay_type": 0, - "theme_type": 0, - "label": { - "path": "", - "text": "年度大会员", - "label_theme": "annual_vip", - "text_color": "#FFFFFF", - "bg_style": 1, - "bg_color": "#FB7299", - "border_color": "" - }, - "avatar_subscript": 1, - "nickname_color": "#FB7299", - "role": 3, - "avatar_subscript_url": "http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png" - }, - "pendant": { - "pid": 3399, - "name": "2233幻星集", - "image": "http://i0.hdslb.com/bfs/garb/item/20c07ded13498a5b12db99660c766ddd92ecfe31.png", - "expire": 0, - "image_enhance": "http://i0.hdslb.com/bfs/garb/item/20c07ded13498a5b12db99660c766ddd92ecfe31.png", - "image_enhance_frame": "" - }, - "nameplate": { - "nid": 1, - "name": "黄金殿堂", - "image": "http://i2.hdslb.com/bfs/face/82896ff40fcb4e7c7259cb98056975830cb55695.png", - "image_small": "http://i0.hdslb.com/bfs/face/627e342851dfda6fe7380c2fa0cbd7fae2e61533.png", - "level": "稀有勋章", - "condition": "单个自制视频总播放数\u003e=100万" - }, - "user_honour_info": { - "mid": 0, - "colour": null, - "tags": [] - }, - "is_followed": true, - "top_photo": "http://i2.hdslb.com/bfs/space/853fea2728651588a2cdef0a1e586bcefff8e3d8.png", - "theme": {}, - "sys_notice": {}, - "live_room": { - "roomStatus": 1, - "liveStatus": 1, - "url": "https://live.bilibili.com/3044248?broadcast_type=0\u0026is_room_feed=1", - "title": "【Zc】早朝危机合约!", - "cover": "http://i0.hdslb.com/bfs/live/new_room_cover/cf7d4d3b2f336c6dba299644c3af952c5db82612.jpg", - "roomid": 3044248, - "roundStatus": 1, - "broadcast_type": 0, - "watched_show": { - "switch": true, - "num": 13753, - "text_small": "1.3万", - "text_large": "1.3万人看过", - "icon": "https://i0.hdslb.com/bfs/live/a725a9e61242ef44d764ac911691a7ce07f36c1d.png", - "icon_location": "", - "icon_web": "https://i0.hdslb.com/bfs/live/8d9d0f33ef8bf6f308742752d13dd0df731df19c.png" - } - }, - "birthday": "07-21", - "school": { - "name": "" - }, - "profession": { - "name": "", - "department": "", - "title": "", - "is_show": 0 - }, - "tags": [ - "评论区UP主", - "目标是星辰大海" - ], - "series": { - "user_upgrade_status": 3, - "show_upgrade_window": false - }, - "is_senior_member": 1 - } -} \ No newline at end of file diff --git a/tests/platforms/static/bili_live_status-0.json b/tests/platforms/static/bili_live_status.json similarity index 100% rename from tests/platforms/static/bili_live_status-0.json rename to tests/platforms/static/bili_live_status.json diff --git a/tests/platforms/test_bilibili_live.py b/tests/platforms/test_bilibili_live.py index ccdb78f..52648fd 100644 --- a/tests/platforms/test_bilibili_live.py +++ b/tests/platforms/test_bilibili_live.py @@ -20,19 +20,18 @@ def bili_live(app: App): @pytest.mark.asyncio @respx.mock async def test_fetch_bilibili_live_status(bili_live, dummy_user_subinfo): + mock_bili_live_status = get_json("bili_live_status.json") + bili_live_router = respx.get( "https://api.bilibili.com/x/space/acc/info?mid=13164144" ) - bili_live_router.mock( - return_value=Response(200, json=get_json("bili_live_status-0.json")) - ) + bili_live_router.mock(return_value=Response(200, json=mock_bili_live_status)) target = "13164144" res = await bili_live.fetch_new_post(target, [dummy_user_subinfo]) assert bili_live_router.called assert len(res) == 0 - bili_live_router.mock( - return_value=Response(200, json=get_json("bili_live_status-1.json")) - ) + mock_bili_live_status["data"]["live_room"]["liveStatus"] = 1 + bili_live_router.mock(return_value=Response(200, json=mock_bili_live_status)) res2 = await bili_live.fetch_new_post(target, [dummy_user_subinfo]) post = res2[0][1][0] assert post.target_type == "Bilibili直播" From 526742bbdf692d2c8059cb20bcc9a09781ac48cc Mon Sep 17 00:00:00 2001 From: Azide Date: Tue, 24 May 2022 13:24:30 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9README=E4=B8=ADbilibili-l?= =?UTF-8?q?ive=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 527b317..6bd3fcb 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,7 @@ - 专栏 - 转发 - 纯文字 +- Bilibili 直播 - 开播提醒 - RSS - 富文本转换为纯文本 From 88fd2bf456c442e89b432c87f0f3440912941513 Mon Sep 17 00:00:00 2001 From: Azide Date: Wed, 25 May 2022 00:24:22 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E7=B2=BE=E7=AE=80bilibili-live=E7=9A=84?= =?UTF-8?q?=E6=8E=A8=E9=80=81=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugins/nonebot_bison/platform/bilibili.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/plugins/nonebot_bison/platform/bilibili.py b/src/plugins/nonebot_bison/platform/bilibili.py index ae196e4..151196c 100644 --- a/src/plugins/nonebot_bison/platform/bilibili.py +++ b/src/plugins/nonebot_bison/platform/bilibili.py @@ -207,5 +207,11 @@ class Bilibililive(StatusChange): pic = [raw_post["cover"]] target_name = raw_post["uname"] title = raw_post["title"] - text = "{} 直播中:\n{}\n\n小伙伴们速速前来围观!".format(target_name, title) - return Post(self.name, text=text, url=url, pics=pic, target_name=target_name) + return Post( + self.name, + text=title, + url=url, + pics=pic, + target_name=target_name, + compress=True, + ) From 9be070a578be0682c4f0d524fcb586053a209eca Mon Sep 17 00:00:00 2001 From: AzideCupric Date: Thu, 26 May 2022 11:00:03 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E4=BF=AE=E6=AD=A3test=5Fbilibili=5Flive?= =?UTF-8?q?=E7=9A=84=E5=8C=B9=E9=85=8D=E6=96=87=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/platforms/test_bilibili_live.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/platforms/test_bilibili_live.py b/tests/platforms/test_bilibili_live.py index 52648fd..130c8dc 100644 --- a/tests/platforms/test_bilibili_live.py +++ b/tests/platforms/test_bilibili_live.py @@ -35,6 +35,8 @@ async def test_fetch_bilibili_live_status(bili_live, dummy_user_subinfo): res2 = await bili_live.fetch_new_post(target, [dummy_user_subinfo]) post = res2[0][1][0] assert post.target_type == "Bilibili直播" - assert post.text == "魔法Zc目录 直播中:\n【Zc】早朝危机合约!\n\n小伙伴们速速前来围观!" + assert post.text == "【Zc】早朝危机合约!" assert post.url == "https://live.bilibili.com/3044248" assert post.target_name == "魔法Zc目录" + assert post.pics == ["http://i0.hdslb.com/bfs/live/new_room_cover/cf7d4d3b2f336c6dba299644c3af952c5db82612.jpg"] + assert post.compress == True From f89ae85dccd8bfb73ff14d6add2c1555021c2996 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 26 May 2022 03:11:06 +0000 Subject: [PATCH 9/9] auto fix by pre-commit hooks --- tests/platforms/test_bilibili_live.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/platforms/test_bilibili_live.py b/tests/platforms/test_bilibili_live.py index 130c8dc..53885ef 100644 --- a/tests/platforms/test_bilibili_live.py +++ b/tests/platforms/test_bilibili_live.py @@ -38,5 +38,7 @@ async def test_fetch_bilibili_live_status(bili_live, dummy_user_subinfo): assert post.text == "【Zc】早朝危机合约!" assert post.url == "https://live.bilibili.com/3044248" assert post.target_name == "魔法Zc目录" - assert post.pics == ["http://i0.hdslb.com/bfs/live/new_room_cover/cf7d4d3b2f336c6dba299644c3af952c5db82612.jpg"] + assert post.pics == [ + "http://i0.hdslb.com/bfs/live/new_room_cover/cf7d4d3b2f336c6dba299644c3af952c5db82612.jpg" + ] assert post.compress == True