Ejemplo n.º 1
0
    def test_another_separator(self):
        source = 'Mariah Carey{0}filhos{0}música{0}entretenimento'
        output = ['Mariah Carey', 'filhos', 'música', 'entretenimento']
        self.assertEqual(split_tags(source.format('|'), separator="|"), output)
        self.assertEqual(split_tags(source.format('#'), separator="#"), output)

        # Multiple chars
        self.assertEqual(split_tags(source.format('%%'), separator="%%"), output)
Ejemplo n.º 2
0
    def test_another_separator(self):
        source = 'Mariah Carey{0}filhos{0}música{0}entretenimento'
        output = ['Mariah Carey', 'filhos', 'música', 'entretenimento']
        self.assertEqual(split_tags(source.format('|'), separator="|"), output)
        self.assertEqual(split_tags(source.format('#'), separator="#"), output)

        # Multiple chars
        self.assertEqual(split_tags(source.format('%%'), separator="%%"),
                         output)
Ejemplo n.º 3
0
def youtube_resend_video(mediahost_id):
    """
    Youtube does not tolerate duplicate videos and has its own processing to
    check this, for this reason, we try to send the video if it is double
    checked s and it is the same video, if so, update the status.
    """
    mediahost = MediaHost.objects.get(pk=mediahost_id)
    # save current host_id to make it possible to restore case is duplicated
    current_host_id = str(mediahost.host_id)

    print 'current_host_id :', current_host_id
    # perform upload
    media = mediahost.media
    tags = split_tags(media.tags)
    mediahost.status = MediaHost.STATUS_PROCESSING
    mediahost.save()
    media_info = mediahost.api.upload(
        media.TYPE,
        media.media_file.path,
        media.title,
        media.headline,
        tags
    )
    # test if is duplicated
    mediahost.status = MediaHost.STATUS_ENCODING
    mediahost.host_id = media_info['id']
    mediahost.save()
    media_info = mediahost.api.get_info(mediahost.host_id)
    mediahost.api.check_upload_status(
        mediahost=mediahost,
        media_info=media_info,
        host_id=current_host_id
    )
    return media_info
Ejemplo n.º 4
0
Archivo: models.py Proyecto: arloc/opps
    def get_tags(self):
        tags = []

        for tag in split_tags(self.tags):
            t, created = Tag.objects.get_or_create(name=tag)
            tags.append(t)

        return tags
Ejemplo n.º 5
0
    def get_tags(self):
        tags = []

        for tag in split_tags(self.tags):
            t, created = Tag.objects.get_or_create(name=tag)
            tags.append(t)

        return tags
Ejemplo n.º 6
0
Archivo: models.py Proyecto: arloc/opps
    def save(self, *args, **kwargs):
        if self.tags:
            # Remove empty and repeated strings on list
            tags = split_tags(self.tags)
            for tag in tags:
                Tag.objects.get_or_create(name=tag)
            self.tags = ','.join(tags)

        super(Tagged, self).save(*args, **kwargs)
Ejemplo n.º 7
0
    def save(self, *args, **kwargs):
        if self.tags:
            # Remove empty and repeated strings on list
            tags = split_tags(self.tags)
            for tag in tags:
                Tag.objects.get_or_create(name=tag)
            self.tags = ','.join(tags)

        super(Tagged, self).save(*args, **kwargs)
Ejemplo n.º 8
0
def upload_media():
    mediahosts = MediaHost.objects.filter(
        status=MediaHost.STATUS_NOT_UPLOADED).exclude(pk__in=BLACKLIST)

    if 'local' in settings.OPPS_MULTIMEDIAS_ENGINES:
        ffmpeg_active = False

        try:
            output = sp.check_output("ps aux | grep -v grep | grep {0}".format(
                settings.OPPS_MULTIMEDIAS_FFMPEG),
                                     shell=True)
            if not output:
                raise Exception("FFMPEG doesn't run!")
        except:
            MediaHost.objects.filter(
                host=MediaHost.HOST_LOCAL,
                status=MediaHost.STATUS_PROCESSING).update(
                    status=MediaHost.STATUS_NOT_UPLOADED)

    for mediahost in mediahosts:
        try:
            media = mediahost.media
        except:
            mediahost.to_delete()
            continue

        tags = split_tags(media.tags)

        if mediahost.host != MediaHost.HOST_LOCAL:
            if mediahost.host == MediaHost.HOST_VIMEO:
                mediahost.api.upload()
                continue

            mediahost.status = MediaHost.STATUS_SENDING
            mediahost.save()
            media = mediahost.media

            try:
                media_info = mediahost.api.upload(media.TYPE,
                                                  media.media_file.path,
                                                  media.title, media.headline,
                                                  tags)
            except Exception as e:
                logger.error(u'Error on upload {}: {}'.format(
                    unicode(mediahost.media), unicode(e)))
                if mediahost.retries < 3:
                    mediahost.retries += 1
                    mediahost.status = MediaHost.STATUS_NOT_UPLOADED
                else:
                    mediahost.status = MediaHost.STATUS_ERROR
                    mediahost.status_message = _('Error on upload')
            else:
                logger.info(u'Uploaded {} - Data returned: {}'.format(
                    unicode(mediahost.media), unicode(media_info)))
                mediahost.host_id = media_info['id']
                mediahost.status = MediaHost.STATUS_PROCESSING

            with transaction.commit_on_success():
                mediahost.save()
        else:
            local_in_process = MediaHost.objects.filter(
                host=MediaHost.HOST_LOCAL,
                status=MediaHost.STATUS_PROCESSING).count()

            if LOCAL_MAX_PARALLEL and local_in_process >= LOCAL_MAX_PARALLEL:
                continue

            media_info = mediahost.api.upload(mediahost, tags)
