Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion components/details/ItemDetails.bs
Original file line number Diff line number Diff line change
Expand Up @@ -331,7 +331,7 @@ sub renderDetailContent()

setFieldText("title", itemData.name)

hideMediaDesc = moonfinPlugin.ParseBoolSetting(chainLookupReturn(m.global.session, "user.settings.`ui.itemdetail.hideMediaDescription`", false), false) and (isEpisode() or LCase(m.top.itemType) = "movie")
hideMediaDesc = ItemHidesMediaDescription(m.top.itemType, m.top.seerrOnly = true, m.global.session)

taglineNode = m.top.findNode("tagline")
if isValid(taglineNode)
Expand Down
4 changes: 2 additions & 2 deletions components/details/ModernItemDetails.bs
Original file line number Diff line number Diff line change
Expand Up @@ -522,7 +522,7 @@ sub showUpNextCard()
m.upNextCard.title = parts.join(" - ")

overviewText = chainLookupReturn(ep, "json.Overview", "")
if hidesMediaDescription()
if hidesMediaDescription("episode")
overviewText = ""
else if isValidAndNotEmpty(overviewText)
overviewText = stripHtmlTags(overviewText)
Expand Down Expand Up @@ -1235,7 +1235,7 @@ sub renderDetailContent()

setFieldText("title", itemData.name)

hideMediaDesc = hidesMediaDescription() and (isEpisode() or LCase(m.top.itemType) = "movie")
hideMediaDesc = hidesMediaDescription()

taglineNode = m.top.findNode("tagline")
if isValid(taglineNode)
Expand Down
2 changes: 1 addition & 1 deletion components/details/NouveauItemDetails.bs
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,7 @@ sub renderDetailContent()
' The name stands in until a logo arrives, and a title with no logo keeps it
if not isValidAndNotEmpty(m.top.logoImageURI) then m.titleNode.visible = true

hideMediaDesc = hidesMediaDescription() and (isEpisode() or LCase(m.top.itemType) = "movie")
hideMediaDesc = hidesMediaDescription()
overviewText = itemData.overview
if isValidAndNotEmpty(overviewText) then overviewText = stripHtmlTags(overviewText)
if isPerson() then overviewText = detailSectionLayout.Shows("biography") ? readableText(overviewText) : ""
Expand Down
2 changes: 1 addition & 1 deletion components/details/SpotlightItemDetails.bs
Original file line number Diff line number Diff line change
Expand Up @@ -298,7 +298,7 @@ sub renderDetailContent()
setFieldText("title", itemData.name)
m.titleNode.visible = isValidAndNotEmpty(itemData.name) and not m.logoGroup.visible

hideMediaDesc = hidesMediaDescription() and (isEpisode() or LCase(m.top.itemType) = "movie")
hideMediaDesc = hidesMediaDescription()

taglineNode = m.top.findNode("tagline")
if isValid(taglineNode)
Expand Down
6 changes: 4 additions & 2 deletions components/details/detailPopulationHost.bs
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,10 @@ const META_INK = "#FFFFFFBF"
' function isSeason() as boolean
' function isMusic() as boolean

function hidesMediaDescription() as boolean
return moonfinPlugin.ParseBoolSetting(chainLookupReturn(m.global.session, "user.settings.`ui.itemdetail.hideMediaDescription`", false), false)
function hidesMediaDescription(overrideType = "" as string) as boolean
targetType = isValidAndNotEmpty(overrideType) ? overrideType : (m.top.itemType ?? "")
isSeerr = (m.top.seerrOnly = true)
return ItemHidesMediaDescription(targetType, isSeerr, m.global.session)
end function

' What the file is, read off the first video and audio stream the way the other
Expand Down
2 changes: 1 addition & 1 deletion components/music/AlbumDetails.bs
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ sub onPageContentChanged()
end if

overview = json.LookupCI("Overview")
if isValidAndNotEmpty(overview)
if isValidAndNotEmpty(overview) and not ItemHidesMediaDescription("musicalbum", false, m.global.session)
m.albumOverview.text = overview
m.albumOverview.visible = true
else
Expand Down
2 changes: 1 addition & 1 deletion components/music/ArtistDetails.bs
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ sub onPageContentChanged()
overview = json.LookupCI("Overview")
end if

