Skip to content
This repository was archived by the owner on Sep 2, 2023. It is now read-only.

Commit 4c9cddd

Browse files
author
Awbugl
committed
Update Code
1 parent be89203 commit 4c9cddd

File tree

9 files changed

+47
-29
lines changed

9 files changed

+47
-29
lines changed

Andreal/Andreal.csproj

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@
99
</PropertyGroup>
1010

1111
<ItemGroup>
12-
<PackageReference Include="Konata.Core" Version="1.3.1"/>
13-
<PackageReference Include="Net.Codecrete.QrCodeGenerator" Version="2.0.1"/>
14-
<PackageReference Include="Newtonsoft.Json" Version="13.0.1"/>
15-
<PackageReference Include="sqlite-net-pcl" Version="1.7.335"/>
16-
<PackageReference Include="System.Drawing.Common" Version="5.0.3"/>
12+
<PackageReference Include="Konata.Core" Version="1.3.1" />
13+
<PackageReference Include="Net.Codecrete.QrCodeGenerator" Version="2.0.1" />
14+
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
15+
<PackageReference Include="sqlite-net-pcl" Version="1.7.335" />
16+
<PackageReference Include="System.Drawing.Common" Version="5.0.3" />
1717
</ItemGroup>
1818

1919
<ItemGroup>

Andreal/Data/Api/ArcaeaUnlimitedApi.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ private static async Task GetStream(string url, Path filename)
5050
internal static async Task<ResponseRoot?> UserBest40(long ucode) =>
5151
await GetString($"user/best30?usercode={ucode:D9}&overflow=9");
5252

53-
internal static async Task<ResponseRoot?> SongList() => await GetString("test/song/list");
53+
internal static async Task<ResponseRoot?> SongList() => await GetString("song/list");
5454

5555
internal static async Task SongAssets(string sid, int difficulty, Path pth) =>
5656
await GetStream($"assets/song?songid={sid}&difficulty={difficulty}", pth);

Andreal/Executor/ArcExecutor.cs

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using Andreal.Model.Arcaea;
88
using Andreal.UI.ImageGenerator;
99
using Andreal.Utils;
10+
using Path = Andreal.Core.Path;
1011

1112
namespace Andreal.Executor;
1213

@@ -126,7 +127,7 @@ private async Task<MessageChain> NewCar()
126127
}
127128

128129
[CommandPrefix("/arc rand", "随机选曲", "选曲")]
129-
private MessageChain RandSong()
130+
private async Task<MessageChain> RandSong()
130131
{
131132
switch (CommandLength)
132133
{
@@ -137,19 +138,33 @@ private MessageChain RandSong()
137138
var (lower, upper) = Command[0].ConvertToArcaeaRange();
138139
if (lower < 0) return RobotReply.ParameterError;
139140
var info = ArcaeaCharts.RandomSong(lower, upper);
140-
return info == null
141-
? RobotReply.ParameterError
142-
: RobotReply.RandSongReply + info.GetSongImage() + info.NameWithPackageAndConst;
141+
if (info == null)
142+
return RobotReply.ParameterError;
143+
else
144+
{
145+
var chain = new MessageChain();
146+
chain.Append(RobotReply.RandSongReply);
147+
chain.Append(ImageMessage.FromPath(await Path.ArcaeaSong(info)));
148+
chain.Append(info.NameWithPackageAndConst);
149+
return chain;
150+
}
143151
}
144152
case 2:
145153
{
146154
var (lower, _) = Command[0].ConvertToArcaeaRange();
147155
var (_, upper) = Command[1].ConvertToArcaeaRange();
148156
if (lower < 0 || upper < 0 || lower > upper) return RobotReply.ParameterError;
149157
var info = ArcaeaCharts.RandomSong(lower, upper);
150-
return info == null
151-
? RobotReply.ParameterError
152-
: RobotReply.RandSongReply + info.GetSongImage() + info.NameWithPackageAndConst;
158+
if (info == null)
159+
return RobotReply.ParameterError;
160+
else
161+
{
162+
var chain = new MessageChain();
163+
chain.Append(RobotReply.RandSongReply);
164+
chain.Append(ImageMessage.FromPath(await Path.ArcaeaSong(info)));
165+
chain.Append(info.NameWithPackageAndConst);
166+
return chain;
167+
}
153168
}
154169
}
155170
}
@@ -161,14 +176,14 @@ private MessageChain CalcNote()
161176
if (!short.TryParse(Command[0], out var far) || !short.TryParse(Command[1], out var lost))
162177
return RobotReply.ParameterError;
163178

