v6 迁移指南
从 v5.x 升级到 v6.x 的迁移指南
v6 迁移指南
本文档帮助你从 amagi v5.x 升级到 v6.x。
v6 目前处于 beta 阶段,正式版尚未发布。
核心变更
v6 是一次重大重构,主要变更:
- 移除
getXxxDataAPI - 所有getDouyinData、getBilibiliData等方法已删除,调用会抛出错误 - 统一使用 Fetcher API - 通过
client.平台.fetcher.方法名()调用 - 日志系统重构 - 移除
log4js,改用事件驱动架构 - 方法名英文化 - 所有 API 方法名改为英文
安装
npm install @ikenxuan/amagiAPI 调用方式迁移
v5 用法 (已移除)
// ❌ v6 中这些调用会直接抛出 DeprecatedApiError
import { getDouyinData, getBilibiliData } from '@ikenxuan/amagi'
await getDouyinData('视频作品数据', { aweme_id: '123' }, cookie)
await getBilibiliData('单个视频作品数据', { bvid: 'BV1xx' }, cookie)v6 用法
import from '@ikenxuan/amagi'
const = ({
: {
: 'SESSDATA=xxx; ...',
: 'ttwid=...; ...',
: 'did=...; ...',
: 'a1=...; ...',
}
})
// 无需再传递 cookie
const = await ...({ : 'BV1xx411c7mD' })
const = await ...({ : '123' })import from '@ikenxuan/amagi'
// 需要手动传递 cookie
const = await ..(
{ : 'BV1xx411c7mD' },
'SESSDATA=xxx; ...'
)import from '@ikenxuan/amagi'
// 创建绑定 cookie 的 fetcher
const = .('SESSDATA=xxx; ...')
const = await .({ : 'BV1xx411c7mD' })日志系统迁移
v5 用法 (已移除)
// ❌ v6 中已移除
import { logger, initLogger } from '@ikenxuan/amagi'
initLogger()
logger.info('消息')v6 用法
import { } from '@ikenxuan/amagi'
// 监听日志事件
.('log:info', () => .(.))
.('log:error', () => .(.))
// 监听 API 事件
.('api:success', () => {
.(`[${.}] ${.} 成功`)
})详见 事件系统。
方法名对照表
参数变更
抖音搜索类型
type 参数从中文改为英文:
// v5: type: '用户' | '视频' | '综合'
// v6: type: 'user' | 'video' | 'general'
await ...({
: '关键词',
: 'user' // 而不是 '用户'
})迁移示例
获取视频信息
import from '@ikenxuan/amagi'
// v5 ❌
// const data = await getBilibiliData('单个视频作品数据', { bvid: 'BV1xx' }, cookie)
// v6 ✅
const = ({ : { : 'SESSDATA=xxx', : '', : '', : '' } })
const = await ...({ : 'BV1xx411c7mD' })获取评论
import from '@ikenxuan/amagi'
// v5 ❌
// const data = await getDouyinData('评论数据', { aweme_id: '123', number: 20 }, cookie)
// v6 ✅
const = ({ : { : '', : 'ttwid=xxx', : '', : '' } })
const = await ...({
: '123',
: 20
})自定义日志
import { } from '@ikenxuan/amagi'
import from 'pino'
const = ()
// 将 amagi 日志转发到 pino
.('log:info', () => .(.))
.('log:warn', () => .(.))
.('log:error', () => .(.))常见问题
Q: 调用 getXxxData 报错怎么办?
这些方法已完全移除。请按照上面的对照表,将调用改为对应的 fetcher 方法。
Q: 如何监控 API 调用性能?
import { } from '@ikenxuan/amagi'
.('api:success', () => {
.(`[${.}] ${.} 耗时 ${.}ms`)
})
.('api:error', () => {
.(`[${.}] ${.} 失败: ${.}`)
})Q: client.平台.api 和 client.平台.fetcher 有什么区别?
api 已废弃,请统一使用 fetcher。两者功能相同,但 fetcher 是 v6 推荐的调用方式。