diff --git a/Changelog.yaml b/Changelog.yaml index 3a74248835..1fcb3f0e0b 100644 --- a/Changelog.yaml +++ b/Changelog.yaml @@ -4,6 +4,122 @@ # for important features/bug fixes. # Also, each release can have new and improved recipes. +- version: 0.7.42 + date: 2011-01-21 + + new features: + - title: "0.7.42 is a re-release of 0.7.41, because conversion to MOBI was broken in 0.7.41" + + - title: "Conversions: Replace the remove header/footer options with a more geenric search replace option, that allows you to not only remove but also replace text" + + - title: "Conversion: The preprocess html option has now become a new 'Heuristic Processing' option which allows you to control exactly which heuristics are used" + + - title: "Conversion: Various improvements to Heuristic Processing (used to be preprocess HTML)" + + - title: "When adding empty books to calibre, optionally set the author to the author of the currently selected book" + tickets: [7702] + + - title: "Device drivers for the Archos 101, SmatQ T7 and Acer Lumiread" + + - title: "Catalog generation: Make By Authors optional" + + - title: "Allow bulk editing of Date and Published columns." + + - title: "Add a little button to clear date and published values to the edit metadata dialogs" + + - title: "When adding books by ISBN, allow the specification of special tags that will be added to the new book entries" + tickets: [8436] + + - title: "Completion on multiple authors" + tickets: [8405] + + - title: "Add AZW to default list of internally viewed formats, a I am tired of getting tickets about it" + + - title: "Nicer error message when catalog generation fails" + + - title: "Add capitalize option to context menus in the edit metadata dialog" + + bug fixes: + - title: "RTF Input: Fix regression in 0.7.40 that broke conversion of some old style RTF files" + + - title: "Fix Tag editor forgets position" + tickets: [8271] + + - title: "When converting books in the calibre GUI, override metadata from the input document, even when empty." + description: > + "So if you have removed all the tags and comments in the calibre GUI for the book in the calibre GUI, but the actual file that is being converted still has tags and comments, they are ignored. This affects only conversions in the calibre GUI, not from the command line via ebook-convert." + tickets: [8390] + + - title: "Fix memory leak when switching libraries" + + - title: "RTF Output: Fix incorrent spacing between letters." + tickets: [8422] + + - title: "Catalog generation: Add composite columns to Merge Comments eligible types" + + - title: "Add a confirmation when closing the add a custom news source dialog." + tickets: [8460] + + - title: "Another workaround for LibraryThing UA sniffing that was preventing series metadata download, sigh." + tickets: [8477] + + - title: "PD Novel driver: Put books on the SD card into the eBooks folder" + + - title: "When shortening filepaths to conform to windows path length limitations, remove text from the middle of each component instead of the ends." + tickets: [8451] + + - title: "Make completion in most places case insensitive" + tickets: [8441] + + - title: "Fix regression that caused the N key to stop working when editing a Yes/no column" + tickets: [8417] + + - title: "Email: Fix bug when connecting to SMTP relays that use MD5 auth" + + - title: "MOBI Output: Fix bug that could cause a link pointing to the start of a section to go to a point later in the section is the section contained an empty id attribute" + + - title: "When auto converting books and the device is unplugged, do not raise an error." + tickets: [8426] + + - title: "Ebook-viewer: Display cover when viewing FB2 files" + + - title: "MOBI Input: Special case handling of emptu div tags with a defined height used as paragraph separators." + tickets: [8391] + + - title: "Fix sorting of author names into sub categories by first letter in the Tag Browser when the first letter has diacritics" + tickets: [8378] + + - title: "Fix regression in 0.7.40 that caused commas in author names to become | when converting/saving to disk" + + - title: "Fix view specific format on a book with no formats gives an error" + tickets: [8352] + + + improved recipes: + - Blic + - Las Vegas Review Journal + - La Vanguardia + - New York Times + - El Pais + - Seattle Times + - Ars Technica + - Dilbert + - Nature News + + new recipes: + - title: "kath.net" + author: "Bobus" + + - title: "iHNed" + author: "Karel Bilek" + + - title: "Gulf News" + author: "Darko Miletic" + + - title: "South Africa Mail and Guardian" + author: "77ja65" + + - version: 0.7.40 date: 2011-01-14 diff --git a/resources/images/news/dailytportal.png b/resources/images/news/dailytportal.png new file mode 100644 index 0000000000..38b06e675a Binary files /dev/null and b/resources/images/news/dailytportal.png differ diff --git a/resources/recipes/20_minutos.recipe b/resources/recipes/20_minutos.recipe new file mode 100644 index 0000000000..8205c918f5 --- /dev/null +++ b/resources/recipes/20_minutos.recipe @@ -0,0 +1,17 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class AdvancedUserRecipe1295310874(BasicNewsRecipe): + title = u'20 Minutos (Boletin)' + __author__ = 'Luis Hernandez' + description = 'Periódico gratuito en español' + cover_url = 'http://estaticos.20minutos.es/mmedia/especiales/corporativo/css/img/logotipos_grupo20minutos.gif' + language = 'es' + + oldest_article = 2 + max_articles_per_feed = 50 + + feeds = [(u'VESPERTINO', u'http://20minutos.feedsportal.com/c/32489/f/478284/index.rss') + , (u'DEPORTES', u'http://20minutos.feedsportal.com/c/32489/f/478286/index.rss') + , (u'CULTURA', u'http://www.20minutos.es/rss/ocio/') + , (u'TV', u'http://20minutos.feedsportal.com/c/32489/f/490877/index.rss') +] diff --git a/resources/recipes/abc.recipe b/resources/recipes/abc.recipe new file mode 100644 index 0000000000..c4ae0aa308 --- /dev/null +++ b/resources/recipes/abc.recipe @@ -0,0 +1,43 @@ +import re +from calibre.web.feeds.news import BasicNewsRecipe + +class ABCRecipe(BasicNewsRecipe): + title = u'ABC Linuxu' + oldest_article = 5 + max_articles_per_feed = 3#5 + __author__ = 'Funthomas' + language = 'cs' + + feeds = [ + #(u'Blogy', u'http://www.abclinuxu.cz/auto/blogDigest.rss'), + (u'Články', u'http://www.abclinuxu.cz/auto/abc.rss'), + (u'Zprávičky','http://www.abclinuxu.cz/auto/zpravicky.rss') + ] + + remove_javascript = True + no_stylesheets = True + remove_attributes = ['width','height'] + + remove_tags_before = dict(name='h1') + remove_tags = [ + dict(attrs={'class':['meta-vypis','page_tools','cl_perex']}), + dict(attrs={'class':['cl_nadpis-link','komix-nav']}) + ] + + remove_tags_after = [ + dict(name='div',attrs={'class':['cl_perex','komix-nav']}), + dict(attrs={'class':['meta-vypis','page_tools']}), + dict(name='',attrs={'':''}), + ] + + + preprocess_regexps = [ + (re.compile(r'.*
', re.DOTALL),lambda match: '
')
+ ]
+ def print_version(self, url):
+ return url + '?varianta=print&noDiz'
+
+ extra_css = '''
+ h1 {font-size:130%; font-weight:bold}
+ h3 {font-size:111%; font-weight:bold}
+ '''
diff --git a/resources/recipes/dailytportal.recipe b/resources/recipes/dailytportal.recipe
new file mode 100644
index 0000000000..6e2646bfca
--- /dev/null
+++ b/resources/recipes/dailytportal.recipe
@@ -0,0 +1,66 @@
+__license__ = 'GPL v3'
+__copyright__ = '2011, Darko Miletic [^<]* '),
+ (re.compile(u'
', re.DOTALL|re.IGNORECASE),
+ lambda m: '')
+ ]
+
+
+
+ def print_version(self, url):
+ return url + '&template=printart'
+
+ def parse_index(self):
+ totalfeeds = []
+ lfeeds = self.get_feeds()
+ for feedobj in lfeeds:
+ feedtitle, feedurl = feedobj
+ self.log('\tFeedurl: ', feedurl)
+ self.report_progress(0, _('Fetching feed')+' %s...'%(feedtitle if feedtitle else feedurl))
+ articles = []
+ page = urllib2.urlopen(feedurl).read()
+
+ if feedtitle == 'Reviews' or feedtitle == 'Great Movies':
+ pattern = self.patternReviews
+ elif feedtitle == 'Commentary':
+ pattern = self.patternCommentary
+ elif feedtitle == 'People':
+ pattern = self.patternPeople
+ elif feedtitle == 'Glossary':
+ pattern = self.patternGlossary
+
+
+ regex = re.compile(pattern, re.IGNORECASE|re.DOTALL)
+
+ for match in regex.finditer(page):
+ if feedtitle == 'Reviews' or feedtitle == 'Great Movies':
+ movietitle = match.group(1)
+ thislink = match.group(2)
+ description = match.group(3)
+ elif feedtitle == 'Commentary' or feedtitle == 'People' or feedtitle == 'Glossary':
+ thislink = match.group(1)
+ description = match.group(2)
+
+ self.log(thislink)
+
+ for link in BeautifulSoup(thislink, parseOnlyThese=SoupStrainer('a')):
+ thisurl = self.PREFIX + link['href']
+ thislinktext = self.tag_to_string(link)
+
+ if feedtitle == 'Reviews' or feedtitle == 'Great Movies':
+ thistitle = movietitle
+ elif feedtitle == 'Commentary' or feedtitle == 'People' or feedtitle == 'Glossary':
+ thistitle = thislinktext
+
+ if thistitle == '':
+ thistitle = 'Ebert Journal Post'
+
+ """
+ pattern2 = r'AID=\/(.*?)\/'
+ reg2 = re.compile(pattern2, re.IGNORECASE|re.DOTALL)
+ match2 = reg2.search(thisurl)
+ date = match2.group(1)
+ c = time.strptime(match2.group(1),"%Y%m%d")
+ date=time.strftime("%a, %b %d, %Y", c)
+ self.log(date)
+ """
+
+ articles.append({
+ 'title' :thistitle
+ ,'date' :''
+ ,'url' :thisurl
+ ,'description':description
+ })
+ totalfeeds.append((feedtitle, articles))
+
+ return totalfeeds
+
diff --git a/resources/recipes/root.recipe b/resources/recipes/root.recipe
new file mode 100644
index 0000000000..da065829a7
--- /dev/null
+++ b/resources/recipes/root.recipe
@@ -0,0 +1,39 @@
+import re
+from calibre.web.feeds.news import BasicNewsRecipe
+
+class AdvancedUserRecipe1289939440(BasicNewsRecipe):
+ __author__ = 'FunThomas'
+ title = u'Root.cz'
+ description = u'Zprávičky a články z Root.cz'
+ publisher = u'Internet Info, s.r.o'
+ oldest_article = 2 #max stari clanku ve dnech
+ max_articles_per_feed = 50 #max pocet clanku na feed
+
+ feeds = [
+ (u'Články', u'http://www.root.cz/rss/clanky/'),
+ (u'Zprávičky', u'http://www.root.cz/rss/zpravicky/')
+ ]
+
+ publication_type = u'magazine'
+ language = u'cs'
+ no_stylesheets = True
+ remove_javascript = True
+ cover_url = u'http://i.iinfo.cz/urs/logo-root-bila-oranzova-cerna-111089527143118.gif'
+
+ remove_attributes = ['width','height','href'] #,'href'
+ keep_only_tags = [
+ dict(name='h1'),
+ dict(name='a',attrs={'class':'author'}),
+ dict(name='p', attrs={'class':'intro'}),
+ dict(name='div',attrs={'class':'urs'})
+ ]
+
+ preprocess_regexps = [
+ (re.compile(u']*>', re.DOTALL),lambda match: '
Tričko tučňák.*