mirror of
https://github.com/iv-org/invidious.git
synced 2026-09-06 00:52:45 -05:00
Link hashtags in video titles
This commit is contained in:
parent
9d1291a0b8
commit
af71810d45
@ -3,6 +3,16 @@ require "../spec_helper"
|
||||
CONFIG = Config.from_yaml(File.open("config/config.example.yml"))
|
||||
|
||||
Spectator.describe "Helper" do
|
||||
describe "#parse_video_title" do
|
||||
it "links hashtags in video titles" do
|
||||
expect(parse_video_title("Video title #music")).to eq(%(Video title <a href="/hashtag/music">#music</a>))
|
||||
end
|
||||
|
||||
it "escapes video titles before linking hashtags" do
|
||||
expect(parse_video_title(%(<b>#music</b>))).to eq(%(<b><a href="/hashtag/music">#music</a></b>))
|
||||
end
|
||||
end
|
||||
|
||||
describe "#produce_channel_search_continuation" do
|
||||
it "correctly produces token for searching a specific channel" do
|
||||
expect(produce_channel_search_continuation("UCXuqSBlHAE6Xw-yeJA0Tunw", "", 100)).to eq("4qmFsgJqEhhVQ1h1cVNCbEhBRTZYdy15ZUpBMFR1bncaIEVnWnpaV0Z5WTJnd0FUZ0JZQUY2QkVkS2IxaTRBUUE9WgCaAilicm93c2UtZmVlZFVDWHVxU0JsSEFFNlh3LXllSkEwVHVud3NlYXJjaA%3D%3D")
|
||||
|
||||
@ -20,6 +20,14 @@ def elapsed_text(elapsed)
|
||||
"#{(millis * 1000).round(2)}µs"
|
||||
end
|
||||
|
||||
def parse_video_title(title : String) : String
|
||||
HTML.escape(title).gsub(/(^|[[:space:]])#([A-Za-z0-9_]+)/) do |match|
|
||||
prefix = match.starts_with?("#") ? "" : match[0].to_s
|
||||
hashtag = match[prefix.size + 1..]
|
||||
"#{prefix}<a href=\"/hashtag/#{URI.encode_path(hashtag)}\">##{hashtag}</a>"
|
||||
end
|
||||
end
|
||||
|
||||
def decode_length_seconds(string)
|
||||
length_seconds = string.gsub(/[^0-9:]/, "")
|
||||
return 0_i32 if length_seconds.empty?
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
<% ucid = video.ucid %>
|
||||
<% title = HTML.escape(video.title) %>
|
||||
<% title_html = parse_video_title(video.title) %>
|
||||
<% author = HTML.escape(video.author) %>
|
||||
|
||||
|
||||
@ -77,7 +78,7 @@ we're going to need to do it here in order to allow for translations.
|
||||
|
||||
<div class="h-box">
|
||||
<h1>
|
||||
<%= title %>
|
||||
<%= title_html %>
|
||||
<% if params.listen %>
|
||||
<a title="<%=I18n.translate(locale, "Video mode")%>" id="link-iv-listen" data-base-url="/watch?<%= env.params.query %>&listen=0" href="/watch?<%= env.params.query %>&listen=0">
|
||||
<i class="icon ion-ios-videocam"></i>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user