Skip to content
This repository was archived by the owner on May 27, 2026. It is now read-only.

Commit 704a025

Browse files
committed
fix: tons of change
1 parent 1bf3629 commit 704a025

8 files changed

Lines changed: 164 additions & 121 deletions

File tree

Lagrange.Core/Internal/Packets/Login/WtLogin.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ public async Task<ReadOnlyMemory<byte>> BuildOicq09Android(string password)
173173
tlvs.Tlv001();
174174
tlvs.Tlv106Pwd(password);
175175
tlvs.Tlv116();
176-
tlvs.Tlv100Android((uint)AppInfo.SdkInfo.MainSigMap);
176+
tlvs.Tlv100Android(16724722);
177177
tlvs.Tlv107Android();
178178
tlvs.Tlv142();
179179
tlvs.Tlv144Report(false);

Lagrange.Core/Internal/Packets/Message/Elem.cs

Lines changed: 123 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -114,107 +114,147 @@ internal partial class TransElem
114114
[ProtoPackable]
115115
internal partial class CustomFace
116116
{
117-
[ProtoMember(1)] public byte[] Guid { get; set; }
118-
119-
[ProtoMember(2)] public string FilePath { get; set; }
120-
121-
[ProtoMember(3)] public string Shortcut { get; set; }
122-
123-
[ProtoMember(4)] public byte[] Buffer { get; set; }
124-
125-
[ProtoMember(5)] public byte[] Flag { get; set; }
126-
127-
[ProtoMember(6)] public byte[]? OldData { get; set; }
128-
129-
[ProtoMember(7)] public uint FileId { get; set; }
130-
131-
[ProtoMember(8)] public int? ServerIp { get; set; }
132-
133-
[ProtoMember(9)] public int? ServerPort { get; set; }
134-
135-
[ProtoMember(10)] public int FileType { get; set; }
136-
137-
[ProtoMember(11)] public byte[] Signature { get; set; }
138-
139-
[ProtoMember(12)] public int Useful { get; set; }
140-
141-
[ProtoMember(13)] public byte[] Md5 { get; set; }
142-
117+
[ProtoMember(1)] public string FileMd5Hex { get; set; } // MD5 十六进制字符串
118+
119+
[ProtoMember(2)] public uint FileSize { get; set; } // 文件大小
120+
121+
[ProtoMember(3)] public string DownloadToken { get; set; } // 下载 Token
122+
123+
[ProtoMember(4)] public byte[] Unknown4 { get; set; }
124+
125+
[ProtoMember(5)] public uint Unknown5 { get; set; } // 标志位
126+
127+
[ProtoMember(6)] public byte[] Unknown6 { get; set; }
128+
129+
[ProtoMember(7)] public byte[] FileMd5 { get; set; } // MD5 二进制
130+
131+
[ProtoMember(8)] public uint Height { get; set; } // 图片高度
132+
133+
[ProtoMember(9)] public uint Width { get; set; } // 图片宽度
134+
135+
[ProtoMember(10)] public string FileId { get; set; } // 文件 ID
136+
137+
[ProtoMember(11)] public byte[] Unknown11 { get; set; }
138+
139+
[ProtoMember(12)] public int Unknown12 { get; set; }
140+
141+
[ProtoMember(13)] public uint Unknown13 { get; set; }
142+
143143
[ProtoMember(14)] public string ThumbUrl { get; set; }
144-
144+
145145
[ProtoMember(15)] public string BigUrl { get; set; }
146-
146+
147147
[ProtoMember(16)] public string OrigUrl { get; set; }
148-
148+
149149
[ProtoMember(17)] public int BizType { get; set; }
150-
151-
[ProtoMember(18)] public int RepeatIndex { get; set; }
152-
153-
[ProtoMember(19)] public int RepeatImage { get; set; }
154-
150+
151+
[ProtoMember(18)] public int Unknown18 { get; set; }
152+
153+
[ProtoMember(19)] public int Unknown19 { get; set; }
154+
155155
[ProtoMember(20)] public int ImageType { get; set; }
156-
157-
[ProtoMember(21)] public int Index { get; set; }
158-
159-
[ProtoMember(22)] public int Width { get; set; }
160-
161-
[ProtoMember(23)] public int Height { get; set; }
162-
163-
[ProtoMember(24)] public int Source { get; set; }
164-
165-
[ProtoMember(25)] public uint Size { get; set; }
166-
167-
[ProtoMember(26)] public int Origin { get; set; }
168-
169-
[ProtoMember(27)] public int? ThumbWidth { get; set; }
170-
171-
[ProtoMember(28)] public int? ThumbHeight { get; set; }
172-
173-
[ProtoMember(29)] public int ShowLen { get; set; }
174-
175-
[ProtoMember(30)] public int DownloadLen { get; set; }
176-
177-
[ProtoMember(31)] public string? X400Url { get; set; }
178-
179-
[ProtoMember(32)] public int X400Width { get; set; }
180-
181-
[ProtoMember(33)] public int X400Height { get; set; }
182-
183-
[ProtoMember(34)] public PbReserve1? PbReserve { get; set; }
184156

185-
[ProtoPackable]
186-
public partial class PbReserve1
187-
{
188-
[ProtoMember(1)] public int SubType { get; set; }
157+
[ProtoMember(21)] public int Unknown21 { get; set; }
158+
159+
[ProtoMember(22)] public int Unknown22 { get; set; }
160+
161+
[ProtoMember(23)] public uint Unknown23 { get; set; } // 与 FileId 相同的 ID
162+
163+
[ProtoMember(24)] public int Unknown24 { get; set; }
164+
165+
[ProtoMember(25)] public uint Unknown25 { get; set; }
166+
167+
[ProtoMember(26)] public int Unknown26 { get; set; }
168+
169+
[ProtoMember(27)] public int Unknown27 { get; set; }
170+
171+
[ProtoMember(28)] public int Unknown28 { get; set; }
172+
173+
[ProtoMember(29)] public CustomFacePbReserve? PbReserve { get; set; } // 扩展信息 (含 rkey)
174+
175+
[ProtoMember(30)] public int Unknown30 { get; set; }
176+
177+
[ProtoMember(31)] public string Unknown31 { get; set; }
178+
179+
[ProtoMember(32)] public int Unknown32 { get; set; }
180+
181+
[ProtoMember(33)] public int Unknown33 { get; set; }
182+
183+
[ProtoMember(34)] public CustomFaceOldPbReserve? OldPbReserve { get; set; }
184+
}
185+
186+
[ProtoPackable]
187+
internal partial class CustomFacePbReserve
188+
{
189+
[ProtoMember(1)] public int Unknown1 { get; set; }
190+
191+
[ProtoMember(3)] public int Unknown3 { get; set; }
192+
193+
[ProtoMember(4)] public int Unknown4 { get; set; }
189194

190-
[ProtoMember(3)] public int Field3 { get; set; }
195+
[ProtoMember(9)] public string Unknown9 { get; set; }
191196

192-
[ProtoMember(4)] public int Field4 { get; set; }
197+
[ProtoMember(10)] public int Unknown10 { get; set; }
193198

194-
[ProtoMember(9)] public string Summary { get; set; }
199+
[ProtoMember(12)] public string Unknown12 { get; set; }
195200

196-
[ProtoMember(10)] public int Field10 { get; set; }
201+
[ProtoMember(18)] public string Unknown18 { get; set; }
197202

198-
[ProtoMember(21)] public PbReserve2 Field21 { get; set; }
203+
[ProtoMember(19)] public string Unknown19 { get; set; }
199204

200-
[ProtoMember(31)] public string Field31 { get; set; }
201-
}
205+
[ProtoMember(21)] public CustomFacePbReserveInner? Inner { get; set; }
202206

203-
[ProtoPackable]
204-
public partial class PbReserve2
205-
{
206-
[ProtoMember(1)] public int Field1 { get; set; }
207+
[ProtoMember(30)] public string Rkey { get; set; } // 下载密钥
208+
}
209+
210+
[ProtoPackable]
211+
internal partial class CustomFacePbReserveInner
212+
{
213+
[ProtoMember(1)] public int Unknown1 { get; set; }
214+
215+
[ProtoMember(2)] public string Unknown2 { get; set; }
216+
217+
[ProtoMember(3)] public int Unknown3 { get; set; }
218+
219+
[ProtoMember(4)] public int Unknown4 { get; set; }
220+
221+
[ProtoMember(5)] public int Unknown5 { get; set; }
222+
223+
[ProtoMember(7)] public string Unknown7 { get; set; }
224+
}
225+
226+
[ProtoPackable]
227+
internal partial class CustomFaceOldPbReserve
228+
{
229+
[ProtoMember(1)] public int SubType { get; set; }
230+
231+
[ProtoMember(3)] public int Field3 { get; set; }
232+
233+
[ProtoMember(4)] public int Field4 { get; set; }
234+
235+
[ProtoMember(9)] public string Summary { get; set; }
236+
237+
[ProtoMember(10)] public int Field10 { get; set; }
238+
239+
[ProtoMember(21)] public CustomFaceOldPbReserve2 Field21 { get; set; }
240+
241+
[ProtoMember(31)] public string Field31 { get; set; }
242+
}
243+
244+
[ProtoPackable]
245+
internal partial class CustomFaceOldPbReserve2
246+
{
247+
[ProtoMember(1)] public int Field1 { get; set; }
207248

208-
[ProtoMember(2)] public string Field2 { get; set; }
249+
[ProtoMember(2)] public string Field2 { get; set; }
209250

210-
[ProtoMember(3)] public int Field3 { get; set; }
251+
[ProtoMember(3)] public int Field3 { get; set; }
211252

212-
[ProtoMember(4)] public int Field4 { get; set; }
253+
[ProtoMember(4)] public int Field4 { get; set; }
213254

214-
[ProtoMember(5)] public int Field5 { get; set; }
255+
[ProtoMember(5)] public int Field5 { get; set; }
215256

216-
[ProtoMember(7)] public string Md5Str { get; set; }
217-
}
257+
[ProtoMember(7)] public string Md5Str { get; set; }
218258
}
219259