164-
if (!ArcaeaHelper.SongInfoParser(Command.Skip(1), out var song, out var dif, out var errMessage))
179+
if (!ArcaeaHelper.SongInfoParser(Command.Skip(2), out var song, out var dif, out var errMessage))
165180
return errMessage;
166181

167182
var arcsong = song[dif];
168183

169184
var notes = arcsong.Note;
170185

171-
if (arcsong.Rating <= 0 || notes <= 0) return "此谱面的Note数量暂未被记录。";
186+
if (arcsong.Const <= 0 || notes <= 0) return "此谱面的Note数量暂未被记录。";
172187

173188
if (far + lost > notes) return RobotReply.ParameterError;
174189

@@ -190,7 +205,7 @@ private MessageChain CalcScore()
190205

191206
var arcsong = song[dif];
192207

193-
var defNum = arcsong.Rating;
208+
var defNum = arcsong.Const;
194209
var mptt = ptt - defNum;
195210
if (defNum == 0 || ptt < 0 || mptt > 2) return RobotReply.ParameterError;
196211

@@ -216,7 +231,7 @@ private MessageChain CalcPtt()
216231

217232
var arcsong = song[dif];
218233

219-
var defNum = arcsong.Rating;
234+
var defNum = arcsong.Const;
220235
var ptt = score switch
221236
{
222237
>= 1e7 => defNum + 2,
@@ -233,7 +248,7 @@ private async Task<MessageChain> Const()
233248
{
234249
if (CommandLength == 0) return RobotReply.ParameterLengthError;
235250

236-
if (!ArcaeaHelper.SongInfoParser(Command.Skip(1), out var song, out _, out var errMessage)) return errMessage;
251+
if (!ArcaeaHelper.SongInfoParser(Command, out var song, out _, out var errMessage)) return errMessage;
237252

238253
return await song.FullConstString();
239254
}
@@ -342,7 +357,7 @@ private async Task<MessageChain> Search()
342357
RecordInfo recordInfo;
343358
PlayerInfo playerInfo;
344359

345-
if (!ArcaeaHelper.SongInfoParser(Command.Skip(1), out var song, out _, out var errMessage)) return errMessage;
360+
if (!ArcaeaHelper.SongInfoParser(Command, out var song, out _, out var errMessage)) return errMessage;
346361

347362
TextMessage exceptionInformation;
348363
(recordInfo, playerInfo, exceptionInformation) = await GetUserBest(song);
@@ -388,7 +403,7 @@ private MessageChain Alias()
388403
{
389404
if (CommandLength == 0) return RobotReply.ParameterLengthError;
390405

391-
if (!ArcaeaHelper.SongInfoParser(Command.Skip(1), out var song, out _, out var errMessage)) return errMessage;
406+
if (!ArcaeaHelper.SongInfoParser(Command, out var song, out _, out var errMessage)) return errMessage;
392407

393408
var alias = ArcaeaCharts.GetSongAlias(song.SongID);
394409

Andreal/Model/Arcaea/ArcaeaChart.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class ArcaeaChart
1414
[JsonProperty("name_jp")] public string NameJp { get; set; }
1515
[JsonProperty("artist")] public string Artist { get; set; }
1616
[JsonProperty("bpm")] public string Bpm { get; set; }
17-
[JsonProperty("bpm_base")] public int BpmBase { get; set; }
17+
[JsonProperty("bpm_base")] public double BpmBase { get; set; }
1818
[JsonProperty("set")] public string Set { get; set; }
1919
[JsonProperty("set_friendly")] public string SetFriendly { get; set; }
2020
[JsonProperty("time")] public int Time { get; set; }
@@ -34,11 +34,13 @@ public class ArcaeaChart
3434

3535
internal string SongID { get; set; }
3636

37+
internal double Const => (double)Rating / 10;
38+
3739
internal int RatingClass { get; set; }
3840

3941
internal DifficultyInfo DifficultyInfo => DifficultyInfo.GetByIndex(RatingClass);
4042

41-
internal string ConstString => $"[{DifficultyInfo.ShortStr} {Rating:0.0}]";
43+
internal string ConstString => $"[{DifficultyInfo.ShortStr} {Const:0.0}]";
4244

4345
internal string NameWithPackageAndConst => $"{NameEn}\n(Package: {SetFriendly})\n{ConstString}";
4446

Andreal/Model/Arcaea/ArcaeaCharts.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ internal static IEnumerable<ArcaeaChart> GetByConst(double @const)
184184
foreach (var song in Songs.Values)
185185
// ReSharper disable once ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator
186186
foreach (var chart in song)
187-
if (Math.Abs(chart.Rating - @const) < lerance)
187+
if (Math.Abs(chart.Const - @const) < lerance)
188188
yield return chart;
189189
}
190190

@@ -194,7 +194,7 @@ private static IEnumerable<ArcaeaChart> GetByConstRange(double lowerlimit, doubl
194194
foreach (var song in Songs.Values)
195195
// ReSharper disable once ForeachCanBePartlyConvertedToQueryUsingAnotherGetEnumerator
196196
foreach (var chart in song)
197-
if (chart.Rating >= lowerlimit && chart.Rating <= upperlimit)
197+
if (chart.Const >= lowerlimit && chart.Const <= upperlimit)
198198
yield return chart;
199199
}
200200
}

