EmbyCrackedClient/web/scheduledtasks/scheduledtasks.js

1 line
5.5 KiB
JavaScript
Raw Normal View History

2025-06-25 11:46:04 +08:00
import BaseView from"./../modules/viewmanager/baseview.js";import textEncoding from"./../modules/common/textencoding.js";import loading from"./../modules/loading/loading.js";import connectionManager from"./../modules/emby-apiclient/connectionmanager.js";import"./../modules/emby-elements/emby-button/emby-button.js";import"./../modules/emby-elements/emby-progressbar/emby-progressbar.js";import listView from"./../modules/listview/listview.js";import MethodTimer from"./../modules/common/methodtimer.js";import serverNotifications from"./../modules/common/input/api.js";import events from"./../modules/emby-apiclient/events.js";import layoutManager from"./../modules/layoutmanager.js";import"./scheduledtaskcontroller.js";function getScheduledTasksForCategory(){var instance=this.instance;let category=this.category;instance=instance.tasks.filter(function(task){return task.Category===category});return Promise.resolve(instance)}function getListOptions(items){return{renderer:listView,options:{moreButton:!1,roundImage:!0,action:layoutManager.tv?"menu":null,multiSelect:!1,image:!!layoutManager.tv,largeHeading:!0,buttonCommands:["scheduledtask_start","scheduledtask_stop"],fields:["Name","ScheduledTaskRunInfo","Description"],draggable:!1,draggableXActions:!1}}}function ensureTaskCategory(instance,task,refreshItemsContainer){var html="";if(instance.itemsContainers[task.Category]){if(refreshItemsContainer){let itemsContainer=instance.itemsContainers[task.Category];var index=itemsContainer.indexOfItemId(task.Id);-1!==index&&itemsContainer.onItemUpdated(index,task)}return Promise.resolve()}index=document.createElement("div");index.className="verticalSection verticalSection-extrabottompadding",index.style.marginBottom="1.8em",html=(html='<div class="sectionTitleContainer" style="margin:.5em 0;"><h2 class="sectionTitle secondaryText">')+textEncoding.htmlEncode(task.Category),index.innerHTML=html=(html=html+"</h2>"+"</div>")+'<div is="emby-itemscontainer" class="itemsContainer verticalList">'+"</div>",instance.view.querySelector(".divScheduledTasks").appendChild(index);let itemsContainer=index.querySelector(".itemsContainer");return itemsContainer.fetchData=getScheduledTasksForCategory.bind({instance:instance,category:task.Category}),itemsContainer.getListOptions=getListOptions.bind({instance:instance,category:task.Category}),instance.itemsContainers[task.Category]=itemsContainer,refreshItemsContainer?itemsContainer.waitForCustomElementUpgrade().then(function(){return itemsContainer.refreshItems()}):Promise.resolve()}function compareTasks(a,b){return(a=a.Category+" "+a.Name)===(b=b.Category+" "+b.Name)?0:a<b?-1:1}function importTasks(instance,tasks,refreshItemContainers){for(let i=0,length=(tasks=tasks.sort(compareTasks)).length;i<length;i++){var task=tasks[i];instance.updateTask(task)}for(let i=0,length=tasks.length;i<length;i++){let task=tasks[i];ensureTaskCategory(instance,task,refreshItemContainers)}}function ensureItemsContainers(instance,refreshItemContainers){return instance.getApiClient().getScheduledTasks({isHidden:!1}).then(function(tasks){importTasks(instance,tasks,refreshItemContainers)})}function startInterval(instance){instance.getApiClient().startMessageListener("ScheduledTasksInfo","1000,1000"),instance.pollInterval&&(instance.pollInterval.destroy(),instance.pollInterval=null),instance.pollInterval=new MethodTimer({onInterval:onPollIntervalFired.bind(instance),timeoutMs:1e4,type:"interval"})}function stopInterval(instance){instance.getApiClient().stopMessageListener("ScheduledTasksInfo"),instance.pollInterval&&(instance.pollInterval.destroy(),instance.pollInterval=null)}function View(view,params){BaseView.apply(this,arguments),params.serverId=connectionManager.currentApiClient().serverId(),this.tasks=[],this.itemsContainers={}}function onPollIntervalFired(){if(!this.getApiClient().isMessageChannelOpen())return ensureItemsContainers(this,!0)}function onScheduledTasksUpdate(e,apiClient,info){apiClient.serverId()===this.params?.serverId&&importTasks(this,info,!0)}Object.assign(View.prototype,BaseView.prototype),View.prototype.updat