if isValidAndNotEmpty(overview)
if isValidAndNotEmpty(overview) and not ItemHidesMediaDescription("musicartist", false, m.global.session)
m.artistOverview.text = overview
m.artistOverview.visible = true
else
Expand Down
2 changes: 1 addition & 1 deletion components/music/PlaylistDetails.bs
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ sub onPageContentChanged()
m.playlistTitle.text = isValid(json.name) ? json.name : ""

overview = json.LookupCI("Overview")
if isValidAndNotEmpty(overview)
if isValidAndNotEmpty(overview) and not ItemHidesMediaDescription("playlist", false, m.global.session)
m.playlistOverview.text = overview
m.playlistOverview.visible = true
else
Expand Down
6 changes: 5 additions & 1 deletion components/settings/settings.bs
Original file line number Diff line number Diff line change
Expand Up @@ -1943,7 +1943,7 @@ function reorderSettingsForFlutter(configTree as object) as object
]

detailsDisplay = takeSettings(configTree, ["ui.itemdetail.style", "ui.backdrop.detailBlurAmount", "ui.itemdetail.buttonLayout", "ui.itemdetail.buttonsMaxVisible"])
detailsContent = takeSettings(configTree, ["ui.itemdetail.metadataLayout", "ui.itemdetail.sections", "ui.itemdetail.expandedTabs", "ui.library.showTechnicalDetails", "ui.itemdetail.hideMediaDescription", "ui.itemdetail.useSeriesThumbnails"])
detailsContent = takeSettings(configTree, ["ui.itemdetail.metadataLayout", "ui.itemdetail.sections", "ui.itemdetail.expandedTabs", "ui.library.showTechnicalDetails", "ui.itemdetail.useSeriesThumbnails"])
recommendations = takeSettings(configTree, ["ui.home.recommendationSource"])
ratingSettings = takeSettings(configTree, ["plugin.mdblist.enabled", "plugin.mdblist.ratingSources", "plugin.tmdb.episodeRatings", "plugin.mdblist.showRatingNames", "plugin.mdblist.showRatingBadges", "ui.itemdetail.showRatings"])
themeMusic = takeSettings(configTree, ["playback.thememusic.enabled", "playback.thememusic.loop"])
Expand Down Expand Up @@ -2118,10 +2118,13 @@ function reorderSettingsForFlutter(configTree as object) as object
if isValid(detailsScreen)
detailsScreen.title = "Details Page"
detailsScreen.description = "Layout, buttons, sections, ratings, and theme music"
mediaDescVisibility = takeChildByTitle(detailsScreen, "Toggle Media Description Visibility")
if isValid(mediaDescVisibility) then mediaDescVisibility.clean = true
detailsChildren = [settingsSection("Display")]
detailsChildren.Append(detailsDisplay)
detailsChildren.push(settingsSection("Media Details and Spoilers"))
detailsChildren.Append(detailsContent)
pushSettingIfValid(detailsChildren, mediaDescVisibility)
detailsChildren.push(settingsSection("Recommendations"))
detailsChildren.Append(recommendations)
detailsChildren.push(settingsSection("Ratings"))
Expand Down Expand Up @@ -3329,6 +3332,7 @@ function settingRequirementMet(requirement as string) as boolean
if requirement = "social" then return achievements.SocialAvailable()
if requirement = "kidsMode" then return kidsMode.Enabled()
if requirement = "notKidsMode" then return not kidsMode.Enabled()
if requirement = "seerr" then return GetSeerrConfig().enabled
if Left(requirement, 8) = "setting:"
for each condition in requirement.Split("&&")
if not settingConditionMet(Mid(condition, 9)) then return false
Expand Down
2 changes: 1 addition & 1 deletion components/tvshows/SeasonEpisodeRow.bs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ sub itemContentChanged()
unplayedCount: chainLookupReturn(itemData, "json.UserData.UnplayedItemCount", 0)
}

hideMediaDesc = moonfinPlugin.ParseBoolSetting(chainLookupReturn(m.global.session, "user.settings.`ui.itemdetail.hideMediaDescription`", false), false)
hideMediaDesc = ItemHidesMediaDescription("episode", false, m.global.session)
m.episodeOverview.text = (not hideMediaDesc and isValid(itemData.overview)) ? itemData.overview : ""

