EmbyCrackedClient/web/modules/sync/sync.js

1 line
20 KiB
JavaScript
Raw Normal View History

2025-06-25 11:46:04 +08:00
import connectionManager from"./../emby-apiclient/connectionmanager.js";import globalize from"./../common/globalize.js";import layoutManager from"./../layoutmanager.js";import dialogHelper from"./../dialoghelper/dialoghelper.js";import"./../emby-elements/emby-scroller/emby-scroller.js";import"./../emby-elements/emby-select/emby-select.js";import"./../emby-elements/emby-input/emby-input.js";import"./../emby-elements/emby-button/paper-icon-button-light.js";import"./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js";import{appHost}from"./../common/servicelocator.js";import focusManager from"./../focusmanager.js";import appSettings from"./../common/appsettings.js";import registrationServices from"./../registrationservices/registrationservices.js";import appRouter from"./../approuter.js";function showDialog(options){return Emby.importModule("./modules/dialog/dialog.js").then(function(dialog){return dialog(options)})}require(["formDialogStyle"]);let currentDialogOptions;function showToast(options){return Emby.importModule("./modules/toast/toast.js").then(function(toast){return toast(options)})}function showAlert(options){return Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function submitJob(dlg,apiClient,userId,syncOptions,form){if(!userId)throw new Error("userId cannot be null");if(!syncOptions)throw new Error("syncOptions cannot be null");if(!form)throw new Error("form cannot be null");var selectSyncTarget=form.querySelector(".selectSyncTarget");let target=selectSyncTarget?.value;if(!target)return showAlert(globalize.translate("PleaseSelectDeviceToSyncTo")),!1;var selectedIndex=selectSyncTarget.selectedIndex;if(-1!==selectedIndex&&((selectSyncTarget.options[selectedIndex]?.innerHTML)?.toLowerCase().includes("windows")&&!apiClient.isMinServerVersion("4.8.4")))return showAlert("To use the download feature, please update Emby Server to at least 4.8.4 or greater."),!0;selectSyncTarget={userId:userId,TargetId:target,ParentId:syncOptions.ParentId,Category:syncOptions.Category};return setJobValues(selectSyncTarget,form),syncOptions.items&&syncOptions.items.length&&(selectSyncTarget.ItemIds=(syncOptions.items||[]).map(function(i){return i.Id||i}).join(",")),apiClient.createSyncJob(selectSyncTarget).then(function(){dialogHelper.close(dlg),showSubmissionToast(syncOptions.mode,target,apiClient),"download"===syncOptions.mode&&syncNow()}),!0}function showSubmissionToast(mode,targetId,apiClient){showToast("convert"===mode?globalize.translate("ConvertingDots"):globalize.translate("DownloadingDots"))}function syncNow(){require(["localsync"],function(localSync){localSync.sync()})}function submitQuickSyncJob(apiClient,userId,targetId,syncOptions){if(!userId)throw new Error("userId cannot be null");if(!syncOptions)throw new Error("syncOptions cannot be null");if(targetId)return userId={userId:userId,TargetId:targetId,ParentId:syncOptions.ParentId,Category:syncOptions.Category,Quality:syncOptions.Quality,Bitrate:syncOptions.Bitrate},syncOptions.items&&syncOptions.items.length&&(userId.ItemIds=(syncOptions.items||[]).map(function(i){return i.Id||i}).join(",")),apiClient.createSyncJob(userId).then(function(){showSubmissionToast(syncOptions.mode,targetId,apiClient),"download"===syncOptions.mode&&syncNow()});throw new Error("targetId cannot be null")}function setJobValues(job,form){var txtBitrate=form.querySelector(".txtBitrate");let bitrate=txtBitrate?txtBitrate.value:null;bitrate=bitrate&&1e6*parseFloat(bitrate),job.Bitrate=bitrate;txtBitrate=form.querySelector(".selectQuality"),txtBitrate&&(job.Quality=txtBitrate.value,appSettings.set("sync-lastquality",job.Quality||"")),txtBitrate=form.querySelector(".selectProfile"),txtBitrate&&(job.Profile=txtBitrate.value),txtBitrate=form.querySelector(".selectJobContainer"),txtBitrate&&(job.Container=txtBitrate.value),txtBitrate=form.querySelector(".selectVideoCodec"),txtBitrate&&(job.VideoCodec=txtBitrate.value),txtBitrate=form.querySelector(".selectAudioCodec"),txtBitrate&&(job.AudioCodec=txtBitrate.value),txtBitrate=form.querySelecto