mirror of
https://github.com/LLOneBot/LLOneBot.git
synced 2024-11-22 01:56:33 +00:00
Merge pull request #130 from super1207/main
This commit is contained in:
commit
c9a5ee69cf
@ -96,6 +96,8 @@ export enum NTQQApiMethod {
|
|||||||
CACHE_CHAT_CLEAR = 'nodeIKernelStorageCleanService/clearChatCacheInfo',
|
CACHE_CHAT_CLEAR = 'nodeIKernelStorageCleanService/clearChatCacheInfo',
|
||||||
|
|
||||||
OPEN_EXTRA_WINDOW = 'openExternalWindow',
|
OPEN_EXTRA_WINDOW = 'openExternalWindow',
|
||||||
|
|
||||||
|
SET_QQ_AVATAR = 'nodeIKernelProfileService/setHeader'
|
||||||
}
|
}
|
||||||
|
|
||||||
enum NTQQApiChannel {
|
enum NTQQApiChannel {
|
||||||
@ -894,4 +896,14 @@ export class NTQQApi {
|
|||||||
}, null]
|
}, null]
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static async setQQAvatar(filePath: string) {
|
||||||
|
return await callNTQQApi<GeneralCallResult>({
|
||||||
|
methodName: NTQQApiMethod.SET_QQ_AVATAR,
|
||||||
|
args: [{
|
||||||
|
path:filePath
|
||||||
|
}, null],
|
||||||
|
timeoutSecond: 10 // 10秒不一定够
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
@ -35,12 +35,14 @@ import CleanCache from "./CleanCache";
|
|||||||
import GoCQHTTPUploadGroupFile from "./go-cqhttp/UploadGroupFile";
|
import GoCQHTTPUploadGroupFile from "./go-cqhttp/UploadGroupFile";
|
||||||
import {GetConfigAction, SetConfigAction} from "./llonebot/Config";
|
import {GetConfigAction, SetConfigAction} from "./llonebot/Config";
|
||||||
import GetGroupAddRequest from "./llonebot/GetGroupAddRequest";
|
import GetGroupAddRequest from "./llonebot/GetGroupAddRequest";
|
||||||
|
import SetQQAvatar from './llonebot/SetQQAvatar'
|
||||||
|
|
||||||
export const actionHandlers = [
|
export const actionHandlers = [
|
||||||
new Debug(),
|
new Debug(),
|
||||||
new GetConfigAction(),
|
new GetConfigAction(),
|
||||||
new SetConfigAction(),
|
new SetConfigAction(),
|
||||||
new GetGroupAddRequest(),
|
new GetGroupAddRequest(),
|
||||||
|
new SetQQAvatar(),
|
||||||
// onebot11
|
// onebot11
|
||||||
new SendLike(),
|
new SendLike(),
|
||||||
new GetMsg(),
|
new GetMsg(),
|
||||||
|
44
src/onebot11/action/llonebot/SetQQAvatar.ts
Normal file
44
src/onebot11/action/llonebot/SetQQAvatar.ts
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
import BaseAction from "../BaseAction";
|
||||||
|
import {NTQQApi} from "../../../ntqqapi/ntcall";
|
||||||
|
import {ActionName} from "../types";
|
||||||
|
import { uri2local } from "../../utils";
|
||||||
|
import * as fs from "node:fs";
|
||||||
|
import { checkFileReceived } from "../../../common/utils";
|
||||||
|
// import { log } from "../../../common/utils";
|
||||||
|
|
||||||
|
interface Payload {
|
||||||
|
file: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export default class SetAvatar extends BaseAction<Payload, null> {
|
||||||
|
actionName = ActionName.SetQQAvatar
|
||||||
|
|
||||||
|
protected async _handle(payload: Payload): Promise<null> {
|
||||||
|
const {path, isLocal, errMsg} = (await uri2local(payload.file))
|
||||||
|
if (errMsg){
|
||||||
|
throw `头像${payload.file}设置失败,file字段可能格式不正确`
|
||||||
|
}
|
||||||
|
if (path) {
|
||||||
|
await checkFileReceived(path, 5000); // 文件不存在QQ会崩溃,需要提前判断
|
||||||
|
const ret = await NTQQApi.setQQAvatar(path)
|
||||||
|
if (!isLocal){
|
||||||
|
fs.unlink(path, () => {})
|
||||||
|
}
|
||||||
|
if (!ret) {
|
||||||
|
throw `头像${payload.file}设置失败,api无返回`
|
||||||
|
}
|
||||||
|
// log(`头像设置返回:${JSON.stringify(ret)}`)
|
||||||
|
if (ret['result'] == 1004022) {
|
||||||
|
throw `头像${payload.file}设置失败,文件可能不是图片格式`
|
||||||
|
} else if(ret['result'] != 0) {
|
||||||
|
throw `头像${payload.file}设置失败,未知的错误,${ret['result']}:${ret['errMsg']}`
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!isLocal){
|
||||||
|
fs.unlink(path, () => {})
|
||||||
|
}
|
||||||
|
throw `头像${payload.file}设置失败,无法获取头像,文件可能不存在`
|
||||||
|
}
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
}
|
@ -15,6 +15,7 @@ export interface InvalidCheckResult {
|
|||||||
|
|
||||||
export enum ActionName {
|
export enum ActionName {
|
||||||
GetGroupIgnoreAddRequest = "get_group_ignore_add_request",
|
GetGroupIgnoreAddRequest = "get_group_ignore_add_request",
|
||||||
|
SetQQAvatar = "set_qq_avatar",
|
||||||
GetConfig = "get_config",
|
GetConfig = "get_config",
|
||||||
SetConfig = "set_config",
|
SetConfig = "set_config",
|
||||||
Debug = "llonebot_debug",
|
Debug = "llonebot_debug",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user