if not isChainValid(itemData, "json")
Expand Down
2 changes: 1 addition & 1 deletion components/video/EpisodeBrowserOverlay.bs
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ sub init()
m.footer.text = tr("Press BACK to close")

m.palette = playbackOverlay.Palette()
m.hideOverview = toBoolean(chainLookupReturn(m.global.session, "user.settings.`ui.itemdetail.hideMediaDescription`", false))
m.hideOverview = ItemHidesMediaDescription("episode", false, m.global.session)
m.opened = false
m.loaded = false
m.numbers = []
Expand Down
104 changes: 104 additions & 0 deletions locale/en_US/translations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6529,6 +6529,110 @@
<source>Hide the movie or episode descriptive text.</source>
<translation>Hide the movie or episode descriptive text.</translation>
</message>
<message>
<source>Toggle Media Description Visibility</source>
<translation>Toggle Media Description Visibility</translation>
</message>
<message>
<source>Hide media descriptions from various detail pages.</source>
<translation>Hide media descriptions from various detail pages.</translation>
</message>
<message>
<source>Local Content</source>
<translation>Local Content</translation>
</message>
<message>
<source>Hide Movie Description</source>
<translation>Hide Movie Description</translation>
</message>
<message>
<source>Hide descriptive text on movie details pages.</source>
<translation>Hide descriptive text on movie details pages.</translation>
</message>
<message>
<source>Hide Show Description</source>
<translation>Hide Show Description</translation>
</message>
<message>
<source>Hide descriptive text on TV show details pages.</source>
<translation>Hide descriptive text on TV show details pages.</translation>
</message>
<message>
<source>Hide Season Description</source>
<translation>Hide Season Description</translation>
</message>
<message>
<source>Hide descriptive text on season details pages.</source>
<translation>Hide descriptive text on season details pages.</translation>
</message>
<message>
<source>Hide Episode Description</source>
<translation>Hide Episode Description</translation>
</message>
<message>
<source>Hide descriptive text on episode details pages.</source>
<translation>Hide descriptive text on episode details pages.</translation>
</message>
<message>
<source>Hide Collection Description</source>
<translation>Hide Collection Description</translation>
</message>
<message>
<source>Hide descriptive text on collection details pages.</source>
<translation>Hide descriptive text on collection details pages.</translation>
</message>
<message>
<source>Hide Book Description</source>
<translation>Hide Book Description</translation>
</message>
<message>
<source>Hide descriptive text on book details pages.</source>
<translation>Hide descriptive text on book details pages.</translation>
</message>
<message>
<source>Hide Person Biography</source>
<translation>Hide Person Biography</translation>
</message>
<message>
<source>Hide biographical text on person details pages.</source>
<translation>Hide biographical text on person details pages.</translation>
</message>
<message>
<source>Hide Music Description</source>
<translation>Hide Music Description</translation>
</message>
<message>
<source>Hide descriptive text on music and playlist details pages.</source>
<translation>Hide descriptive text on music and playlist details pages.</translation>
</message>
<message>
<source>Seerr Content</source>
<translation>Seerr Content</translation>
</message>
<message>
<source>Hide Seerr Movie Description</source>
<translation>Hide Seerr Movie Description</translation>
</message>
<message>
<source>Hide descriptive text on Seerr movie details pages.</source>
<translation>Hide descriptive text on Seerr movie details pages.</translation>
</message>
<message>
<source>Hide Seerr Show Description</source>
<translation>Hide Seerr Show Description</translation>
</message>
<message>
<source>Hide descriptive text on Seerr TV show details pages.</source>
<translation>Hide descriptive text on Seerr TV show details pages.</translation>
</message>
<message>
<source>Hide Seerr Collection Description</source>
<translation>Hide Seerr Collection Description</translation>
</message>
<message>
<source>Hide descriptive text on Seerr collection details pages.</source>
<translation>Hide descriptive text on Seerr collection details pages.</translation>
</message>
<message>
<source>How long a show stays in Next Up after you last watched it</source>
<translation>How long a show stays in Next Up after you last watched it</translation>
Expand Down
110 changes: 105 additions & 5 deletions settings/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -8381,12 +8381,112 @@
"default": "true"
},
{
"title": "Hide Media Description",
"description": "Hide the movie or episode descriptive text.",
"settingName": "ui.itemdetail.hideMediaDescription",
"title": "Toggle Media Description Visibility",
"description": "Hide media descriptions from various detail pages.",
"glyph": "description_outlined",
"type": "bool",
"default": "false"
"clean": true,
"children": [
{
"title": "Local Content",
"type": "section"
},
{
"title": "Hide Movie Description",
"description": "Hide descriptive text on movie details pages.",
"settingName": "ui.itemdetail.hideMediaDescriptionMovie",
"glyph": "movie_outlined",
"type": "bool",
"default": "false"
},
{
"title": "Hide Show Description",
"description": "Hide descriptive text on TV show details pages.",
"settingName": "ui.itemdetail.hideMediaDescriptionShow",
"glyph": "tv",
"type": "bool",
"default": "false"
},
{
"title": "Hide Season Description",
"description": "Hide descriptive text on season details pages.",
"settingName": "ui.itemdetail.hideMediaDescriptionSeason",
"glyph": "video_library",
"type": "bool",
"default": "false"
},
{
"title": "Hide Episode Description",
"description": "Hide descriptive text on episode details pages.",
"settingName": "ui.itemdetail.hideMediaDescriptionEpisode",
"glyph": "tv",
"type": "bool",
"default": "false"
},
{
"title": "Hide Collection Description",
"description": "Hide descriptive text on collection details pages.",
"settingName": "ui.itemdetail.hideMediaDescriptionBoxSet",
"glyph": "collections",
"type": "bool",
"default": "false"
},
{
"title": "Hide Book Description",
"description": "Hide descriptive text on book details pages.",
"settingName": "ui.itemdetail.hideMediaDescriptionBook",
"glyph": "collections_bookmark",
"type": "bool",
"default": "false"
},
{
"title": "Hide Person Biography",
"description": "Hide biographical text on person details pages.",
"settingName": "ui.itemdetail.hideMediaDescriptionPerson",
"glyph": "person",
"type": "bool",
"default": "false"
},
{
"title": "Hide Music Description",
"description": "Hide descriptive text on music and playlist details pages.",
"settingName": "ui.itemdetail.hideMediaDescriptionMusic",
"glyph": "music_note",
"type": "bool",
"default": "false"
},
{
"title": "Seerr Content",
"type": "section",
"requires": "seerr"
},
{
"title": "Hide Seerr Movie Description",
"description": "Hide descriptive text on Seerr movie details pages.",
"settingName": "ui.itemdetail.hideMediaDescriptionSeerrMovie",
"glyph": "movie_outlined",
"type": "bool",
"default": "false",
"requires": "seerr"
},
{
"title": "Hide Seerr Show Description",
"description": "Hide descriptive text on Seerr TV show details pages.",
"settingName": "ui.itemdetail.hideMediaDescriptionSeerrShow",
"glyph": "tv",
"type": "bool",
"default": "false",
"requires": "seerr"
},
{
"title": "Hide Seerr Collection Description",
"description": "Hide descriptive text on Seerr collection details pages.",
"settingName": "ui.itemdetail.hideMediaDescriptionSeerrCollection",
"glyph": "collections",
"type": "bool",
"default": "false",
"requires": "seerr"
}
]
},
{
"title": "Use Series Thumbnails",
Expand Down
1 change: 1 addition & 0 deletions source/utils/SeerrUtils.bs
Original file line number Diff line number Diff line change
Expand Up @@ -1491,6 +1491,7 @@ sub ShowSeerrDetails(mediaItem as object)
if isValidStringValue(mediaItem.mediaType) then mediaType = mediaItem.mediaType

detailsScreen = CreateObject("roSGNode", SeerrDetailScreenComponent())
detailsScreen.itemType = isStringEqual(mediaType, "tv") ? "series" : (isStringEqual(mediaType, "collection") ? "collection" : "movie")
detailsScreen.seerrTarget = {
tmdbId: mediaItem.tmdbId.toStr(),
mediaType: mediaType
Expand Down
Loading
Loading