fuck anonymous objects

This commit is contained in:
Assistant 2020-02-18 01:39:31 -07:00
parent 88927d8549
commit d121c02336
3 changed files with 43 additions and 5 deletions

View file

@ -26,6 +26,7 @@ namespace ModAssistant
public const string BeatModsAPIUrl = "https://beatmods.com/api/v1/"; public const string BeatModsAPIUrl = "https://beatmods.com/api/v1/";
public const string TeknikAPIUrl = "https://api.teknik.io/v1/"; public const string TeknikAPIUrl = "https://api.teknik.io/v1/";
public const string BeatModsURL = "https://beatmods.com"; public const string BeatModsURL = "https://beatmods.com";
public const string BeatModsAlias = "https://alias.beatmods.com/aliases.json";
public const string WeebCDNAPIURL = "https://pat.assistant.moe/api/v1.0/"; public const string WeebCDNAPIURL = "https://pat.assistant.moe/api/v1.0/";
public const string BeatModsModsOptions = "mod?status=approved"; public const string BeatModsModsOptions = "mod?status=approved";
public const string MD5Spacer = " "; public const string MD5Spacer = " ";

View file

@ -72,8 +72,8 @@
<TextBlock FontSize="10"> <TextBlock FontSize="10">
<TextBlock Text="{DynamicResource MainWindow:GameVersionLabel}" />: <TextBlock Text="{DynamicResource MainWindow:GameVersionLabel}" />:
</TextBlock> </TextBlock>
<ComboBox Name="GameVersionsBox" Margin="0,5,5,0" SelectionChanged="GameVersionsBox_SelectionChanged"> <ComboBox Name="GameVersionsBox" Margin="0,5,5,0" SelectionChanged="GameVersionsBox_SelectionChanged" />
</ComboBox> <ComboBox Name="GameVersionsBoxOverride" Margin="0,5,5,0" Visibility="Collapsed" />
</StackPanel> </StackPanel>
</Grid> </Grid>

View file

@ -18,6 +18,7 @@ namespace ModAssistant
public static MainWindow Instance; public static MainWindow Instance;
public static bool ModsOpened = false; public static bool ModsOpened = false;
public static string GameVersion; public static string GameVersion;
public static string GameVersionOverride;
public TaskCompletionSource<bool> VersionLoadStatus = new TaskCompletionSource<bool>(); public TaskCompletionSource<bool> VersionLoadStatus = new TaskCompletionSource<bool>();
public string MainText public string MainText
@ -89,15 +90,27 @@ namespace ModAssistant
{ {
var resp = await HttpClient.GetAsync(Utils.Constants.BeatModsAPIUrl + "version"); var resp = await HttpClient.GetAsync(Utils.Constants.BeatModsAPIUrl + "version");
var body = await resp.Content.ReadAsStringAsync(); var body = await resp.Content.ReadAsStringAsync();
List<string> versions = JsonSerializer.Deserialize<string[]>(body).ToList(); List<string> versions = JsonSerializer.Deserialize<string[]>(body).ToList();
resp = await HttpClient.GetAsync(Utils.Constants.BeatModsAlias);
body = await resp.Content.ReadAsStringAsync();
object jsonObject = JsonSerializer.DeserializeObject(body);
Dispatcher.Invoke(() => Dispatcher.Invoke(() =>
{ {
GameVersion = GetGameVersion(versions); GameVersion = GetGameVersion(versions, jsonObject);
GameVersionsBox.ItemsSource = versions; GameVersionsBox.ItemsSource = versions;
GameVersionsBox.SelectedValue = GameVersion; GameVersionsBox.SelectedValue = GameVersion;
if (!string.IsNullOrEmpty(GameVersionOverride))
{
GameVersionsBox.Visibility = Visibility.Collapsed;
GameVersionsBoxOverride.Visibility = Visibility.Visible;
GameVersionsBoxOverride.Text = GameVersionOverride;
GameVersionsBoxOverride.IsEnabled = false;
}
if (!string.IsNullOrEmpty(GameVersion) && Properties.Settings.Default.Agreed) if (!string.IsNullOrEmpty(GameVersion) && Properties.Settings.Default.Agreed)
{ {
MainWindow.Instance.ModsButton.IsEnabled = true; MainWindow.Instance.ModsButton.IsEnabled = true;
@ -118,7 +131,7 @@ namespace ModAssistant
} }
} }
private string GetGameVersion(List<string> versions) private string GetGameVersion(List<string> versions, object aliases)
{ {
string version = Utils.GetVersion(); string version = Utils.GetVersion();
if (!string.IsNullOrEmpty(version) && versions.Contains(version)) if (!string.IsNullOrEmpty(version) && versions.Contains(version))
@ -126,6 +139,12 @@ namespace ModAssistant
return version; return version;
} }
string aliasOf = CheckAliases(versions, aliases, version);
if (!string.IsNullOrEmpty(aliasOf))
{
return aliasOf;
}
string versionsString = String.Join(",", versions.ToArray()); string versionsString = String.Join(",", versions.ToArray());
if (Properties.Settings.Default.AllGameVersions != versionsString) if (Properties.Settings.Default.AllGameVersions != versionsString)
{ {
@ -145,6 +164,24 @@ namespace ModAssistant
return versions[0]; return versions[0];
} }
private string CheckAliases(List<string> versions, object aliases, string detectedVersion)
{
Dictionary<string, object> Objects = (Dictionary<string, object>)aliases;
foreach (string version in versions)
{
object[] aliasArray = (object[])Objects[version];
foreach (object alias in aliasArray)
{
if (alias.ToString() == detectedVersion)
{
GameVersionOverride = detectedVersion;
return version;
}
}
}
return string.Empty;
}
private async Task ShowModsPage() private async Task ShowModsPage()
{ {
void OpenModsPage() void OpenModsPage()