有什么新的内容在icodeapi v1.4.0中?
概述
支持了小图灵的三个新api:举报用户,举报评论,举报回复,这些功能已被集成在全新的
IcodeAPI.report
和AsyncIcodeAPI.report
方法中,
更新一个api:IcodeAPI.countMessages
和AsyncIcodeAPI.countMessages
, 用于统计当前未读信息数量和简要信息,
新增server.ServerPool.__excutor
属性,可以在ServerPool
实例化时传入一个进程执行器,
修复server.IcodeServer.CheckMessage
的checkRead
参数不生效的bug,
为server.IcodeServer
的所有监听事件加入了checkSame
参数,如果此参数为假,当检测到的信息是否与上次检测到的一致,那么就不会调用回调函数,
添加server.IcodeServer.__lastData
属性记录各个监听事件的上次检测到的数据,
将server.IcodeServer.running
改为私有属性,添加server.IcodeServer.stopRunning
方法,
新增tools.WorksCleaner
函数
新的举报API
小图灵最近更新了三个api,可以分别举报用户、评论和回复,这些功能已被集成在新的report方法中!
另外,我们对report方法的传参方式进行了改进。
from icodeapi import *
cookie = input('Enter your cookie: ')
api = IcodeAPI(cookie)
api.report(User, 'TEST', 1, 'lzy@ruozhi.fk') # 举报用户
api.report(Comment, 'TEST', 1, '114514') # 举报评论
api.report(Reply, 'TEST', 1, '114514') # 举报回复
获取当前未读消息
存在已久的count
api终于被加入了,现在可以使用IcodeAPI.countMessages
或AsyncIcodeAPI.countMessages
获取当前未读消息的数量。
传入进程执行器
现在server.ServerPool
在多进程并行时使用的进程执行器可以自定义,只需要在初始化时传入即可。
from icodeapi import AsyncIcodeAPI
from icodeapi.server import ServerPool
from concurrent.futures import ProcessPoolExecutor # 导入进程执行器
import asyncio
async def main():
tip = 'Enter your cookie:'
api = [AsyncIcodeAPI(input(tip)) for i in range(5)] # 生成用户
pool = ServerPool(executor = ProcessPoolExecutor(max_workers = 5)) # 传入自定义进程执行器
await pool.addAPI(*api)
await pool.RunServers() # 运行
await pool.closePool()
asyncio.run(main())
防止使用同样的数据重复进行操作
server.IcodeServer
中所有用于监听数据的API都添加了checkSame
参数,用于控制是否使用相同的数据进行操作。
如果为假,在检测到新的数据时,如果该数据与上次检测到的数据相同,将会取消此次自动操作。
from icodeapi import AsyncIcodeAPI
from icodeapi.server import IcodeServer, RunServer
cookie = input('Enter your cookie:')
api = AsyncIcodeAPI(cookie)
server = IcodeServer(api)
@server.CheckWork(workId = 'ae3782b77d3e4ce69572055ac76c7e73',
checkFunc = (lambda **x:x.get('detail').get('browseNum')%5==0),
checkSame = False)
def main(detail : dict, bot : IcodeServer):
bot.comment('ae3782b77d3e4ce69572055ac76c7e73',
f'该作品浏览量居然突破了惊人的{detail.get('browseNum')}斯国一捏!')
RunServer(server)
更加安全地停止服务器运行
server.IcodeServer.running
属性现在已被改为私有属性server.IcodeServer.__running
,如果想停止服务器的运行,可以使用新的APIserver.IcodeServer.stopRunning
from icodeapi import AsyncIcodeAPI
from icodeapi.server import IcodeServer, RunServer
cookie = input('Enter your cookie:')
api = AsyncIcodeAPI(cookie)
server = IcodeServer(api)
@server.CheckMessage()
def main(bot : IcodeServer):
bot.stopRunning() # 停止运行
RunServer(server)
批量删除作品
新的实用工具tools.WorkCleaner
被添加,可以用于按页批量删除作品。
from icodeapi import AsyncIcodeAPI
from icodeapi.tools import WorkCleaner
import asyncio
async def main():
cookie = input('Enter your cookie:')
api = AsyncIcodeAPI(cookie)
await api.login()
await WorkCleaner(api = api,
page = {1, 2, 3},
getNum = 15) # 删除1、2、3页的作品,每页15个
await api.closeClient()
asyncio.run(main())