fix: suno余额查询:#suno余额

This commit is contained in:
ikechan8370 2024-02-21 14:43:00 +08:00
parent eea0748de7
commit ba3422cd10
2 changed files with 22 additions and 3 deletions

View file

@ -48,6 +48,24 @@ export class Vocal extends plugin {
await e.reply('未配置Suno Token')
return true
}
let description = e.msg.replace(/#((创作)?歌曲|suno|Suno)/, '')
if (description === '额度' || description === 'credit' || description === '余额') {
let sessTokens = Config.sunoSessToken.split(',')
let clientTokens = Config.sunoClientToken.split(',')
let tried = 0
let msg = ''
while (tried < sessTokens.length) {
let index = tried
let sess = sessTokens[index]
let clientToken = clientTokens[index]
let client = new SunoClient({ sessToken: sess, clientToken })
let { credit, email } = await client.queryCredit()
logger.info({ credit, email })
msg += `用户${email}余额:${credit}\n`
}
await e.reply(msg)
return true
}
await e.reply('正在生成,请稍后')
try {
let sessTokens = Config.sunoSessToken.split(',')
@ -59,12 +77,13 @@ export class Vocal extends plugin {
let clientToken = clientTokens[index]
let client = new SunoClient({ sessToken: sess, clientToken })
let { credit, email } = await client.queryCredit()
logger.info({ credit, email })
if (credit < 10) {
tried++
logger.info(`账户${email}余额不足,尝试下一个账户`)
continue
}
let description = e.msg.replace(/#((创作)?歌曲|suno|Suno)/, '')
let songs = await client.createSong(description)
let messages = ['提示词:' + description]
for (let song of songs) {

View file

@ -17,7 +17,7 @@ export class SunoClient {
let lastToken = this.sessToken
let payload = decrypt(lastToken)
let sid = JSON.parse(payload).sid
logger.mark('sid: ' + sid)
logger.debug('sid: ' + sid)
let tokenRes = await newFetch(`https://clerk.suno.ai/v1/client/sessions/${sid}/tokens/api?_clerk_js_version=4.70.0`, {
method: 'POST',
headers: {
@ -120,7 +120,7 @@ export class SunoClient {
let lastToken = this.sessToken
let payload = decrypt(lastToken)
let sid = JSON.parse(payload).sid
logger.mark('sid: ' + sid)
logger.debug('sid: ' + sid)
let heartbeatUrl = `https://clerk.suno.ai/v1/client/sessions/${sid}/touch?_clerk_js_version=4.70.0`
let heartbeatRes = await fetch(heartbeatUrl, {
method: 'POST',