Fix 404 handling for endpoints matching short URLs

This commit is contained in:
Omar Roth 2019-06-07 12:42:07 -05:00
parent 27e032d10d
commit f065a21542
No known key found for this signature in database
GPG Key ID: B8254FB7EC3D37F2

View File

@ -2409,7 +2409,7 @@ get "/feed/subscriptions" do |env|
env.set "user", user env.set "user", user
templated "subscriptions" templated "subscriptions"
end end
get "/feed/history" do |env| get "/feed/history" do |env|
locale = LOCALES[env.get("preferences").as(Preferences).locale]? locale = LOCALES[env.get("preferences").as(Preferences).locale]?
@ -2434,7 +2434,7 @@ get "/feed/history" do |env|
end end
templated "history" templated "history"
end end
get "/feed/channel/:ucid" do |env| get "/feed/channel/:ucid" do |env|
locale = LOCALES[env.get("preferences").as(Preferences).locale]? locale = LOCALES[env.get("preferences").as(Preferences).locale]?
@ -2508,7 +2508,7 @@ get "/feed/channel/:ucid" do |env|
end end
end end
end end
end end
get "/feed/private" do |env| get "/feed/private" do |env|
locale = LOCALES[env.get("preferences").as(Preferences).locale]? locale = LOCALES[env.get("preferences").as(Preferences).locale]?
@ -5058,6 +5058,11 @@ error 404 do |env|
response = client.get(response.headers["Location"]) response = client.get(response.headers["Location"])
end end
if response.body.empty?
env.response.headers["Location"] = "/"
halt env, status_code: 302
end
html = XML.parse_html(response.body) html = XML.parse_html(response.body)
ucid = html.xpath_node(%q(//meta[@itemprop="channelId"])) ucid = html.xpath_node(%q(//meta[@itemprop="channelId"]))