From 59c923bbc3e91ad5a3482ec81c9192297ebbebe8 Mon Sep 17 00:00:00 2001
From: Kyomotoi <kyomotoiowo@gmail.com>
Date: Mon, 13 Jun 2022 19:37:34 +0800
Subject: =?UTF-8?q?=E2=99=BB=EF=B8=8F=20=E9=87=8D=E6=9E=84=E6=8F=92?=
 =?UTF-8?q?=E4=BB=B6:=20b=E7=AB=99=E5=8A=A8=E6=80=81=E8=AE=A2=E9=98=85?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ATRI/plugins/bilibili_dynamic/api.py | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100644 ATRI/plugins/bilibili_dynamic/api.py

(limited to 'ATRI/plugins/bilibili_dynamic/api.py')

diff --git a/ATRI/plugins/bilibili_dynamic/api.py b/ATRI/plugins/bilibili_dynamic/api.py
new file mode 100644
index 0000000..a455805
--- /dev/null
+++ b/ATRI/plugins/bilibili_dynamic/api.py
@@ -0,0 +1,36 @@
+from ATRI.utils import request
+from ATRI.exceptions import RequestError
+
+
+class API:
+    def __init__(self, uid: int):
+        self.uid = uid
+
+    async def _request(self, url: str, params: dict = dict()) -> dict:
+        headers = {
+            "Referer": "https://www.bilibili.com",
+            "User-Agent": "Mozilla/5.0",
+        }
+
+        try:
+            resp = await request.get(url, params=params, headers=headers)
+        except RequestError:
+            raise RequestError("Request failed!")
+
+        return resp.json()
+
+    async def get_user_info(self) -> dict:
+        url = "https://api.bilibili.com/x/space/acc/info"
+        params = {"mid": self.uid}
+        return await self._request(url, params)
+
+    async def get_user_dynamics(
+        self, offset: int = int(), need_top: bool = False
+    ) -> dict:
+        url = "https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/space_history"
+        params = {
+            "host_uid": self.uid,
+            "offset_dynamic_id": offset,
+            "need_top": 1 if need_top else 0,
+        }
+        return await self._request(url, params)
-- 
cgit v1.2.3