Pàgines llista de reproducció

This commit is contained in:
marc
2025-12-20 23:29:11 +01:00
parent 5428d49e89
commit 56ab91bd42
11 changed files with 291 additions and 20 deletions

View File

@@ -41,10 +41,18 @@ def add_tema_to_tema_in_set(tema_in_set: playlists.TemaInSet) -> playlists.TemaI
def get_playlist(playlist_id: int, con: Connection | None = None) -> playlists.Playlist:
return playlists.Playlist.from_playlist_entries(
playlist_id=playlist_id,
entries=list(query.get_playlist_entries(playlist_id=playlist_id, con=con))
)
with get_connection(con) as playlist_con:
playlist_name = query.get_playlist_name(playlist_id=playlist_id, con=playlist_con)
return playlists.Playlist.from_playlist_entries(
playlist_id=playlist_id,
name=playlist_name,
entries=list(query.get_playlist_entries(playlist_id=playlist_id, con=playlist_con))
)
def update_name(playlist_id: int, name: str | None) -> playlists.Playlist:
write.update_playlist_name(playlist_id=playlist_id, name=name)
return get_playlist(playlist_id=playlist_id)
def add_set(playlist_id: int, con: Connection | None = None) -> playlists.Set:

View File

@@ -75,6 +75,7 @@ def insert_session(session: model.Session):
def set_session(session: model.Session):
write.update_session(session)
_update_session_playlist_names(session)
def delete_session(session_id: int):
@@ -167,24 +168,72 @@ def get_commonly_played_temes(
return session_playlists.get_commonly_played_tunes(tema_id=tema_id)
def _get_playlist_names(session: model.Session) -> tuple[str, str]:
date_names = get_date_names(session.date)
setlist_name = f"Sessió del {date_names.day} {date_names.month_name} de {date_names.year}"
slowjam_name = f"Slow Jam del {date_names.day} {date_names.month_name} de {date_names.year}"
return setlist_name, slowjam_name
def _create_session_playlists(session_id: int):
session = get_session(session_id=session_id)
if not session:
return
setlist_name, slowjam_name = _get_playlist_names(session=session)
setlist_playlist_id = playlists_write.create_playlist(name=setlist_name, con=None)
slowjam_playlist_id = playlists_write.create_playlist(name=slowjam_name, con=None)
with get_connection() as con:
setlist_playlist_id = playlists_write.create_playlist(con=con)
slowjam_playlist_id = playlists_write.create_playlist(con=con)
session_playlists.insert_playlist(
session_id=session_id,
playlist_type=PlaylistType.SESSION_SETLIST,
playlist_id=setlist_playlist_id,
con=con,
con=con
)
session_playlists.insert_playlist(
session_id=session_id,
playlist_type=PlaylistType.SESSION_SLOWJAM,
playlist_id=slowjam_playlist_id,
con=con,
con=con
)
def _update_session_playlist_names(session: model.Session):
if session.id is None:
return
setlist_name, slowjam_name = _get_playlist_names(session=session)
with get_connection() as con:
setlist_playlist_id = session_playlists.get_playlist_id(
session_id=session.id,
playlist_type=PlaylistType.SESSION_SETLIST,
con=con
)
slowjam_playlist_id = session_playlists.get_playlist_id(
session_id=session.id,
playlist_type=PlaylistType.SESSION_SLOWJAM,
con=con
)
if setlist_playlist_id is not None:
playlists_write.update_playlist_name(
playlist_id=setlist_playlist_id,
name=setlist_name,
con=con
)
if slowjam_playlist_id is not None:
playlists_write.update_playlist_name(
playlist_id=slowjam_playlist_id,
name=slowjam_name,
con=con
)
def _delete_session_playlists(session_id: int):
with get_connection() as con:
setlist_playlist_id = session_playlists.get_playlist_id(
@@ -199,22 +248,22 @@ def _delete_session_playlists(session_id: int):
)
if setlist_playlist_id is not None:
session_playlists.delete_playlist(
session_id=session_id,
playlist_type=PlaylistType.SESSION_SETLIST,
con=con,
)
playlists_write.delete_playlist(
playlist_id=setlist_playlist_id,
con=con,
)
if slowjam_playlist_id is not None:
session_playlists.delete_playlist(
session_id=session_id,
playlist_type=PlaylistType.SESSION_SETLIST,
con=con
playlist_type=PlaylistType.SESSION_SLOWJAM,
con=con,
)
if slowjam_playlist_id is not None:
playlists_write.delete_playlist(
playlist_id=slowjam_playlist_id,
con=con,
)
session_playlists.delete_playlist(
session_id=session_id,
playlist_type=PlaylistType.SESSION_SLOWJAM,
con=con
)