Added support for import and export of youtube playlists

This commit is contained in:
Daniel Diment 2023-04-12 23:22:14 +02:00 committed by GitHub
parent 961cae2b9a
commit 7b600cd4e1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 0 deletions

View file

@ -4,6 +4,7 @@ struct Invidious::User
def to_invidious(user : User) def to_invidious(user : User)
playlists = Invidious::Database::Playlists.select_like_iv(user.email) playlists = Invidious::Database::Playlists.select_like_iv(user.email)
youtube_playlists = Invidious::Database::Playlists.select_not_like_iv(user.email)
return JSON.build do |json| return JSON.build do |json|
json.object do json.object do
@ -28,6 +29,16 @@ struct Invidious::User
end end
end end
end end
json.field "youtube_playlists" do
json.array do
youtube_playlists.each do |playlist|
json.object do
json.field "title", playlist.title
json.field "id", playlist.id
end
end
end
end
end end
end end
end end

View file

@ -101,6 +101,16 @@ struct Invidious::User
end end
end end
end end
if youtube_playlists = data["youtube_playlists"]?.try &.as_a?
playlists.each do |item|
begin
playlist = get_playlist(item["id"])
subscribe_playlist(user, playlist)
rescue ex
end
end
end
end end
# ------------------- # -------------------