From aab721f414d031ae41796bbd8480957fd40d60fb Mon Sep 17 00:00:00 2001 From: Jim Driessen Date: Sat, 21 Jan 2017 20:42:55 +0100 Subject: [PATCH] Import history from old Marietje. --- .../management/commands/importhistory.py | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 marietje/marietje/management/commands/importhistory.py diff --git a/marietje/marietje/management/commands/importhistory.py b/marietje/marietje/management/commands/importhistory.py new file mode 100644 index 0000000..f918fc9 --- /dev/null +++ b/marietje/marietje/management/commands/importhistory.py @@ -0,0 +1,33 @@ +import json +from django.core.management.base import BaseCommand +from django.contrib.auth import get_user_model +from songs.models import Song +from queues.models import PlaylistSong, Queue + + +class Command(BaseCommand): + help = 'Import history from a JSON file exported from a previous version of Marietje.' + + def add_arguments(self, parser): + parser.add_argument('json_file') + + def handle(self, *args, **options): + filename = options['json_file'] + User = get_user_model() + + with open(filename) as fp: + for line in fp: + request = json.loads(line) + + # Ignore random queue and requests without media (?). + if request['b'] is None or request['m'] is None: + continue + + song = Song.objects.filter(old_id=request['m']['$oid']).first() + user = User.objects.filter(username=request['b']).first() + playlist = Queue.objects.first().playlist + if song is None or user is None or playlist is None: + continue + playlist_song = PlaylistSong(playlist=playlist, song=song, user=user, state=2, order=0) + playlist_song.save() + print('Done importing history.')