Blogging with Common Sense

Calibre – How to create recipes

Acest articol este continuarea rss on kindle3.

Recipe-ul de mai jos este scris in limbajul pyton si e folosit la parsarea site-ului catavencu.ro.

Copiati exemplul si salvati-l intr-un fisier cu extensia recipe sau inspirati-va dupa un recipe deja facut: in Calibre se apasa Fetch news -> Add custom news source-> Customize buildin recipe si se alege un template din lista. Eu m-am inspirat dupa scriptul ScienceDaily[en].

Cu Notepad-ul din Windows se modifica parametrii de culoare rosie.

# -*- coding: utf-8 -*-
#!/usr/bin/env  python
__license__   = ‘GPL v3’
__copyright__ = u’2011, numeleTau
”’
catavencu.ro
”’
from calibre.web.feeds.news import BasicNewsRecipe
class Catavencu(BasicNewsRecipe):
title                 = u’Academia Ca\u0163avencu
__author__            = u’numeleTau
description           = ‘Tagma cum laude
publisher             = ‘Catavencu
oldest_article        = 5
language              = ‘ro’
max_articles_per_feed = 100
no_stylesheets        = True
use_embedded_content  = False
category              = ‘Ziare
encoding              = ‘utf-8’
cover_url           = ‘http://upload.wikimedia.org/wikipedia/en/1/1e/Academia_Catavencu.jpg
conversion_options = {
‘comments’   : description
,’tags’       : category
,’language’   : language
,’publisher’  : publisher
}
keep_only_tags = [
dict(name=’ul’, attrs={‘class’:’articles’})
]
remove_tags = [
dict(name=’div’, attrs={‘class’:[‘tools’]})
, dict(name=’div’, attrs={‘class’:[‘share’]})
, dict(name=’div’, attrs={‘class’:[‘category’]})
, dict(name=’div’, attrs={‘id’:[‘comments’]})
]
remove_tags_after = [
dict(name=’div’, attrs={‘id’:’comments’})
]
feeds          = [
(u’Feeds’, u’http://catavencu.ro/feed/rss’)
]
def preprocess_html(self, soup):
return self.adeify_images(soup)
 
 
 

Explicatii:

keep_only_tags – reprezinta ce elemente html sa apara in subscriptie.

Ex: dict(name=’ul’, attrs={‘class’:’articles’}) – inseamna ca trebuie sa apara doar continutul din tag-ul ul care are css-ul articles

remove_tags – specifica ce elemente sa fie eliminate din tag-ul ul
Ex: dict(name=’div’, attrs={‘class’:[‘tools’]}) – va elimina continutul din tag-ul div care are css-ul tools
Pentru a elimina comentariile din se adauga si dict(name=’div’, attrs={‘id’:[‘comments’]} –  tag-ul div care are id-ul comments

remove_tags_after – unde se termina parsarea
Ex: dict(name=’div’, attrs={‘id’:’comments’} – se termina parsarea dupa div-ul cu id-ul comments

feeds – reprezinta lista de rss-uri. Pot fi mai multe rss-uri
Ex: pentru hotnews am adaugat
feeds          = [   (u’\u0218tiri’, u’http://www.hotnews.ro/rss/actualitate’),
(u’English’, u’http://www.hotnews.ro/rss/english’)
]

via getfirebug.com

Pentru a afla ce tag-uri (div, form, ul ..) sunt folosite de un site va recomand Firefox si plugin-ul Firebug .
Dupa instalarea plugin-ului se da click pe iconita firebug din coltul dreapta jos din Firefox dupa care se selecteaza cursorul din partea stanga sus din consola. Acest cursor este folosit la inspectia elementelor web.

Pentru a testa un recipe se copiaza fisierul in folderul unde este instalat calibre si din command prompt se ruleaza comanda: C:\Program Files\Calibre2>ebook-convert Catavencu.recipe D:\temp –test -vv

Daca apare eroarea IndentationError: unexpected indent inseamna ca nu sunt aliniate comenzile asa cum ar trebui. Deschideti fisierul cu Notepad-ul de Windows si realiniati liniile (vezi docs.python). Daca apar alte erori ignorati-le si deschideti index.html din D:\temp. Daca totul pare ok atunci faceti un test din Calibre.

Pentru a adauga recipe-uri in Calibre se apasa sageata de langa butonul Fetch news si se alege Add custom news source dupa care Load recipe from file si se selecteaza un fisier cu extensia .recipe. Se apasa butonul Add/Update recipe apoi Close si Yes.
Se alege optiunea Schedule news download de langa butonul Fetch news si in Recipe-ul Custom veti gasi denumirea site-ului din fisierul recipe. Pentru a downloada ziarul se apasa butonul Download.

Daca doriti sa primiti documentul automat pe Kindle urmati pasii 3,4,5 de aici.

Daca doriti sa folositi diacritice utilizati forma Unicode (ex: u’Academia Ca\u0163avencu’)

Simbol Cod HTML Unicode
ă ă U0103
Ă Ă U0102
â â U00E2
  U00C2
î î U00EE
Î Î U00CE
ş ş U015F cu sedilă
ş ș U0219 cu virgulă
Ş Ş U015E cu sedilă
Ş Ș U0218 cu virgulă
ţ ţ U0163 cu sedilă
ţ ț U021B cu virgulă
Ţ Ţ U0162 cu sedilă
Ţ Ț U021A cu virgulă

via cheeprey.ro

Tutoriale gasiti pe calibre , calibre tips, mobileread recipe, mobile2, calibre2 plus alte exemple si cele oficiale.

Recipe-uri pentru rss-uri romanesti gasiti in topicul de pe mobileread.

Recipe-urile care apar default in Calibre le gasiti in directorul unde este instalat \resources\builtin_recipes.zip

One response

  1. Pingback: RSS and Newspaper Subscription on Kindle 3 « I think therefore i blog

Lasă un răspuns

Completează mai jos detaliile despre tine sau dă clic pe un icon pentru autentificare:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare / Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare / Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare / Schimbă )

Fotografie Google+

Comentezi folosind contul tău Google+. Dezautentificare / Schimbă )

Conectare la %s