跳转至

对比TuringAPI

icodeapi与TuringAPI的对比

TuringAPI是icodeapi的前身,它是第一代小图灵社区API框架,而icodeapi是第二代。icodeapi在多方面进行了改进和优化,我们强烈建议您使用icodeapi。

兼容性:

icodeapi : python 3.10+
TuringAPI : python 3.7+

由此可得,TuringAPI的兼容性比icodeapi要好,最重要的是它可以在Windows7系统上使用。
但是,icodeapi的功能会更加丰富!

同步API:

功能实现:输出用户信息
icodeapi:

from icodeapi import IcodeAPI
COOKIE = input('Enter your cookie: ')
api = IcodeAPI(cookie = COOKIE)
print(api.getInfo())
TuringAPI:
from FinalTuringAPI import icodeUser
COOKIE = input('Enter your cookie: ')
api = icodeUser(cookie = COOKIE)
print(api.info)
功能实现:刷浏览量
icodeapi:
from icodeapi import IcodeAPI
COOKIE = input('Enter your cookie: ')
ID = input('Enter workId: ')
api = IcodeAPI(cookie = COOKIE, timeout = None)
for i in range(10000):
    api.getWorkDetail(workId = ID, addBrowseNum = True)
TuringAPI:
from FinalTuringAPI import icodeUser
COOKIE = input('Enter your cookie: ')
ID = input('Enter workId: ')
api = icodeUser(cookie = COOKIE)
for i in range(10000):
    api.getWorkDetail(workId = ID)
功能实现:上传文件并下载回来,输出上传文件的返回值
icodeapi:
from icodeapi import IcodeAPI
path = input("Enter the path to the file: ")
cookie = input("Enter your cookie: ")
api = IcodeAPI(cookie = cookie)
with open(path, "rb") as f:
    result = api.uploadFile('icodeapiTesting', 'png', f.read())
    print(result)
with open('C:\\Users\\icodeapiSystem\Desktop\\test.png', 'wb') as f:
    file = api.getScratchAsset(md5ext = 'icodeapiTesting.png')
    f.write(file)
TuringAPI:
from FinalTuringAPI import icodeUser
from urllib3 import request
path = input("Enter the path to the file: ")
cookie = input("Enter your cookie: ")
api = icodeUser(cookie = cookie)
with open(path, "rb") as f:
    result = api.uploadFile('icodeapiTesting', 'png', f.read())
    result = result.json()
    print(result)
with open('C:\\Users\\icodeapiSystem\Desktop\\test.png', 'wb') as f:
    result = request('GET',
                      'https://nos.netease.com/ydschool-online/svg/icodeapiTesting.png'
                      )
    result = result.data
    f.write(result)
功能实现:发布一个作品,并再重新发布一次
icodeapi:
from icodeapi import IcodeAPI
COOKIE = input('Enter your cookie: ')
api = IcodeAPI(cookie = COOKIE)
workId = api.submitWork(workCode = 'Hello World', 
               workType = 'python', 
               title = 'icodeapi test',
               description = 'abc')
workId = workId.get('data')
api.submitWork(workDetail = WorkInfoTupleGenerator(api, workId), workId = workId)
TuringAPI:
from FinalTuringAPI import icodeUser
COOKIE =  input('Enter your cookie: ')
api = icodeUser(cookie = COOKIE)
workId = api.submitPython('Hello World',
                 title = 'icodeapi test',
                 description = 'abc')
workId = workId.json().get('data')
data = api.getWorkDetail(workId, isParse = True)
code = data.get('code')
title = data.get('title')
description = data.get('description')
api.reSubmitPython(workId, code, title, description)

异步API:

功能实现:刷浏览量
icodeapi:

from icodeapi.tools import ViewNumMaker
import asyncio
workId = input("Enter workId: ")
asyncio.run(ViewNumMaker(workId = workId))
TuringAPI:
import FinalTuringAPI
workId = input('Enter workId: ')
api = FinalTuringAPI.icodeUser(None)
Event = FinalTuringAPI.event(name = 'event1')
for i in range(5000):
    FinalTuringAPI.addTask(Event, api.getWorkDetail, f'{i}', [workId])
Event.run()
功能实现:构造web服务端:
icodeapi:
from fastapi import FastAPI
from fastapi.responses import JSONResponse
from fastapi.middleware.cors import CORSMiddleware
from icodeapi import AsyncIcodeAPI
import uvicorn
app : FastAPI = FastAPI() # 创建fastapi实例
app.add_middleware(
    CORSMiddleware,
    allow_origins=['*'],
    allow_credentials = True,
    allow_methods=['*'],
    allow_headers=['*'],
)
api : AsyncIcodeAPI = AsyncIcodeAPI() # 实例化AsyncIcodeAPI
@app.get("/")
async def getWork() -> JSONResponse: # 返回作品集
    results = await api.getWorks()
    return JSONResponse(results)
@app.get("/{workId}")
async def getWorkById(workId : str) -> JSONResponse: # 返回作品信息
    results = await api.getWorkDetail(workId)
    return JSONResponse(results)
@app.get("/person/{userId}")
async def getPerson(userId : str) -> JSONResponse: # 返回个人信息
    results = await api.getPersonInfo(userId)
    return JSONResponse(results)
uvicorn.run(app, host = "0.0.0.0", port = 80)
TuringAPI:
无法构建

响应式机器人:

自动回复消息:
icodeapi:

from icodeapi import AsyncIcodeAPI
import icodeapi.server as icodeserver
COOKIE = input('Enter your cookie: ')
api = AsyncIcodeAPI(cookie = COOKIE)
SERVER = icodeserver.IcodeServer(api  = api)
@SERVER.CheckMessage()
async def AutoReply(content : str, userId : str, bot : icodeserver.IcodeServer):
    if content == 'test':
        await bot.fastReply(userId, 'test')
icodeserver.RunServer(SERVER)
TuringAPI:
from FinalTuringAPI import icodeUser
COOKIE = input('Enter your cookie: ')
api = icodeUser(cookie = COOKIE)
while True:
    messages = api.getMessage(1, 20, isParse = True)
    for i in messages:
        if i.get('content') == 'test':
            workId = api.getPersonWorks(i.get('actionUserId'), 1, 1, True)
            api.comment(workId[0].get('id'), 'test')
综上所述,使用Windows8及以下的用户可以选择TuringAPI,但是如果你使用Windows 8.1及以上系统,我们极力推荐你使用icodeapi!