EmbyCrackedClient/web/modules/recordingcreator/recordingfields.js
2025-06-25 11:46:04 +08:00

1 line
No EOL
6.1 KiB
JavaScript

import connectionManager from"./../emby-apiclient/connectionmanager.js";import globalize from"./../common/globalize.js";import loading from"./../loading/loading.js";import events from"./../emby-apiclient/events.js";import"./../emby-elements/emby-button/emby-button.js";import"./../emby-elements/emby-button/paper-icon-button-light.js";import recordingHelper from"./../common/recordinghelper.js";import serverNotifications from"./../common/input/api.js";function showToast(options){return Emby.importModule("./modules/toast/toast.js").then(function(toast){return toast(options)})}function loadData(parent,program){program.IsSeries?(parent.querySelector(".seriesRecordingButton").classList.remove("hide"),parent.querySelector(".btnManageSeriesRecording").classList.remove("hide")):(parent.querySelector(".seriesRecordingButton").classList.add("hide"),parent.querySelector(".btnManageSeriesRecording").classList.add("hide"));var btnManageSeriesRecording=parent.querySelector(".btnManageSeriesRecording");program.SeriesTimerId?(btnManageSeriesRecording&&btnManageSeriesRecording.classList.remove("hide"),parent.querySelector(".seriesRecordingButton .recordingIcon").classList.add("recordingIcon-active"),parent.querySelector(".seriesRecordingButtonText").innerHTML=globalize.translate("HeaderCancelSeries")):(btnManageSeriesRecording&&btnManageSeriesRecording.classList.add("hide"),parent.querySelector(".seriesRecordingButton .recordingIcon").classList.remove("recordingIcon-active"),parent.querySelector(".seriesRecordingButtonText").innerHTML=globalize.translate("HeaderRecordSeries")),program.TimerId&&"Cancelled"!==program.Status?(parent.querySelector(".btnManageRecording").classList.remove("hide"),parent.querySelector(".singleRecordingButton .recordingIcon").classList.add("recordingIcon-active"),"InProgress"===program.Status?parent.querySelector(".singleRecordingButtonText").innerHTML=globalize.translate("HeaderStopRecording"):parent.querySelector(".singleRecordingButtonText").innerHTML=globalize.translate("HeaderDoNotRecord")):(parent.querySelector(".btnManageRecording").classList.add("hide"),parent.querySelector(".singleRecordingButton .recordingIcon").classList.remove("recordingIcon-active"),parent.querySelector(".singleRecordingButtonText").innerHTML=globalize.translate("Record"))}function onDataFetched(item){var options=this.options;options.program=item,loadData(options.parent,item)}function onTimerChangedExternally(e,apiClient,data){var options=this.options;let refresh=!1;data.Id&&options.program.TimerId===data.Id&&(refresh=!0),(refresh=data.ProgramId&&options&&options.program.Id===data.ProgramId?!0:refresh)&&events.trigger(this,"recordingchanged")}function onSeriesTimerChangedExternally(e,apiClient,data){var options=this.options;let refresh=!1;data.Id&&options.program.SeriesTimerId===data.Id&&(refresh=!0),(refresh=data.ProgramId&&options&&options.program.Id===data.ProgramId?!0:refresh)&&events.trigger(this,"recordingchanged")}function RecordingEditor(options){this.options=options,this.embed();options=onTimerChangedExternally.bind(this),this.timerChangedHandler=options,events.on(serverNotifications,"TimerCreated",options),events.on(serverNotifications,"TimerCancelled",options),options=onSeriesTimerChangedExternally.bind(this);this.seriesTimerChangedHandler=options,events.on(serverNotifications,"SeriesTimerCreated",options),events.on(serverNotifications,"SeriesTimerCancelled",options)}function onRecordChange(e){this.changed=!0;let self=this;var options=this.options,apiClient=connectionManager.getApiClient(options.program),e=!e.target.closest("BUTTON").querySelector("i").classList.contains("recordingIcon-active"),hasEnabledTimer=options.program.TimerId&&"Cancelled"!==options.program.Status;e?hasEnabledTimer||(loading.show(),recordingHelper.createRecording(apiClient,options.program.Id,!1).then(function(){events.trigger(self,"recordingchanged")})):hasEnabledTimer&&recordingHelper.cancelTimer(apiClient,options.program.TimerId,!0).then(function(){events.trigger(self,"recordingchanged")})}function onRecordSeriesChange(e){this.changed=!0;let self=this;var options=this.options,apiClient=connectionManager.getApiClient(options.program);!e.target.closest("BUTTON").querySelector("i").classList.contains("recordingIcon-active")?(options.parent.querySelector(".seriesRecordingButton").classList.remove("hide"),options.parent.querySelector(".btnManageSeriesRecording").classList.remove("hide"),options.program.SeriesTimerId||(e=options.program.TimerId?recordingHelper.changeRecordingToSeries(apiClient,options.program.TimerId,options.program.Id):recordingHelper.createRecording(apiClient,options.program.Id,!0),loading.show(),e.then(function(){events.trigger(self,"seriesrecordingchanged")}))):options.program.SeriesTimerId&&(loading.show(),apiClient.cancelLiveTvSeriesTimer(options.program.SeriesTimerId).then(function(){showToast(globalize.translate("RecordingCancelled")),events.trigger(self,"seriesrecordingchanged")}))}require(["flexStyles"]),RecordingEditor.prototype.embed=function(){var options=this.options,context=options.parent,singleRecordingButton=context.querySelector(".singleRecordingButton");options.program.AsSeries||singleRecordingButton.classList.remove("hide"),singleRecordingButton.addEventListener("click",onRecordChange.bind(this)),context.querySelector(".seriesRecordingButton").addEventListener("click",onRecordSeriesChange.bind(this)),onDataFetched.call(this,options.program)},RecordingEditor.prototype.hasChanged=function(){return this.changed},RecordingEditor.prototype.refresh=function(item){onDataFetched.call(this,item)},RecordingEditor.prototype.getProgram=function(){return this.options.program},RecordingEditor.prototype.destroy=function(){var timerChangedHandler=this.timerChangedHandler,timerChangedHandler=(this.timerChangedHandler=null,events.off(serverNotifications,"TimerCreated",timerChangedHandler),events.off(serverNotifications,"TimerCancelled",timerChangedHandler),this.seriesTimerChangedHandler);this.seriesTimerChangedHandler=null,events.off(serverNotifications,"SeriesTimerCreated",timerChangedHandler),events.off(serverNotifications,"SeriesTimerCancelled",timerChangedHandler)};export default RecordingEditor;