// Remember to add an instance of the AudioService // to your IServiceCollection when you initialize your bot public LucaModule(ServerManager servers, AniList myanimelist, IConfigurationRoot config, Random rand) { _servers = servers; _myanimelist = myanimelist; _config = config; _rand = rand; }
/// <summary> /// Return the correct anime list based on the default value. /// </summary> /// <returns>The retrieved AnimeList</returns> private static AnimeList GetAnimeList() { var act = Settings.DefaultAnime; try { AnimeList list; switch (act?.Provider) { case "MyAnimeList": list = AnimeList.Load(new MyAnimeList(act.Credentials)); break; case "Kitsu": list = AnimeList.Load(new Kitsu(act.Credentials)); break; case "AniList": var cli = new AniList(act); cli.TokenExpired += OnAniListTokenExpired; list = AnimeList.Load(cli); break; default: return(null); } return(list); } catch (Exception e) { Debug.WriteLine(e.InnerException?.Message ?? e.Message); Debug.WriteLine(e.InnerException?.StackTrace ?? e.StackTrace); var md = new MessageDialog(Win, DialogFlags.DestroyWithParent, MessageType.Error, ButtonsType.YesNo, "An error was encountered while loading the default anime list: \n" + (e.InnerException?.Message ?? e.Message) + "\n Open the settings window?") { WindowPosition = WindowPosition.Center }; if (md.Run() == (int)ResponseType.Yes) { md.Destroy(); var s = new SettingsWindow(false) { WindowPosition = WindowPosition.Center }; if (s.Run() == (int)ResponseType.Accept) { SettingsChanged(); } s.Destroy(); } else { md.Destroy(); } return(null); } }
private void _MusicInfo() { var vm = new VM音乐(); vm.List = new ObservableCollection <番组>(AniList.Select(a => a.番组)); var win = new View.W音乐(vm); win.Show(); }
public async Task SetUp() { Program.UserSettings = Settings.Load(); // Make sure there is an account called trackr2@anilist in settings file var act = Program.UserSettings.Accounts.FirstOrDefault(x => x.Provider == "AniList" && x.Username == Username); Assert.AreNotEqual(act, null); _aniList = new AniList(act); Assert.True(await _aniList.VerifyCredentials()); Assert.AreEqual(_aniList.Username, Username); // Run this with this account }
private void _Finish() { if (Selected != null) { Selected.完结 = true; Selected.番组.完结 = true; if (!Selected.在线) { moveDirectory(Selected); } DbModel.SaveChanges(); AniList.Remove(Selected); } }
public static async Task BuildServices() { // TODO : Rewrite useraccountfactory List <UserAccountModel> userAccounts = GetAllUserAccounts(); List <Task> tasks = new List <Task>(); services = new Dictionary <int, IApiService>(); foreach (var account in userAccounts) { tasks.Add(Task.Run(async() => { switch (account.Service) { case ServiceType.ANILIST: { IApiService service = new AniList(); var additionalinfo = JsonConvert.DeserializeObject <Tuple <string, string> >(account.AdditionalOption.ToString()); await service.VerifyAccount(additionalinfo.Item2); lock (services) { services.Add(account.Id, service); if (account.IsDefaultService) { CurrentService = service; } } break; } case ServiceType.MYANIMELIST: { break; } case ServiceType.KITSU: { break; } default: break; } })); } await Task.WhenAll(tasks); }
public frmMain() { IEnumerator AniList; // List of animations. String Voice; // The current voice. String WinFolder; // Windows Folder // Required for Windows Form Designer support InitializeComponent(); // Obtain the Windows folder location. WinFolder = Environment.SystemDirectory.Substring( 0, Environment.SystemDirectory.IndexOf("System32")); // Try loading a character. TestAgent.Characters.Load( "Merlin", @WinFolder + @"MSAgent\Chars\Merlin.acs"); // Make the character the current speaker. CurrentSpeaker = TestAgent.Characters["Merlin"]; // Get the animation list for this character. AniList = TestAgent.Characters["Merlin"].AnimationNames.GetEnumerator(); // Load the animation list into the CurrentSpeaker command // list. while (AniList.MoveNext()) { Voice = (String)AniList.Current; Voice = Voice.Replace("_", "underscore"); CurrentSpeaker.Commands.Add((String)AniList.Current, AniList.Current, Voice, true, false); } }
private async void OnOkButton(object o, EventArgs args) { UserPass cred; Api.Api api; bool res; // result of credential verification _okButton.Sensitive = false; // what type of account are we recreating? switch (_type.ActiveText) { case "MyAnimeList": case "Kitsu": if (_type.ActiveText == "MyAnimeList") { cred = new UserPass(_username.Text, _password.Text); api = new MyAnimeList(cred); } else if (_type.ActiveText == "Kitsu") { if (!_editing) { _email = _username.Text; } cred = new UserPass(_email, _password.Text); api = new Kitsu(cred); } else { throw new NotImplementedException(); } try { res = Task.Run(() => api.VerifyCredentials()).Result; } // ApiRequestException, WebException... catch (Exception e) { var ed = new MessageDialog(null, DialogFlags.DestroyWithParent, MessageType.Error, ButtonsType.OkCancel, e.InnerException?.Message ?? e.Message) { WindowPosition = WindowPosition.Center }; var ret = ed.Run(); ed.Destroy(); Debug.WriteLine("[Exception] " + (e.InnerException?.Message ?? e.Message)); Debug.WriteLineIf(e.InnerException != null, e.InnerException?.StackTrace); if (ret == (int)ResponseType.Cancel) { Respond(ResponseType.Reject); } _okButton.Sensitive = true; return; } if (res) { if (api.GetType() == typeof(Kitsu)) { Result = new Account(api.Name, api.Username, cred, ((Kitsu)api).Email); } else { Result = new Account(api.Name, api.Username, cred); } Respond(ResponseType.Accept); } else // Invalid username or password! { var ed = new MessageDialog(null, DialogFlags.DestroyWithParent, MessageType.Error, ButtonsType.OkCancel, "Invalid username or password.") { WindowPosition = WindowPosition.Center }; var ret = ed.Run(); ed.Destroy(); if (ret == (int)ResponseType.Cancel) { Respond(ResponseType.Reject); } else { _okButton.Sensitive = true; } } break; case "AniList": var pin = RequestAniListToken(); cred = new UserPass(null, pin); var account = new Account(AniList.Identifier, null, cred); api = new AniList(account); ((AniList)api).TokenExpired += Program.OnAniListTokenExpired; try { res = await api.VerifyCredentials(); } catch (Exception e) { var ed = new MessageDialog(null, DialogFlags.DestroyWithParent, MessageType.Error, ButtonsType.Ok, e.InnerException?.Message ?? e.Message) { WindowPosition = WindowPosition.Center }; ed.Run(); ed.Destroy(); Respond(ResponseType.Reject); Debug.WriteLine("[Exception] " + (e.InnerException?.Message ?? e.Message)); return; } if (res) { account.Username = api.Username; Result = account; Respond(ResponseType.Accept); } else { var ed = new MessageDialog(null, DialogFlags.DestroyWithParent, MessageType.Error, ButtonsType.Ok, "An invalid authentication pin was entered.") { WindowPosition = WindowPosition.Center }; ed.Run(); ed.Destroy(); Respond(ResponseType.Reject); } break; default: Debug.Fail($"The account type {_type.ActiveText} has not been implemented."); Respond(ResponseType.Reject); break; } }