Site do Cléber | Desisto de ter 10 blogs

plucker-convert – converte arquivos para o Plucker

Eu organizo toda a minha biblioteca virtual usando o seguinte formato de nomes de arquivo:

autor–idioma–titulo.formato

Daí criei esse script, que serve para passar os arquivos para o Plucker sem muito esforço. Para que ele funcione, seus arquivos devem seguir o mesmo formato que eu uso.

#!/usr/bin/python
# -*- encoding: latin-1 -*-

import sys
import os
import commands

convertidos = []
titulos_longos = []

autores={
“arthur-conan-doyle”: “doyle”,
“jonathan-edwards”:”edwards”,
“augustus-nicodemus-lopes”:”nicodemus”,
“charles-darwin”:”darwin”,
“lloyd-jones”:”jones”,
“charles-dickens”:”dickens”,
}

def Main():

global convertidos

if os.path.exists(“log.txt”):

log = open(“log.txt”, “r”)

for linha in log:
linha = linha.strip()
if len(linha) <= 0: continue

convertidos.append(linha)

log.close()

log = open(“log.txt”, “a”)

print str(convertidos)

if os.path.isdir(“/usr/lib/python”):
spider=”/usr/lib/python/site-packages/PyPlucker/Spider.py”
else:
spider=”/usr/lib/python2.4/site-packages/PyPlucker/Spider.py”

# Arquivo: autor–idioma–titulo.sufixo

target_dir = os.getcwd()

for filename in sys.argv[1:]:

filename = os.path.abspath(filename)
basename = os.path.basename(filename)

if os.path.isdir(filename): continue

if filename in convertidos:
print “Pulando”, filename
continue

autor, idioma, titulo_sufixo = basename.split(“–”)
titulo, sufixo = titulo_sufixo.split(“.”)

if autor in autores:
autor = autores[autor]

print “Autor: %s\nIdioma: %s\nTitulo: %s\nSufixo: %s” % (autor, idioma, titulo, sufixo)

titulo_bonito = “%s-%s” % (autor, titulo.replace(“-”, ” “).replace(“_”, “:”))

if len(titulo_bonito) > 31:
titulos_longos.append(filename)
print “Título muito longo. Ignorando.”
continue

print “len(titulo):”, len(titulo_bonito)
print “filename: file://%s” % filename
print “Título:”, titulo_bonito

#$spider -V 0 -f “NOME_DO_ARQUIVO” -N “TITULO BONITO” –bpp=0 –zlib-compression –no-urlinfo –stayonhost –author=desconhecido file://ARQUIVO
status, output = commands.getstatusoutput(“%s -V 2 -f \”%s\” -N \”%s\” -p \”%s\” –bpp=8 –zlib-compression –author=\”%s\” \”file://%s\”" % (spider, basename, titulo_bonito, target_dir, autor, filename))

if status != 0:
print output
print “=== Erro ===”
else:
log.write(“%s\n” % filename)
print “=== Ok ===”

for filename in titulos_longos:

filename = os.path.abspath(filename)
basename = os.path.basename(filename)

autor, idioma, titulo_sufixo = basename.split(“–”)
titulo, sufixo = titulo_sufixo.split(“.”)

if autor in autores:
autor = autores[autor]

print “Autor: %s\nIdioma: %s\nTitulo: %s\nSufixo: %s” % (autor, idioma, titulo, sufixo)

titulo_bonito = “%s-%s” % (autor, titulo.replace(“-”, ” “).replace(“_”, “:”))

if len(titulo_bonito) > 32:
while True:
msg = “Novo título: ”
print ” ” * len(msg) + “|” + “-” * 30 + “|”
novo_titulo = raw_input(msg)

if len(novo_titulo) > 32:
print “Novo título ainda é maior que 32 caracteres! (%d)” % len(novo_titulo)
continue
else:
titulo_bonito = novo_titulo
break

print “len(titulo):”, len(titulo_bonito)
print “filename: file://%s” % filename
print “Título:”, titulo_bonito

#$spider -V 0 -f “NOME_DO_ARQUIVO” -N “TITULO BONITO” –bpp=0 –zlib-compression –no-urlinfo –stayonhost –author=desconhecido file://ARQUIVO
status, output = commands.getstatusoutput(“%s -V 2 -f \”%s\” -N \”%s\” -p \”%s\” –bpp=0 –zlib-compression –no-urlinfo –stayonhost –author=\”%s\” \”file://%s\”" % (spider, basename, titulo_bonito, target_dir, autor, filename))

if status != 0:
print output
print “=== Erro ===”
else:
log.write(“%s\n” % filename)
print “=== Ok ===”

if __name__ == “__main__”:
if len(sys.argv) <= 1:
print “Uso: %s arquivo [arquivos...]” % os.path.basename(sys.argv[0])
sys.exit(1)
Main()

Avaliação: 5 stars

Nenhum comentário ainda.

Leave a comment!

Paged comment generated by AJAX Comment Page

Ratings Plugin created by Jake Ruston.