Andreal/Model/Arcaea/ArcaeaSong.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ internal async Task<MessageChain> FullConstString()
2020
{
2121
var msg = new MessageChain();
2222

23-
for (var i = 0; i <= Count; i++)
23+
for (var i = 0; i < Count; i++)
2424
if (i == 2 || this[i].JacketOverride)
2525
msg.Append(ImageMessage.FromPath(await Path.ArcaeaSong(this[i])));
26-
27-
for (var i = 0; i <= Count; i++) msg.Append("\n" + this[i].ConstString);
26+
msg.Append(NameWithPackage);
27+
for (var i = 0; i < Count; i++) msg.Append("\n" + this[i].ConstString);
2828

2929
return msg;
3030
}
@@ -37,5 +37,6 @@ public override bool Equals(object? obj)
3737
return Equals((ArcaeaSong)obj);
3838
}
3939

40+
// ReSharper disable once NonReadonlyMemberInGetHashCode
4041
public override int GetHashCode() => SongID.GetHashCode();
4142
}

Andreal/Model/Arcaea/RecordInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ public RecordInfo(ArcSongdata recentdata)
7070

7171
internal DifficultyInfo DifficultyInfo => SongInfo.DifficultyInfo;
7272

73-
internal double Const => SongInfo.Rating;
73+
internal double Const => SongInfo.Const;
7474

7575
internal string Score
7676
{

Andreal/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public static async Task Main()
3838
Console.WriteLine(@"| ' </ _ | ' \/ _` | _/ _` |");
3939
Console.WriteLine(@"|_|\_\___|_||_\__,_\__|\__,_|");
4040

41-
Console.WriteLine("Konata. Konata Project 2022\nProject Andreal v0.2.9 on Konata\n\n");
41+
Console.WriteLine("Konata. Konata Project 2022\nProject Andreal v0.3.0 on Konata\n\n");
4242

4343
External.Initialize(Config);
4444

0 commit comments

Comments
 (0)