一款女生自用的jx3api sdk,本仓库主要是为了整活儿,正经使用应该选择受姐姐的jx3api。
当前sdk功能列表有:
www.jx3api.com
的接口并获取响应pip install --no-cache -U jx3apifun
pip install --no-cache -U git+https://github.com/JX3API/jx3api-fun-py.git
sdk的函数名和jx3api
的入口对应,将/
转换成_
即可,比如:
data/active/calendar
handler.data_active_calendar()
注意
部分返回值的字段和python不兼容,做了以下处理:
class
的,均替换成 type
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底层使用websockets包,只提供异步接口,配合asyncio使用。
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
来设置日志记录器。
注意:
LoggerProtocol
协议,需要有 info
、debug
、warning
、error
4个接口。set_logger
接口来设置,但是为了满足协议,需要使用 logger_wrapper
进行转换自定义的日志实现例子如下:
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))