EmbyCrackedClient/web/components/tunerpicker.js

1 line
4.9 KiB
JavaScript
Raw Permalink Normal View History

2025-06-25 11:46:04 +08:00
import globalize from"./../modules/common/globalize.js";import layoutManager from"./../modules/layoutmanager.js";import focusManager from"./../modules/focusmanager.js";import loading from"./../modules/loading/loading.js";import dialogHelper from"./../modules/dialoghelper/dialoghelper.js";import"./../modules/emby-elements/emby-button/emby-button.js";import"./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js";import"./../modules/emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js";import dom from"./../modules/dom.js";import cardBuilder from"./../modules/cardbuilder/cardbuilder.js";function getEditorHtml(){var html="";return html+'<div class="formDialogContent flex flex-direction-column align-items-center" style="overflow:hidden;">'+'<div is="emby-scroller" data-horizontal="false" data-forcescrollbar="true" data-focusscroll="true" class="flex flex-grow virtualScrollerScrollContainer" style="width:100%;">'+'<div class="scrollSlider padded-left padded-right padded-top flex-grow">'+'<div class="loadingContent hide">'+("<h1>"+globalize.translate("DetectingDevices")+"...</h1>")+("<p>"+globalize.translate("MessagePleaseWait")+"</p>")+"</div>"+('<p class="noItemsMessage hide">'+globalize.translate("NoNewDevicesFound")+"</p>")+'<div is="emby-itemscontainer" data-virtualscrolllayout="vertical-grid" class="itemsContainer itemsContainer-defaultCardSize vertical-wrap padded-bottom-page">'+"</div>"+"</div>"+"</div>"+"</div>"}function getCardOptions(){return{enableDefaultIcon:!0,action:"custom",fields:["Name","Filename"],draggable:!1,multiSelect:!1,contextMenu:!1,hoverPlayButton:!1,imageSize:"Collection"===this.options.type||layoutManager.tv?"smaller":"small",enableUserDataButtons:!1,mediaInfo:!1,shape:"backdrop",textLinks:!1}}function getListOptions(){return{renderer:cardBuilder,options:getCardOptions.apply(this),virtualScrollLayout:"vertical-list"}}function afterItemsRefreshed(result){var items=result.Items||result,result=result.TotalRecordCount||items.length;loading.hide(),result?this.context.querySelector(".noItemsMessage").classList.add("hide"):this.context.querySelector(".noItemsMessage").classList.remove("hide")}function getTunerName(providerId){switch(providerId=providerId.toLowerCase()){case"m3u":return"M3U";case"hdhomerun":return"HDHomerun";case"hauppauge":return"Hauppauge";case"satip":return"DVB";default:return"Unknown"}}function getItems(query){loading.show();let instance=this;this.context.querySelector(".loadingContent").classList.remove("hide");var apiClient=ApiClient;let serverId=apiClient.serverId();return apiClient.getJSON(apiClient.getUrl("LiveTv/Tuners/Discvover",{NewDevicesOnly:!0})).then(function(items){instance.context.querySelector(".loadingContent").classList.add("hide");var totalRecordCount=items.length;return query?.StartIndex&&(items=items.slice(query.StartIndex)),query?.Limit&&(items.length=Math.min(query.Limit,items.length)),{TotalRecordCount:totalRecordCount,Items:items=items.map(function(item){return{Type:"GenericListItem",ServerId:serverId,Name:getTunerName(item.Type),Filename:item.FriendlyName,OriginalItem:item,Icon:"&#xe1b2;"}})}})}function onItemAction(e){this.dialogResult=e.detail.item.OriginalItem,dialogHelper.close(this.context)}function autoFocus(){var context=this.context;focusManager.autoFocus(context,{skipIfNotEnabled:!0})}function onItemsContainerUpgraded(){this.itemsContainer.resume({refresh:!0}).then(autoFocus.bind(this))}function onOpened(){var itemsContainer=this.itemsContainer;itemsContainer.resume?onItemsContainerUpgraded.call(this):dom.addEventListener(itemsContainer,"upgraded",onItemsContainerUpgraded.bind(this),{once:!0})}function TunerPicker(){}require(["material-icons","formDialogStyle"]),TunerPicker.prototype.show=function(options){var dialogOptions={removeOnClose:!0,scrollY:!1},dialogOptions=(layoutManager.tv?dialogOptions.size="fullscreen":dialogOptions.size="fullscreen-border",dialogHelper.createDialog(dialogOptions)),html=(dialogOptions.classList.add("formDialog"),""),html=(html=(html=(html=(html=(html+='<div class="formDialogHeader">')+'<button type