From f6a816a71627f3ec9d82b650ef310ab629603b9e Mon Sep 17 00:00:00 2001
From: felinae98 <731499577@qq.com>
Date: Fri, 5 Aug 2022 23:15:53 +0800
Subject: [PATCH] update bilibili-bangumi parser

---
 src/plugins/nonebot_bison/platform/bilibili.py | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/src/plugins/nonebot_bison/platform/bilibili.py b/src/plugins/nonebot_bison/platform/bilibili.py
index f5acf43..3903c0c 100644
--- a/src/plugins/nonebot_bison/platform/bilibili.py
+++ b/src/plugins/nonebot_bison/platform/bilibili.py
@@ -46,10 +46,8 @@ class Bilibili(NewMessage):
     async def parse_target(self, target_text: str) -> Target:
         if re.match(r"\d+", target_text):
             return Target(target_text)
-        elif match := re.match(
-            r"(?:https?://)?space\.bilibili\.com/(\d+)", target_text
-        ):
-            return Target(match.group(1))
+        elif m := re.match(r"(?:https?://)?space\.bilibili\.com/(\d+)", target_text):
+            return Target(m.group(1))
         else:
             raise self.ParseTargetException()
 
@@ -241,6 +239,7 @@ class BilibiliBangumi(StatusChange):
     scheduler_class = "bilibili.com"
     name = "Bilibili剧集"
     has_target = True
+    parse_target_promot = "请输入剧集主页"
 
     _url = "https://api.bilibili.com/pgc/review/user"
 
@@ -252,6 +251,17 @@ class BilibiliBangumi(StatusChange):
                 return None
             return res_data["result"]["media"]["title"]
 
+    async def parse_target(self, target_string: str) -> Target:
+        if re.match(r"\d+", target_string):
+            return Target(target_string)
+        elif m := re.match(r"md(\d+)", target_string):
+            return Target(m.group(1))
+        elif m := re.match(
+            r"(?:https?://)?www\.bilibili\.com/bangumi/media/md(\d+)/", target_string
+        ):
+            return Target(m.group(1))
+        raise self.ParseTargetException()
+
     async def get_status(self, target: Target):
         async with http_client() as client:
             res = await client.get(