public bool ConnectToAccount(string authToken, bool useLocalHostRedirect = true) { ActiveAccount = AccountCommunication.LoadAccountDetails(AccountCommunication.ConnectAccount(authToken, useLocalHostRedirect)); if (!string.IsNullOrWhiteSpace(ActiveAccount.Access.RefreshToken)) { // Account wurde erfolgreich verbunden -> Kategorien laden. ActiveAccount = AccountCommunication.FillAccountWithAvailableVideoCategories(ActiveAccount); WriteAccount(); Languages = AccountCommunication.LoadYoutubeLanguages(ActiveAccount.Access.AccessToken).ToList(); WriteLanguages(); return(true); } return(false); }
public AutomationUploader() { if (!Directory.Exists("settings")) { Directory.CreateDirectory("settings"); } if (File.Exists(templatesPath)) { ReadTemplates(); EnsureTemplateIdsAreUnique(); EnsureTemplatesHaveCategory(); EnsureTemplatesHaveLanguage(); } EnsureStandardTemplateExists(); if (File.Exists(accountJsonPath)) { using (StreamReader reader = new StreamReader(accountJsonPath)) { string savedAccountJson = reader.ReadToEnd(); var savedAccount = JsonConvert.DeserializeObject <AccountJson>(savedAccountJson); var categories = savedAccount.categories?.Select(c => new Category(c.id, c.title)).ToArray(); if (categories == null) { categories = new[] { Category.Default }; } var region = savedAccount.region; if (region == null) { region = "DE"; } ActiveAccount = new Account() { Id = savedAccount.id, Title = savedAccount.title, Access = new Authentification() { RefreshToken = savedAccount.refreshToken }, Region = savedAccount.region, AvailableCategories = categories }; if (string.IsNullOrWhiteSpace(ActiveAccount?.Access?.AccessToken)) { RefreshAccess(); } } } if (File.Exists(selectedPathsJsonPath)) { try { ReadPaths(); } catch (Exception ex) { Debug.Write(ex.Message); Paths = new PathSettings(); File.Delete(selectedPathsJsonPath); } } if (File.Exists(languagesPath)) { try { ReadLanguages(); } catch (Exception ex) { Debug.Write(ex.Message); Languages = new List <Language>(new Language[] { Language.Default }); File.Delete(languagesPath); } } else if (ActiveAccount != null && ActiveAccount.Access != null && ActiveAccount.Access.AccessToken != null) { Languages = AccountCommunication.LoadYoutubeLanguages(ActiveAccount.Access.AccessToken).ToList(); WriteLanguages(); } foreach (var path in Paths) { if (!Templates.Any(t => t.Id == path.SelectedTemplateId)) { path.SelectedTemplateId = 0; } } UnfinishedJob = LoadLastJob(); }