Use fill_links once instead of per comment

This commit is contained in:
Omar Roth 2018-04-05 20:06:22 -05:00
parent 815aeeb29c
commit e2b5b7793a
2 changed files with 4 additions and 5 deletions

View file

@ -381,9 +381,6 @@ def template_comments(root)
score = child["data"]["score"] score = child["data"]["score"]
body_html = HTML.unescape(child["data"]["body_html"].as_s) body_html = HTML.unescape(child["data"]["body_html"].as_s)
# Replace local links wtih links back to Reddit
body_html = fill_links(body_html, "https", "www.reddit.com")
replies_html = "" replies_html = ""
if child["data"]["replies"] != "" if child["data"]["replies"] != ""
replies_html = template_comments(child["data"]["replies"]["data"]["children"]) replies_html = template_comments(child["data"]["replies"]["data"]["children"])
@ -402,7 +399,8 @@ def template_comments(root)
if child["data"]["depth"].as_i > 0 if child["data"]["depth"].as_i > 0
html += <<-END_HTML html += <<-END_HTML
<div class="pure-g"> <div class="pure-g">
<div class="pure-u-1-24"></div> <div class="pure-u-1-24">
</div>
<div class="pure-u-23-24"> <div class="pure-u-23-24">
#{content} #{content}
</div> </div>
@ -483,7 +481,7 @@ def fill_links(html, scheme, host)
html.xpath_nodes("//a").each do |match| html.xpath_nodes("//a").each do |match|
url = URI.parse(match["href"]) url = URI.parse(match["href"])
# Reddit links don't have host # Reddit links don't have host
if !url.host if !url.host && !match["href"].starts_with?("javascript")
url.scheme = scheme url.scheme = scheme
url.host = host url.host = host
match["href"] = url match["href"] = url

View file

@ -296,6 +296,7 @@ get "/watch" do |env|
reddit_comments, reddit_thread = get_reddit_comments(id, reddit_client, headers) reddit_comments, reddit_thread = get_reddit_comments(id, reddit_client, headers)
reddit_html = template_comments(reddit_comments) reddit_html = template_comments(reddit_comments)
reddit_html = fill_links(reddit_html, "https", "www.reddit.com")
reddit_html = add_alt_links(reddit_html) reddit_html = add_alt_links(reddit_html)
rescue ex rescue ex
reddit_thread = nil reddit_thread = nil