fix: QQ -> TG 10MB 以上的图片发不出去

This commit is contained in:
Clansty 2024-01-29 23:51:22 +08:00
parent e76c4b4db9
commit 6b1676365e
No known key found for this signature in database
GPG Key ID: 3A6BE8BAF2EDE134
2 changed files with 15 additions and 5 deletions

View File

@ -28,7 +28,6 @@ export default {
const aspectRatio = dimensions.width / dimensions.height;
if (aspectRatio > 20 || aspectRatio < 1 / 20
|| dimensions.width + dimensions.height > 10000
|| file.length > 1024 * 1024 * 10
) {
// 让 Telegram 服务器下载
return url

View File

@ -42,6 +42,7 @@ import { escapeXml } from 'icqq/lib/common';
import Docker from 'dockerode';
import ReplyKeyboardHide = Api.ReplyKeyboardHide;
import env from '../models/env';
import { CustomFile } from 'telegram/client/uploads';
const NOT_CHAINABLE_ELEMENTS = ['flash', 'record', 'video', 'location', 'share', 'json', 'xml', 'poke'];
@ -93,7 +94,11 @@ export default class ForwardService {
public async forwardFromQq(event: PrivateMessageEvent | GroupMessageEvent, pair: Pair) {
try {
const tempFiles: FileResult[] = [];
let message = '', files: FileLike[] = [], buttons: ButtonLike[] = [], replyTo = 0;
let message = '',
files: FileLike[] = [],
buttons: ButtonLike[] = [],
replyTo = 0,
forceDocument = false;
let messageHeader = '', sender = '';
if (event.message_type === 'group') {
// 产生头部,这和工作模式没有关系
@ -111,7 +116,7 @@ export default class ForwardService {
}
};
const useForward = async (resId: string) => {
if(env.CRV_API) {
if (env.CRV_API) {
try {
const messages = await pair.qq.getForwardMsg(resId);
message = helper.generateForwardBrief(messages);
@ -186,7 +191,11 @@ export default class ForwardService {
useSticker(await convert.webp(elem.file as string, () => fetchFile(elem.url)));
}
else {
files.push(await helper.downloadToCustomFile(url, !(message || messageHeader)));
const file = await helper.downloadToCustomFile(url, !(message || messageHeader));
files.push(file);
if (file instanceof CustomFile && elem.type === 'image' && file.size > 10 * 1024 * 1024) {
forceDocument = true;
}
buttons.push(Button.url(`${emoji.picture()} 查看原图`, url));
}
}
@ -353,7 +362,9 @@ export default class ForwardService {
}
// 发送消息
const messageToSend: SendMessageParams = {};
const messageToSend: SendMessageParams = {
forceDocument: forceDocument as any, // 恼
};
message && (messageToSend.message = message);
if (files.length === 1) {
messageToSend.file = files[0];