EmbyCrackedClient/web/server/sync/syncjobcontroller.js

1 line
4.4 KiB
JavaScript
Raw Normal View History

2025-06-25 11:46:04 +08:00
import TypeManager from"./../../modules/common/itemmanager/itemmanager.js";import BaseItemController from"./../../modules/common/itemmanager/baseitemcontroller.js";import connectionManager from"./../../modules/emby-apiclient/connectionmanager.js";import globalize from"./../../modules/common/globalize.js";function SyncJobController(){BaseItemController.apply(this,arguments)}function getDeleteMessages(item){let title,text,confirmText=globalize.translate("Remove");return"Convert"===item.SyncJobType?item.SyncNewContent||"Completed"!==item.Status?(title=globalize.translate("CancelConversion"),text="ConfirmCancelConversion",confirmText=globalize.translate("CancelConversion")):(title=globalize.translate("RemoveFromHistory"),text="ConfirmRemoveFromHistory"):(title=globalize.translate("RemoveDownload"),text="ConfirmRemoveDownload"),{single:{text:text,title:title,confirmText:confirmText},plural:{text:text,title:title,confirmText:confirmText}}}function syncNow(){require(["localsync"],function(localSync){localSync.sync()})}function getProgressText(job){let status=job.Status;switch(status){case"Completed":status="Convert"===job.SyncJobType?globalize.translate("Converted"):globalize.translate("Downloaded");break;case"Failed":case"Cancelled":status=globalize.translate(status);break;default:status=globalize.translate("SyncJobItemStatus"+status)}let html=status;if(("Transferring"===job.Status||"Converting"===job.Status)&&job.Progress){html+=" ";let progress=job.Progress||0;0<progress&&progress<100&&(progress=progress.toFixed(1)),html+=progress+"%"}return html}Object.assign(SyncJobController.prototype,BaseItemController.prototype),SyncJobController.prototype.getTypeNames=function(){return["SyncJob"]},SyncJobController.prototype.getDisplayName=function(item,options){return item.Name},SyncJobController.prototype.isSingleItemFetchRequired=function(typeName){return!1},SyncJobController.prototype.getDefaultIcon=function(item){return"&#xe627;"},SyncJobController.prototype.canDelete=function(item,user){return!0},SyncJobController.prototype.enableLibraryItemDeleteConfirmation=function(){return!1},SyncJobController.prototype.canRate=function(item){return!1},SyncJobController.prototype.canMarkPlayed=function(item){return!1},SyncJobController.prototype.canAddToPlaylist=function(item){return!1},SyncJobController.prototype.canAddToCollection=function(item,user){return!1},SyncJobController.prototype.canConvert=function(item,user){return!1},SyncJobController.prototype.canEdit=function(items,user){return 1===items.length},SyncJobController.prototype.canEditImages=function(item,user){return!1},SyncJobController.prototype.canEditSubtitles=function(item,user){return!1},SyncJobController.prototype.isDeletePrimaryCommand=function(itemType){return!0},SyncJobController.prototype.getDeleteCommand=function(items){var item=items[0],itemType=item.Type,item=getDeleteMessages(item);return{name:(1<items.length?item.plural:item.single).title,id:"delete",icon:"remove_circle_outline",primaryCommand:this.isDeletePrimaryCommand(itemType)}},SyncJobController.prototype.getDeleteMessages=getDeleteMessages,SyncJobController.prototype.canRefreshMetadata=function(item,user){return!1},SyncJobController.prototype.deleteItemsInternal=function(options){var apiClient=connectionManager.getApiClient(options.items[0]),localTargetId=connectionManager.deviceId(),ids=[];let isLocalTarget;for(let i=0,length=options.items.length;i<length;i++){var item=options.items[i];ids.push(item.Id),item.TargetId===localTargetId&&(isLocalTarget=!0)}return apiClient.cancelSyncJobs(ids).then(function(result){return isLocalTarget&&syncNow(),Promise.resolve(result)})},SyncJobController.prototype.getNameSortOption=function(itemType){return null},SyncJobController.prototype.editItems=function(items,options){let item=items[0];return Emby.importModule("./modules/sync/syncjobeditor.js").then(function(syncJobEditor){return syncJobEditor.show({serverId:item.ServerId,jobId:item.Id,mode:"Convert"===item.SyncJobType?"convert":"download"})})},SyncJobController.prototype.resolveField=function(item,field){switch(field){c