PDA

Ver la versión completa : Pequeña Guía para agregar recetas a Calibre



jefferson_frantz
01/11/2010, 23:07
Debido a la duda de un usuario de este foro sobre como agregar al Calibre las recetas personalizadas que se postean por aquí, hice este pequeño documento que creo que puede ser de utilidad para todos.

Espero que les sirva. ;)

Saludos.

Jeff.

kzoax77
02/11/2010, 00:40
Debido a la duda de un usuario de este foro sobre como agregar al Calibre las recetas personalizadas que se postean por aquí, hice este pequeño documento que creo que puede ser de utilidad para todos.

Espero que les sirva. ;)

Saludos.

Jeff.

Si, util manual, yo estuve a punto de preguntarte, al final probando... (por cierto, CALIBRE tiene opcion a español, ;-) ) aunque como los manuales estan en ingles, mejor asi.

El formato del documento, en *.rtf es mas "versatil", pero bueno... muchos programes leen doc, aunque calibre no los convierte directamente, el *.rtf

----

salu2

Edit; cierto Jeff, no recordaba que en rtf ocupan casi el doble... perfecto entonces.

jefferson_frantz
02/11/2010, 02:05
Si, util manual, yo estuve a punto de preguntarte, al final probando... (por cierto, CALIBRE tiene opcion a español, ;-) ) aunque como los manuales estan en ingles, mejor asi.

El formato del documento, en *.rtf es mas "versatil", pero bueno... muchos programes leen doc, aunque calibre no los convierte directamente, el *.rtf si...

----

Yo tengo el Calibre puesto en ingles, y es que a veces las traducciones de las funciones al español no las hacen bien y hay cosas que no se entienden, por eso mejor lo dejo en el idioma original.
Trate de subirlo como .rtf, pero al final me salio un archivo muy pesado y por la restricción de tamaño para los archivos subidos a esta web, al final lo deje como .doc.

Saludos.

Jeff.

Quest10
08/01/2011, 13:41
Para llevar un poquito más allá nuestras recetas podemos incluir pequeños trozos de código en ellas que las mejorarán sensiblemente.
Esta es una receta básica

class AdvancedUserRecipe1294492627(BasicNewsRecipe):
title = u'Fuente de noticias desconocida'
oldest_article = 7
max_articles_per_feed = 100

feeds = []

en ella podemos incluir:

encoding ='latin' Forzará a que lea la página con la codificación "latin" en vez de la estándar en calibre.

remove_javascript =True Este trozo retira el javascript que pudiera estar en medio del código.

no_stylesheets =True Impide que se aplique la hoja de estilos de la página. Agiliza mucho el procesado de las noticias.

extra_css ='h1 {margin-bottom: .15em;font-size: 2.7em; font-family: Georgia, "Times New Roman", Times, serif;} .Antetitulo {margin: 1em 0;text-transform: uppercase;color: #999;} .PieFoto {margin: .1em 0;padding: .5em .5em .5em .5em;background: #F0F0F0;}' Añadimos nuestra propia hoja de estilo.

Y ahora unos trozos de código que hacen maravillas:

keep_only_tags =dict(name='div', attrs={'class':['noticia primer_elemento']}) Este trozo de código filtra toda la página y selecciona, en este caso los div con class noticia, y class primer_elemento. Los div que están fuera de estas clases quedan descartados. Para saber con que bloques quedarme yo uso una herramienta de chromiun que es inspeccionar elemento. Pinchando sobre la pagina con el botón derecho se abre un menú y encontramos esta herramienta.
Tiene este aspecto:
http://img406.imageshack.us/img406/6264/bloquequedarse.png (http://img406.imageshack.us/i/bloquequedarse.png/)

