diff --git a/src/invidious.cr b/src/invidious.cr index e2c83bdad..f41ae6f80 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -703,13 +703,13 @@ get "/subscription_manager" do |env| xml.element("outline", text: title, title: title) do subscriptions.each do |channel| if format == "newpipe" - xmlUrl = "https://www.youtube.com/feeds/videos.xml?channel_id=#{channel.id}" + xml_url = "https://www.youtube.com/feeds/videos.xml?channel_id=#{channel.id}" else - xmlUrl = "#{HOST_URL}/feed/channel/#{channel.id}" + xml_url = "#{HOST_URL}/feed/channel/#{channel.id}" end xml.element("outline", text: channel.author, title: channel.author, - "type": "rss", xmlUrl: xmlUrl) + "type": "rss", xmlUrl: xml_url) end end end @@ -1351,7 +1351,7 @@ error 500 do |env, ex| error_template(500, ex) end -static_headers do | response | +static_headers do |response| response.headers.add("Cache-Control", "max-age=2629800") end diff --git a/src/invidious/channels/playlists.cr b/src/invidious/channels/playlists.cr index 3072b21da..d5628f6ab 100644 --- a/src/invidious/channels/playlists.cr +++ b/src/invidious/channels/playlists.cr @@ -1,17 +1,17 @@ def fetch_channel_playlists(ucid, author, continuation, sort_by) if continuation response_json = YoutubeAPI.browse(continuation) - continuationItems = response_json["onResponseReceivedActions"]? + continuation_items = response_json["onResponseReceivedActions"]? .try &.[0]["appendContinuationItemsAction"]["continuationItems"] - return [] of SearchItem, nil if !continuationItems + return [] of SearchItem, nil if !continuation_items items = [] of SearchItem - continuationItems.as_a.select(&.as_h.has_key?("gridPlaylistRenderer")).each { |item| + continuation_items.as_a.select(&.as_h.has_key?("gridPlaylistRenderer")).each { |item| extract_item(item, author, ucid).try { |t| items << t } } - continuation = continuationItems.as_a.last["continuationItemRenderer"]? + continuation = continuation_items.as_a.last["continuationItemRenderer"]? .try &.["continuationEndpoint"]["continuationCommand"]["token"].as_s else url = "/channel/#{ucid}/playlists?flow=list&view=1" diff --git a/src/invidious/comments.cr b/src/invidious/comments.cr index caeaa0e8d..3370b088c 100644 --- a/src/invidious/comments.cr +++ b/src/invidious/comments.cr @@ -73,9 +73,9 @@ def fetch_youtube_comments(id, cursor, format, locale, thin_mode, region, sort_b contents = nil if response["onResponseReceivedEndpoints"]? - onResponseReceivedEndpoints = response["onResponseReceivedEndpoints"] + on_response_received_endpoints = response["onResponseReceivedEndpoints"] header = nil - onResponseReceivedEndpoints.as_a.each do |item| + on_response_received_endpoints.as_a.each do |item| if item["reloadContinuationItemsCommand"]? case item["reloadContinuationItemsCommand"]["slot"] when "RELOAD_CONTINUATION_SLOT_HEADER" @@ -97,7 +97,8 @@ def fetch_youtube_comments(id, cursor, format, locale, thin_mode, region, sort_b contents = body["contents"]? header = body["header"]? if body["continuations"]? - moreRepliesContinuation = body["continuations"][0]["nextContinuationData"]["continuation"].as_s + # Removable? Doesn't seem like this is used. + more_replies_continuation = body["continuations"][0]["nextContinuationData"]["continuation"].as_s end else raise InfoException.new("Could not fetch comments") @@ -111,10 +112,10 @@ def fetch_youtube_comments(id, cursor, format, locale, thin_mode, region, sort_b end end - continuationItemRenderer = nil + continuation_item_renderer = nil contents.as_a.reject! do |item| if item["continuationItemRenderer"]? - continuationItemRenderer = item["continuationItemRenderer"] + continuation_item_renderer = item["continuationItemRenderer"] true end end @@ -232,14 +233,14 @@ def fetch_youtube_comments(id, cursor, format, locale, thin_mode, region, sort_b end end - if continuationItemRenderer - if continuationItemRenderer["continuationEndpoint"]? - continuationEndpoint = continuationItemRenderer["continuationEndpoint"] - elsif continuationItemRenderer["button"]? - continuationEndpoint = continuationItemRenderer["button"]["buttonRenderer"]["command"] + if continuation_item_renderer + if continuation_item_renderer["continuationEndpoint"]? + continuation_endpoint = continuation_item_renderer["continuationEndpoint"] + elsif continuation_item_renderer["button"]? + continuation_endpoint = continuation_item_renderer["button"]["buttonRenderer"]["command"] end - if continuationEndpoint - json.field "continuation", continuationEndpoint["continuationCommand"]["token"].as_s + if continuation_endpoint + json.field "continuation", continuation_endpoint["continuationCommand"]["token"].as_s end end end diff --git a/src/invidious/routes/api/v1/videos.cr b/src/invidious/routes/api/v1/videos.cr index 575e6fdf5..d483bca6b 100644 --- a/src/invidious/routes/api/v1/videos.cr +++ b/src/invidious/routes/api/v1/videos.cr @@ -58,7 +58,7 @@ module Invidious::Routes::API::V1::Videos captions.each do |caption| json.object do json.field "label", caption.name - json.field "languageCode", caption.languageCode + json.field "languageCode", caption.language_code json.field "url", "/api/v1/captions/#{id}?label=#{URI.encode_www_form(caption.name)}" end end @@ -73,7 +73,7 @@ module Invidious::Routes::API::V1::Videos env.response.content_type = "text/vtt; charset=UTF-8" if lang - caption = captions.select { |caption| caption.languageCode == lang } + caption = captions.select { |caption| caption.language_code == lang } else caption = captions.select { |caption| caption.name == label } end @@ -84,7 +84,7 @@ module Invidious::Routes::API::V1::Videos caption = caption[0] end - url = URI.parse("#{caption.baseUrl}&tlang=#{tlang}").request_target + url = URI.parse("#{caption.base_url}&tlang=#{tlang}").request_target # Auto-generated captions often have cues that aren't aligned properly with the video, # as well as some other markup that makes it cumbersome, so we try to fix that here @@ -96,7 +96,7 @@ module Invidious::Routes::API::V1::Videos str << <<-END_VTT WEBVTT Kind: captions - Language: #{tlang || caption.languageCode} + Language: #{tlang || caption.language_code} END_VTT diff --git a/src/invidious/routes/embed.cr b/src/invidious/routes/embed.cr index 80d097893..ffbf8c14a 100644 --- a/src/invidious/routes/embed.cr +++ b/src/invidious/routes/embed.cr @@ -168,11 +168,11 @@ module Invidious::Routes::Embed preferred_captions = captions.select { |caption| params.preferred_captions.includes?(caption.name) || - params.preferred_captions.includes?(caption.languageCode.split("-")[0]) + params.preferred_captions.includes?(caption.language_code.split("-")[0]) } preferred_captions.sort_by! { |caption| (params.preferred_captions.index(caption.name) || - params.preferred_captions.index(caption.languageCode.split("-")[0])).not_nil! + params.preferred_captions.index(caption.language_code.split("-")[0])).not_nil! } captions = captions - preferred_captions diff --git a/src/invidious/routes/watch.cr b/src/invidious/routes/watch.cr index 2db133eed..abcf427e0 100644 --- a/src/invidious/routes/watch.cr +++ b/src/invidious/routes/watch.cr @@ -153,11 +153,11 @@ module Invidious::Routes::Watch preferred_captions = captions.select { |caption| params.preferred_captions.includes?(caption.name) || - params.preferred_captions.includes?(caption.languageCode.split("-")[0]) + params.preferred_captions.includes?(caption.language_code.split("-")[0]) } preferred_captions.sort_by! { |caption| (params.preferred_captions.index(caption.name) || - params.preferred_captions.index(caption.languageCode.split("-")[0])).not_nil! + params.preferred_captions.index(caption.language_code.split("-")[0])).not_nil! } captions = captions - preferred_captions diff --git a/src/invidious/search.cr b/src/invidious/search.cr index f59c9a141..f06ee7f6c 100644 --- a/src/invidious/search.cr +++ b/src/invidious/search.cr @@ -14,13 +14,13 @@ def channel_search(query, page, channel) continuation = produce_channel_search_continuation(ucid, query, page) response_json = YoutubeAPI.browse(continuation) - continuationItems = response_json["onResponseReceivedActions"]? + continuation_items = response_json["onResponseReceivedActions"]? .try &.[0]["appendContinuationItemsAction"]["continuationItems"] - return 0, [] of SearchItem if !continuationItems + return 0, [] of SearchItem if !continuation_items items = [] of SearchItem - continuationItems.as_a.select(&.as_h.has_key?("itemSectionRenderer")).each { |item| + continuation_items.as_a.select(&.as_h.has_key?("itemSectionRenderer")).each { |item| extract_item(item["itemSectionRenderer"]["contents"].as_a[0]) .try { |t| items << t } } diff --git a/src/invidious/videos.cr b/src/invidious/videos.cr index 0e6bd77c4..0fe949c71 100644 --- a/src/invidious/videos.cr +++ b/src/invidious/videos.cr @@ -426,7 +426,7 @@ struct Video self.captions.each do |caption| json.object do json.field "label", caption.name - json.field "languageCode", caption.languageCode + json.field "language_code", caption.language_code json.field "url", "/api/v1/captions/#{id}?label=#{URI.encode_www_form(caption.name)}" end end @@ -703,10 +703,10 @@ struct Video return @captions.as(Array(Caption)) if @captions captions = info["captions"]?.try &.["playerCaptionsTracklistRenderer"]?.try &.["captionTracks"]?.try &.as_a.map do |caption| name = caption["name"]["simpleText"]? || caption["name"]["runs"][0]["text"] - languageCode = caption["languageCode"].to_s - baseUrl = caption["baseUrl"].to_s + language_code = caption["languageCode"].to_s + base_url = caption["baseUrl"].to_s - caption = Caption.new(name.to_s, languageCode, baseUrl) + caption = Caption.new(name.to_s, language_code, base_url) caption.name = caption.name.split(" - ")[0] caption end @@ -785,16 +785,16 @@ end struct Caption property name - property languageCode - property baseUrl + property language_code + property base_url getter name : String - getter languageCode : String - getter baseUrl : String + getter language_code : String + getter base_url : String setter name - def initialize(@name, @languageCode, @baseUrl) + def initialize(@name, @language_code, @base_url) end end diff --git a/src/invidious/views/watch.ecr b/src/invidious/views/watch.ecr index 398e25b6a..265d1628f 100644 --- a/src/invidious/views/watch.ecr +++ b/src/invidious/views/watch.ecr @@ -184,7 +184,7 @@ we're going to need to do it here in order to allow for translations. <% end %> <% captions.each do |caption| %> - <% end %>