Exemple #1
0
    def handle(self, date, today, list_days, all_days, *args, **options):
        if list_days:
            print "List of available days: "
            for day in Days.objects.all():
                print str(day.date)
            print "Total days: %s" % Days.objects.count()
            return

        if today:
            print "Generates plailist for today %s ..." % datetime.datetime.now(
            ).strftime("%Y-%m-%d")

            try:
                day = Days.objects.get(date=datetime.datetime.now())
            except Days.DoesNotExist:
                print "Day %s does not exist" % date
                return
            else:
                generator = PlaylistGenerator(day=day)
                generator.run()

            print "\nGeneration successfully completed"

            return

        if all_days:
            print "Generates plailist for all days..."
            for day in Days.objects.all():
                PlaylistGenerator(day=day).run()
                print "Generate for %s" % str(day.date)

            print "The generation is completed. Total days: %s" % Days.objects.count(
            )
            return

        if not date or not RE_DATE.match(date):
            print "Error! Enter the date in the format YYYY-MM-DD"
            return

        dateo = datetime.datetime.strptime(date, "%Y-%m-%d")

        try:
            day = Days.objects.get(date=dateo)
        except Days.DoesNotExist:
            print "Day %s does not exist" % date
            print "List of available days: "
            for day in Days.objects.all():
                print str(day.date)
            return
        else:
            generator = PlaylistGenerator(day=day)
            generator.run()

        print "\nGeneration successfully completed"
Exemple #2
0
    def handle(self, date, today, list_days, all_days, *args, **options):
        if list_days:
            print "List of available days: "
            for day in Days.objects.all():
                print str(day.date)
            print "Total days: %s" % Days.objects.count()
            return

        if today:
            print "Generates plailist for today %s ..." % datetime.datetime.now().strftime("%Y-%m-%d")

            try:
                day = Days.objects.get(date=datetime.datetime.now())
            except Days.DoesNotExist:
                print "Day %s does not exist" % date
                return
            else:
                generator = PlaylistGenerator(day=day)
                generator.run()

            print "\nGeneration successfully completed"

            return

        if all_days:
            print "Generates plailist for all days..."
            for day in Days.objects.all():
                PlaylistGenerator(day=day).run()
                print "Generate for %s" % str(day.date)

            print "The generation is completed. Total days: %s" % Days.objects.count()
            return

        if not date or not RE_DATE.match(date):
            print "Error! Enter the date in the format YYYY-MM-DD"
            return

        dateo = datetime.datetime.strptime(date, "%Y-%m-%d")

        try:
            day = Days.objects.get(date=dateo)
        except Days.DoesNotExist:
            print "Day %s does not exist" % date
            print "List of available days: "
            for day in Days.objects.all():
                print str(day.date)
            return
        else:
            generator = PlaylistGenerator(day=day)
            generator.run()

        print "\nGeneration successfully completed"
Exemple #3
0
    def test_generate_timetable(self):

        # Create models

        terminal = Terminal(text='description', config='config test')
        terminal.save()

        # Create partner
        partner = Partner(name='test name')
        partner.save()

        # Create image
        image = ImageAd(prolongation=datetime.time(minute=5),
                        partner=partner,
                        image=FileObject(os.path.join(site.directory, "test", "testimage.jpg")))
        image.save()

        # Create image for immediately
        image_im = ImageAd(prolongation=datetime.time(minute=1),
                           partner=partner,
                           image=FileObject(os.path.join(site.directory, "test", "testimage_im.jpg")))
        image_im.save()

        # Create text
        text = TextAd(text='test text...', partner=partner)
        text.save()

        # Create day
        day = Days(date=datetime.datetime.now(),
                   video_count=2,
                   show_text=True,
                   text_count=4,
                   show_video=False,
                   start_time=datetime.time(hour=8),
                   stop_time=datetime.time(hour=8, minute=30),
                   terminal=terminal)
        day.save()

        day.image_ad.add(image)
        day.text_ad.add(text)
        day.save()

        # Create immediately
        immediately = ImmediatelyAd(day=day,
                                    time=datetime.time(hour=8, minute=25),
                                    content_type=ContentType.objects.get(model='imagead'),
                                    object_id=image_im.pk)
        immediately.save()

        # Result playlists in json
        result_playlist = [
            {'time': '08:00:00', 'params': [
                {'image': image.image.filename},
                {'image': image.image.filename},
                {'text': text.text},
                {'text': text.text},
                {'text': text.text},
                {'text': text.text}
            ]},
            {'time': '08:10:00', 'params': [
                {'image': image.image.filename},
                {'image': image.image.filename},
                {'text': text.text},
                {'text': text.text},
                {'text': text.text},
                {'text': text.text}
            ]},
            {'time': '08:20:00', 'params': [
                {'image': image.image.filename},
                {'image': image.image.filename},
                {'text': text.text},
                {'text': text.text},
                {'text': text.text},
                {'text': text.text}
            ]},
            {'time': '08:25:00', 'params': [
                {'image': immediately.content_object.image.filename},
            ]},
            {'time': '08:26:00', 'params': [
                {'image': image.image.filename},
                {'image': image.image.filename},
                {'text': text.text},
                {'text': text.text},
                {'text': text.text},
                {'text': text.text}
            ]}
        ]

        # Generate play list
        g = PlaylistGenerator(day=day)
        playlist = g.get_play_list()

        self.assertEqual(json.dumps(playlist), json.dumps(result_playlist))