summaryrefslogtreecommitdiff
path: root/ATRI/plugins/bilibili_dynamic/api.py
blob: e660281cc6c6e61f9f9c678d163ea11c9c1eb944 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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 = {
            "User-Agent": "Mozilla/5.0",
        }

        try:
            resp = await request.get(url, params=params, headers=headers)
        except Exception:
            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)