Uploaded with ImageShack.us (http://imageshack.us)

Uploaded with ImageShack.us (http://imageshack.us)

Uploaded with ImageShack.us (http://imageshack.us)
Como se ve al pasar el ratón sobre la estructura inferior se van sombreando las distintas partes de la página afectadas.


remove_tags =[
dict(name='div', attrs={'class':['compartir', 'metadata_desarrollo_noticia', 'relacionadas', 'mas_info','publicidad publicidad_textlink', 'ampliarfoto']}),
dict(name='ul', attrs={'class':['bolos_desarrollo_noticia']}),
] En este caso le pedimos que retire esas secciones.
[http://img267.imageshack.us/img267/1487/bloquequitar.png (http://img267.imageshack.us/i/bloquequitar.png/)

Uploaded with ImageShack.us (http://imageshack.us)
La construcción de estos dos últimos trozos de código puede parecer un poco complicado pero se construye siempre igual:

Todos los trozos que pretendamos ver afectados van entre corchetes []
Cada agrupación de trozos similares va dentro de un diccionario que se genera empezando con dict, y entre paréntesis el nombre del trozo, que bien puede ser el genérico div, como p, ul, o cualquier otro. Tras indicar el nombre, indicamos sus atributos (lo que identificará el trozo en concreto) que bien puede ser class, o id y tras un par de puntos ":" abrimos unos corchetes para agrupar todas las clases que queramos (claro está si también son del mismo tipo de trozo, es decir, si son todos div, o p, o ul...)
Los distintos diccionarios van separados por comas


Y con estos detalles podemos mejorar un poquito nuestras recetas. Espero que sea de utilidad y no haya resultado muy larga la explicación

mis_suscripciones
13/01/2011, 15:59
Me vais a perdonar mi inutilidad... mira que está bien escrita la guía, pero lo intento y no hay manera. Pego el código, de doy a "Añadir/actualizar receta" y me sale un mensaje de error: ERROR: Entrada incorrecta: <p>No se puede crear la receta. Error:<br>expected an indented block (recipe1.py, line 20)
¿Qué puedo estar haciendo mal? Gracias de antemano

uvepece
13/01/2011, 20:54
Muchas gracias! Ya lo he utilizado y me ha salido muy bien ;)
Una pregunta, al añadir estas recetas personalizadas no se puede hacer como cuando vienen ya "precargadas" con el Calibre y hacer que te las descargue en un determinado momento, no? Tienes que mandarle tu que las descargue en el momento, no?
Gracias de antemano!

Quest10
13/01/2011, 23:21
uvepece las recetas personalizadas las puedes usar igual que el resto de recetas. Únicamente tienes que seleccionarlas del apartado Personalizadas al ir a editar las tareas.

mis_suscripciones trata de meter un tabulador a todas las etiquetas. Únicamente tiene que ir pegado a la línea izquierda lo de class ... Prueba y comenta lo que suceda. Otra opción es mandarme la receta por MP y la echo un ojo.;)

uvepece
14/01/2011, 19:32
uvepece las recetas personalizadas las puedes usar igual que el resto de recetas. Únicamente tienes que seleccionarlas del apartado Personalizadas al ir a editar las tareas.

mis_suscripciones trata de meter un tabulador a todas las etiquetas. Únicamente tiene que ir pegado a la línea izquierda lo de class ... Prueba y comenta lo que suceda. Otra opción es mandarme la receta por MP y la echo un ojo.;)

Madre mía... si llega a estar más a la vista me muerde! jajajajjaaj Muchas gracias... Es que con ese desplegable tan enorme no encontraba nada ;)

mis_suscripciones
19/01/2011, 08:54
mis_suscripciones trata de meter un tabulador a todas las etiquetas. Únicamente tiene que ir pegado a la línea izquierda lo de class ... Prueba y comenta lo que suceda. Otra opción es mandarme la receta por MP y la echo un ojo.;)

Conseguido: efectivamente era una cuestión de tabulaciones o espacios. Muchas gracias.

spoon83
07/01/2014, 15:45
Muy interesante, gracias!! ;)