diff --git a/marietje/marietje/management/commands/importhistory.py b/marietje/marietje/management/commands/importhistory.py index f918fc9..34d4af8 100644 --- a/marietje/marietje/management/commands/importhistory.py +++ b/marietje/marietje/management/commands/importhistory.py @@ -2,7 +2,8 @@ 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 +from queues.models import PlaylistSong +from ...utils import get_first_queue class Command(BaseCommand): @@ -25,7 +26,7 @@ class Command(BaseCommand): song = Song.objects.filter(old_id=request['m']['$oid']).first() user = User.objects.filter(username=request['b']).first() - playlist = Queue.objects.first().playlist + playlist = get_first_queue().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) diff --git a/marietje/marietje/management/commands/importsongs.py b/marietje/marietje/management/commands/importsongs.py index a46699d..815fa8c 100644 --- a/marietje/marietje/management/commands/importsongs.py +++ b/marietje/marietje/management/commands/importsongs.py @@ -21,7 +21,7 @@ class Command(BaseCommand): # Skip deleted songs. continue user = User.objects.filter(username=import_song['ub']).first() - song = Song(user=user, artist=import_song['a'], title=import_song['t'], duration=import_song['l'], + song = Song(user=user, artist=import_song['a'].strip(), title=import_song['t'].strip(), duration=import_song['l'], hash=import_song['k'], old_id=import_song['_id']['$oid']) song.save() print('Done importing songs.') diff --git a/marietje/marietje/management/commands/importusers.py b/marietje/marietje/management/commands/importusers.py index dbdaa41..1b5da16 100644 --- a/marietje/marietje/management/commands/importusers.py +++ b/marietje/marietje/management/commands/importusers.py @@ -1,7 +1,7 @@ import json from django.core.management.base import BaseCommand from django.contrib.auth import get_user_model -from queues.models import Queue, Playlist +from ...utils import get_first_queue class Command(BaseCommand): @@ -18,18 +18,10 @@ class Command(BaseCommand): for line in fp: import_user = json.loads(line) user = User() - user.username = import_user['_id'].lower() - user.name = import_user['n'] + user.username = import_user['_id'].lower().strip() + user.name = import_user['n'].strip() user.email = user.username + '@science.ru.nl' user.password = 'md5$$' + import_user['p'] - queue = Queue.objects.first() - if queue is None: - playlist = Playlist() - playlist.save() - random_playlist = Playlist() - random_playlist.save() - queue = Queue(name='Queue', playlist=playlist, random_playlist=random_playlist) - queue.save() - user.queue = queue + user.queue = get_first_queue() user.save() print('Done importing users.') diff --git a/marietje/marietje/models.py b/marietje/marietje/models.py index ef8be25..327038f 100644 --- a/marietje/marietje/models.py +++ b/marietje/marietje/models.py @@ -1,13 +1,12 @@ from django.db import models -from django.conf import settings -from queues.models import Queue, Playlist -from django.contrib.auth.signals import user_logged_in +from queues.models import Queue from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager from django.contrib.auth.models import PermissionsMixin from django.contrib.auth.validators import ASCIIUsernameValidator, UnicodeUsernameValidator from django.utils import six, timezone from django.utils.translation import ugettext_lazy as _ from django.core.mail import send_mail +from marietje.utils import get_first_queue class UserManager(BaseUserManager): @@ -18,15 +17,7 @@ class UserManager(BaseUserManager): raise ValueError('The given username must be set') email = self.normalize_email(email) username = self.model.normalize_username(username) - - queue = Queue.objects.first() - if queue is None: - playlist = Playlist() - playlist.save() - random_playlist = Playlist() - random_playlist.save() - queue = Queue(name='Queue', playlist=playlist, random_playlist=random_playlist) - queue.save() + queue = get_first_queue() user = self.model(username=username, email=email, queue=queue, **extra_fields) user.set_password(password) diff --git a/marietje/marietje/utils.py b/marietje/marietje/utils.py index 5dd6bef..376b4d6 100644 --- a/marietje/marietje/utils.py +++ b/marietje/marietje/utils.py @@ -1,5 +1,6 @@ import socket, struct, binascii from django.conf import settings +from queues.models import Queue, Playlist def song_to_dict(song, hash=False, user=False): @@ -38,3 +39,15 @@ def send_to_bertha(file): hash = binascii.hexlify(sock.recv(64)) sock.close() return hash + + +def get_first_queue(): + queue = Queue.objects.first() + if queue is None: + playlist = Playlist() + playlist.save() + random_playlist = Playlist() + random_playlist.save() + queue = Queue(name='Queue', playlist=playlist, random_playlist=random_playlist) + queue.save() + return queue diff --git a/marietje/marietje/views.py b/marietje/marietje/views.py index f8b7c24..8475a71 100644 --- a/marietje/marietje/views.py +++ b/marietje/marietje/views.py @@ -1,13 +1,11 @@ import random, string -from django import forms from django.shortcuts import render, redirect, get_object_or_404 from django.contrib.auth import get_user_model -from django.db.models import Q from django.core.mail import send_mail from django.conf import settings from django.urls import reverse from .forms import RegistrationForm -from queues.models import Queue, Playlist +from marietje.utils import get_first_queue def register(request): @@ -24,15 +22,7 @@ def register(request): user.email = user.username + '@science.ru.nl' user.name = request.POST.get('name') user.activation_token = ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(32)) - queue = Queue.objects.first() - if queue is None: - playlist = Playlist() - playlist.save() - random_playlist = Playlist() - random_playlist.save() - queue = Queue(name='Queue', playlist=playlist, random_playlist=random_playlist) - queue.save() - user.queue = queue + user.queue = get_first_queue() user.save() activation_link = request.build_absolute_uri(reverse('activate', args=[user.id, user.activation_token]))