Run Crystal formatting tool

This commit is contained in:
broquemonsieur 2023-08-06 16:53:56 -07:00
parent 205c5493db
commit 93ac7cdeb4
10 changed files with 64 additions and 65 deletions

View File

@ -19,7 +19,7 @@ struct CompilationVideo
xml.element("yt:videoId") { xml.text self.id } xml.element("yt:videoId") { xml.text self.id }
xml.element("yt:channelId") { xml.text self.ucid } xml.element("yt:channelId") { xml.text self.ucid }
xml.element("title") { xml.text self.title } xml.element("title") { xml.text self.title }
xml.element("orderIndex") {xml.text self.order_index } xml.element("orderIndex") { xml.text self.order_index }
xml.element("link", rel: "alternate", href: "#{HOST_URL}/watch?v=#{self.id}") xml.element("link", rel: "alternate", href: "#{HOST_URL}/watch?v=#{self.id}")
xml.element("author") do xml.element("author") do
@ -263,7 +263,7 @@ def create_compilation(title, privacy, user)
index: [] of Int64, index: [] of Int64,
first_video_id: "", first_video_id: "",
first_video_starting_timestamp_seconds: 0, first_video_starting_timestamp_seconds: 0,
first_video_ending_timestamp_seconds: 0 first_video_ending_timestamp_seconds: 0,
}) })
Invidious::Database::Compilations.insert(compilation) Invidious::Database::Compilations.insert(compilation)
@ -273,18 +273,18 @@ end
def subscribe_compilation(user, compilation) def subscribe_compilation(user, compilation)
compilation = InvidiousCompilation.new({ compilation = InvidiousCompilation.new({
title: compilation.title.byte_slice(0, 150), title: compilation.title.byte_slice(0, 150),
id: compilation.id, id: compilation.id,
author: user.email, author: user.email,
description: "", # Max 5000 characters description: "", # Max 5000 characters
video_count: compilation.video_count, video_count: compilation.video_count,
created: Time.utc, created: Time.utc,
updated: compilation.updated, updated: compilation.updated,
privacy: CompilationPrivacy::Private, privacy: CompilationPrivacy::Private,
index: [] of Int64, index: [] of Int64,
first_video_id: "", first_video_id: "",
first_video_starting_timestamp_seconds: 0, first_video_starting_timestamp_seconds: 0,
first_video_ending_timestamp_seconds: 0 first_video_ending_timestamp_seconds: 0,
}) })
Invidious::Database::Compilations.insert(compilation) Invidious::Database::Compilations.insert(compilation)
@ -345,8 +345,8 @@ def update_first_video_params(compid : String)
if !first_id.nil? if !first_id.nil?
timestamps = Invidious::Database::CompilationVideos.select_timestamps(compid, first_id) timestamps = Invidious::Database::CompilationVideos.select_timestamps(compid, first_id)
if (!timestamps.nil?) if (!timestamps.nil?)
starting_timestamp_seconds=timestamps[0] starting_timestamp_seconds = timestamps[0]
ending_timestamp_seconds=timestamps[1] ending_timestamp_seconds = timestamps[1]
Invidious::Database::Compilations.update_first_video_params(compid, first_id, starting_timestamp_seconds, ending_timestamp_seconds) Invidious::Database::Compilations.update_first_video_params(compid, first_id, starting_timestamp_seconds, ending_timestamp_seconds)
end end
end end
@ -368,7 +368,7 @@ def get_compilation_videos(compilation : InvidiousCompilation | Compilation, off
else else
if video_id if video_id
initial_data = YoutubeAPI.next({ initial_data = YoutubeAPI.next({
"videoId" => video_id, "videoId" => video_id,
"compilationId" => compilation.id, "compilationId" => compilation.id,
}) })
offset = initial_data.dig?("contents", "twoColumnWatchNextResults", "compilation", "compilation", "currentIndex").try &.as_i || offset offset = initial_data.dig?("contents", "twoColumnWatchNextResults", "compilation", "compilation", "currentIndex").try &.as_i || offset
@ -441,7 +441,7 @@ def extract_compilation_videos(initial_data : Hash(String, JSON::Any))
published: Time.utc, published: Time.utc,
compid: compid, compid: compid,
index: index, index: index,
order_index: order_index order_index: order_index,
}) })
end end
end end

