Source code for nkdsu.apps.vote.management.commands.import_show_from_itunes_playlist
import plistlib
from django.core.management.base import BaseCommand
from nkdsu.apps.vote.models import Track
[docs]
class Command(BaseCommand):
args = 'filename'
help = 'import a playlist from a timestamped iTunes playlist'
[docs]
def handle(self, filename, *args, **options):
with open(filename) as plist_file:
self.plist = plistlib.readPlist(plist_file)
self.import_playlists()
[docs]
def import_playlists(self):
for playlist in self.plist['Playlists']:
self.import_playlist(playlist)
[docs]
def import_playlist(self, playlist):
for play in playlist['Playlist Items']:
plist_track = self.plist['Tracks'][str(play['Track ID'])]
pk = plist_track['Persistent ID']
try:
track = Track.objects.get(pk=pk)
except Track.DoesNotExist:
print("could not find '{Name}' ({pk})".format(pk=pk, **plist_track))
continue
print(track)