Merge f00a727c7d389dc28ddc744a3f75f49e05ebf16b into 749791cdf1316bc89415d27d503042d3f6b3f398

This commit is contained in:
shiny-comic 2026-03-16 02:24:14 +00:00 committed by GitHub
commit 563b357687
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 35 additions and 20 deletions

View File

@ -23,7 +23,8 @@ CREATE TABLE IF NOT EXISTS public.playlists
created timestamptz, created timestamptz,
updated timestamptz, updated timestamptz,
privacy privacy, privacy privacy,
index int8[] index int8[],
thumbnail_id text
); );
GRANT ALL ON public.playlists TO current_user; GRANT ALL ON public.playlists TO current_user;

View File

@ -0,0 +1,12 @@
module Invidious::Database::Migrations
class AddThumbnailIdToPlaylists < Migration
version 11
def up(conn : DB::Connection)
conn.exec <<-SQL
ALTER TABLE public.playlists
ADD COLUMN IF NOT EXISTS thumbnail_id TEXT;
SQL
end
end
end

View File

@ -179,7 +179,6 @@ struct InvidiousPlaylist
property privacy : PlaylistPrivacy = PlaylistPrivacy::Private property privacy : PlaylistPrivacy = PlaylistPrivacy::Private
property index : Array(Int64) property index : Array(Int64)
@[DB::Field(ignore: true)]
property thumbnail_id : String? property thumbnail_id : String?
module PlaylistPrivacyConverter module PlaylistPrivacyConverter
@ -265,6 +264,7 @@ def create_playlist(title, privacy, user)
updated: Time.utc, updated: Time.utc,
privacy: privacy, privacy: privacy,
index: [] of Int64, index: [] of Int64,
thumbnail_id: nil,
}) })
Invidious::Database::Playlists.insert(playlist) Invidious::Database::Playlists.insert(playlist)
@ -273,6 +273,7 @@ def create_playlist(title, privacy, user)
end end
def subscribe_playlist(user, playlist) def subscribe_playlist(user, playlist)
thumbnail_id = playlist.thumbnail.try &.match(/vi\/([a-zA-Z0-9_-]{11})/).try &.[1]
playlist = InvidiousPlaylist.new({ playlist = InvidiousPlaylist.new({
title: playlist.title[..150], title: playlist.title[..150],
id: playlist.id, id: playlist.id,
@ -283,6 +284,7 @@ def subscribe_playlist(user, playlist)
updated: playlist.updated, updated: playlist.updated,
privacy: PlaylistPrivacy::Private, privacy: PlaylistPrivacy::Private,
index: [] of Int64, index: [] of Int64,
thumbnail_id: thumbnail_id,
}) })
Invidious::Database::Playlists.insert(playlist) Invidious::Database::Playlists.insert(playlist)