View File

@ -101,6 +101,7 @@ module Invidious::Database::Compilations
PG_DB.exec(request, id, first_video_id, starting_timestamp_seconds, ending_timestamp_seconds) PG_DB.exec(request, id, first_video_id, starting_timestamp_seconds, ending_timestamp_seconds)
end end
# ------------------- # -------------------
# Select # Select
# ------------------- # -------------------
@ -261,15 +262,13 @@ module Invidious::Database::CompilationVideos
end end
def select_timestamps(compid : String, vid : String) def select_timestamps(compid : String, vid : String)
request = <<-SQL request = <<-SQL
SELECT starting_timestamp_seconds,ending_timestamp_seconds FROM compilation_videos SELECT starting_timestamp_seconds,ending_timestamp_seconds FROM compilation_videos
WHERE compid = $1 AND id = $2 WHERE compid = $1 AND id = $2
LIMIT 1 LIMIT 1
SQL SQL
return PG_DB.query_one?(request, compid, vid, as: {Int32,Int32}) return PG_DB.query_one?(request, compid, vid, as: {Int32, Int32})
end end
def select_id_from_order_index(order_index : Int32) def select_id_from_order_index(order_index : Int32)

View File

@ -243,7 +243,7 @@ module Invidious::Routes::API::V1::Authenticated
env.response.headers["Location"] = "#{HOST_URL}/api/v1/auth/compilations/#{compilation.id}" env.response.headers["Location"] = "#{HOST_URL}/api/v1/auth/compilations/#{compilation.id}"
env.response.status_code = 201 env.response.status_code = 201
{ {
"title" => title, "title" => title,
"compilationId" => compilation.id, "compilationId" => compilation.id,
}.to_json }.to_json
end end

View File

@ -68,15 +68,14 @@ module Invidious::Routes::API::V1::Misc
response = { response = {
"compilationHtml" => compilation_html, "compilationHtml" => compilation_html,
"index" => index, "index" => index,
"nextVideo" => next_video, "nextVideo" => next_video,
}.to_json }.to_json
end end
response response
end end
# APIv1 currently uses the same logic for both # APIv1 currently uses the same logic for both
# user playlists and Invidious playlists. This means that we can't # user playlists and Invidious playlists. This means that we can't
# reasonably split them yet. This should be addressed in APIv2 # reasonably split them yet. This should be addressed in APIv2

View File

@ -218,7 +218,6 @@ module Invidious::Routes::Compilations
return error_template(400, ex) return error_template(400, ex)
end end
if !compid || compid.empty? if !compid || compid.empty?
return error_json(400, "A compilation ID is required") return error_json(400, "A compilation ID is required")
end end
@ -261,7 +260,6 @@ module Invidious::Routes::Compilations
end end
end end
end end
end end
update_first_video_params(compid) update_first_video_params(compid)
@ -269,7 +267,6 @@ module Invidious::Routes::Compilations
env.redirect "/compilation?list=#{compid}" env.redirect "/compilation?list=#{compid}"
end end
def self.add_compilation_items_page(env) def self.add_compilation_items_page(env)
prefs = env.get("preferences").as(Preferences) prefs = env.get("preferences").as(Preferences)
locale = prefs.locale locale = prefs.locale
@ -326,7 +323,7 @@ module Invidious::Routes::Compilations
redirect = env.params.query["redirect"]? redirect = env.params.query["redirect"]?
redirect ||= "true" redirect ||= "true"
redirect = redirect == "true" redirect = redirect == "true"
if !user if !user
if redirect if redirect
return env.redirect referer return env.redirect referer
else else
@ -422,7 +419,7 @@ module Invidious::Routes::Compilations
compid: compilation_id, compid: compilation_id,
live_now: video.live_now, live_now: video.live_now,
index: Random::Secure.rand(0_i64..Int64::MAX), index: Random::Secure.rand(0_i64..Int64::MAX),
order_index: compilation.index.size order_index: compilation.index.size,
}) })
Invidious::Database::CompilationVideos.insert(compilation_video) Invidious::Database::CompilationVideos.insert(compilation_video)
@ -451,7 +448,7 @@ module Invidious::Routes::Compilations
compilation_index_array_position = compilation_index_array.index(compilation_video[0].index) compilation_index_array_position = compilation_index_array.index(compilation_video[0].index)
if !compilation_index_array_position.nil? if !compilation_index_array_position.nil?
compilation_index_array.delete_at(compilation_index_array_position) compilation_index_array.delete_at(compilation_index_array_position)
compilation_index_array.insert(compilation_index_array_position-1,compilation_video[0].index) compilation_index_array.insert(compilation_index_array_position - 1, compilation_video[0].index)
Invidious::Database::Compilations.move_video_position(compilation_id, compilation_index_array) Invidious::Database::Compilations.move_video_position(compilation_id, compilation_index_array)
end end
update_first_video_params(compilation_id) update_first_video_params(compilation_id)
@ -473,7 +470,11 @@ module Invidious::Routes::Compilations
compilation_index_array_position = compilation_index_array.index(compilation_video[0].index) compilation_index_array_position = compilation_index_array.index(compilation_video[0].index)
if !compilation_index_array_position.nil? if !compilation_index_array_position.nil?
compilation_index_array.delete_at(compilation_index_array_position) compilation_index_array.delete_at(compilation_index_array_position)
compilation_index_array.insert(compilation_index_array_position+1,compilation_video[0].index) if (compilation_index_array_position == compilation_index_array.size)
compilation_index_array.insert(compilation_index_array_position, compilation_video[0].index)
else
compilation_index_array.insert(compilation_index_array_position + 1, compilation_video[0].index)
end
Invidious::Database::Compilations.move_video_position(compilation_id, compilation_index_array) Invidious::Database::Compilations.move_video_position(compilation_id, compilation_index_array)
end end
update_first_video_params(compilation_id) update_first_video_params(compilation_id)

View File

@ -44,22 +44,22 @@ module Invidious::Routes::Watch
elsif env.params.query["list"]?.try &.starts_with? "IVCMP" elsif env.params.query["list"]?.try &.starts_with? "IVCMP"
compid = env.params.query["list"]?.try &.gsub(/[^a-zA-Z0-9_-]/, "") compid = env.params.query["list"]?.try &.gsub(/[^a-zA-Z0-9_-]/, "")
if (!compid.nil?) if (!compid.nil?)
index=Invidious::Database::CompilationVideos.select_index(compid,id) index = Invidious::Database::CompilationVideos.select_index(compid, id)
indices_array=Invidious::Database::Compilations.select_index_array(compid) indices_array = Invidious::Database::Compilations.select_index_array(compid)
if (!indices_array.nil?) if (!indices_array.nil?)
position_of_index=indices_array.index(index) position_of_index = indices_array.index(index)
if (!position_of_index.nil? && position_of_index != indices_array.size - 1) if (!position_of_index.nil? && position_of_index != indices_array.size - 1)
next_index=indices_array[position_of_index+1] next_index = indices_array[position_of_index + 1]
else else
next_index=indices_array[0] next_index = indices_array[0]
end end
if (!next_index.nil?) if (!next_index.nil?)
next_id=Invidious::Database::CompilationVideos.select_id_from_index(next_index) next_id = Invidious::Database::CompilationVideos.select_id_from_index(next_index)
if (!next_id.nil?) if (!next_id.nil?)
timestamps = Invidious::Database::CompilationVideos.select_timestamps(compid, next_id) timestamps = Invidious::Database::CompilationVideos.select_timestamps(compid, next_id)
if (!timestamps.nil?) if (!timestamps.nil?)
starting_timestamp_seconds=timestamps[0] starting_timestamp_seconds = timestamps[0]
ending_timestamp_seconds=timestamps[1] ending_timestamp_seconds = timestamps[1]
end end
end end
end end