fix playlist last update

+ create a recently added playlist on get api
This commit is contained in:
mungai-njoroge
2023-12-03 12:56:56 +03:00
parent 9dff629e1f
commit 5a420214f2
5 changed files with 41 additions and 21 deletions
+1 -2
View File
@@ -13,6 +13,5 @@ class RecentlyAdded(Resource):
args = parser.parse_args()
limit = args["limit"]
print(limit)
return {"items": get_recent_items(cutoff)[:limit], "cutoff": cutoff}
return {"items": get_recent_items(cutoff, limit), "cutoff": cutoff}
+21 -3
View File
@@ -12,6 +12,7 @@ from app import models
from app.db.sqlite.playlists import SQLitePlaylistMethods
from app.lib import playlistlib
from app.lib.albumslib import sort_by_track_no
from app.lib.home.recents import get_recent_tracks
from app.models.track import Track
from app.store.albums import AlbumStore
from app.store.tracks import TrackStore
@@ -206,14 +207,31 @@ def get_playlist(playlistid: str):
no_tracks = request.args.get("no_tracks", False)
no_tracks = no_tracks == "true"
playlist = PL.get_playlist_by_id(int(playlistid))
is_recently_added = playlistid == "recentlyadded"
if not is_recently_added:
playlist = PL.get_playlist_by_id(int(playlistid))
else:
playlist = models.Playlist(
id="recentlyadded",
name="Recently Added",
image=None,
last_updated="Now",
settings={},
trackhashes=[],
)
if playlist is None:
return {"msg": "Playlist not found"}, 404
tracks = TrackStore.get_tracks_by_trackhashes(list(playlist.trackhashes))
tracks = remove_duplicates(tracks)
if is_recently_added:
tracks = get_recent_tracks(cutoff_days=14)
date = datetime.fromtimestamp(tracks[0].created_date)
playlist.last_updated = create_new_date(date)
else:
tracks = TrackStore.get_tracks_by_trackhashes(list(playlist.trackhashes))
tracks = remove_duplicates(tracks)
duration = sum(t.duration for t in tracks)
playlist.last_updated = date_string_to_time_passed(playlist.last_updated)