Skip to content

Commit 92a0cb4

Browse files
[Core] Add FlashTransfer.UploadFile appId parameter, fix friend image upload (#68)
1 parent 84d6fe6 commit 92a0cb4

3 files changed

Lines changed: 7 additions & 7 deletions

File tree

Lagrange.Core/Internal/Context/FlashTransferContext.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ internal FlashTransferContext(BotContext botContext)
2222
_url = "https://multimedia.qfile.qq.com/sliceupload";
2323
}
2424

25-
public async Task<bool> UploadFile(string uKey, Stream bodyStream)
25+
public async Task<bool> UploadFile(string uKey, uint appId, Stream bodyStream)
2626
{
2727
var sha1StateVs = new FlashTransferSha1StateV { State = [] };
2828
var chunkCount = (uint)((bodyStream.Length + ChunkSize - 1) / ChunkSize);
@@ -61,19 +61,19 @@ public async Task<bool> UploadFile(string uKey, Stream bodyStream)
6161
var uploadBuffer = new byte[chunkLength];
6262
await bodyStream.ReadExactlyAsync(uploadBuffer, 0, chunkLength);
6363

64-
var success = await UploadChunk(uKey, (uint)chunkStart, sha1StateVs, uploadBuffer);
64+
var success = await UploadChunk(uKey, appId, (uint)chunkStart, sha1StateVs, uploadBuffer);
6565
if (!success) return false;
6666
}
6767

6868
return true;
6969
}
7070

71-
private async Task<bool> UploadChunk(string uKey, uint start, FlashTransferSha1StateV chunkSha1S, byte[] body)
71+
private async Task<bool> UploadChunk(string uKey, uint appId, uint start, FlashTransferSha1StateV chunkSha1S, byte[] body)
7272
{
7373
var req = new FlashTransferUploadReq
7474
{
7575
FieId1 = 0,
76-
AppId = 1407,
76+
AppId = appId,
7777
FileId3 = 2,
7878
Body = new FlashTransferUploadBody
7979
{

Lagrange.Core/Internal/Packets/Service/FlashTransferUploadReq.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace Lagrange.Core.Internal.Packets.Service;
77
internal partial class FlashTransferUploadReq
88
{
99
[ProtoMember(1)] public uint FieId1 { get; set; } // 0
10-
[ProtoMember(2)] public uint AppId { get; set; } // 1407
10+
[ProtoMember(2)] public uint AppId { get; set; } // 1402: 私信语音, 1403: 群语音, 1413: 私信视频, 1414: 私信视频封面, 1415: 群视频, 1416: 群视频封面, 1406: 私信图片, 1407: 群聊图片, 14901: 闪传, 14903: 闪传封面
1111
[ProtoMember(3)] public uint FileId3 { get; set; } // 0
1212
[ProtoMember(107)] public FlashTransferUploadBody Body { get; set; }
1313
}

Lagrange.Core/Message/Entities/ImageEntity.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,11 @@ public override async Task Preprocess(BotContext context, BotMessage message)
4848
// Aot 和 MacOS 下使用 FlashTransfer 上传
4949
if (RuntimeFeature.IsDynamicCodeCompiled && !RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
5050
{
51-
await context.HighwayContext.UploadFile(Stream.Value, message.IsGroup() ? 1004 : 1003, ProtoHelper.Serialize(result.Ext));
51+
await context.HighwayContext.UploadFile(Stream.Value, IsGroup ? 1004 : 1003, ProtoHelper.Serialize(result.Ext));
5252
}
5353
else
5454
{
55-
await context.FlashTransferContext.UploadFile(result.Ext.UKey, Stream.Value);
55+
await context.FlashTransferContext.UploadFile(result.Ext.UKey, (uint)(IsGroup ? 1407 : 1406), Stream.Value);
5656
}
5757
}
5858
}

0 commit comments

Comments
 (0)