public static async Task LoadBackup() { try { await JSWrapper.SetTile("Sermone - " + Language.Loading); var Backup = await Paste.GetPaste(CurrentPaste); if (Math.Abs(Backup.Content.Length - DialogueBox.Items.Length) > 1) { Toast.ShowError(Language.BackupIncompatible, Language.Error); } else { for (int i = 0; i < DialogueBox.Items?.Length; i++) { DialogueBox.Items[i].Value = Backup.Content[i]; DialogueBox.Refresh(i); if ((i % 50) == 0) { await DoEvents(); } } } } catch { Toast.ShowError(Language.BackupFailed, Language.Error); } await JSWrapper.SetTile("Sermone"); }
public static async Task Open(bool OpenAs = false, bool AsSecondary = false) { if (!CanSave && AsSecondary) { Toast.ShowError(Language.OpenAScriptBefore, Language.Error); return; } ForceLastPlugin = OpenAs; OpenAsSecondary = AsSecondary; await JSWrapper.OpenFile(); }
public static async Task OpenAs(bool AsSecondary = false) { var Result = await Modal.ShowDialogAsync <PluginPicker>(Language.SelectAPlugin); await JSWrapper.DestroyTooltips(); if (!Result.Success) { return; } LastWorkingPlugin = (IPluginCreator)Result.ReturnParameters["Plugin"]; await Open(true, AsSecondary); }
public static async Task UpdateSettings(bool Save = true) { GetLanguageByID(Engine.Settings.Language, out Engine.Language); await JSWrapper.SetCustomCSS(Engine.Settings.CustomCSS); if (Save) { await Engine.LocalStorage.SetItemAsync("Settings", Engine.Settings); } Engine.Paste = null; GetPasteCreatorByID(Engine.Settings.PasteClient, out IPasteCreator PasteCreator); if (!string.IsNullOrEmpty(Engine.Settings.PasteUsername) && !string.IsNullOrEmpty(Engine.Settings.PastePassword)) { Engine.Paste = await PasteCreator.Create(Engine.Settings.PasteUsername, Engine.Settings.PastePassword); } }
public static async Task <bool> EntryPoint() { if (BasePath != null) { return(false); } if (await Engine.LocalStorage.ContainKeyAsync("Settings")) { Console.WriteLine("Loading Settings..."); Engine.Settings = await Engine.LocalStorage.GetItemAsync <Config>("Settings"); } else { Console.WriteLine("Using Default Settings..."); Engine.Settings = new Config() { AcceptableRanges = "0-9A-Za-zÀ-ÃÇ-ÎÓ-ÕÚ-Ûà-ãç-îó-õú-û。-゚!?~.,[](){}''\"", AllowNumbers = true, Breakline = "\\n", DenyList = "@;§;_;<;>;/;=", FromAsian = false, IgnoreList = ";、;。;%;{;}", QuoteList = "<>;();[];“”;[];《》;«»;「」;『』;【】;();'';\"\"", Sensitivity = 3, BackupOn = 15, Language = 0 }; } await UpdateSettings(false); Strings.Initialize(); BasePath = await JSWrapper.GetBaseDirectory(); if (!BasePath.EndsWith("/")) { BasePath += "/"; } Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); return(true); }
public static async Task OpenFile() { var OriPlugin = CurrentPlugin; var OriLastWork = LastWorkingPlugin; if (!OpenAsSecondary) { DialogueBox.SelectedIndex = 0; DialogueBox.SetItems(new ListBoxItemInfo[0]); DialogueBox.Refresh(); } string[] Strings = null; await JSWrapper.SetTile($"Sermone - {Language.Loading}"); if (LastWorkingPlugin != null) { Strings = TryUsePlugin(LastWorkingPlugin); } if (!IsValidStrings(Strings)) { if (ForceLastPlugin) { Toast.ShowError(Language.PluginDontSupport, Language.NotSupported); return; } var CurrentExt = Path.GetExtension(CurrentName).ToLower(); var SupportedPlugins = (from x in Plugins where x.Filter.ToLower().Contains(CurrentExt) select x); var NotSupportedPlugins = (from x in Plugins where !SupportedPlugins.Contains(x) select x); foreach (var Plugin in SupportedPlugins) { Strings = TryUsePlugin(Plugin); if (IsValidStrings(Strings)) { LastWorkingPlugin = Plugin; break; } } if (Strings == null) { foreach (var Plugin in NotSupportedPlugins) { Strings = TryUsePlugin(Plugin); if (IsValidStrings(Strings)) { LastWorkingPlugin = Plugin; break; } } } } if (Strings == null) { Toast.ShowError(Language.NotSupportedPluginFound, Language.Error); return; } if (OpenAsSecondary) { OpenAsSecondary = false; CurrentPlugin = OriPlugin; LastWorkingPlugin = OriLastWork; if (Strings.Length != DialogueBox.Items.Length) { Toast.ShowError(Language.IncompatibleReferenceScript, Language.Error); } else { for (int i = 0; i < Strings.Length; i++) { DialogueBox.Items[i].SubValue = Strings[i]; } DialogueBox.Refresh(); } } else { DialogueBox.SetItems((from x in Strings select new ListBoxItemInfo(true, true, x, null)).ToArray()); DialogueBox.Refresh(); CanSave = true; MainNavMenu.Refresh(); switch (Settings.SelectionMode) { case 1: await ForceSelection(true); break; default: await AutoSelect(); break; } } await JSWrapper.SetTile($"{CurrentName} - Sermone"); }