merge from trunk

This commit is contained in:
Lee 2011-02-22 15:29:38 +08:00
commit 1e3bfda8bd
56 changed files with 989 additions and 18 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 401 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 617 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 686 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 501 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 836 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 527 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 827 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 722 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 722 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 411 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 863 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 432 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 657 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 510 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@ -0,0 +1,51 @@
# -*- coding: utf-8 -*-
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = u'2011, Silviu Cotoar\u0103'
'''
sapteseri.ro
'''
from calibre.web.feeds.news import BasicNewsRecipe
class SapteSeri(BasicNewsRecipe):
title = u'Sapte Seri'
__author__ = u'Silviu Cotoar\u0103'
description = u'Sapte Seri'
publisher = u'Sapte Seri'
oldest_article = 5
language = 'ro'
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
category = 'Ziare,Oras,Distractie,Fun'
encoding = 'utf-8'
remove_empty_feeds = True
remove_javascript = True
cover_url = 'http://www.sapteseri.ro/Images/logo.jpg'
conversion_options = {
'comments' : description
,'tags' : category
,'language' : language
,'publisher' : publisher
}
keep_only_tags = [
dict(name='h1', attrs={'id':'title'})
, dict(name='div', attrs={'class':'mt10 mb10'})
, dict(name='div', attrs={'class':'mb20 mt10'})
, dict(name='div', attrs={'class':'mt5 mb20'})
]
remove_tags = [
dict(name='div', attrs={'id':['entityimgworking']})
]
feeds = [
(u'Ce se intampla azi in Bucuresti', u'http://www.sapteseri.ro/ro/feed/ce-se-intampla-azi/bucuresti/')
]
def preprocess_html(self, soup):
return self.adeify_images(soup)

View File

@ -0,0 +1,51 @@
# -*- coding: utf-8 -*-
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = u'2011, Silviu Cotoar\u0103'
'''
aventurilapescuit.ro
'''
from calibre.web.feeds.news import BasicNewsRecipe
class AventuriLaPescuit(BasicNewsRecipe):
title = u'Aventuri La Pescuit'
__author__ = u'Silviu Cotoar\u0103'
description = 'Aventuri La Pescuit'
publisher = 'Aventuri La Pescuit'
oldest_article = 5
language = 'ro'
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
category = 'Ziare,Pescuit,Hobby'
encoding = 'utf-8'
cover_url = 'http://www.aventurilapescuit.ro/images/logo.gif'
conversion_options = {
'comments' : description
,'tags' : category
,'language' : language
,'publisher' : publisher
}
keep_only_tags = [
dict(name='div', attrs={'id':'Article'})
]
remove_tags = [
dict(name='div', attrs={'class':['right option']})
, dict(name='iframe', attrs={'scrolling':['no']})
]
remove_tags_after = [
dict(name='iframe', attrs={'scrolling':['no']})
]
feeds = [
(u'Feeds', u'http://www.aventurilapescuit.ro/sections/rssread/1')
]
def preprocess_html(self, soup):
return self.adeify_images(soup)

View File

@ -0,0 +1,52 @@
# -*- coding: utf-8 -*-
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = u'2011, Silviu Cotoar\u0103'
'''
chip.ro
'''
from calibre.web.feeds.news import BasicNewsRecipe
class ChipRo(BasicNewsRecipe):
title = u'Chip Online'
__author__ = u'Silviu Cotoar\u0103'
description = 'Chip Online'
publisher = 'Chip Online'
oldest_article = 5
language = 'ro'
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
category = 'Ziare,Reviste,IT'
encoding = 'utf-8'
cover_url = 'http://www.chip.ro/images/logo.png'
conversion_options = {
'comments' : description
,'tags' : category
,'language' : language
,'publisher' : publisher
}
keep_only_tags = [
dict(name='h2', attrs={'class':'contentheading clearfix'})
, dict(name='span', attrs={'class':'createby'})
, dict(name='div', attrs={'class':'article-content'})
]
remove_tags = [
dict(name='div', attrs={'class':['sharemecompactbutton']})
,dict(name='div', attrs={'align':['left']})
,dict(name='div', attrs={'align':['center']})
,dict(name='th', attrs={'class':['pagenav_prev']})
,dict(name='table', attrs={'class':['pagenav']})
]
feeds = [
(u'Feeds', u'http://www.chip.ro/index.php?option=com_ninjarsssyndicator&feed_id=9&format=raw')
]
def preprocess_html(self, soup):
return self.adeify_images(soup)

View File

@ -0,0 +1,52 @@
# -*- coding: utf-8 -*-
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = u'2011, Silviu Cotoar\u0103'
'''
csid.ro
'''
from calibre.web.feeds.news import BasicNewsRecipe
class CSID(BasicNewsRecipe):
title = u'Ce se \u00eent\u00e2mpl\u0103 doctore?'
__author__ = u'Silviu Cotoar\u0103'
description = u'Ce se \u00eent\u00e2mpl\u0103 doctore?'
publisher = 'CSID'
oldest_article = 5
language = 'ro'
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
category = 'Ziare,Reviste,Femei,Health,Beauty'
encoding = 'utf-8'
cover_url = 'http://www.csid.ro/images/default/csid.gif'
conversion_options = {
'comments' : description
,'tags' : category
,'language' : language
,'publisher' : publisher
}
keep_only_tags = [
dict(name='div', attrs={'class':'content floatleft'})
]
remove_tags = [
dict(name='div', attrs={'id':['article_links']})
, dict(name='div', attrs={'id':['tags']})
, dict(name='p', attrs={'id':['tags']})
]
remove_tags_after = [
dict(name='p', attrs={'id':['tags']})
]
feeds = [
(u'Feeds', u'http://www.csid.ro/rss/')
]
def preprocess_html(self, soup):
return self.adeify_images(soup)

View File

@ -0,0 +1,54 @@
# -*- coding: utf-8 -*-
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = u'2011, Silviu Cotoar\u0103'
'''
curierulnational.ro
'''
from calibre.web.feeds.news import BasicNewsRecipe
class CurierulNal(BasicNewsRecipe):
title = u'Curierul Na\u0163ional'
__author__ = u'Silviu Cotoar\u0103'
description = ''
publisher = 'Curierul Na\u0163ional'
oldest_article = 5
language = 'ro'
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
category = 'Ziare,Stiri'
encoding = 'utf-8'
cover_url = 'http://www.curierulnational.ro/logo.gif'
conversion_options = {
'comments' : description
,'tags' : category
,'language' : language
,'publisher' : publisher
}
keep_only_tags = [
dict(name='div', attrs={'id':'col1'})
, dict(name='img', attrs={'id':'placeholder'})
]
remove_tags = [
dict(name='p', attrs={'id':['alteArticole']})
, dict(name='div', attrs={'id':['textSize']})
, dict(name='ul', attrs={'class':['unit-rating']})
, dict(name='div', attrs={'id':['comments']})
]
remove_tags_after = [
dict(name='ul', attrs={'class':'unit-rating'})
]
feeds = [
(u'Feeds', u'http://www.curierulnational.ro/feed.xml')
]
def preprocess_html(self, soup):
return self.adeify_images(soup)

View File

@ -0,0 +1,57 @@
# -*- coding: utf-8 -*-
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = u'2011, Silviu Cotoar\u0103'
'''
descopera.ro
'''
from calibre.web.feeds.news import BasicNewsRecipe
class Descopera(BasicNewsRecipe):
title = u'Descoper\u0103'
__author__ = u'Silviu Cotoar\u0103'
description = 'E lumea ta'
publisher = 'Descopera'
oldest_article = 5
language = 'ro'
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
category = 'Ziare,Reviste,Descopera'
encoding = 'utf-8'
cover_url = 'http://www.descopera.ro/images/header_images/logo.gif'
conversion_options = {
'comments' : description
,'tags' : category
,'language' : language
,'publisher' : publisher
}
keep_only_tags = [
dict(name='h1', attrs={'style':'font-family: Arial,Helvetica,sans-serif; font-size: 18px; color: rgb(51, 51, 51); font-weight: bold; margin: 10px 0pt; clear: both; float: left;width: 610px;'})
,dict(name='div', attrs={'style':'margin-right: 15px; margin-bottom: 15px; float: left;'})
, dict(name='p', attrs={'id':'itemDescription'})
,dict(name='div', attrs={'id':'itemBody'})
]
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://www.descopera.ro/rss')
]
def preprocess_html(self, soup):
return self.adeify_images(soup)

