EmbyCrackedClient/web/modules/approuter.js

1 line
27 KiB
JavaScript
Raw Permalink Normal View History

2025-06-25 11:46:04 +08:00
import events from"./emby-apiclient/events.js";import connectionManager from"./emby-apiclient/connectionmanager.js";import globalize from"./common/globalize.js";import pluginManager from"./common/pluginmanager.js";import queryString from"./common/querystring.js";import browser from"./browser.js";import layoutManager from"./layoutmanager.js";import skinManager from"./skinmanager.js";import loading from"./loading/loading.js";import{appHost}from"./common/servicelocator.js";import textEncoding from"./common/textencoding.js";import viewManager from"./viewmanager/viewmanager.js";import backdrop from"./backdrop/backdrop.js";import page from"./pagejs/page.js";import ApiClient from"./emby-apiclient/apiclient.js";import BaseAppRouter from"./common/baseapprouter.js";function showAlert(options){return Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function showAlertAndResolve(options){return showAlert(options).catch(function(){return Promise.resolve()})}function loadDialogHelper(){return Emby.importModule("./modules/dialoghelper/dialoghelper.js")}function loadAppHeader(){return Emby.importModule("./modules/appheader/appheader.js")}function AppRouter(){BaseAppRouter.apply(this,arguments)}Object.assign(AppRouter.prototype,BaseAppRouter.prototype),AppRouter.prototype.showProfilePinPrompt=function(options){return Emby.importModule("./modules/profilepinprompt/profilepinprompt.js").then(function(PinPrompt){return(new PinPrompt).show(options)})};let IsHostedWebApp="standalone"===globalThis.appMode&&!browser.electron,AllowSessionStorageUsage="standalone"===(globalThis.appMode||"standalone")&&!browser.electron;function getServerLoginRouteUrl(options){var params,url;return"manual"===options.loginType||options.username?(params={serverId:options.apiClient.serverId()},url="/startup/manuallogin.html?",options.username&&(params.user=options.username),url+queryString.paramsToString(params)):"visual"===options.loginType?"/startup/login.html?serverId="+options.apiClient.serverId():void 0}function addressFormatToHtml(address){return'<a is="emby-linkbutton" class="button-link" href="'+address+'" target="_blank">'+textEncoding.htmlEncode(address)+"</a>"}function addressFormatToText(address){return textEncoding.htmlEncode(address)}function showWebAppConnectionError(server,addresses){var html=[],currentProtocol=(html.push('<p style="margin-top:0;">'+globalize.translate("MessageUnableToConnectToServer")+"</p>"),(window.location.protocol||"").toLowerCase());if("https:"!==currentProtocol)return null;if(containsSecureContext(addresses))return null;{let addressHtml="<p>"+globalize.translate("IfTryingToConnectToHttp")+"</p>";addressHtml+="<ul>";currentProtocol=appHost.supports("externallinks")&&appHost.supports("targetblank"),addresses=(currentProtocol?addresses.map(addressFormatToHtml):addresses.map(addressFormatToText)).join(" or ");addressHtml+="<li>Use the web app built into your Emby Server at "+addresses+", depending on your current location.</li>",addressHtml=(addressHtml=currentProtocol?addressHtml+("<li>"+globalize.translate("SetupHttpsForYourServer",'<a is="emby-linkbutton" class="button-link" href="https://emby.media/community/index.php?/topic/81404-ssl-made-easy" target="_blank">',"</a>"))+'</li><li>Use the HTTP version of this app at <a is="emby-linkbutton" class="button-link" href="http://app.emby.media" target="_blank">http://app.emby.media</a> instead.</li>':addressHtml+("<li>"+globalize.translate("SetupHttpsForYourServer","",""))+"</li><li>Use the HTTP versionof this app at http://app.emby.media instead.</li>")+"<li>Use an installed Emby app such as Emby for Windows, Android, Apple, Amazon, Samsung, LG, etc.</li>"+"</ul>",html.push(addressHtml)}return showAlertAndResolve({html:html.join(""),title:server.Name?globalize.translate("TitleUnableToReachName",textEncoding.htmlEncode(server.Name)):globalize.translate("TitleUnableToReachServer"),centerText:!1})}function getServerAddressesFromResult(result){var list=[];return result.Address?list.push(result.Address):(result=result.Server||{})&&(result