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)
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
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
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)
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)
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)
def test_empty(self): self.assertEqual(split_tags(' '), []) self.assertEqual(split_tags(' '), [])
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)
def test_common(self): source = 'gabriela pugliesi e Ricardo,NOVIDADE,instagram' output = ['gabriela pugliesi e Ricardo', 'NOVIDADE', 'instagram'] self.assertEqual(split_tags(source), output)