View File

@ -0,0 +1,55 @@
# -*- coding: utf-8 -*-
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = u'2011, Silviu Cotoar\u0103'
'''
ecuisine.ro
'''
from calibre.web.feeds.news import BasicNewsRecipe
class EcuisineRo(BasicNewsRecipe):
title = u'eCuisine'
__author__ = u'Silviu Cotoar\u0103'
description = u'Reinventeaz\u0103 pl\u0103cerea de a g\u0103ti'
publisher = 'eCuisine'
oldest_article = 5
language = 'ro'
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
category = 'Ziare,Retete,Bucatarie'
encoding = 'utf-8'
cover_url = ''
conversion_options = {
'comments' : description
,'tags' : category
,'language' : language
,'publisher' : publisher
}
keep_only_tags = [
dict(name='div', attrs={'class':'page-title'})
, dict(name='div', attrs={'class':'content clearfix'})
]
remove_tags = [
dict(name='ul', attrs={'id':['recipe-tabs']})
, dict(name='div', attrs={'class':['recipe-body-rating clearfix']})
, dict(name='div', attrs={'class':['recipe-body-flags']})
, dict(name='div', attrs={'id':['tweetmeme_button']})
, dict(name='div', attrs={'class':['fbshare']})
, dict(name='a', attrs={'class':['button-rounded']})
, dict(name='div', attrs={'class':['recipe-body-related']})
, dict(name='div', attrs={'class':['fbshare']})
, dict(name='div', attrs={'class':['link-wrapper']})
]
feeds = [
(u'Feeds', u'http://www.ecuisine.ro/rss')
]
def preprocess_html(self, soup):
return self.adeify_images(soup)

View File

@ -0,0 +1,43 @@
# -*- coding: utf-8 -*-
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = u'2011, Silviu Cotoar\u0103'
'''
egirl.ro
'''
from calibre.web.feeds.news import BasicNewsRecipe
class EgirlRo(BasicNewsRecipe):
title = u'egirl'
__author__ = u'Silviu Cotoar\u0103'
description = u'Necesar pentru tine'
publisher = u'egirl'
oldest_article = 5
language = 'ro'
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
category = 'Ziare,Reviste,Femei'
encoding = 'utf-8'
cover_url = 'http://www.egirl.ro/images/egirlNou/logo_egirl.gif'
conversion_options = {
'comments' : description
,'tags' : category
,'language' : language
,'publisher' : publisher
}
keep_only_tags = [
dict(name='div', attrs={'id':'title_art'})
, dict(name='div', attrs={'class':'content_style'})
]
feeds = [
(u'Feeds', u'http://www.egirl.ro/rss/egirl.xml')
]
def preprocess_html(self, soup):
return self.adeify_images(soup)

View File

@ -0,0 +1,53 @@
# -*- coding: utf-8 -*-
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = u'2011, Silviu Cotoar\u0103'
'''
fhm.ro
'''
from calibre.web.feeds.news import BasicNewsRecipe
class FHMro(BasicNewsRecipe):
title = u'FHM Ro'
__author__ = u'Silviu Cotoar\u0103'
description = u'Pentru c\u0103 noi putem'
publisher = 'FHM'
oldest_article = 5
language = 'ro'
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
category = 'Reviste'
encoding = 'utf-8'
cover_url = 'http://www.fhm.com/App_Resources/Images/Site/re-design/logo.gif'
conversion_options = {
'comments' : description
,'tags' : category
,'language' : language
,'publisher' : publisher
}
keep_only_tags = [
dict(name='div', attrs={'class':'contentMainTitle'})
, dict(name='div', attrs={'class':'entry'})
]
remove_tags_after = [
dict(name='div', attrs={'class':['ratingblock ']})
, dict(name='a', attrs={'rel':['tag']})
]
remove_tags = [
dict(name='div', attrs={'class':['ratingblock ']})
, dict(name='div', attrs={'class':['socialize-containter']})
]
feeds = [
(u'Feeds', u'http://www.fhm.ro/feed')
]
def preprocess_html(self, soup):
return self.adeify_images(soup)

View File

@ -0,0 +1,48 @@
# -*- coding: utf-8 -*-
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = u'2011, Silviu Cotoar\u0103'
'''
go4it.ro
'''
from calibre.web.feeds.news import BasicNewsRecipe
class Go4ITro(BasicNewsRecipe):
title = u'go4it'
__author__ = u'Silviu Cotoar\u0103'
description = 'Gadgeturi, Lifestyle, Tehnologie'
publisher = 'go4it'
oldest_article = 5
language = 'ro'
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
category = 'Reviste,Ziare,IT'
encoding = 'utf-8'
cover_url = 'http://www.go4it.ro/images/logo.png'
conversion_options = {
'comments' : description
,'tags' : category
,'language' : language
,'publisher' : publisher
}
keep_only_tags = [
dict(name='div', attrs={'class':'subTitle clearfix'})
, dict(name='div', attrs={'class':'story'})
]
remove_tags = [
dict(name='span', attrs={'class':['data']})
, dict(name='a', attrs={'class':['comments']})
]
feeds = [
(u'Feeds', u'http://feeds2.feedburner.com/Go4itro-Stiri')
]
def preprocess_html(self, soup):
return self.adeify_images(soup)

View File

@ -0,0 +1,43 @@
# -*- coding: utf-8 -*-
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = u'2011, Silviu Cotoar\u0103'
'''
hotcity.ro
'''
from calibre.web.feeds.news import BasicNewsRecipe
class HotcityRo(BasicNewsRecipe):
title = u'Hotcity'
__author__ = u'Silviu Cotoar\u0103'
description = u'Cultura urban\u0103 feminin\u0103'
publisher = 'Hotcity'
oldest_article = 5
language = 'ro'
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
category = 'Ziare,Reviste'
encoding = 'utf-8'
cover_url = 'http://www.hotcity.ro/i/bg_header.gif'
conversion_options = {
'comments' : description
,'tags' : category
,'language' : language
,'publisher' : publisher
}
keep_only_tags = [
dict(name='div', attrs={'class':'articol_title'})
, dict(name='div', attrs={'class':'text'})
]
feeds = [
(u'Feeds', u'http://www.hotcity.ro/rss')
]
def preprocess_html(self, soup):
return self.adeify_images(soup)

View File

@ -0,0 +1,52 @@
# -*- coding: utf-8 -*-
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = u'2011, Silviu Cotoar\u0103'
'''
intrefete.ro
'''
from calibre.web.feeds.news import BasicNewsRecipe
class Intrefete(BasicNewsRecipe):
title = u'\u00centre fete'
__author__ = u'Silviu Cotoar\u0103'
description = u'Petrece ziua cu stil, afl\u0103 ce e nou \u00eentre fete'
publisher = u'Intre fete'
oldest_article = 5
language = 'ro'
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
category = 'Ziare,Reviste,Femei'
encoding = 'utf-8'
cover_url = 'http://storage0.dms.mpinteractiv.ro/media/2/1401/16788/5878693/5/logo.jpg?width=300'
conversion_options = {
'comments' : description
,'tags' : category
,'language' : language
,'publisher' : publisher
}
keep_only_tags = [
dict(name='div', attrs={'class':'article'})
]
remove_tags = [
dict(name='div', attrs={'class':['author']})
, dict(name='div', attrs={'class':['tags']})
, dict(name='iframe', attrs={'scrolling':['no']})
]
remove_tags_after = [
dict(name='iframe', attrs={'scrolling':['no']})
]
feeds = [
(u'Feeds', u'http://www.intrefete.ro/rss/')
]
def preprocess_html(self, soup):
return self.adeify_images(soup)

View File

@ -0,0 +1,47 @@
# -*- coding: utf-8 -*-
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = u'2011, Silviu Cotoar\u0103'
'''
kudika.ro
'''
from calibre.web.feeds.news import BasicNewsRecipe
class Kudika(BasicNewsRecipe):
title = u'Kudika'
__author__ = u'Silviu Cotoar\u0103'
description = u'Revist\u0103 pentru femei'
publisher = 'Kudika'
oldest_article = 5
language = 'ro'
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
category = 'Ziare,Reviste,Femei'
encoding = 'utf-8'
cover_url = 'http://img.kudika.ro/images/template/page-logo.png'
conversion_options = {
'comments' : description
,'tags' : category
,'language' : language
,'publisher' : publisher
}
keep_only_tags = [
dict(name='div', attrs={'class':'header_recommend_article'}),
dict(name='div', attrs={'id':'intertext_women'})
]
remove_tags = [
dict(name='p', attrs={'class':['page_breadcrumbs']})
, dict(name='div', attrs={'class':['standard']})
, dict(name='div', attrs={'id':['recommend_allover']})
]
feeds = [ (u'Feeds', u'http://www.kudika.ro/feed.xml') ]
def preprocess_html(self, soup):
return self.adeify_images(soup)

View File

@ -31,7 +31,9 @@ class MPHKRecipe(BasicNewsRecipe):
oldest_article = 1
max_articles_per_feed = 100
__author__ = 'Eddie Lau'
description = 'Hong Kong Chinese Newspaper (http://news.mingpao.com)'
description = ('Hong Kong Chinese Newspaper (http://news.mingpao.com). If'
'you are using a Kindle with firmware < 3.1, customize the'
'recipe')
publisher = 'MingPao'
category = 'Chinese, News, Hong Kong'
remove_javascript = True

View File

@ -0,0 +1,48 @@
# -*- coding: utf-8 -*-
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = u'2011, Silviu Cotoar\u0103'
'''
natgeo.ro
'''
from calibre.web.feeds.news import BasicNewsRecipe
class NationalGeoRo(BasicNewsRecipe):
title = u'National Geographic RO'
__author__ = u'Silviu Cotoar\u0103'
description = u'S\u0103 avem grij\u0103 de planet\u0103'
publisher = 'National Geographic'
oldest_article = 5
language = 'ro'
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
category = 'Reviste'
encoding = 'utf-8'
cover_url = 'http://wiki.benecke.com/images/c/c4/NatGeographic_Logo.jpg'
conversion_options = {
'comments' : description
,'tags' : category
,'language' : language
,'publisher' : publisher
}
keep_only_tags = [
dict(name='h2', attrs={'class':'contentheading clearfix'})
, dict(name='div', attrs={'class':'article-content'})
]
remove_tags = [
dict(name='div', attrs={'class':['phocagallery']})
]
feeds = [
(u'Feeds', u'http://www.natgeo.ro/index.php?format=feed&type=rss')
]
def preprocess_html(self, soup):
return self.adeify_images(soup)

View File

@ -0,0 +1,59 @@
# -*- coding: utf-8 -*-
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = u'2011, Silviu Cotoar\u0103'
'''
romanialibera.ro
'''
from calibre.web.feeds.news import BasicNewsRecipe
class RomaniaLibera(BasicNewsRecipe):
title = u'Rom\u00e2nia Liber\u0103'
__author__ = u'Silviu Cotoar\u0103'
description = u'Rom\u00e2nia Liber\u0103'
publisher = u'Rom\u00e2nia Liber\u0103'
oldest_article = 5
language = 'ro'
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
category = 'Ziare,Stiri'
encoding = 'utf-8'
cover_url = 'http://www.romanialibera.ro/templates/lilac/images/sigla_1.gif'
conversion_options = {
'comments' : description
,'tags' : category
,'language' : language
,'publisher' : publisher
}
keep_only_tags = [
dict(name='div', attrs={'id':'articol'})
]
remove_tags = [
dict(name='div', attrs={'id':['art_actions']})
, dict(name='div', attrs={'class':['stats']})
, dict(name='div', attrs={'class':['data']})
, dict(name='div', attrs={'class':['autori']})
, dict(name='div', attrs={'class':['banda_explicatii_text']})
, dict(name='td', attrs={'class':['connect_widget_vertical_center connect_widget_button_cell']})
, dict(name='div', attrs={'class':['aceeasi_tema']})
, dict(name='div', attrs={'class':['art_after_text']})
, dict(name='div', attrs={'class':['navigare']})
, dict(name='div', attrs={'id':['art_text_left']})
]
remove_tags_after = [
dict(name='div', attrs={'class':'art_after_text'})
]
feeds = [
(u'Feeds', u'http://www.romanialibera.ro/rss.xml')
]
def preprocess_html(self, soup):
return self.adeify_images(soup)

View File

@ -0,0 +1,55 @@
# -*- coding: utf-8 -*-
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = u'2011, Silviu Cotoar\u0103'
'''
sfin.ro
'''
from calibre.web.feeds.news import BasicNewsRecipe
class Sfin(BasicNewsRecipe):
title = u'S\u0103pt\u0103m\u00e2na Financiar\u0103'
__author__ = u'Silviu Cotoar\u0103'
description = 'SFIN'
publisher = 'SFIN'
oldest_article = 5
language = 'ro'
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
category = 'Ziare,Stiri,Economie,Business'
encoding = 'utf-8'
cover_url = 'http://img.9am.ro/images/logo_surse/saptamana_financiara.gif'
conversion_options = {
'comments' : description
,'tags' : category
,'language' : language
,'publisher' : publisher
}
keep_only_tags = [
dict(name='div', attrs={'class':'col2ContentLeft'})
, dict(name='div', attrs={'id':'contentArticol'})
]
remove_tags = [
dict(name='div', attrs={'class':['infoArticol']})
, dict(name='div', attrs={'class':['separator']})
, dict(name='div', attrs={'class':['tags']})
, dict(name='div', attrs={'id':['comments']})
, dict(name='div', attrs={'class':'boxForm'})
]
remove_tags_after = [
dict(name='div', attrs={'class':'tags'})
]
feeds = [
(u'Feeds', u'http://www.sfin.ro/rss')
]
def preprocess_html(self, soup):
return self.adeify_images(soup)

View File

@ -0,0 +1,51 @@
# -*- coding: utf-8 -*-
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = u'2011, Silviu Cotoar\u0103'
'''
superbebe.ro
'''
from calibre.web.feeds.news import BasicNewsRecipe
class Superbebe(BasicNewsRecipe):
title = u'Superbebe'
__author__ = u'Silviu Cotoar\u0103'
description = 'Superbebe'
publisher = 'Superbebe'
oldest_article = 5
language = 'ro'
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
category = 'Ziare,Reviste,Bebe,Mamici'
encoding = 'utf-8'
cover_url = 'http://www.superbebe.ro/images/superbebe.gif'
conversion_options = {
'comments' : description
,'tags' : category
,'language' : language
,'publisher' : publisher
}
keep_only_tags = [
dict(name='div', attrs={'class':'articol'})
]
remove_tags = [
dict(name='div', attrs={'class':['info']})
, dict(name='div', attrs={'class':['tags']})
]
remove_tags_after = [
dict(name='div', attrs={'class':['tags']})
]
feeds = [
(u'Feeds', u'http://www.superbebe.ro/rss')
]
def preprocess_html(self, soup):
return self.adeify_images(soup)

View File

@ -8,6 +8,8 @@ swiatkindle.pl
import re
from calibre.web.feeds.news import BasicNewsRecipe
class swiatkindle(BasicNewsRecipe):
title = u'Swiat Kindle'
description = u'Blog o czytniku Amazon Kindle. Wersje, ksi\u0105\u017cki, kupowanie i korzystanie w Polsce'

View File

