mirror of
https://code.eliotberriot.com/funkwhale/funkwhale.git
synced 2025-10-03 14:29:17 +02:00
optimising utils.py with prefect_related
This commit is contained in:
parent
dc19381cd2
commit
7af11d3fdb
2 changed files with 5 additions and 7 deletions
|
@ -81,19 +81,17 @@ def generate_xspf_from_playlist(playlist_id):
|
||||||
This returns a string containing playlist data in xspf format
|
This returns a string containing playlist data in xspf format
|
||||||
"""
|
"""
|
||||||
fw_playlist = Playlist.objects.get(id=playlist_id)
|
fw_playlist = Playlist.objects.get(id=playlist_id)
|
||||||
tracks_id = fw_playlist.playlist_tracks.all().values_list("track_id", flat=True)
|
plt_tracks = fw_playlist.playlist_tracks.prefetch_related('track')
|
||||||
|
|
||||||
top = Element("playlist")
|
top = Element("playlist")
|
||||||
top.set("version", "1")
|
top.set("version", "1")
|
||||||
# top.append(Element.fromstring('version="1"'))
|
|
||||||
title_xspf = SubElement(top, "title")
|
title_xspf = SubElement(top, "title")
|
||||||
title_xspf.text = fw_playlist.name
|
title_xspf.text = fw_playlist.name
|
||||||
date_xspf = SubElement(top, "date")
|
date_xspf = SubElement(top, "date")
|
||||||
date_xspf.text = str(fw_playlist.creation_date)
|
date_xspf.text = str(fw_playlist.creation_date)
|
||||||
trackList_xspf = SubElement(top, "trackList")
|
trackList_xspf = SubElement(top, "trackList")
|
||||||
|
|
||||||
for track_id in tracks_id:
|
for plt_track in plt_tracks:
|
||||||
track = Track.objects.get(id=track_id)
|
track = plt_track.track
|
||||||
track_xspf = SubElement(trackList_xspf, "track")
|
track_xspf = SubElement(trackList_xspf, "track")
|
||||||
location_xspf = SubElement(track_xspf, "location")
|
location_xspf = SubElement(track_xspf, "location")
|
||||||
location_xspf.text = "https://" + track.domain_name + track.listen_url
|
location_xspf.text = "https://" + track.domain_name + track.listen_url
|
||||||
|
|
|
@ -21,9 +21,9 @@ def test_get_track_id_from_xspf(factories, tmp_path):
|
||||||
|
|
||||||
def test_generate_xspf_from_playlist(factories):
|
def test_generate_xspf_from_playlist(factories):
|
||||||
playlist = factories["playlists.PlaylistTrack"]()
|
playlist = factories["playlists.PlaylistTrack"]()
|
||||||
|
playlist_factory = models.Playlist.objects.get()
|
||||||
xspf_test = utils.generate_xspf_from_playlist(playlist.id)
|
xspf_test = utils.generate_xspf_from_playlist(playlist.id)
|
||||||
tree = etree.fromstring(xspf_test)
|
tree = etree.fromstring(xspf_test)
|
||||||
playlist_factory = models.Playlist.objects.get()
|
|
||||||
track1 = playlist_factory.playlist_tracks.get(id=1)
|
track1 = playlist_factory.playlist_tracks.get(id=1)
|
||||||
track1_name = track1.track
|
track1_name = track1.track
|
||||||
assert playlist_factory.name == tree.findtext("./title")
|
assert playlist_factory.name == tree.findtext("./title")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue