diff --git a/locales/en-US.json b/locales/en-US.json index 9a7ac3cf..93c99e81 100644 --- a/locales/en-US.json +++ b/locales/en-US.json @@ -503,5 +503,6 @@ "carousel_skip": "Skip the Carousel", "carousel_go_to": "Go to slide `x`", "video_badges_members_only": "Members only", + "video_badges_members_first": "Members first", "preferences_exclude_members_only_videos_label": "Hide channel member-only videos" } diff --git a/src/invidious/helpers/serialized_yt_data.cr b/src/invidious/helpers/serialized_yt_data.cr index 69dc91d6..0cdbcd1b 100644 --- a/src/invidious/helpers/serialized_yt_data.cr +++ b/src/invidious/helpers/serialized_yt_data.cr @@ -10,6 +10,7 @@ enum VideoBadges VR360 ClosedCaptions MembersOnly + MembersFirst end struct SearchVideo @@ -152,6 +153,13 @@ struct SearchVideo def upcoming? premiere_timestamp ? true : false end + + # Shorthand to check whether the video is restricted to only channel members + # + # Whether as an early access video ("members first") or only for members ("members only") + def restricted_to_members? + return badges.members_only? || badges.members_first? + end end struct SearchPlaylistVideo diff --git a/src/invidious/views/components/item.ecr b/src/invidious/views/components/item.ecr index 59282165..91154af7 100644 --- a/src/invidious/views/components/item.ecr +++ b/src/invidious/views/components/item.ecr @@ -208,6 +208,9 @@ <% if item.badges.members_only? %> <%=translate(locale, "video_badges_members_only")%> <% end %> + <% if item.badges.members_first? %> + <%=translate(locale, "video_badges_members_first")%> + <% end %> <%end%> <% end %> diff --git a/src/invidious/views/components/items_paginated.ecr b/src/invidious/views/components/items_paginated.ecr index 1863b7d4..02b47be1 100644 --- a/src/invidious/views/components/items_paginated.ecr +++ b/src/invidious/views/components/items_paginated.ecr @@ -3,8 +3,7 @@