@ -0,0 +1,54 @@
# -*- coding: utf-8 -*-
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = u'2011, Silviu Cotoar\u0103'
'''
tabu.ro
'''
from calibre.web.feeds.news import BasicNewsRecipe
class TabuRo(BasicNewsRecipe):
title = u'Tabu'
__author__ = u'Silviu Cotoar\u0103'
description = 'Cel mai curajos site de femei'
publisher = 'Tabu'
oldest_article = 5
language = 'ro'
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
category = 'Ziare,Reviste,Femei'
encoding = 'utf-8'
cover_url = 'http://www.tabu.ro/img/tabu-logo2.png'
conversion_options = {
'comments' : description
,'tags' : category
,'language' : language
,'publisher' : publisher
}
keep_only_tags = [
dict(name='div', attrs={'id':'Article'}),
]
remove_tags = [
dict(name='div', attrs={'id':['advertisementArticle']}),
dict(name='div', attrs={'class':'voting_number'}),
dict(name='div', attrs={'id':'number_votes'}),
dict(name='div', attrs={'id':'rating_one'}),
dict(name='div', attrs={'class':'float: right;'})
]
remove_tags_after = [
dict(name='div', attrs={'id':'comments'}),
]
feeds = [
(u'Feeds', u'http://www.tabu.ro/rss_all.xml')
]
def preprocess_html(self, soup):
return self.adeify_images(soup)

View File

@ -0,0 +1,56 @@
# -*- coding: utf-8 -*-
#!/usr/bin/env python
__license__ = 'GPL v3'
__copyright__ = u'2011, Silviu Cotoar\u0103'
'''
unica.ro
'''
from calibre.web.feeds.news import BasicNewsRecipe
class Unica(BasicNewsRecipe):
title = u'Unica'
__author__ = u'Silviu Cotoar\u0103'
description = 'Asa cum esti tu'
publisher = 'Unica'
oldest_article = 5
language = 'ro'
max_articles_per_feed = 100
no_stylesheets = True
use_embedded_content = False
category = 'Ziare,Reviste,Femei'
encoding = 'utf-8'
cover_url = 'http://www.unica.ro/fileadmin/images/logo.gif'
conversion_options = {
'comments' : description
,'tags' : category
,'language' : language
,'publisher' : publisher
}
keep_only_tags = [
dict(name='div', attrs={'id':'sticky'})
, dict(name='p', attrs={'class':'bodytext'})
]
remove_tags = [
dict(name='div', attrs={'class':['top-links']})
, dict(name='div', attrs={'id':['autor_name']})
, dict(name='div', attrs={'class':['box-r']})
, dict(name='div', attrs={'class':['category']})
, dict(name='div', attrs={'class':['data']})
]
remove_tags_after = [
dict(name='ul', attrs={'class':'pager'})
]
feeds = [
(u'Feeds', u'http://www.unica.ro/rss.html')
]
def preprocess_html(self, soup):
return self.adeify_images(soup)

View File

@ -2356,7 +2356,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
rating = int(rating)
self.conn.execute('DELETE FROM books_ratings_link WHERE book=?',(id,))
rat = self.conn.get('SELECT id FROM ratings WHERE rating=?', (rating,), all=False)
rat = rat if rat else self.conn.execute('INSERT INTO ratings(rating) VALUES (?)', (rating,)).lastrowid
rat = rat if rat is not None else self.conn.execute('INSERT INTO ratings(rating) VALUES (?)', (rating,)).lastrowid
self.conn.execute('INSERT INTO books_ratings_link(book, rating) VALUES (?,?)', (id, rat))
self.dirtied([id], commit=False)
if commit:

View File

@ -313,24 +313,10 @@ class CategoryFeed(NavFeed):
ignore_count = False
if which == 'search':
ignore_count = True
uc = None
if which.endswith(':'):
# We have a user category. Translate back to original categories
uc = {}
try:
ucs = db.prefs['user_categories']
ucs = ucs.get(which[:-1])
for name, category, index in ucs:
uc[name] = category
except:
import traceback
traceback.print_exc()
uc = None
for item in items:
if uc: which = uc.get(item.name, which)
self.root.append(CATALOG_ENTRY(item, which, base_href, version,
self.root.append(CATALOG_ENTRY(item, item.category, base_href, version,
updated, ignore_count=ignore_count,
add_kind=uc is not None))
add_kind=which != item.category))
class CategoryGroupFeed(NavFeed):