From: Thomas Fillon Date: Thu, 3 Sep 2015 07:52:06 +0000 (+0200) Subject: Add Pocast handle in populate_db management command X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=0e6177b405220f028d71ec8f96e5e2d9fce7ddcf;p=diggersdigest.git Add Pocast handle in populate_db management command --- diff --git a/diggersdigest/records/management/commands/populate_db.py b/diggersdigest/records/management/commands/populate_db.py index 9f543ad..e0c1b8a 100644 --- a/diggersdigest/records/management/commands/populate_db.py +++ b/diggersdigest/records/management/commands/populate_db.py @@ -21,6 +21,18 @@ parser = HTMLParser.HTMLParser() import mezzanine.blog.models as blog_models +# Check mp3 in media upload path +def check_mp3(file_list, file_path): + file_exists = [os.path.exists(os.path.join(file_path, file_name)) + for file_name in file_list] + + missing_files = [file_name for (file_name, ok) in zip(file_list, file_exists) if not ok] + if missing_files: + print "Missing files in path : %s\n" % file_path + print '\n'.join(missing_files) + else: + print "No missing MP3 Mix files" + return missing_files class Command(BaseCommand): help = 'Populate the new database from the original backup' @@ -68,6 +80,68 @@ class Command(BaseCommand): self.stdout.write("\t%d new country objects" % count) self.stdout.write("\t%d countries in DB ( %d in old DB)" % (len(Country.objects.all()), len(old_country))) + + + + # PODCAST FROM MIX + def populate_podcast(self, user): + MIX_CATEGORY = 'Podcast' + blog_models.BlogCategory.objects.get_or_create(title=MIX_CATEGORY) + + PODCAST_IMG_PATH = os.path.join('uploads/blog/mixes') + PODCAST_AUDIO_PATH = os.path.join('uploads/audio/mixes') + + self.stdout.write('Podcast\n-------\n') + + # MP3 for mix + mp3_mix_list = [mix.mp3 for mix in rec_models.Mix.objects.all()] + + check_mp3(mp3_mix_list, PODCAST_AUDIO_PATH) + + ordered_mix_list = sorted(rec_models.Mix.objects.all(), key=lambda mix: mix.ordre) + count = 0 + for mix in ordered_mix_list: + if mix.visu1: + img_file = str(mix.id) + '.jpg' + img_path = os.path.join(PODCAST_IMG_PATH, img_file) + else: + img_path = '' + + audio_path = os.path.join(PODCAST_AUDIO_PATH, mix.mp3) + #status=mix.published+1, + #featured_image=img_path, + #user=digger) + if mix.titre: + obj, created = rec_models.Podcast.objects.get_or_create(pk=mix.pk, + title=parser.unescape(mix.titre), + user=user) + if created: + count += 1 + obj.audio=audio_path + obj.genre=mix.genre + obj.old_date=mix.date + desc = parser.unescape(mix.desc) + obj.description=desc + obj.content=desc # duplicate description in content + obj.status=mix.published+1 + obj.featured_image=img_path + obj.save() + + self.stdout.write("\t%d new Podcast objects" % count) + self.stdout.write("\t%d Podcast in DB ( %d in old DB)" % (len(rec_models.Podcast.objects.all()), len(ordered_mix_list))) + + ## audio = FileField(verbose_name=_("Audio File"), max_length=200, format="audio", + ## upload_to=upload_to("records.Podcast.audio", "audio/mixes")) + ## genre = models.CharField(max_length=128) + ## # titre --> title + ## date = models.CharField(max_length=64) + ## # desc --> description + ## # mp3 --> audio + ## #visu1 = models.IntegerField() si 1 --> featured_image + ## # ordre : on laisse tombé ? + ## # published --> status / 0 --> CONTENT_STATUS_DRAFT = 1 / 1 CONTENT_STATUS_PUBLISHED = 2 + + def handle(self, *args, **options): ## for poll_id in options['poll_id']: @@ -80,9 +154,16 @@ class Command(BaseCommand): ## poll.save() ## self.stdout.write('Successfully closed poll "%s"' % poll_id) + from django.contrib.auth import models as auth_models + digger, created = auth_models.User.objects.get_or_create(username=u'digger', + password=u'admin', + is_staff=True, + email=u'') + self.populate_label() self.populate_artist() self.populate_country() + self.populate_podcast(user=digger) @@ -94,89 +175,12 @@ class Command(BaseCommand): # MP3 mp3_shop_list = [shop.mp3 for shop in rec_models.Shop.objects.all()] -# MP3 for mix -mp3_mix_list = [mix.mp3 for mix in rec_models.Mix.objects.all()] AUDIO_PATH = os.path.join(settings.MEDIA_ROOT, 'uploads/audio/') MIX_PATH = os.path.join(AUDIO_PATH, 'mixes') RECORDS_PATH = os.path.join(AUDIO_PATH, "records") -# Check mp3 in media upload path -def check_mp3(file_list, file_path): - file_exists = [os.path.exists(os.path.join(file_path, file_name)) - for file_name in file_list] - - missing_files = [file_name for (file_name, ok) in zip(file_list, file_exists) if not ok] - if missing_files: - print "Missing files in path : %s\n" % file_path - print '\n'.join(missing_files) - else: - print "No missing MP3 Mix files" - return missing_files - - -# check_mp3(mp3_mix_list, MIX_PATH) - - -# PODCAST FROM MIX -def populate_podcast(self): - MIX_CATEGORY = 'Podcast' - blog_models.BlogCategory.objects.get_or_create(title=MIX_CATEGORY) - - PODCAST_IMG_PATH = os.path.join('uploads/blog/mixes') - PODCAST_AUDIO_PATH = os.path.join('uploads/audio/mixes') - from django.contrib.auth import models as auth_models - digger, created = auth_models.User.objects.get_or_create(username=u'digger', - password=u'admin', - is_staff=True, - email=u'') - - - - - for mix in rec_models.Mix.objects.all(): - if mix.visu1: - img_file = str(mix.id) + '.jpg' - img_path = os.path.join(PODCAST_IMG_PATH, img_file) - else: - img_path = '' - - audio_path = os.path.join(PODCAST_AUDIO_PATH, mix.mp3) - print '---------------------------' - print 'pk :\t %d' % mix.pk - print 'audio :\t %s' % audio_path - print 'genre :\t %s' % mix.genre - print "old_date :\t %s" % mix.date - print "title :\t %s" % parser.unescape(mix.titre) - #status=mix.published+1, - #featured_image=img_path, - #user=digger) - obj, created = rec_models.Podcast.objects.get_or_create(pk=mix.pk, - title=parser.unescape(mix.titre), - user=digger) - if created: - obj.audio=audio_path - obj.genre=mix.genre - obj.old_date=mix.date - obj.description=parser.unescape(mix.desc) - obj.status=mix.published+1 - obj.featured_image=img_path - obj.save() - - for podcast in rec_models.Podcast.objects.filter(title=''): - podcast.delete() - ## audio = FileField(verbose_name=_("Audio File"), max_length=200, format="audio", - ## upload_to=upload_to("records.Podcast.audio", "audio/mixes")) - ## genre = models.CharField(max_length=128) - ## # titre --> title - ## date = models.CharField(max_length=64) - ## # desc --> description - ## # mp3 --> audio - ## #visu1 = models.IntegerField() si 1 --> featured_image - ## # ordre : on laisse tombé ? - ## # published --> status / 0 --> CONTENT_STATUS_DRAFT = 1 / 1 CONTENT_STATUS_PUBLISHED = 2 -