Skip to content

Commit 46f1144

Browse files
committed
remember selected server (#14)
1 parent 2ae9155 commit 46f1144

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

App.xaml.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ public class Config : SettingsManager<Config> {
2424
public List<string> Skipped { get; set; } = [];
2525
public bool OwnedOnly { get; set; } = true;
2626

27+
public string SelectedServer { get; set; } = string.Empty;
28+
2729
public int ArtResolution { get; set; } = 128;
2830
public double RefreshInterval { get; set; } = 2.5;
2931
public int SessionTimeout { get; set; } = 30;

Windows/MainWindow.xaml.cs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public partial class MainWindow : Window {
2323

2424
private PlexResourceData? SelectedResource => (PlexResourceData)UserServerComboBox.SelectedItem;
2525

26-
public Uri? Address {
26+
public Uri? SelectedAddress {
2727
get {
2828
if (!string.IsNullOrEmpty(Config.Settings.PlexAddress))
2929
return new UriBuilder(Config.Settings.PlexAddress).Uri;
@@ -115,12 +115,12 @@ public void GetAccountInfo() {
115115
UserServerComboBox.ItemsSource = new List<dynamic>() { customItem };
116116
UserServerComboBox.IsEnabled = false;
117117
}
118-
UserServerComboBox.SelectedIndex = 0;
118+
UserServerComboBox.SelectedIndex = App.PlexResources?.ToList().FindIndex(r => r.Name == Config.Settings.SelectedServer) ?? 0;
119+
if (UserServerComboBox.SelectedIndex == -1)
120+
UserServerComboBox.SelectedIndex = 0;
119121

120122
UserInfoPanel.Visibility = Visibility.Visible;
121-
122123
UserServerComboBox.Visibility = Visibility.Visible;
123-
124124
LoadingImage.Visibility = Visibility.Collapsed;
125125
}
126126

@@ -151,7 +151,7 @@ public async void StartPolling() {
151151
private async Task<SessionData?> GetCurrentSession() {
152152
try {
153153
if (UserServerComboBox.SelectedItem == null) return null;
154-
HttpRequestMessage requestMessage = new(HttpMethod.Get, $"{Address}status/sessions?X-Plex-Token={SelectedResource?.AccessToken}");
154+
HttpRequestMessage requestMessage = new(HttpMethod.Get, $"{SelectedAddress}status/sessions?X-Plex-Token={SelectedResource?.AccessToken}");
155155
requestMessage.Headers.Add("Accept", "application/json");
156156
Console.WriteLine(requestMessage.RequestUri);
157157

@@ -168,7 +168,7 @@ public async void StartPolling() {
168168
return sessions?.FirstOrDefault(session => session.Type == "track" && session.User?.Name == App.Account?.Username);
169169
}
170170
catch (Exception e) {
171-
Console.WriteLine($"WARN: Unable to get current session: {Address}status/sessions?X-Plex-Token={SelectedResource?.AccessToken?[..3]}... {e.Message} {e.InnerException}");
171+
Console.WriteLine($"WARN: Unable to get current session: {SelectedAddress}status/sessions?X-Plex-Token={SelectedResource?.AccessToken?[..3]}... {e.Message} {e.InnerException}");
172172
return null;
173173
}
174174
}
@@ -398,7 +398,7 @@ private static async Task TestResource(PlexResourceData resource) {
398398
}
399399

400400
private async Task<string> UploadImage(string thumb) {
401-
HttpResponseMessage getResponse = await httpClient.GetAsync($"{Address}photo/:/transcode?width={Config.Settings.ArtResolution}&height={Config.Settings.ArtResolution}&minSize=1&upscale=1&format=png&url={thumb}&X-Plex-Token={SelectedResource?.AccessToken}");
401+
HttpResponseMessage getResponse = await httpClient.GetAsync($"{SelectedAddress}photo/:/transcode?width={Config.Settings.ArtResolution}&height={Config.Settings.ArtResolution}&minSize=1&upscale=1&format=png&url={thumb}&X-Plex-Token={SelectedResource?.AccessToken}");
402402

403403
string dataString = Uri.EscapeDataString(Convert.ToBase64String(await getResponse.Content.ReadAsByteArrayAsync()));
404404
HttpResponseMessage sendResponse = await httpClient.SendAsync(new() {
@@ -433,6 +433,9 @@ private void SettingsButton_Click(object sender, RoutedEventArgs e) {
433433
protected override void OnClosed(EventArgs e) {
434434
base.OnClosed(e);
435435
App.DiscordClient.Dispose();
436+
437+
Config.Settings.SelectedServer = SelectedResource?.Name ?? string.Empty;
438+
436439
Config.Save();
437440
}
438441

0 commit comments

Comments
 (0)