跳转至

有什么新的内容在icodeapi v1.4.0中?

概述

支持了小图灵的三个新api:举报用户,举报评论,举报回复,这些功能已被集成在全新的IcodeAPI.reportAsyncIcodeAPI.report方法中,
更新一个api:IcodeAPI.countMessagesAsyncIcodeAPI.countMessages, 用于统计当前未读信息数量和简要信息,
新增server.ServerPool.__excutor属性,可以在ServerPool实例化时传入一个进程执行器,
修复server.IcodeServer.CheckMessagecheckRead参数不生效的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') # 举报回复
查看更多新内容请前往新的文档

获取当前未读消息

存在已久的countapi终于被加入了,现在可以使用IcodeAPI.countMessagesAsyncIcodeAPI.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())