def fixmedia_page(request): '''Página para gerenciar imagens órfãs e duplicadas.''' deleted, not_deleted, paths = [], [], [] if request.method == 'POST': try: photo_id = request.POST['photo'] media = Image.objects.get(id=photo_id) except: video_id = request.POST['video'] media = Video.objects.get(id=video_id) try: paths = compile_paths(media) for path in paths: try: os.remove(path) deleted.append(path) except: not_deleted.append(path) try: media.delete() except: print 'Não rolou apagar do banco de dados?' except: print 'Algo deu errado para ler os caminhos.' # Insere no log? for path in paths: logger.debug('Supostamente removido: %s', path) # Pega todas as fotos. photos = Image.objects.all() orphaned_photos, duplicated_photos = get_orphans(photos) # Pega todos os vídeos. videos = Video.objects.all() orphaned_videos, duplicated_videos = get_orphans(videos) # Cria lista de órfãs e dic de duplicadas. orphaned = orphaned_photos duplicates = duplicated_photos # Adiciona vídeos à lista. orphaned.extend(orphaned_videos) duplicates.extend(duplicated_videos) variables = RequestContext( request, { 'orphaned': orphaned, 'duplicates': duplicates, 'paths': paths, 'deleted': deleted, 'not_deleted': not_deleted, }) return render_to_response('fixmedia.html', variables)
def fixmedia_page(request): '''Página para gerenciar imagens órfãs e duplicadas.''' deleted, not_deleted, paths = [], [], [] if request.method == 'POST': try: photo_id = request.POST['photo'] media = Image.objects.get(id=photo_id) except: video_id = request.POST['video'] media = Video.objects.get(id=video_id) try: paths = compile_paths(media) for path in paths: try: os.remove(path) deleted.append(path) except: not_deleted.append(path) try: media.delete() except: print 'Não rolou apagar do banco de dados?' except: print 'Algo deu errado para ler os caminhos.' # Insere no log? for path in paths: logger.debug('Supostamente removido: %s', path) # Pega todas as fotos. photos = Image.objects.all() orphaned_photos, duplicated_photos = get_orphans(photos) # Pega todos os vídeos. videos = Video.objects.all() orphaned_videos, duplicated_videos = get_orphans(videos) # Cria lista de órfãs e dic de duplicadas. orphaned = orphaned_photos duplicates = duplicated_photos # Adiciona vídeos à lista. orphaned.extend(orphaned_videos) duplicates.extend(duplicated_videos) variables = RequestContext(request, { 'orphaned': orphaned, 'duplicates': duplicates, 'paths': paths, 'deleted': deleted, 'not_deleted': not_deleted, }) return render_to_response('fixmedia.html', variables)
def handle_lost(self): '''Lida com arquivos perdidos.''' if self.lost: logger.info('%s arquivos perdidos', len(self.lost)) for k, v in self.lost.iteritems(): logger.debug('Perdidos: %s -> %s', k, v) name = os.path.basename(k) if name.endswith('txt'): logger.debug('Apagando arquivo txt: %s', name) os.remove(k) try: media = Image.objects.get(web_filepath__icontains=name) except: try: media = Video.objects.get( webm_filepath__icontains=name) except: logger.debug('Nenhuma imagem com nome %s', name) continue if media: try: paths = compile_paths(media) confirm = raw_input('Confirma? (s ou n): ') if confirm == 's': try: media.delete() logger.debug('Entrada de %s foi apagada!', media) except: logger.warning( 'Não rolou apagar %s do banco de dados', media) for path in paths: try: os.remove(path) logger.debug('%s foi apagado!', path) except: logger.warning('%s não foi apagado!', path) except: logger.debug('Algo errado na hora de ler a imagem.') else: logger.info('Nenhum arquivo para ser deletado.')
def handle_lost(self): '''Lida com arquivos perdidos.''' if self.lost: logger.info('%s arquivos perdidos', len(self.lost)) for k, v in self.lost.iteritems(): logger.debug('Perdidos: %s -> %s', k, v) name = os.path.basename(k) if name.endswith('txt'): logger.debug('Apagando arquivo txt: %s', name) os.remove(k) try: media = Image.objects.get(web_filepath__icontains=name) except: try: media = Video.objects.get(webm_filepath__icontains=name) except: logger.debug('Nenhuma imagem com nome %s', name) continue if media: try: paths = compile_paths(media) confirm = raw_input('Confirma? (s ou n): ') if confirm == 's': try: media.delete() logger.debug('Entrada de %s foi apagada!', media) except: logger.warning( 'Não rolou apagar %s do banco de dados', media) for path in paths: try: os.remove(path) logger.debug('%s foi apagado!', path) except: logger.warning('%s não foi apagado!', path) except: logger.debug('Algo errado na hora de ler a imagem.') else: logger.info('Nenhum arquivo para ser deletado.')