JX3API / jx3api-fun-py

女生自用jx3api sdk for python
https://www.jx3api.com
MIT License
6 stars 1 forks source link

Jx3api for fun

一款女生自用的jx3api sdk,本仓库主要是为了整活儿,正经使用应该选择受姐姐的jx3api

功能

当前sdk功能列表有:

安装

pypi

pip install --no-cache -U jx3apifun

github(不推荐)

pip install --no-cache -U git+https://github.com/JX3API/jx3api-fun-py.git

使用说明

sdk的函数名和jx3api的入口对应,将/转换成_即可,比如:

注意

部分返回值的字段和python不兼容,做了以下处理:

初始化(设置token和ticket)

token和ticket不是必须的,但是访问高级服务需要

from jx3apifun import set_token, set_ticket, set_ws_token

set_token("token")       # 设置api访问的token
set_ticket("ticket")     # 设置推蓝ticket
set_ws_token("ws token") # 设置websocket服务的token

同步接口

from jx3apifun import get_sync_handler

handler = get_sync_handler()

handler.active_calendar(server="梦江南")

异步接口

from jx3apifun import get_async_handler

handler = get_async_handler()

await handler.active_calendar(server="梦江南")

Websocket接口

websocket底层使用websockets包,只提供异步接口,配合asyncio使用。

连接websocket

from jx3apifun import get_websocket_handler

handler = get_websocket_handler()

await handler.start_connect()

断开连接

from jx3apifun import get_websocket_handler

handler = get_websocket_handler()

await handler.close_connect()

调用接口

复用websocket通信来查询接口,需要先连接ws才行。

from jx3apifun import get_websocket_handler

handler = get_websocket_handler()

await handler.active_calendar(server="梦江南")

注册事件

注册websocket事件

from jx3apifun import get_websocket_handler
from jx3apifun.websocket.event import EventQiyu, EventType, EventModel

handler = get_websocket_handler()

# 注册奇遇事件
@handler.register_event(EventType.Qiyu)
async def _(event: EventQiyu)-> None:
    # do something
    pass

# 注册全部事件
@handler.register_event(EventType.All)
async def _(event: EventModel)-> None:
    # do something
    pass

注意:

日志模块

sdk默认不提供日志打印,如果想要查看模块的日志信息,可以自己实现满足 LoggerProtocol 的logger,并使用接口 set_logger 来设置日志记录器。

注意:

自定义的日志实现例子如下:

from jx3apifun import set_logger

class ConsoleLogger:

    def info(self, message: str, *args, **kwargs) -> None:
        """
        信息日志
        """
        print(f"[INFO] {message}")

    def debug(self, message: str, *args, **kwargs) -> None:
        """
        调试日志
        """
        print(f"[DEBUG] {message}")

    def warning(self, message: str, *args, **kwargs) -> None:
        """
        警告日志
        """
        print(f"[WARNING] {message}")

    def error(self, message: str, *args, **kwargs) -> None:
        """
        错误日志
        """
        print(f"[ERROR] {message}")

logger = ConsoleLogger()
set_logger(logger)

如果使用logging或者loguru,则可以是以下方式方式:

from jx3apifun import set_logger, logger_wrapper

# logging
import logging

logger = logging.getLogger("xxx")
set_logger(logger_wrapper(logger))

# loguru
from loguru import logger

set_logger(logger_wrapper(logger))