public static Task <string> GiConfirmAction(string action, bool value) { Globals.DebugWriteLine($@"[JSInvoke:General\GeneralInvocableFuncs.GiConfirmAction] action={action.Split(":")[0]}, value={value}"); if (!value) { return(Task.FromResult("")); } var split = action.Split(":"); if (split.Length > 1) { var accName = split[1]; if (action.StartsWith("AcceptForgetBasicAcc:")) { BasicSettings.SetForgetAcc(true); _ = GeneralFuncs.ForgetAccount_Generic(accName, CurrentPlatform.SafeName, true); return(Task.FromResult("refresh")); } if (action.StartsWith("AcceptForgetSteamAcc:")) { SteamSettings.SetForgetAcc(true); _ = SteamSwitcherFuncs.ForgetAccount(accName); return(Task.FromResult("refresh")); } if (action.StartsWith("AcceptForgetBattleNetAcc:")) { BattleNetSettings.SetForgetAcc(true); BattleNetSwitcherFuncs.ForgetAccount(accName); return(Task.FromResult("refresh")); } } switch (action) { case "ClearBattleNetIgnored": BattleNetSwitcherFuncs.ClearIgnored_Confirmed(); break; case "RestartAsAdmin": break; } return(Task.FromResult("")); }
public void Check(string platform) { Globals.DebugWriteLine($@"[Func:Index.Check] platform={platform}"); switch (platform) { case "BattleNet": if (!GeneralFuncs.CanKillProcess(BattleNetSettings.Processes, BattleNetSettings.ClosingMethod)) { return; } if (Directory.Exists(BattleNetSettings.FolderPath) && File.Exists(BattleNetSettings.Exe())) { AppData.ActiveNavMan.NavigateTo("/BattleNet/"); } else { _ = GeneralInvocableFuncs.ShowModal("find:BattleNet:Battle.net.exe:BattleNetSettings"); } break; case "Steam": if (!GeneralFuncs.CanKillProcess(SteamSettings.Processes, SteamSettings.ClosingMethod)) { return; } if (!Directory.Exists(SteamSettings.FolderPath) || !File.Exists(SteamSettings.Exe())) { _ = GeneralInvocableFuncs.ShowModal("find:Steam:Steam.exe:SteamSettings"); return; } if (SteamSwitcherFuncs.SteamSettingsValid()) { AppData.ActiveNavMan.NavigateTo("/Steam/"); } else { _ = GeneralInvocableFuncs.ShowModal(Lang["Toast_Steam_CantLocateLoginusers"]); } break; default: if (BasicPlatforms.PlatformExistsFromShort(platform)) // Is a basic platform! { BasicPlatforms.SetCurrentPlatformFromShort(platform); if (!GeneralFuncs.CanKillProcess(CurrentPlatform.ExesToEnd, BasicSettings.ClosingMethod)) { return; } if (Directory.Exists(BasicSettings.FolderPath) && File.Exists(BasicSettings.Exe())) { AppData.ActiveNavMan.NavigateTo("/Basic/"); } else { _ = GeneralInvocableFuncs.ShowModal($"find:{CurrentPlatform.SafeName}:{CurrentPlatform.ExeName}:{CurrentPlatform.SafeName}"); } } break; } }
public static async Task <string> GiExportAccountList(string platform) { Globals.DebugWriteLine(@$ "[Func:Pages\General\GeneralInvocableFuncs.GiExportAccountList] platform={platform}"); platform = BasicPlatforms.PlatformFullName(platform); if (!Directory.Exists(Path.Join("LoginCache", platform))) { _ = ShowToast("error", Lang["Toast_AddAccountsFirst"], Lang["Toast_AddAccountsFirstTitle"], "toastarea"); return(""); } var s = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ListSeparator; // Different regions use different separators in csv files. List <string> allAccountsTable = new(); if (platform == "Steam") { // Add headings and separator for programs like Excel allAccountsTable.Add("SEP=,"); allAccountsTable.Add("Account name:,Community name:,SteamID:,VAC status:,Last login:,Saved profile image:"); var userAccounts = SteamSwitcherFuncs.GetSteamUsers(SteamSettings.LoginUsersVdf()); var vacStatusList = new List <SteamSwitcherFuncs.VacStatus>(); var loadedVacCache = SteamSwitcherFuncs.LoadVacInfo(ref vacStatusList); foreach (var ua in userAccounts) { var vacInfo = ""; // Get VAC/Limited info if (loadedVacCache) { foreach (var vsi in vacStatusList.Where(vsi => vsi.SteamId == ua.SteamId)) { if (vsi.Vac && vsi.Ltd) { vacInfo += "VAC + Limited"; } else { vacInfo += (vsi.Vac ? "VAC" : "") + (vsi.Ltd ? "Limited" : ""); } break; } } else { vacInfo += "N/A"; } var imagePath = Path.GetFullPath($"{SteamSettings.SteamImagePath + ua.SteamId}.jpg"); allAccountsTable.Add(ua.AccName + s + ua.Name + s + ua.SteamId + s + vacInfo + s + SteamSwitcherFuncs.UnixTimeStampToDateTime(ua.LastLogin) + s + (File.Exists(imagePath) ? imagePath : "Missing from disk")); } } else if (platform == "BattleNet") { // Add headings and separator for programs like Excel allAccountsTable.Add("SEP=,"); allAccountsTable.Add("Email:,BattleTag:,Overwatch Support SR:,Overwatch DPS SR:,Overwatch Tank SR:,Saved profile image:"); await BattleNetSwitcherFuncs.LoadProfiles(); foreach (var ba in BattleNetSettings.Accounts) { var imagePath = Path.GetFullPath($"wwwroot\\img\\profiles\\battlenet\\{ba.Email}.png"); allAccountsTable.Add(ba.Email + s + ba.BTag + s + (ba.OwSupportSr != 0 ? ba.OwSupportSr : "") + s + (ba.OwDpsSr != 0 ? ba.OwDpsSr : "") + s + (ba.OwTankSr != 0 ? ba.OwTankSr : "") + s + (File.Exists(imagePath) ? imagePath : "Missing from disk")); } } else { // Platform does not have specific details other than usernames saved. allAccountsTable.Add("Account name:"); foreach (var accDirectory in Directory.GetDirectories(Path.Join("LoginCache", platform))) { allAccountsTable.Add(Path.GetFileName(accDirectory)); } } var outputFolder = Path.Join("wwwroot", "Exported"); _ = Directory.CreateDirectory(outputFolder); var outputFile = Path.Join(outputFolder, platform + ".csv"); await File.WriteAllLinesAsync(outputFile, allAccountsTable).ConfigureAwait(false); return(Path.Join("Exported", platform + ".csv")); }
public static void CreateShortcut(string page, string accId, string accName, string args = "") { Globals.DebugWriteLine(@"[JSInvoke:General\GeneralInvocableFuncs.CreateShortcut]"); var platform = page; page = page.ToLowerInvariant(); if (args.Length > 0 && args[0] != ':') { args = $" {args}"; // Add a space before arguments if doesn't start with ':' } var platformName = $"Switch to {accName} [{platform}]"; var originalAccId = accId; var primaryPlatformId = "" + page[0]; var bgImg = Path.Join(GeneralFuncs.WwwRoot(), $"\\img\\platform\\{page}.png"); switch (page) { case "steam": { var ePersonaState = -1; if (args.Length == 2) { _ = int.TryParse(args[1].ToString(), out ePersonaState); } platformName = $"Switch to {accName} {(args.Length > 0 ? $"({SteamSwitcherFuncs.PersonaStateToString(ePersonaState)})" : "")} [{platform}]"; break; } case "basic": page = CurrentPlatform.SafeName; primaryPlatformId = CurrentPlatform.PrimaryId; platform = CurrentPlatform.FullName; platformName = $"Switch to {accName} [{platform}]"; var platformImgPath = "\\img\\platform\\" + CurrentPlatform.SafeName + ".png"; var currentPlatformImgPath = Path.Join(GeneralFuncs.WwwRoot(), platformImgPath); bgImg = File.Exists(currentPlatformImgPath) ? Path.Join(currentPlatformImgPath) : Path.Join(GeneralFuncs.WwwRoot(), "\\img\\BasicDefault.png"); break; } var fgImg = Path.Join(GeneralFuncs.WwwRoot(), $"\\img\\profiles\\{page}\\{accId}.jpg"); if (!File.Exists(fgImg)) { fgImg = Path.Join(GeneralFuncs.WwwRoot(), $"\\img\\profiles\\{page}\\{accId}.png"); } if (!File.Exists(fgImg)) { _ = ShowToast("error", Lang["Toast_CantFindImage"], Lang["Toast_CantCreateShortcut"], "toastarea"); return; } var s = new Shortcut(); _ = s.Shortcut_Platform( Shortcut.Desktop, platformName, $"+{primaryPlatformId}:{originalAccId}{args}", $"Switch to {accName} [{platform}] in TcNo Account Switcher", true); s.CreateCombinedIcon(bgImg, fgImg, $"{accId}.ico"); s.TryWrite(); _ = AppSettings.StreamerModeTriggered ? ShowToast("success", Lang["Toast_ShortcutCreated"], Lang["Success"], "toastarea") : ShowToast("success", Lang["ForName", new { name = accName }], Lang["Toast_ShortcutCreated"], "toastarea"); }