220260
[ProtoPackable]

Lagrange.Milky/Configuration/SignerConfiguration.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ public class SignerConfiguration
44
{
55
public string? Base { get; set; }
66

7-
public string? Version { get; set; }
8-
97
public string? Token { get; set; }
108

119
public string? ProxyUrl { get; set; }

Lagrange.Milky/Resources/appsettings.jsonc

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@
2020
// Signer Base URL
2121
"Base": "https://sign.lagrangecore.org/api/sign",
2222

23-
// Signer version
24-
"Version": "30366",
25-
2623
// Signer token
2724
// "Token": null
2825

@@ -34,7 +31,7 @@
3431
// Account uin
3532
// If the Uin is inconsistent with the actual login account, quick login will not be possible
3633
"Uin": 0,
37-
34+
3835
// Account password
3936
// Set to null to login via QrCode
4037
// "Password": null,

Lagrange.Milky/Resources/appsettings_schema.json

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,16 +41,12 @@
4141
},
4242
"Signer": {
4343
"type": "object",
44-
"required": ["Base", "Version"],
44+
"required": ["Base"],
4545
"properties": {
4646
"Base": {
4747
"type": "string",
4848
"description": "Signer Base URL"
4949
},
50-
"Version": {
51-
"type": "string",
52-
"description": "Signer version"
53-
},
5450
"Token": {
5551
"type": ["string", "null"],
5652
"description": "Signer token"

Lagrange.Milky/Utility/CaptchaResolver/OnlineCaptchaResolver.cs

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,21 +28,22 @@ public class OnlineCaptchaResolver(ILogger<OnlineCaptchaResolver> logger, IOptio
2828
{
2929
token.ThrowIfCancellationRequested();
3030

31-
string queryUrl = string.Format(QueryUrl, _bot.BotUin);
32-
var response = await _client.GetAsync(queryUrl, token);
33-
if (response.StatusCode == HttpStatusCode.NotFound)
34-
{
35-
_logger.LogCaptchaWaiting();
36-
continue;
37-
}
31+
// string queryUrl = string.Format(QueryUrl, _bot.BotUin);
32+
// var response = await _client.GetAsync(queryUrl, token);
33+
// if (response.StatusCode == HttpStatusCode.NotFound)
34+
// {
35+
// _logger.LogCaptchaWaiting();
36+
// continue;
37+
// }
3838

39-
if (!response.IsSuccessStatusCode)
40-
{
41-
throw new Exception($"Unexpected http status code({response.StatusCode})");
42-
}
39+
// if (!response.IsSuccessStatusCode)
40+
// {
41+
// throw new Exception($"Unexpected http status code({response.StatusCode})");
42+
// }
4343

44-
string result = await response.Content.ReadAsStringAsync(token);
45-
string? json = JsonNode.Parse(result)?["data"]?.GetValue<string>();
44+
// string result = await response.Content.ReadAsStringAsync(token);
45+
// string? json = JsonNode.Parse(result)?["data"]?.GetValue<string>();
46+
var json = await Console.In.ReadLineAsync(token);
4647
if (json == null) continue;
4748

4849
return (json.Split('|')[0], json.Split('|')[1]);

Lagrange.Milky/Utility/JsonUtility.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public static partial class JsonUtility
2929
[JsonSerializable(typeof(AndroidDebugXwidRequest))]
3030
[JsonSerializable(typeof(AndroidSignerResponse<AndroidSecSignResponseData>))]
3131
[JsonSerializable(typeof(AndroidSignerResponse<string>))]
32+
[JsonSerializable(typeof(AndroidSignerResponse<BotAppInfo>))]
3233

3334
// === api ===
3435
[JsonSerializable(typeof(ApiOkResult))]

0 commit comments

Comments
 (0)