Comments now show if they were edited and if they received a heart from the uploader (plus additional classes in default.css). The isEdited attribute was also added in the comments API and new strings in en-US.json
This commit is contained in:
parent
e9ea365f2f
commit
b0ba670c91
|
@ -5,6 +5,39 @@
|
||||||
padding: 1px 6px;
|
padding: 1px 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.creator-heart-container {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0px 7px 6px 0px;
|
||||||
|
margin: 0px -7px -4px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.creator-heart {
|
||||||
|
position: relative;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
border: 2px none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.creator-heart-background-hearted {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
padding: 0px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.creator-heart-small-hearted {
|
||||||
|
position: absolute;
|
||||||
|
right: -7px;
|
||||||
|
bottom: -4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.creator-heart-small-container {
|
||||||
|
position: relative;
|
||||||
|
width: 13px;
|
||||||
|
height: 13px;
|
||||||
|
color: rgb(255, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
.h-box {
|
.h-box {
|
||||||
padding-left: 1em;
|
padding-left: 1em;
|
||||||
padding-right: 1em;
|
padding-right: 1em;
|
||||||
|
|
|
@ -270,5 +270,9 @@
|
||||||
"News": "News",
|
"News": "News",
|
||||||
"Movies": "Movies",
|
"Movies": "Movies",
|
||||||
"Download": "Download",
|
"Download": "Download",
|
||||||
"Download as: ": "Download as: "
|
"Download as: ": "Download as: ",
|
||||||
|
"%A %B %-d, %Y": "%A %B %-d, %Y",
|
||||||
|
"(edited)": "(edited)",
|
||||||
|
"Youtube permalink of the comment": "Youtube permalink of the comment",
|
||||||
|
"`x` marked it with a ❤": "`x` marked it with a ❤"
|
||||||
}
|
}
|
||||||
|
|
|
@ -211,7 +211,14 @@ def fetch_youtube_comments(id, continuation, proxies, format, locale)
|
||||||
json.field "authorUrl", ""
|
json.field "authorUrl", ""
|
||||||
end
|
end
|
||||||
|
|
||||||
published = decode_date(node_comment["publishedTimeText"]["runs"][0]["text"].as_s.rchop(" (edited)"))
|
published_text = node_comment["publishedTimeText"]["runs"][0]["text"].as_s
|
||||||
|
published = decode_date(published_text.rchop(" (edited)"))
|
||||||
|
|
||||||
|
if published_text.includes?(" (edited)")
|
||||||
|
json.field "isEdited", true
|
||||||
|
else
|
||||||
|
json.field "isEdited", false
|
||||||
|
end
|
||||||
|
|
||||||
json.field "content", content
|
json.field "content", content
|
||||||
json.field "contentHtml", content_html
|
json.field "contentHtml", content_html
|
||||||
|
@ -221,11 +228,12 @@ def fetch_youtube_comments(id, continuation, proxies, format, locale)
|
||||||
json.field "commentId", node_comment["commentId"]
|
json.field "commentId", node_comment["commentId"]
|
||||||
json.field "authorIsChannelOwner", node_comment["authorIsChannelOwner"]
|
json.field "authorIsChannelOwner", node_comment["authorIsChannelOwner"]
|
||||||
|
|
||||||
if node_comment["creatorHeart"]?
|
if node_comment["actionButtons"]["commentActionButtonsRenderer"]["creatorHeart"]?
|
||||||
|
hearth_data = node_comment["actionButtons"]["commentActionButtonsRenderer"]["creatorHeart"]["creatorHeartRenderer"]["creatorThumbnail"]
|
||||||
json.field "creatorHeart" do
|
json.field "creatorHeart" do
|
||||||
json.object do
|
json.object do
|
||||||
json.field "creatorThumbnail", node_comment["creatorHeart"]["creatorHeartRenderer"]["creatorThumbnail"]["thumbnails"][2]
|
json.field "creatorThumbnail", hearth_data["thumbnails"][-1]["url"]
|
||||||
json.field "creatorName", node_comment["creatorHeart"]["creatorHeartRenderer"]["creatorThumbnail"]["accessibility"]["accessibilityData"]["label"]
|
json.field "creatorName", hearth_data["accessibility"]["accessibilityData"]["label"]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -341,11 +349,27 @@ def template_youtube_comments(comments, locale)
|
||||||
<a class="#{child["authorIsChannelOwner"] == true ? "channel-owner" : ""}" href="#{child["authorUrl"]}">#{child["author"]}</a>
|
<a class="#{child["authorIsChannelOwner"] == true ? "channel-owner" : ""}" href="#{child["authorUrl"]}">#{child["author"]}</a>
|
||||||
</b>
|
</b>
|
||||||
<p style="white-space:pre-wrap">#{child["contentHtml"]}</p>
|
<p style="white-space:pre-wrap">#{child["contentHtml"]}</p>
|
||||||
<span title="#{Time.unix(child["published"].as_i64).to_s(translate(locale,"%A %B %-d, %Y"))}">#{translate(locale, "`x` ago", recode_date(Time.unix(child["published"].as_i64)))}</span>
|
<span title="#{Time.unix(child["published"].as_i64).to_s(translate(locale,"%A %B %-d, %Y"))}">#{translate(locale, "`x` ago", recode_date(Time.unix(child["published"].as_i64)))} #{child["isEdited"] == true ? translate(locale, "(edited)") : ""}</span>
|
||||||
|
|
|
|
||||||
<a href="https://www.youtube.com/watch?v=#{comments["videoId"]}&lc=#{child["commentId"]}" title="#{translate(locale, "Youtube permalink of the comment")}">[YT]</a>
|
<a href="https://www.youtube.com/watch?v=#{comments["videoId"]}&lc=#{child["commentId"]}" title="#{translate(locale, "Youtube permalink of the comment")}">[YT]</a>
|
||||||
|
|
|
|
||||||
<i class="icon ion-ios-thumbs-up"></i> #{number_with_separator(child["likeCount"])}
|
<i class="icon ion-ios-thumbs-up"></i> #{number_with_separator(child["likeCount"])}
|
||||||
|
END_HTML
|
||||||
|
|
||||||
|
if child["creatorHeart"]?
|
||||||
|
html += <<-END_HTML
|
||||||
|
<span class="creator-heart-container" title="#{translate(locale, "`x` marked it with a ❤", child["creatorHeart"]["creatorName"].as_s)}">
|
||||||
|
<div class="creator-heart">
|
||||||
|
<img class="creator-heart-background-hearted" src="#{child["creatorHeart"]["creatorThumbnail"]}"></img>
|
||||||
|
<div class="creator-heart-small-hearted">
|
||||||
|
<div class="creator-heart-small-container">🖤</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</span>
|
||||||
|
END_HTML
|
||||||
|
end
|
||||||
|
|
||||||
|
html += <<-END_HTML
|
||||||
</p>
|
</p>
|
||||||
#{replies_html}
|
#{replies_html}
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue