Documentación de la API para fórmulas¶
La API para crear fórmulas está definida por la clase BasicNewsRecipe
- class calibre.web.feeds.news.BasicNewsRecipe(options, log, progress_reporter)[fuente]¶
La clase base que contiene la lógica necesaria para todas las fórmulas. Reemplazando progresivamente las distintas funciones de esta clase, puede generar fórmulas cada vez más personalizadas y potentes. Para un cursillo introductorio a la creación de fórmulas, véase Añadir su sitio de noticias favorito.
- abort_article(msg=None)[fuente]¶
Ejecute este método dentro de cualquiera de los métodos de preprocesado para cancelar la descarga del artículo actual. Es útil para evitar la descarga de artículos con contenido no adecuado, como artículos que sólo contienen vídeos.
- abort_recipe_processing(msg)[fuente]¶
Hace que el sistema de descarga de fórmulas cancele la descarga de esta fórmula, mostrando al usuario un mensaje de información sencillo.
- add_toc_thumbnail(article, src)[fuente]¶
Utilice este método desde populate_article_metadata con el atributo src de una etiqueta <img> del artículo que quiera usar como la miniatura que representa el artículo en el índice. Si la miniatura se usa realmente o no dependerá del dispositivo (actualmente sólo la usan los Kindles). Tenga en cuenta que la imagen a que se hace referencia debe haber sido descargada con éxito, de lo contrario se ignorará.
- classmethod adeify_images(soup)[fuente]¶
Si la fórmula, al ser convertida a EPUB, tiene problemas con las imágenes cuando se muestra en Adobe Digital Editions, utilice este método desde
postprocess_html()
.
- canonicalize_internal_url(url, is_link=True)[fuente]¶
Devuelve un conjunto de representaciones canónicas de
url
. La implementación predeterminada usa el nombre del servidor y la ruta de acceso del URL, descartando parámetros de consulta, fragmentos, etc. Las representaciones canónicas deben ser únicas para todos los URL de esta fuente de noticias. Si no lo son, los enlaces internos pueden ser incorrectos.- Parámetros:
is_link – Es True si el URL viene de un enlace interno en un archivo HTML. False si el URL es el URL usado para descargar un artículo.
- cleanup()[fuente]¶
Usado cuando todos los artículos han sido descargados. Úselo para hacer limpieza, como cerrar sesiones en los sitios que requieren suscripción, etc.
- clone_browser(br)[fuente]¶
Clonar el navegador br. Los navegadores clonados se utilizan para las descargas multihilo, ya que mechanize no es seguro. Las rutinas de clonación predeterminadas deberían reconocer la mayoría de las personalizaciones del navegador, pero si se hace algo exótico en una fórmula, debe sustituir este método en la fórmula y clonarlo de forma manual.
Los navegadores clonados usan el mismo CookieJar seguro en varios hilos, de manera predeterminada, a menos que haya personalizado el manejo de las cookies.
- download()[fuente]¶
Descargar y preprocesar todos los artículos de los canales RSS en esta fórmula. Este método debe utilizarse una sola vez en cada fórmula. Si se usa más de una vez se obtendrá un comportamiento indefinido. :return:`Ruta de acceso al index.html`
- extract_readable_article(html, url)[fuente]¶
Extrae el contenido del artículo principal desde «html», lo depura y lo devuelve como una tupla (html_artículo, título_extraído). Basado en el algoritmo Readability original de Arc90.
- get_article_url(article)[fuente]¶
Sustituir en una subclase para personalizar la extracción del URL que apunta al contenido de cada artículo. Devuelve el URL del artículo. Se ejecuta con article, un objeto que representa un artículo analizado de un canal. Véase feedparser. De manera predeterminada busca el enlace original (para canales agregados mediante un servicio como FeedBurner o Pheedo) y, si se encuentra, devuelve dicho enlace o article.link en caso contrario.
- get_browser(*args, **kwargs)[fuente]¶
Devuelve un navegador utilizado para obtener documentos desde Internet. De manera predeterminada devuelve un navegador mechanize que soporta cookies, ignora robots.txt, tiene en cuenta los refrescos y tiene un agente de usuario aleatorio común.
Para personalizar el navegador, sustituya este método en la subclase como:
def get_browser(self, *a, **kw): br = super().get_browser(*a, **kw) # Add some headers br.addheaders += [ ('My-Header', 'one'), ('My-Header2', 'two'), ] # Set some cookies br.set_cookie('name', 'value') br.set_cookie('name2', 'value2', domain='.mydomain.com') # Make a POST request with some data br.open('https://someurl.com', {'username': 'def', 'password': 'pwd'}).read() # Do a login via a simple web form (only supported with mechanize browsers) if self.username is not None and self.password is not None: br.open('https://www.nytimes.com/auth/login') br.select_form(name='login') br['USERID'] = self.username br['PASSWORD'] = self.password br.submit() return br
- get_cover_url()[fuente]¶
Devuelve un URL para la imagen de portada de este número o None. De manera predeterminada, devuelve el valor del miembro self.cover_url que es normalmente None. Si quiere que la fórmula descargue una portada para el libro electrónico reemplace este método en la subclase, o establezca la variable miembro self.cover_url antes de utilizar este método.
- get_extra_css()[fuente]¶
De manera predeterminada devuelve self.extra_css. Reemplácelo si desea generar el archivo extra_css mediante un programa.
- get_feeds()[fuente]¶
Devuelve una lista de canales RSS para obtener en este perfil. Cada elemento de la lista debe ser una tupla de 2 elementos de la forma (título, url). Si el título es None o un texto vacío, se utiliza el título del canal RSS. Este método es útil si la fórmula tiene que hacer algún tipo de procesado para obtener la lista de canales RSS para descargar. Si es así, reemplácelo en la subclase.
- get_masthead_title()[fuente]¶
Reemplácelo en la subclase para usar algo distinto del título de la fórmula
- get_masthead_url()[fuente]¶
Devuelve un URL a la imagen de cabecera de este número o None. De manera predeterminada, devuelve el valor del miembro self.masthead_url que es normalmente None. Si quiere que la fórmula descargue una imagen de cabecera para el libro electrónico reemplace este método en la subclase, o establezca la variable miembro self.masthead_url antes de utilizar este método. Las imágenes de cabecera se usan en los archivos MOBI de Kindle.
- get_obfuscated_article(url)[fuente]¶
Si activa articles_are_obfuscated, este método se ejecuta para cada URL de artítulo. Debe devolver la ruta a un archivo en el sistema de archivos que contiene el HTML del artículo. El archivo se procesa con el motor recursivo de HTML, por lo que puede contener enlaces a páginas o imágenes en la red. Alternativamente, puede devolver un diccionario de la forma {“data”: <datos HTML>, “url”: <el URL resuelto del artículo>}. Esto evita la creación de archivos temporales. La entrada url del diccionario es útil si el URL efectivo del artículo es distinto del URL que se le pasa a este método, por ejemplo debido a redirecciones. Se puede omitir si el URL no cambia.
Este método es normalmente útil para sitios que tratan de dificultar el acceso automático al contenido de los artículos.
- get_url_specific_delay(url)[fuente]¶
Devuelve el retraso en segundos antes de descargar este URL. Si desea determinar mediante programación el retraso para el URL especificado, sustituya este método en la subclase y haga que devuelva
self.delay
de forma predeterminada para los URL que no desee afectar.- Devuelve:
Un número de coma flotante, el retraso en segundos.
- classmethod image_url_processor(baseurl, url)[fuente]¶
Realiza algún procesado sobre las direcciones URL de las imágenes (tal vez eliminando restricciones de tamaño para imágenes generadas dinámicamente, etc.) y devuelve la dirección URL procesada. Devolver None o un texto vacío para omitir la imagen.
- index_to_soup(url_or_raw, raw=False, as_tree=False, save_raw=None)[fuente]¶
Método práctico que toma el URL de una página de índice y devuelve un objeto BeautifulSoup que lo representa.
url_or_raw: Un URL o la página de índice descargada como texto
- is_link_wanted(url, tag)[fuente]¶
Devuelve True si el enlace debe seguirse o False en caso contrario. De manera predeterminada, presenta NotImplementedError, que hace que el programa de descarga lo ignore.
- Parámetros:
url – La dirección URL que debe seguirse
tag – La etiqueta de la que se extrajo la dirección URL
- parse_feeds()[fuente]¶
Crea una lista de artículos desde la lista de canales devuelta por
BasicNewsRecipe.get_feeds()
. Devuelve una lista objetosFeed
.
- parse_index()[fuente]¶
Este método debe implementarse en las fórmulas que analizan una página de Internet en lugar de canales RSS para generar una lista de artículos. Normalmente se usa con fuentes de noticias que tienen una página del tipo «edición impresa» que enumera todos los artículos de la edición impresa actual. Si se implementa esta función, se usará con prioridad sobre
BasicNewsRecipe.parse_feeds()
.Debe devolver una lista. Cada elemento de la lista debe ser una tupla de 2 elementos de la forma
('título del canal', lista de artículos)
.Cada lista de artículos deben contener diccionarios del tipo:
{ 'title' : article title, 'url' : URL of print version, 'date' : The publication date of the article as a string, 'description' : A summary of the article 'content' : The full article (can be an empty string). Obsolete do not use, instead save the content to a temporary file and pass a file:///path/to/temp/file.html as the URL. }
Como ejemplo, véase la fórmula para descargar The Atlantic. Además, puede añadir «author» para el autor del artículo.
Si desea cancelar el proceso por alguna razón y hacer que calibre muestre al usuario un simple mensaje en lugar de un error, use
abort_recipe_processing()
.
- populate_article_metadata(article, soup, first)[fuente]¶
Se ejecuta al descargar cada página HTML perteneciente al artículo
article
. Pensado para obtener metadatatos del artículo como autor, resumen, etc. del HTML procesado (soup
).- Parámetros:
article – Un objeto de la clase
calibre.web.feeds.Article
. Si cambia el resumen, recuerde cambiar también text_summarysoup – HTML procesado perteneciente a este artículo
first – True si y sólo si el HTML procesado es la primera página del artículo.
- postprocess_book(oeb, opts, log)[fuente]¶
Ejecutar cualquier procesado posterior necesario sobre el libro electrónico descargado.
- Parámetros:
oeb – Un objeto OEBBook
opts – Opciones de conversión
- postprocess_html(soup, first_fetch)[fuente]¶
Este método se ejecuta con el código fuente de cada archivo HTML, después de analizar sus imágenes y enlaces. Puede usarse para efectuar un procesado arbitrario sobre el HTML. Debe devolver soup después del procesado.
- Parámetros:
soup – Un objeto BeautifulSoup que contiene el HTML descargado.
first_fetch – True si ésta es la primera página de un artículo.
- preprocess_html(soup)[fuente]¶
Este método se ejecuta con el código fuente de cada archivo HTML, antes de analizar sus imágenes y enlaces. Se ejecuta después de la limpieza especificada por remove_tags, etc. Puede usarse para efectuar un preprocesado arbitrario sobre el HTML. Debe devolver soup después del procesado.
soup: Un objeto BeautifulSoup que contiene el HTML descargado.
- preprocess_image(img_data, image_url)[fuente]¶
Procesa los datos de imagen descargados. Se ejecuta sobre los datos en bruto antes de cualquier redimensionado. Debe devolver los datos procesados. Para descartar la imagen devuelva None.
- preprocess_raw_html(raw_html, url)[fuente]¶
Este método se ejecuta con el código fuente de cada archivo HTML, antes de convertirlo en un árbol de objetos. raw_html es un texto unicode que representa el HTML en bruto descargado de Internet. url es la dirección URL desde donde se descargó el HTML.
Tenga en cuenta que este método actúa antes de preprocess_regexps.
Este método debe devolver el archivo raw_html procesado como un objeto unicode.
- classmethod print_version(url)[fuente]¶
Tomar un url que apunta a la página de Internet con el contenido del artículo y devuelve el URL de la versión para imprimir del artículo. De manera predeterminada no hace nada. Por ejemplo:
def print_version(self, url): return url + '?&pagewanted=print'
- publication_date()[fuente]¶
Use este método para establecer la fecha de publicación de este número. De manera predeterminada es el momento de la descarga. Debe devolver un objeto
datetime.datetime
.
- skip_ad_pages(soup)[fuente]¶
Este método se ejecuta con el código fuente de cada archivo HTML descargado, antes de aplicar ningún atributo de limpieza como remove_tags o keep_only_tags. Tenga en cuenta que preprocess_regexps ya se habrá aplicado. Está pensado para permitir que la fórmula evite las páginas de publicidad. Si soup representa una página de publicidad, devuelve el HTML de la página real. De lo contrario devuelve None.
soup: Un objeto BeautifulSoup que contiene el HTML descargado.
- sort_index_by(index, weights)[fuente]¶
Método práctico para ordenar los títulos en index según weights. index se ordena en su lugar. Devuelve index.
index: Una lista de títulos.
weights: Un diccionario que asigna pesos a los títulos. Si un título del índice no está en weights, se asume que tiene un peso de 0.
- classmethod tag_to_string(tag, use_alt=True, normalize_whitespace=True)[fuente]¶
Método práctico que toma un objeto
Tag
de BeautifulSoup y extrae el texto recursivamente, incluyendo secciones CDATA y atributos «alt». Devuelve un texto Unicode posiblemente vacío.use_alt: Si es True intenta usar el atributo «alt» para las etiquetas que no poseen contenido textual
tag: Un objeto
Tag
de BeautifulSoup
- articles_are_obfuscated = False¶
Establézcalo a True e implemente
get_obfuscated_article()
para manejar sitios de Internet que tratan de dificultar la obtención de contenido.
- auto_cleanup = False¶
Extrae automáticamente todo el texto de las páginas de artículos descargadas. Utiliza los algoritmos del proyecto Readability. Si se establece en True, no hay necesidad de preocuparse de limpiar el código HTML manualmente (aunque la limpieza manual siempre será mejor).
- auto_cleanup_keep = None¶
Especifica los elementos que el algoritmo de limpieza automática no debe eliminar nunca. La sintaxis es una expresión XPath. Por ejemplo:
auto_cleanup_keep = '//div[@id="article-image"]' will keep all divs with id="article-image" auto_cleanup_keep = '//*[@class="important"]' will keep all elements with class="important" auto_cleanup_keep = '//div[@id="article-image"]|//span[@class="important"]' will keep all divs with id="article-image" and spans with class="important"
- browser_type = 'mechanize'¶
El motor de navegador simulado que se usará para descargar de los servidores. De manera predeterminada se usa el motor de navegador de Python mechanize, que permite iniciar sesión. Sin embargo, si no es necesario iniciar sesión, considere cambiarlo a «webengine», que usa un navegador Chromium real para realizar las peticiones de red, o «qt», que usa el sistema Qt Networking. Tanto «webengine» como «qt» permiten usar HTTP/2, a diferencia de mechanize, y son por lo tanto más difíciles de identificar por parte de servicios de protección contra bots.
Si es True la barra de navegación se alinea al centro, en caso contrario se alinea a la izquierda
- compress_news_images = False¶
Set this to False to ignore all scaling and compression parameters and pass images through unmodified. If True and the other compression parameters are left at their default values, images will be scaled to fit in the screen dimensions set by the output profile and compressed to size at most (w * h)/16 where w x h are the scaled image dimensions.
- compress_news_images_auto_size = 16¶
El factor utilizado cuando se comprimen automáticamente las imágenes JPEG. Si se establece en None, la compresión automática se desactiva. De lo contrario, las imágenes se reducirán a un tamaño en bytes de (w × h)/compress_news_images_auto_size, si es posible, reduciendo el nivel de calidad, donde «w» y «h» son la anchura y la altura de la imagen en píxeles. La calidad mínima del JPEG será 5/100 por lo que es posible que no pueda cumplirse con esta restricción. Este parámetro se puede anular con el parámetro compress_news_images_max_size, que proporciona un tamaño máximo fijo para las imágenes. Tenga en cuenta que si se habilita scale_news_images_to_device entonces la imagen se ampliará primero y luego su calidad se reducirá hasta que su tamaño sea menor que (w × h)/factor donde «w» y «h» son ahora las dimensiones de la imagen redimensionada. En otras palabras, esta compresión ocurre después del redimensionado.
- compress_news_images_max_size = None¶
Establece la calidad de los archivos JPEG para que las imágenes no excedan el tamaño dado (en kbytes). Si se establece este parámetro, la compresión automática vía compress_news_images_auto_size no tiene lugar. La calidad mínima del JPEG será 5/100 por lo que es posible que no pueda cumplirse con esta restricción.
- conversion_options = {}¶
Opciones específicas de la fórmula para controlar la conversión del contenido descargado en un libro electrónico. Éstas tienen prioridad sobre cualquier valor especificado por el usuario o un complemento, por lo que deben utilizarse sólo si es absolutamente necesario. Por ejemplo:
conversion_options = { 'base_font_size' : 16, 'linearize_tables' : True, }
- cover_margins = (0, 0, '#ffffff')¶
De manera predeterminada, la imagen de portada devuelta por get_cover_url() se utilizará como portada para la publicación. Si se establece un valor para esta variable en una fórmula, calibre colocará la portada descargada dentro de un marco cuya anchura y altura se expresan como un porcentaje de la portada descargada. cover_margins = (10, 15, “#ffffff”) rellena la portada con un margen blanco de 10px a la izquierda y derecha, 15px en la parte superior e inferior. Los nombres de los colores se definen aquí. Tenga en cuenta que, por alguna razón, «white» no siempre funciona en Windows. Utilice «#ffffff» en su lugar.
- delay = 0¶
El retraso predeterminado entre descargas consecutivas en segundos. El argumento puede ser un número de coma flotante para indicar un tiempo más preciso. Ver
get_url_specific_delay()
para implementar retrasos por URL.
- description = ''¶
Un par de líneas que describen el contenido que descarga esta fórmula. Se usará principalmente en una interfaz gráfica que presenta una lista de fórmulas.
- encoding = None¶
Especifica una codificación para los sitios que tienen una especificación de conjunto de caracteres incorrecta. El error más común es declarar
latin1
y usarcp1252
. Si es None, trata de detectar la codificación. Si es un método ejecutable, se usará con dos argumentos: el objeto de la fórmula y el código fuente para descodificar. Debe devolver el código descodificado.
- extra_css = None¶
Especifique cualquier CSS extra que debe añadirse a los archivos HTML descargados. Será insertado en etiquetas <style>, justo antes de la etiqueta de cierre </head> sustituyendo así todos los CSS excepto los que estén declarados mediante el atributo style en etiquetas HTML individuales. Tenga en cuenta que si desea generar un archivo extra_css mediante un programa debe reemplazar el método
get_extra_css()
. Por ejemplo:extra_css = '.heading { font: serif x-large }'
- feeds = None¶
Lista de canales para descargar. Puede ser
[url1, url2, ...]
o[('título1', url1), ('título2', url2), ...]
- filter_regexps = []¶
Lista de expresiones regulares que determina qué enlaces ignorar. Si está vacía no se tiene en cuenta. Usado sólo si is_link_wanted no está implementado. Por ejemplo:
filter_regexps = [r'ads\.doubleclick\.net']
eliminará todos los URL que contengan ads.doubleclick.net.
Sólo uno de entre
BasicNewsRecipe.match_regexps
yBasicNewsRecipe.filter_regexps
deben definirse.
- handle_gzip = True¶
Establézcalo en False para no usar transferencias comprimidas con gzip con el navegador mechanize. Tenga en cuenta que algunos servidores antiguos pueden fallar con gzip.
- ignore_duplicate_articles = None¶
Ignorar duplicados de los artículos que están presentes en más de una sección. Un artículo duplicado es un artículo que tiene el mismo título o dirección URL. Para ignorar artículos con el mismo título, establézcalo como:
ignore_duplicate_articles = {'title'}
En cambio, para utilizar las direcciones URL, establézcalo como:
ignore_duplicate_articles = {'url'}
Para hacer que coincida el título o URL, establézcalo como:
ignore_duplicate_articles = {'title', 'url'}
- keep_only_tags = []¶
Mantiene sólo las etiquetas especificadas y sus descendientes. El formato para especificar una etiqueta está definido en
BasicNewsRecipe.remove_tags
. Si la lista no está vacía, entonces la etiqueta <body> se vaciará y se volverá a llenar con las etiquetas que coincidan con las entradas en esta lista. Por ejemplo:keep_only_tags = [dict(id=['content', 'heading'])]
mantendrá sólo las etiquetas que posean un atributo id igual a «content» o «heading».
- language = 'und'¶
El idioma en que están las noticias. Debe ser un código ISO-639 de dos o tres letras
- masthead_url = None¶
De forma predeterminada, calibre utilizará una imagen predeterminada para la cabecera (sólo Kindle). Sustituya esto en la receta para proporcionar un URL que se usará como cabecera.
- match_regexps = []¶
Lista de expresiones regulares que determina qué enlaces seguir. Si está vacía, no se tiene en cuenta. Se usa sólo si is_link_wanted no está implementado. Por ejemplo:
match_regexps = [r'page=[0-9]+']
coincidirá con todas las direcciones URLs que posean page=algún número.
Sólo uno de entre
BasicNewsRecipe.match_regexps
yBasicNewsRecipe.filter_regexps
deben definirse.
- max_articles_per_feed = 100¶
Número máximo de artículos para descargar de cada canal. Esto es útil sobre todo para los canales que no tienen fechas en los artículos. Para la mayoría de los canales, debe usar
BasicNewsRecipe.oldest_article
- needs_subscription = False¶
Si es True, la interfaz gráfica pedirá al usuario un nombre y una contraseña para utilizar en la descarga. Si se establece en
"optional"
el nombre y contraseña serán opcionales.
- no_stylesheets = False¶
Opción útil para desactivar la carga de hojas de estilo en los sitios de Internet que tienen hojas de estilo excesivamente complejas, poco apropiadas para la conversión a formatos de libro electrónico. Si es True, las hojas de estilo no se descargan ni procesan
- oldest_article = 7.0¶
Artículo más antiguo para descargar desde la fuente de noticias. En días.
- preprocess_regexps = []¶
Lista de reglas de sustitución regexp para ejecutar sobre los HTML descargados. Cada elemento de la lista debe ser una tupla de dos elementos. El primer elemento de la tupla debe ser una expresión regular compilada y el segundo un método ejecutable que toma un objeto de coincidencia único y devuelve un texto para sustituir a la coincidencia. Por ejemplo:
preprocess_regexps = [ (re.compile(r'<!--Article ends here-->.*</body>', re.DOTALL|re.IGNORECASE), lambda match: '</body>'), ]
eliminará todo lo que haya entre <!–Article ends here–> y </body>.
- publication_type = 'unknown'¶
Tipo de publicación. Establecer como «newspaper», «magazine» o «blog». Si se establece en None, no se escribirá el metadato de tipo de publicación en el archivo opf.
- recipe_disabled = None¶
Establecer a un texto no vacío para desactivar esta fórmula. El texto se utilizará como el mensaje de desactivación.
- recipe_specific_options = None¶
Opciones específicas para esta fórmula. Estarán disponibles para que el usuario las personalice en la pestaña Avanzado del cuadro de diálogo de Obtener noticias o en la línea de órdenes para ebook-convert. Las opciones se especifican como un diccionario que asocia cada nombre de opción con sus metadatos. Por ejemplo:
recipe_specific_options = { 'edition_date': { 'short': 'The issue date to download', 'long': 'Specify a date in the format YYYY-mm-dd to download the issue corresponding to that date', 'default': 'current', } }
Cuando se ejecute la fórmula, self.recipe_specific_options será un diccionario que asocie cada nombre de opción con el valor especificado por el usuario para la opción. Si la opción no ha sido especificada por el usuario, tendrá el valor predeterminado especificado por “default”. Si no hay valor predeterminado, la opción no se encontrará en el diccionario cuando el usuario no la especifique.
- recursions = 0¶
Número de niveles de enlaces para seguir en las páginas de internet de los artículos
- remove_attributes = []¶
Lista de atributos para quitar de todas las etiquetas. Por ejemplo:
remove_attributes = ['style', 'font']
- remove_empty_feeds = False¶
Si es True los canales vacíos se eliminan de la salida. Esta opción no tiene efecto si parse_index se reemplaza en la subclase. Está pensado sólo para las fórmulas que devuelven una lista de canales que utilizan feeds o
get_feeds()
. También se utiliza si se emplea la opción ignore_duplicate_articles.
- remove_javascript = True¶
Opción útil para eliminar todas las etiquetas JavaScript del archivo HTML descargado
- remove_tags = []¶
Lista de etiquetas para ser eliminadas. Las etiquetas especificadas se eliminan del HTML descargado. Cada etiqueta se especifica como un diccionario de la forma:
{ name : 'tag name', #e.g. 'div' attrs : a dictionary, #e.g. {'class': 'advertisment'} }
Todas las claves son opcionales. Para una explicación completa de los criterios de búsqueda, véase Beautiful Soup (en inglés). Un ejemplo frecuente:
remove_tags = [dict(name='div', class_='advert')]
Esto eliminará todas las etiquetas <div class=»advert»> y todos sus elementos descendientes del HTML descargado.
- remove_tags_after = None¶
Elimina todas las etiquetas que se aparecen después de la etiqueta especificada. La forma de especificar una etiqueta se muestra en
BasicNewsRecipe.remove_tags
. Por ejemplo:remove_tags_after = [dict(id='content')]
eliminará todas las etiquetas después del primer elemento con id=»content».
- remove_tags_before = None¶
Elimina todas las etiquetas que aparecen antes de la etiqueta especificada. La forma de especificar una etiqueta se da en
BasicNewsRecipe.remove_tags
. Por ejemplo:remove_tags_before = dict(id='content')
eliminará todas las etiquetas antes del primer elemento con id=»content».
- requires_version = (0, 6, 0)¶
Versión mínima de calibre necesaria para usar esta fórmula
- resolve_internal_links = False¶
Si es True los enlaces en los artículos descargados que apunten a otros artículos descargados se cambian para que apunten a la copia descargada del artículo en lugar de al URL original. Si lo establece en True, puede que también necesite implementar
canonicalize_internal_url()
para que funcione con el esquema URL del sitio web concreto.
- reverse_article_order = False¶
Invierte el orden de los artículos de cada canal
- scale_news_images = None¶
Dimensiones máximas (anchura, altura) para redimensionar las imágenes. Si scale_news_images_to_device es True, estas dimensiones son el tamaño de la pantalla del dispositivo establecido en el perfil de salida, a menos que no haya un perfil seleccionado, en cuyo caso se deja en el valor que se le haya asignado (de manera predeterminada None).
- scale_news_images_to_device = True¶
Cambiar el tamaño de las imágenes para que quepan en la pantalla del dispositivo establecido por el perfil de salida. Se omite si no hay un perfil de salida seleccionado.
- simultaneous_downloads = 5¶
Número de descargas simultáneas. Establecer en 1 si el servidor es exigente. Se reduce automáticamente a 1 si
BasicNewsRecipe.delay
> 0
- summary_length = 500¶
Número máximo de caracteres en la descripción breve
- template_css = '\n .article_date {\n color: gray; font-family: monospace;\n }\n\n .article_description {\n text-indent: 0pt;\n }\n\n a.article {\n font-weight: bold; text-align:left;\n }\n\n a.feed {\n font-weight: bold;\n }\n\n .calibre_navbar {\n font-family:monospace;\n }\n '¶
El CSS que se usa para dar el estilo a las plantillas, por ejemplo, las barras de navegación y los índices. En lugar de sustituir esta variable, puede usar extra_css en la fórmula para personalizar la apariencia.
- timefmt = ' [%a, %d %b %Y]'¶
El texto de formato para la fecha que se muestra en la primera página. Predeterminado: Nombre_del_día, Número_del_día Nombre_del_mes Año
- timeout = 120.0¶
Tiempo de espera para obtener archivos desde el servidor, en segundos
- title = 'Fuente de noticias desconocida'¶
El título que se usará para el libro electrónico
- use_embedded_content = None¶
Normalmente se intenta deducir si un canal contiene artículos completos incrustados, sobre la base de la longitud del contenido incrustado. Si es Ninguno, entonces se utiliza el método predeterminado. Si es True, se supone siempre que los canales contienen artículos incrustados y si es False, se supone siempre que los canales no contienen artículos incrustados.