Add support for /c/ URLs

This commit is contained in:
Omar Roth 2018-09-04 09:13:58 -05:00
parent 0f2f273335
commit 98d71ca8e7

View file

@ -1557,6 +1557,23 @@ end
# Channels
# YouTube appears to let users set a "brand" URL that
# is different from their username, so we convert that here
get "/c/:user" do |env|
client = make_client(YT_URL)
user = env.params.url["user"]
response = client.get("/c/#{user}")
document = XML.parse_html(response.body)
anchor = document.xpath_node(%q(//a[contains(@class,"branded-page-header-title-link")]))
if !anchor
next env.redirect "/"
end
env.redirect anchor["href"]
end
get "/user/:user" do |env|
user = env.params.url["user"]
env.redirect "/channel/#{user}"