pull/826/head
Oleksii Holub 2 years ago
parent e29f08264c
commit aea96d5eba

@ -103,7 +103,7 @@ internal partial class MediaDownloader
// Otherwise, use the original file name but inject the hash in the middle
var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(fileName);
var fileExtension = Path.GetExtension(fileName);
// Probably not a file extension, just a dot in a long file name
// https://github.com/Tyrrrz/DiscordChatExporter/issues/708
if (fileExtension.Length > 41)
@ -114,4 +114,4 @@ internal partial class MediaDownloader
return PathEx.EscapeFileName(fileNameWithoutExtension.Truncate(42) + '-' + urlHash + fileExtension);
}
}
}

@ -25,7 +25,7 @@ public class DashboardViewModel : PropertyChangedBase
private readonly IEventAggregator _eventAggregator;
private readonly DialogManager _dialogManager;
private readonly SettingsService _settingsService;
private readonly AutoResetProgressMuxer _progressMuxer;
private DiscordClient? _discord;
@ -49,7 +49,7 @@ public class DashboardViewModel : PropertyChangedBase
: null;
public IReadOnlyList<Channel>? SelectedChannels { get; set; }
public DashboardViewModel(
IViewModelFactory viewModelFactory,
IEventAggregator eventAggregator,
@ -60,9 +60,9 @@ public class DashboardViewModel : PropertyChangedBase
_eventAggregator = eventAggregator;
_dialogManager = dialogManager;
_settingsService = settingsService;
_progressMuxer = Progress.CreateMuxer().WithAutoReset();
this.Bind(o => o.IsBusy, (_, _) => NotifyOfPropertyChange(() => IsProgressIndeterminate));
Progress.Bind(o => o.Current, (_, _) => NotifyOfPropertyChange(() => IsProgressIndeterminate));
}
@ -74,7 +74,7 @@ public class DashboardViewModel : PropertyChangedBase
Token = _settingsService.LastToken;
}
}
public async void ShowSettings()
{
var dialog = _viewModelFactory.CreateSettingsViewModel();
@ -90,7 +90,7 @@ public class DashboardViewModel : PropertyChangedBase
{
IsBusy = true;
var progress = _progressMuxer.CreateInput();
try
{
var token = Token?.Trim('"', ' ');
@ -136,8 +136,7 @@ public class DashboardViewModel : PropertyChangedBase
!IsBusy &&
_discord is not null &&
SelectedGuild is not null &&
SelectedChannels is not null &&
SelectedChannels.Any();
SelectedChannels?.Any() is true;
public async void ExportChannels()
{

@ -21,12 +21,11 @@ public class ExportSetupViewModel : DialogScreen
public IReadOnlyList<Channel>? Channels { get; set; }
public bool IsSingleChannel => Channels is null || Channels.Count == 1;
public bool IsSingleChannel => Channels?.Count == 1;
public string? OutputPath { get; set; }
public IReadOnlyList<ExportFormat> AvailableFormats =>
Enum.GetValues(typeof(ExportFormat)).Cast<ExportFormat>().ToArray();
public IReadOnlyList<ExportFormat> AvailableFormats { get; } = Enum.GetValues<ExportFormat>();
public ExportFormat SelectedFormat { get; set; }
@ -96,12 +95,11 @@ public class ExportSetupViewModel : DialogScreen
_settingsService.LastShouldDownloadMedia = ShouldDownloadMedia;
// If single channel - prompt file path
if (Channels is not null && IsSingleChannel)
if (IsSingleChannel)
{
var channel = Channels.Single();
var defaultFileName = ExportRequest.GetDefaultOutputFileName(
Guild!,
channel,
Channels!.Single(),
SelectedFormat,
After?.Pipe(Snowflake.FromDate),
Before?.Pipe(Snowflake.FromDate)

Loading…
Cancel
Save