mirror of
https://github.com/iv-org/invidious.git
synced 2026-02-05 18:39:57 +00:00
Channels: parse pronouns and display them on channel page (#5617)
This commit is contained in:
@@ -75,6 +75,16 @@ body {
|
|||||||
height: auto;
|
height: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.channel-profile > .channel-name-pronouns {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.channel-profile > .channel-name-pronouns > .channel-pronouns {
|
||||||
|
font-style: italic;
|
||||||
|
font-size: .8em;
|
||||||
|
font-weight: lighter;
|
||||||
|
}
|
||||||
|
|
||||||
body a.channel-owner {
|
body a.channel-owner {
|
||||||
background-color: #008bec;
|
background-color: #008bec;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
@@ -406,7 +416,12 @@ input[type="search"]::-webkit-search-cancel-button {
|
|||||||
|
|
||||||
p.channel-name { margin: 0; overflow-wrap: anywhere;}
|
p.channel-name { margin: 0; overflow-wrap: anywhere;}
|
||||||
p.video-data { margin: 0; font-weight: bold; font-size: 80%; }
|
p.video-data { margin: 0; font-weight: bold; font-size: 80%; }
|
||||||
.channel-profile > .channel-name { overflow-wrap: anywhere;}
|
|
||||||
|
.channel-profile > .channel-name,
|
||||||
|
.channel-profile > .channel-name-pronouns > .channel-name
|
||||||
|
{
|
||||||
|
overflow-wrap: anywhere;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ record AboutChannel,
|
|||||||
sub_count : Int32,
|
sub_count : Int32,
|
||||||
joined : Time,
|
joined : Time,
|
||||||
is_family_friendly : Bool,
|
is_family_friendly : Bool,
|
||||||
|
pronouns : String?,
|
||||||
allowed_regions : Array(String),
|
allowed_regions : Array(String),
|
||||||
tabs : Array(String),
|
tabs : Array(String),
|
||||||
tags : Array(String),
|
tags : Array(String),
|
||||||
@@ -160,14 +161,21 @@ def get_about_info(ucid, locale) : AboutChannel
|
|||||||
end
|
end
|
||||||
|
|
||||||
sub_count = 0
|
sub_count = 0
|
||||||
|
pronouns = nil
|
||||||
|
|
||||||
if (metadata_rows = initdata.dig?("header", "pageHeaderRenderer", "content", "pageHeaderViewModel", "metadata", "contentMetadataViewModel", "metadataRows").try &.as_a)
|
if (metadata_rows = initdata.dig?("header", "pageHeaderRenderer", "content", "pageHeaderViewModel", "metadata", "contentMetadataViewModel", "metadataRows").try &.as_a)
|
||||||
metadata_rows.each do |row|
|
metadata_rows.each do |row|
|
||||||
metadata_part = row.dig?("metadataParts").try &.as_a.find { |i| i.dig?("text", "content").try &.as_s.includes?("subscribers") }
|
subscribe_metadata_part = row.dig?("metadataParts").try &.as_a.find { |i| i.dig?("text", "content").try &.as_s.includes?("subscribers") }
|
||||||
if !metadata_part.nil?
|
if !subscribe_metadata_part.nil?
|
||||||
sub_count = short_text_to_number(metadata_part.dig("text", "content").as_s.split(" ")[0]).to_i32
|
sub_count = short_text_to_number(subscribe_metadata_part.dig("text", "content").as_s.split(" ")[0]).to_i32
|
||||||
end
|
end
|
||||||
break if sub_count != 0
|
|
||||||
|
pronoun_metadata_part = row.dig?("metadataParts").try &.as_a.find { |i| i.dig?("tooltip").try &.as_s.includes?("Pronouns") }
|
||||||
|
if !pronoun_metadata_part.nil?
|
||||||
|
pronouns = pronoun_metadata_part.dig("text", "content").as_s
|
||||||
|
end
|
||||||
|
|
||||||
|
break if sub_count != 0 && !pronouns.nil?
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -184,6 +192,7 @@ def get_about_info(ucid, locale) : AboutChannel
|
|||||||
sub_count: sub_count,
|
sub_count: sub_count,
|
||||||
joined: joined,
|
joined: joined,
|
||||||
is_family_friendly: is_family_friendly,
|
is_family_friendly: is_family_friendly,
|
||||||
|
pronouns: pronouns,
|
||||||
allowed_regions: allowed_regions,
|
allowed_regions: allowed_regions,
|
||||||
tabs: tab_names,
|
tabs: tab_names,
|
||||||
tags: tags,
|
tags: tags,
|
||||||
|
|||||||
@@ -104,6 +104,7 @@ module Invidious::Routes::API::V1::Channels
|
|||||||
json.field "tabs", channel.tabs
|
json.field "tabs", channel.tabs
|
||||||
json.field "tags", channel.tags
|
json.field "tags", channel.tags
|
||||||
json.field "authorVerified", channel.verified
|
json.field "authorVerified", channel.verified
|
||||||
|
json.field "pronouns", channel.pronouns
|
||||||
|
|
||||||
json.field "latestVideos" do
|
json.field "latestVideos" do
|
||||||
json.array do
|
json.array do
|
||||||
|
|||||||
@@ -12,7 +12,10 @@
|
|||||||
<div class="pure-u-1-2 flex-left flexible">
|
<div class="pure-u-1-2 flex-left flexible">
|
||||||
<div class="channel-profile">
|
<div class="channel-profile">
|
||||||
<img src="/ggpht<%= channel_profile_pic %>" alt="" />
|
<img src="/ggpht<%= channel_profile_pic %>" alt="" />
|
||||||
<span class="channel-name"><%= author %></span><% if !channel.verified.nil? && channel.verified %> <i class="icon ion ion-md-checkmark-circle"></i><% end %>
|
<div class="channel-name-pronouns">
|
||||||
|
<span class="channel-name"><%= author %></span><% if !channel.verified.nil? && channel.verified %> <i class="icon ion ion-md-checkmark-circle"></i><% end %>
|
||||||
|
<% if !channel.pronouns.nil? %><br /><span class="channel-pronouns"><%= channel.pronouns %></span><% end %>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user