1 line
No EOL
13 KiB
JavaScript
1 line
No EOL
13 KiB
JavaScript
import appSettings from"./../appsettings.js";import events from"./../../emby-apiclient/events.js";function onSaveTimeout(){this.saveTimeout=null,this.currentApiClient.updateDisplayPreferences(this.displayPrefs,this.currentUserId)}function saveServerPreferences(instance,name,value){var obj;instance.supportsPartialSave?((obj={})[name]=value,instance.currentApiClient.updatePartialDisplayPreferences(obj,instance.currentUserId)):(instance.saveTimeout&&clearTimeout(instance.saveTimeout),instance.saveTimeout=setTimeout(onSaveTimeout.bind(instance),50))}function UserSettings(){}function getHomeSection(instance,index){let section=instance.get("homesection"+index)||instance.getDefaultHomeScreenSection(index);return"folders"===section?section=instance.getDefaultHomeScreenSection(0):"onnow"===section?section="livetv":"librarytiles"!==section&&"smalllibrarytiles-automobile"!==section&&"librarytiles-automobile"!==section||(section="smalllibrarytiles"),section}UserSettings.prototype.setUserInfo=function(userId,apiClient){if(this.saveTimeout&&clearTimeout(this.saveTimeout),this.currentUserId=userId,this.currentApiClient=apiClient,this.supportsPartialSave=apiClient?.isMinServerVersion("4.9.0.23"),!userId)return this.displayPrefs=null,Promise.resolve();let self=this;return apiClient.getDisplayPreferences(userId).then(function(result){self.displayPrefs=result,events.trigger(self,"load")})},UserSettings.prototype.getData=function(){return this.displayPrefs},UserSettings.prototype.importFrom=function(instance){this.displayPrefs=instance.getData()},UserSettings.prototype.set=function(name,value,enableOnServer){var currentValue,userId=this.currentUserId;if(userId)return currentValue=this.get(name,enableOnServer),userId=appSettings.set(name,value=null==value?null:value,userId),!1!==enableOnServer&&this.displayPrefs&&(enableOnServer=null==value?value:value.toString(),this.displayPrefs[name]=enableOnServer,saveServerPreferences(this,name,enableOnServer)),currentValue!==value&&events.trigger(this,"change",[name,value]),userId;throw new Error("userId cannot be null")},UserSettings.prototype.remove=function(name,enableOnServer){return this.set(name,null,enableOnServer)},UserSettings.prototype.get=function(name,enableOnServer){var userId=this.currentUserId;return userId?!1!==enableOnServer&&this.displayPrefs?this.displayPrefs[name]:appSettings.get(name,userId):null},UserSettings.prototype.serverConfig=function(config){var apiClient=this.currentApiClient;return config?apiClient.updateUserConfiguration(this.currentUserId,config):apiClient.getUser(this.currentUserId).then(function(user){return user.Configuration})},UserSettings.prototype.enableCinemaMode=function(val){return null!=val?this.set("enableCinemaMode",val.toString(),!1):!(val=this.get("enableCinemaMode",!1))||"false"!==val},UserSettings.prototype.enableNextVideoInfoOverlay=function(val){return null!=val?this.set("enableNextVideoInfoOverlay",val.toString()):"false"!==(val=this.get("enableNextVideoInfoOverlay"))},UserSettings.prototype.getEnableLogoAsTitle=function(displayLanguage){var val=this.get("enableLogoAsTitle");return val?"true"===val:displayLanguage&&displayLanguage.toLowerCase().startsWith("en")},UserSettings.prototype.setEnableLogoAsTitle=function(val){return this.set("enableLogoAsTitle",val.toString())},UserSettings.prototype.enableThemeSongs=function(val){return null!=val?this.set("enableThemeSongs",val.toString(),!1):"false"!==(val=this.get("enableThemeSongs",!1))},UserSettings.prototype.groupCollectionItems=function(val){return null!=val?this.set("groupCollectionItems",val.toString(),!0):"false"!==(val=this.get("groupCollectionItems",!0))},UserSettings.prototype.enableThemeVideos=function(val){return null!=val?this.set("enableThemeVideos",val.toString(),!1):!!(val=this.get("enableThemeVideos",!1))&&"false"!==val},UserSettings.prototype.hideMediaTransportButtons=function(val){return null!=val?this.set("hideMediaTransportButtons",val.toString(),!1):this.get("hideMediaTransportButtons",!1)||"auto"},UserSettings.prototype.enableHomescreenFocusPreviews=function(val){return null!=val?this.set("enableHomescreenFocusPreviews",val.toString(),!0):"true"===(val=this.get("enableHomescreenFocusPreviews",!0))},UserSettings.prototype.enableBackdrops=function(val){return null!=val?this.set("enableBackdrops",val.toString(),!1):!!(val=this.get("enableBackdrops",!1))&&"false"!==val},UserSettings.prototype.genreLimitForListsOnDetails=function(val){return null!=val?this.set("genreLimitForListsOnDetails",val.toString(),!0):parseInt(this.get("genreLimitForListsOnDetails",!0)||"3")},UserSettings.prototype.genreLimitOnDetails=function(val){return null!=val?this.set("genreLimitOnDetails",val.toString(),!0):parseInt(this.get("genreLimitOnDetails",!0)||"1")},UserSettings.prototype.showDetailPoster=function(isTvLayout,val){var key="showDetailPoster"+(isTvLayout?"tv":"");if(null!=val)return this.set(key,val.toString(),!0);switch(val=this.get(key,!0)){case"true":return!0;case"false":return!1;default:return!isTvLayout}},UserSettings.prototype.showEndsAtOnDetails=function(val){return null!=val?this.set("showEndsAtOnDetails",val.toString(),!0):"false"!==(val=this.get("showEndsAtOnDetails",!0))},UserSettings.prototype.enableRatingInfoOnPlaybackStart=function(val){return null!=val?this.set("enableRatingInfoOnPlaybackStart",val.toString(),!0):"false"!==(val=this.get("enableRatingInfoOnPlaybackStart",!0))},UserSettings.prototype.language=function(val){return null!=val?this.set("language",val.toString(),!1):this.get("language",!1)},UserSettings.prototype.dateTimeLocale=function(val){return null!=val?this.set("datetimelocale",val.toString(),!1):this.get("datetimelocale",!1)},UserSettings.prototype.skipBackLength=function(val){return null!=val?this.set("skipBackLength",val.toString()):parseInt(this.get("skipBackLength")||"10000")},UserSettings.prototype.skipForwardLength=function(val){return null!=val?this.set("skipForwardLength",val.toString()):parseInt(this.get("skipForwardLength")||"10000")},UserSettings.prototype.settingsTheme=function(val){return null!=val?this.set("settingsTheme",val,!1):this.get("settingsTheme",!1)},UserSettings.prototype.theme=function(val){return null!=val?this.set("appTheme",val,!1):this.get("appTheme",!1)||null},UserSettings.prototype.accentColor=function(val){return null!=val?this.set("accentColor",val,!0):this.get("accentColor",!0)||"emby"},UserSettings.prototype.useSystemAccentColor=function(val){return null!=val?this.set("useSystemAccentColor",val.toString(),!1):"true"===this.get("useSystemAccentColor",!1)},UserSettings.prototype.screensaver=function(val){return null!=val?this.set("screensaver",val,!1):this.get("screensaver",!1)||null},UserSettings.prototype.soundEffects=function(val){return null!=val?this.set("soundeffects",val,!1):this.get("soundeffects",!1)||null},UserSettings.prototype.osdContentSection=function(val){return null!=val?this.set("osdcontentsection",val,!1):this.get("osdcontentsection",!1)},UserSettings.prototype.drawerStyle=function(val){return null!=val?this.set("drawerstyle",val,!1):this.get("drawerstyle",!1)||"docked"},UserSettings.prototype.settingsDrawerStyle=function(val){return null!=val?this.set("settingsdrawerstyle",val,!1):this.get("settingsdrawerstyle",!1)||"docked"},UserSettings.prototype.nowPlayingAudioBackgroundStyle=function(val){return null!=val?this.set("nowPlayingAudioBackgroundStyle",val,!0):this.get("nowPlayingAudioBackgroundStyle",!0)||"blur"},UserSettings.prototype.nowPlayingVideoBackgroundStyle=function(val){return null!=val?this.set("nowPlayingVideoBackgroundStyle",val,!0):this.get("nowPlayingVideoBackgroundStyle",!0)||"backdrop"},UserSettings.prototype.stillWatchingTimeMs=function(val){return null!=val?this.set("stillwatchingms",val,!0):parseInt(this.get("stillwatchingms",!0)||"14400000")},UserSettings.prototype.tvHome=function(val){return null!=val?this.set("tvhome",val,!0):this.get("tvhome",!0)||"vertical"},UserSettings.prototype.itemSortBy=function(itemId,val){itemId="sortitems-"+itemId+"-by";return null!=val?this.set(itemId,val,!1):this.get(itemId,!1)||""},UserSettings.prototype.itemSortOrder=function(itemId,val){itemId="sortitems-"+itemId+"-order";return null!=val?this.set(itemId,val,!1):this.get(itemId,!1)||"Ascending"},UserSettings.prototype.enableStillWatching=function(val){return null!=val?this.stillWatchingTimeMs(val?144e5:0):0<this.stillWatchingTimeMs()},UserSettings.prototype.getSubtitleAppearanceSettings=function(key){key=key||"localplayersubtitleappearance3";key=JSON.parse(this.get(key,!1)||"{}");return key.dropShadow||(key.dropShadow="dropshadow"),key.textBackground||(key.textBackground="transparent"),key.textBackgroundOpacity||(key.textBackgroundOpacity="1"),key.textColor||(key.textColor="#ffffff"),null==key.positionBottom&&(key.positionBottom="10"),null==key.positionTop&&(key.positionTop="5"),key},UserSettings.prototype.setSubtitleAppearanceSettings=function(value,key){return this.set(key=key||"localplayersubtitleappearance3",JSON.stringify(value),!1)},UserSettings.prototype.setFilter=function(key,value,enableOnServer){return this.set(key,value,!0===enableOnServer)},UserSettings.prototype.getFilter=function(key,enableOnServer){key=this.get(key,!0===enableOnServer);return"null"===key||""===key?null:key},UserSettings.prototype.getDefaultHomeScreenSection=function(index){switch(index){case 0:return"smalllibrarytiles";case 1:return"resume";case 2:return"resumeaudio";case 3:return"livetv";case 4:return"none";case 5:return"latestmedia";default:return"none"}},UserSettings.prototype.homeSection0=function(val){return null!=val?this.set("homesection0",val.toString(),!0):getHomeSection(this,0)},UserSettings.prototype.homeSection1=function(val){return null!=val?this.set("homesection1",val.toString(),!0):getHomeSection(this,1)},UserSettings.prototype.homeSection2=function(val){return null!=val?this.set("homesection2",val.toString(),!0):getHomeSection(this,2)},UserSettings.prototype.homeSection3=function(val){return null!=val?this.set("homesection3",val.toString(),!0):getHomeSection(this,3)},UserSettings.prototype.homeSection4=function(val){return null!=val?this.set("homesection4",val.toString(),!0):getHomeSection(this,4)},UserSettings.prototype.homeSection5=function(val){return null!=val?this.set("homesection5",val.toString(),!0):getHomeSection(this,5)},UserSettings.prototype.homeSection6=function(val){return null!=val?this.set("homesection6",val.toString(),!0):getHomeSection(this,6)},UserSettings.prototype.getHomeScreenSections=function(includeBlanks){var sections=[];for(let i=0;i<7;i++){var section=getHomeSection(this,i);"none"===section&&!includeBlanks||sections.push(section)}return sections},UserSettings.prototype.enableVideoUnderUI=function(val){return null!=val?this.set("enableVideoUnderUI",val.toString(),!1):"true"===this.get("enableVideoUnderUI",!1)},UserSettings.prototype.guideChannelStyle=function(val){return null!=val?this.set("guideChannelStyle",val.toString(),!0):this.get("guideChannelStyle",!0)||"image"},UserSettings.prototype.showChannelNumberInGuide=function(val){return null!=val?this.set("showChannelNumberInGuide",val.toString(),!0):"false"!==this.get("showChannelNumberInGuide",!0)},UserSettings.prototype.showFullMediaInfoOnDetailScreen=function(val){return null!=val?this.set("showFullMediaInfoOnDetailScreen",val.toString(),!0):"false"!==this.get("showFullMediaInfoOnDetailScreen",!0)},UserSettings.prototype.seriesDisplay=function(val){return null!=val?this.set("seriesDisplay",val.toString(),!0):this.get("seriesDisplay",!0)||"episodessingleseason"},UserSettings.prototype.cardSize=function(val){return null!=val?this.set("cardSize",val.toString(),!1):this.get("cardSize",!1)||"normal"},UserSettings.prototype.videoOrientation=function(val){return null!=val?this.set("videoOrientation",val.toString(),!1):this.get("videoOrientation",!1)||"auto"},UserSettings.prototype.getLiveTvChannelSortSettingsKey=function(){return"livetv-channelorder"},UserSettings.prototype.getLiveTvChannelSortOrders=function(globalize){var sortBy=[],currentOrder=(sortBy.push({name:globalize.translate("HeaderDefaultChannelOrder"),value:"DefaultChannelOrder",defaultSortOrder:"Ascending",menuSortKey:"0"}),sortBy.push({name:globalize.translate("ChannelNumber"),value:"ChannelNumber,SortName",defaultSortOrder:"Ascending"}),sortBy.push({name:globalize.translate("DatePlayed"),value:"DatePlayed,ChannelNumber,SortName",defaultSortOrder:"Descending"}),sortBy.push({name:globalize.translate("Title"),value:"SortName",defaultSortOrder:"Ascending"}),sortBy.push({name:globalize.translate("HeaderFavoritesThenByDefault"),value:"IsFavorite,DefaultChannelOrder",defaultSortOrder:"Ascending"}),sortBy.push({name:globalize.translate("HeaderFavoritesThenByChannelNumber"),value:"IsFavorite,ChannelNumber,SortName",defaultSortOrder:"Ascending"}),sortBy.push({name:globalize.translate("HeaderFavoritesThenByTitle"),value:"IsFavorite,SortName",defaultSortOrder:"Ascending"}),this.getFilter(this.getLiveTvChannelSortSettingsKey(),!0));let selectedOrder;for(let i=0,length=sortBy.length;i<length;i++){var order=sortBy[i];if(order.value===currentOrder){selectedOrder=order;break}}return(selectedOrder=selectedOrder||sortBy[0]).selected=!0,sortBy},UserSettings.prototype.addLiveTvChannelSortingToQuery=function(query,globalize){var orders=this.getLiveTvChannelSortOrders(globalize);let selectedOrder;for(let i=0,length=orders.length;i<length;i++){var order=orders[i];if(order.selected){selectedOrder=order;break}}query.SortBy=selectedOrder.value,query.SortOrder=selectedOrder.defaultSortOrder};export default UserSettings; |