From 3cc2f1dcad79b956e8dadcfd7777102c7be0f2d1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?=
 <nanaeonn@outlook.com>
Date: Thu, 1 Aug 2024 19:43:29 +0800
Subject: [PATCH] fix #183

---
 .../action/msg/SendMsg/create-send-elements.ts       | 12 +++++-------
 src/onebot11/constructor.ts                          |  1 +
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/src/onebot11/action/msg/SendMsg/create-send-elements.ts b/src/onebot11/action/msg/SendMsg/create-send-elements.ts
index b307bf2b..07f1f55e 100644
--- a/src/onebot11/action/msg/SendMsg/create-send-elements.ts
+++ b/src/onebot11/action/msg/SendMsg/create-send-elements.ts
@@ -12,11 +12,10 @@ import {
   SignMusicWrapper
 } from '@/core';
 import { getGroupMember } from '@/core/data';
-import { logDebug, logError, logWarn } from '@/common/utils/log';
+import { logError, logWarn } from '@/common/utils/log';
 import { uri2local } from '@/common/utils/file';
 import { ob11Config } from '@/onebot11/config';
 import { RequestUtil } from '@/common/utils/request';
-import fs from 'node:fs';
 import { MessageUnique } from '@/common/utils/MessageUnique';
 
 export type MessageContext = {
@@ -25,12 +24,11 @@ export type MessageContext = {
 }
 
 async function handleOb11FileLikeMessage(
-  { data: { file, name: payloadFileName } }: OB11MessageFileBase,
+  { data: inputdata }: OB11MessageFileBase,
   { deleteAfterSentFiles }: MessageContext
 ) {
-  const uri = file;
-
-  const { path, isLocal, fileName, errMsg } = (await uri2local(uri));
+  //有的奇怪的框架将url作为参数 而不是file 此时优先url
+  let { path, isLocal, fileName, errMsg } = (await uri2local(inputdata?.url || inputdata.file));
 
   if (errMsg) {
     logError('文件下载失败', errMsg);
@@ -41,7 +39,7 @@ async function handleOb11FileLikeMessage(
     deleteAfterSentFiles.push(path);
   }
 
-  return { path, fileName: payloadFileName || fileName };
+  return { path, fileName: inputdata.name || fileName };
 }
 
 const _handlers: {
diff --git a/src/onebot11/constructor.ts b/src/onebot11/constructor.ts
index 1759250c..e0ad9836 100644
--- a/src/onebot11/constructor.ts
+++ b/src/onebot11/constructor.ts
@@ -174,6 +174,7 @@ export class OB11Constructor {
         // message_data["data"]["file"] = element.picElement.sourcePath
         message_data['data']['file'] = element.picElement.fileName;
         message_data['data']['subType'] = element.picElement.picSubType;
+        message_data['data']['file_id'] = UUIDConverter.encode(msg.peerUin, msg.msgId);
         // message_data["data"]["path"] = element.picElement.sourcePath
 
         try {