class UOLMais(MediaAPI): def __init__(self): super(UOLMais, self).__init__() self._lib = UOLMaisLib() def authenticate(self): try: username = settings.UOLMAIS_USERNAME except AttributeError: raise Exception(_('Settings UOLMAIS_USERNAME is not set')) try: password = settings.UOLMAIS_PASSWORD except AttributeError: raise Exception(_('Settings UOLMAIS_PASSWORD is not set')) self._lib.authenticate(username, password) def video_upload(self, *args, **kwargs): return self.upload('video', *args, **kwargs) def audio_upload(self, *args, **kwargs): return self.upload('audio', *args, **kwargs) def upload(self, type, media_path, title, description, tags): tags = tags or [] tags.append('virgula') self.authenticate() saopaulo_tz = pytz.timezone('America/Sao_Paulo') media_args = { 'f': open(media_path, 'rb'), 'pub_date': timezone.localtime(timezone.now(), saopaulo_tz), 'title': title, 'description': description, 'tags': u','.join(tags), 'visibility': UOLMaisLib.VISIBILITY_ANYONE, 'comments': UOLMaisLib.COMMENTS_NONE, 'is_hot': False } if type == 'video': media_id = self._lib.upload_video(**media_args) elif type == 'audio': media_id = self._lib.upload_audio(**media_args) return self.get_info(media_id) def get_info(self, media_id): result = super(UOLMais, self).get_info(media_id) result['id'] = media_id info = self._lib.get_by_id(media_id) if info: tags = u','.join([tag['description'] for tag in info['tags']]) # Embed for audio if info['mediaType'] == 'P': embed = render_to_string('multimedias/uolmais/audio_embed.html', {'media_id': media_id}) else: embed = info['embedCode'] result.update({ u'title': info['title'], u'description': info['description'], u'thumbnail': info['thumbLarge'], u'tags': tags, u'embed': embed, u'url': info['url'], u'status': 'ok', }) else: result['status'] = 'error' return result