Ejemplo n.º 9
0
def upload_media():
    mediahosts = MediaHost.objects.filter(status=MediaHost.STATUS_NOT_UPLOADED).exclude(pk__in=BLACKLIST)

    if "local" in settings.OPPS_MULTIMEDIAS_ENGINES:
        ffmpeg_active = False

        try:
            output = sp.check_output(
                "ps aux | grep -v grep | grep {0}".format(settings.OPPS_MULTIMEDIAS_FFMPEG), shell=True
            )
            if not output:
                raise Exception("FFMPEG doesn't run!")
        except:
            MediaHost.objects.filter(host=MediaHost.HOST_LOCAL, status=MediaHost.STATUS_PROCESSING).update(
                status=MediaHost.STATUS_NOT_UPLOADED
            )

    for mediahost in mediahosts:
        try:
            media = mediahost.media
        except:
            mediahost.to_delete()
            continue

        tags = split_tags(media.tags)

        if mediahost.host != MediaHost.HOST_LOCAL:
            if mediahost.host == MediaHost.HOST_VIMEO:
                mediahost.api.upload()
                continue

            mediahost.status = MediaHost.STATUS_SENDING
            mediahost.save()
            media = mediahost.media

            try:
                media_info = mediahost.api.upload(media.TYPE, media.media_file.path, media.title, media.headline, tags)
            except Exception as e:
                logger.error(u"Error on upload {}: {}".format(unicode(mediahost.media), unicode(e)))
                if mediahost.retries < 3:
                    mediahost.retries += 1
                    mediahost.status = MediaHost.STATUS_NOT_UPLOADED
                else:
                    mediahost.status = MediaHost.STATUS_ERROR
                    mediahost.status_message = _("Error on upload")
            else:
                logger.info(u"Uploaded {} - Data returned: {}".format(unicode(mediahost.media), unicode(media_info)))
                mediahost.host_id = media_info["id"]
                mediahost.status = MediaHost.STATUS_PROCESSING

            with transaction.commit_on_success():
                mediahost.save()
        else:
            local_in_process = MediaHost.objects.filter(
                host=MediaHost.HOST_LOCAL, status=MediaHost.STATUS_PROCESSING
            ).count()

            if LOCAL_MAX_PARALLEL and local_in_process >= LOCAL_MAX_PARALLEL:
                continue

            media_info = mediahost.api.upload(mediahost, tags)
Ejemplo n.º 10
0
 def test_empty(self):
     self.assertEqual(split_tags(' '), [])
     self.assertEqual(split_tags('   '), [])
Ejemplo n.º 11
0
 def test_duplicated_commas_and_extra_spaces(self):
     source = ',entretenimento,,    Taylor Swift,  The Voice,famosos  , ,'
     output = ['entretenimento', 'Taylor Swift', 'The Voice', 'famosos']
     self.assertEqual(split_tags(source), output)
Ejemplo n.º 12
0
 def test_common(self):
     source = 'gabriela pugliesi e Ricardo,NOVIDADE,instagram'
     output = ['gabriela pugliesi e Ricardo', 'NOVIDADE', 'instagram']
     self.assertEqual(split_tags(source), output)
Ejemplo n.º 13
0
 def test_empty(self):
     self.assertEqual(split_tags(' '), [])
     self.assertEqual(split_tags('   '), [])
Ejemplo n.º 14
0
 def test_duplicated_commas_and_extra_spaces(self):
     source = ',entretenimento,,    Taylor Swift,  The Voice,famosos  , ,'
     output = ['entretenimento', 'Taylor Swift', 'The Voice', 'famosos']
     self.assertEqual(split_tags(source), output)
Ejemplo n.º 15
0
 def test_common(self):
     source = 'gabriela pugliesi e Ricardo,NOVIDADE,instagram'
     output = ['gabriela pugliesi e Ricardo', 'NOVIDADE', 'instagram']
     self.assertEqual(split_tags(source), output)