Metadata-Version: 2.1
Name: dynamicadaptor
Version: 0.1.8
Summary: 
Author: DMC
Author-email: lzxder@outlook.com
Requires-Python: >=3.8.0,<4.0.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: loguru (>=0.6.0,<0.7.0)
Requires-Dist: pydantic (>=1.10.4,<2.0.0)
Description-Content-Type: text/markdown


# DynamicAdaptor
-------------

用于将bilibili的grpc动态和web动态转换成特定的数据类型


### 原理说明
将grpc数据转换成json数据，之后使用pydantic进行信息摘要。
web端的json数据同理


### 下载安装
``` xml
pip install dynamicadaptor
```

### 使用方法

```python

from google.protobuf.json_format import MessageToDict
from dynamicadaptor.DynamicConversion import formate_message
from bilirpc.api import get_dy_detail
import asyncio
import httpx


# 如果数据是grpc返回的数据，则需要转换成json数据
async def sample1():
    dynamic_grpc = await get_dy_detail("746530608345251842")
    dynamic: dict = MessageToDict(dynamic_grpc[0])
    dynamic_formate =await formate_message("grpc", dynamic)
    print(dynamic_formate)


asyncio.run(sample1())


# 如果是web返回的数据
async def sample2():
    url = "https://api.bilibili.com/x/polymer/web-dynamic/v1/detail?timezone_offset=-480&id=746530608345251842"
    headers = {
        "Referer": "https://t.bilibili.com/746530608345251842"
    }
    result = httpx.get(url, headers=headers).json()
    dynamic_formate =await formate_message("web", result["data"]["item"])
    print(dynamic_formate)


asyncio.run(sample2())




```



## License
GPL

