跳转至

工具模块

工具模块

icodeapi提供了一个tools模块,里面包含了一些强大而实用的工具函数。

下载作品

使用tools.DownloadWork函数异步地下载一个作品。

async def DownloadWork(workId : str, path : str, api : AsyncIcodeAPI = None)

workId : 需要下载的作品id
path : 下载后保存的路径
api : 发出请求时使用的AsyncIcodeAPI对象,当为None时默认新创建一个

刷浏览量

使用tools.ViewNumMaker函数快速提升一个作品的浏览量。
如果浏览量在一日内提高的数值非常高,有大概率会登上社区首页推荐。

async def ViewNumMaker(workId : str, num : int = 5000, api : AsyncIcodeAPI = None)

workId : 需要刷浏览量的作品id
num : 需要刷的浏览量
api : 发出请求时使用的AsyncIcodeAPI对象,当为None时默认新创建一个

评论区唱歌

使用tools.SingSong函数在评论区循环发送字符串内所有内容。

def SingSong(workId : str, songWords : str, api : IcodeAPI)

workId : 需要评论的作品id
songWords : 需要发送的内容,用换行分隔每一句话
api : 发出请求时使用的IcodeAPI对象

该函数会返回一个生成器,每迭代一次发送一句内容。
请注意评论操作的时间间隔限制,小图灵社区设置了5秒才能评论一次的限制。
示例:

from icodeapi import *
from icodeapi.tools import *
import time
user = IcodeAPI(input('Cookie: '))
times = int(input('Sing times: '))
num = 0
while num < times:
    for i in SingSong('a1f09b5eb34a48dfbdc8dee59d130ec6',
        """You say that we will always be,
        without you I fell lost at see.
        Through the darkness you'd hide with me,
        like a wind we'd be wild and free.
        You~~~
        said you follow me anywhere.
        But your e ~ yes,
        tell me you won't be there.
        I've gotta learn how to love without you!
        I've gotta carry me cross without you~
        Stuck in the riddle and I'm just about to-----
        figure out without you!
        And I'm done sitting home without you!
        Fuck I'm going out without you!
        I'm going to tear this city without you,
        I'm going Bonnie and Clyde without you~~~
        deng deng, deng deng deng, deng deng deng deng deng deng, deng deng deng~
        deng deng, deng deng deng, deng deng deng deng deng deng deng deng deng deng~~~~""",
        user
    ):
        if i == 'Finish one time':
            num += 1
        time.sleep(5.1)
Without You by Avicii

删除评论

使用tools.CommentsCleaner方法批量删除一个作品内的评论。

async def CommentsCleaner(workId : str, 
                          api : AsyncIcodeAPI,
                          page : Union[list[int], tuple[int], set[int]] = ALL_PAGES,
                          getNum : int = 20) -> bool

workId : 要删除评论的作品ID
api : 发出请求时使用的AsyncIcodeAPI对象
page : 要删除的评论页码,如果为tools.ALL_PAGES则删除所有页
getNum : 每次获取的评论数量,默认为20

重发作品

使用tools.ResubmitAllWorks重发所有作品。

async def ResubmitAllWorks(api : AsyncIcodeAPI) -> list
该函数为一个异步生成器,可以配合async for使用。每进行一次迭代,所有作品都将被重发一次,并返回asyncio.gather的返回值(其中包含使用AsyncIcodeAPI重发每个作品的返回值)。

api : 发出请求时使用的AsyncIcodeAPI对象

删除作品

使用tools.WorksCleaner批量删除自己的作品。

async def WorksCleaner(api : AsyncIcodeAPI, 
    page : list[int] | tuple[int] | set[int] = ALL_PAGES, 
    getNum : int = 20) -> bool

api : 发出请求时使用的AsyncIcodeAPI对象
page : 要删除的作品页码列表,如果为tools.ALL_PAGES则删除所有页
getNum : 每次获取的作品数量,默认为20