public async Task InitializeAsync() { var settingsLoader = new SettingsLoader(); VideosPerPage = int.Parse((await settingsLoader.GetSettingAsync(Setting.MAXVIDEOSPERPAGE))?.Value ?? "50"); ThumpnailSize = int.Parse((await settingsLoader.GetSettingAsync(Setting.THUMPNAILSIZE))?.Value ?? "320"); var videos = await _VideoProvider.GetVideos(); videos = videos.OrderBy(x => x.Artist.Name).ThenBy(x => x.Name).ToList(); foreach (var video in videos) { var vidVM = new VideoViewModel(video); Videos.Add(vidVM); } FilteredVideos = Videos.ToList(); // Add all videos to CurrentPageVideos, page filtering is done via SourceCollectionView.Filter foreach (var video in Videos) { CurrentPageVideos.Add(video); } VideoCollectionView.MoveCurrentToFirst(); MaxPage = Videos.Count / VideosPerPage; GroupAfterArtist(null); foreach (var video in Videos) { video.ThumbailBitmap = await video.GetThumbnailBitmap().ConfigureAwait(false); } }
private async void RefreshVideos(int?obj) { var settingsLoader = new SettingsLoader(); var settingsVideosPerPage = await settingsLoader.GetSettingAsync(Setting.MAXVIDEOSPERPAGE); var settingsThumpnailsize = await settingsLoader.GetSettingAsync(Setting.THUMPNAILSIZE); if (settingsVideosPerPage != null) { VideosPerPage = int.Parse(settingsVideosPerPage.Value); int maxPage = FilteredVideos.Count / VideosPerPage; if (CurrentPage > maxPage) { CurrentPage = maxPage; } } if (settingsThumpnailsize != null) { ThumpnailSize = int.Parse(settingsThumpnailsize.Value); } SetCurrentPage(); }
public SettingsPage() { InitializeComponent(); var settingsLoader = new SettingsLoader(); TextBoxUserName.Text = settingsLoader.GetSettingAsync(Setting.ACCOUNT_NAME).Result?.Value; TextBoxPassword.Password = settingsLoader.GetSettingAsync(Setting.ACCOUNT_PASSWORD).Result?.Value; NumericMaxVideosPerPage.Value = double.Parse(settingsLoader.GetSettingAsync(Setting.MAXVIDEOSPERPAGE).Result?.Value ?? "50"); ThumpnailSizeSlider.Value = double.Parse(settingsLoader.GetSettingAsync(Setting.THUMPNAILSIZE).Result?.Value ?? "320"); TextBoxArtistFolderPath.Text = settingsLoader.GetSettingAsync(Setting.VIDEOPATH).Result?.Value; }
private async void IwaraWebView_ContentLoading(object sender, Microsoft.Web.WebView2.Core.CoreWebView2ContentLoadingEventArgs e) { btDownload.IsEnabled = false; await SetVideo(); var settingsLoader = new SettingsLoader(); var account = await settingsLoader.GetSettingAsync(Setting.ACCOUNT_NAME); var password = await settingsLoader.GetSettingAsync(Setting.ACCOUNT_PASSWORD); if (account != null) { await IwaraWebView.CoreWebView2.ExecuteScriptAsync($"globalThis.userAccount = '{account.Value}';"); } if (password != null) { await IwaraWebView.CoreWebView2.ExecuteScriptAsync($"globalThis.userPassword = '******';"); } }
private async void Download_VideoFinishedDownloading(object sender, Video e) { SettingsLoader settingsLoader = new SettingsLoader(); var videoPathSetting = await settingsLoader.GetSettingAsync(Setting.VIDEOPATH); e.FileCreated = File.GetCreationTime(e.FilePath); e.Artist.Videos.Add(e); ArtistLoader artistLoader = new ArtistLoader(); await artistLoader.SetArtistAsync(e.Artist); _VideoProvider.NotifyNewVideo(e); }
private async Task <Setting> GetVideoPathSettings() { SettingsLoader settingsLoader = new SettingsLoader(); var videoPathSetting = await settingsLoader.GetSettingAsync(Setting.VIDEOPATH); if (videoPathSetting == null) { var msgBox = System.Windows.MessageBox.Show("First time starting Iwara Media Manager", "Please select a video folder."); videoPathSetting = await SetVideoPathDialogAsync(); } return(videoPathSetting); }
private void Application_Startup(object sender, StartupEventArgs e) { this.ShutdownMode = ShutdownMode.OnExplicitShutdown; using (DataBaseContext dbContext = new DataBaseContext()) { dbContext.Database.Migrate(); } var settingsLoader = new SettingsLoader(); string savedTheme = settingsLoader.GetSettingAsync(Setting.COLORTHEME).Result?.Value; if (savedTheme != null) { ModernWpf.ThemeManager.Current.ApplicationTheme = ModernWpf.ApplicationTheme.Dark; try { var color = ColorTranslator.FromHtml(savedTheme); ModernWpf.ThemeManager.Current.AccentColor = System.Windows.Media.Color.FromArgb(color.A, color.R, color.G, color.B); } catch { } } else { ModernWpf.ThemeManager.Current.ApplicationTheme = ModernWpf.ApplicationTheme.Dark; ModernWpf.ThemeManager.Current.AccentColor = Colors.SteelBlue; } var serviceLocator = this.FindResource("ServiceLocator") as ServiceLocator; serviceLocator.Initialize(); var mainWindow = new MainWindow(); mainWindow.FontFamily = new System.Windows.Media.FontFamily("Segoe UI"); mainWindow.Show(); this.ShutdownMode = ShutdownMode.OnLastWindowClose; }
private async void DownloadVideo(Video video) { if (video == null) { return; } AllowDownload = false; SettingsLoader settingsLoader = new SettingsLoader(); var videoPathSetting = await settingsLoader.GetSettingAsync(Setting.VIDEOPATH); var chars = Path.GetInvalidFileNameChars(); var artistName = video.Artist.Name; foreach (var c in chars) { artistName = artistName.Replace(c, '_'); } video.Artist.FolderPath = Path.Combine(videoPathSetting.Value, artistName); var vidName = video.Name; foreach (var c in chars) { vidName = vidName.Replace(c, '_'); } video.FilePath = Path.Combine(video.Artist.FolderPath, $"{vidName}.mp4"); DownloadViewModel download = new DownloadViewModel(); download.FinishedDownloading += Download_VideoFinishedDownloading; DownloadProvider.Downloads.Add(download); await download.StartDownload(video); }