diff --git a/Changelog.yaml b/Changelog.yaml index 7e84413bc8..c19f231938 100644 --- a/Changelog.yaml +++ b/Changelog.yaml @@ -19,6 +19,113 @@ # new recipes: # - title: +- version: 0.9.2 + date: 2012-10-11 + + new features: + - title: "Wireless driver: Speed up deleting of multiple books" + + - title: "E-book viewer: Add options to hide the scrollbar and show reading position in full screen mode." + tickets: [1047450] + + - title: "News download: Add a field to allow recipe authors to tell calibre to remove duplicate articles that a re present in more than one section from the download." + + - title: "Metadata download: Turn off the use of the published date for the earliest edition a book as the published date. The earliest edition was identified via worldcat.org, which has rather poor data, leading to the occasional incorrect result. If you want this feature back, you can turn it on again via Preferences->Metadata download." + + bug fixes: + - title: "ODT Input: More workarounds for the image positioning markup produced by newer versions of LibreOffice." + tickets: [1063207] + + - title: "Metadata download dialog: Fix selected cover being changed when covers are re-sorted after download completes" + + - title: "MTP driver: Ignore errors when getting the driveinfo.calibre file from the device and simply regenerate it" + + - title: "E-book viewer: Use the system locale settings to display the 24/12 hour clock in full screen mode" + tickets: [1063209] + + - title: "Content Server: Make OPDS initial page respect the fields to display tweak" + + - title: "Fix regression that caused calibre to not use OPF files when adding books recursively from directories with multiple books per directory" + + - title: "KF8 Output: Fix handling of input documents that have URL unsafe characters in the file names of their images." + tickets: [1062477] + + - title: "Fix enumeration type custom column not being merged." + tickets: [1061602] + + improved recipes: + - Pubblico Giornale + - Der Spiegel + - Shortlist + - FHM UK + - Countryfile + - Cosmo UK + - The Sun UK + - NME + + new recipes: + - title: PVP Online, Mobile Nations, The Verge and Television Without Pity + author: Krittika Goyal + +- version: 0.9.1 + date: 2012-10-05 + + new features: + - title: "New driver for the Kobo Touch version 2.0+ firmware and Kobo Glo and Mini. See http://www.mobileread.com/forums/showthread.php?t=192863 for details" + tickets: [1024983,1059585] + + - title: "Driver for Motorola Defy XT" + tickets: [1061903] + + - title: "Wireless driver: Always use automatic metadata management, regardless of the setting in Preferences->Devices" + + - title: "Sending books by email: Allow sending to multiple email addresses at once separated by commas." + tickets: [1052332] + + - title: "KF8 Output: Add the css passed in through the extra css conversion option to the generated inline ToC." + tickets: [1052343] + + - title: "Windows: No longer use fontconfig to scan the system for available fonts. Instead use the Windows API. Should fix crashes/instability caused by fonts that fontconfig cannot handle" + + - title: "When editing a blank (undefined) published date in the edit metadata dialog, have the calendar popup jump to the current date instead of the date 1-1-101" + tickets: [1058531] + + - title: "FB2 Input: Add support for th, code and strikethrough tags and also rowspan, colspan and align attributes." + tickets: [1059351,1058591] + + bug fixes: + - title: "Get Books: Update Woblink" + + - title: "Position the next selected book better after deleting multiple books from the library view" + tickets: [1051135] + + - title: "Allow using the Enter key to select the cover in the metadata download dialog" + tickets: [1060472] + + - title: "PDF Output: Handle embedded fonts better on linux" + + - title: "HTML Input: Guess mimetype correctly for references to image files without file extensions." + tickets: [1059349] + + - title: "Catalog generation: Workaround for bug in the ICU library on older OS X systems that caused catalog generation to fail when certain non-ascii characters are present in the metadata." + tickets: [1057862] + + - title: "Wireless driver: Do not abort if BonJour registration fails, as we can still use broadcast to connect" + + - title: "KF8 Output: Fix invalid output being generated for some files with very large blocks of contiguous non-ascii text" + + improved recipes: + - FC Knudde + - Stamgaten + - Foreign Policy + - Washington Post + - Twitch Films + - Nature News + + new recipes: + - title: IOL News and The New Age + author: Darko Miletic + - version: 0.9.0 date: 2012-09-28 diff --git a/manual/gui.rst b/manual/gui.rst index 4d276664f6..a51ced54d3 100755 --- a/manual/gui.rst +++ b/manual/gui.rst @@ -49,9 +49,9 @@ Add books 1. **Add books from a single directory**: Opens a file chooser dialog and allows you to specify which books in a directory should be added. This action is *context sensitive*, i.e. it depends on which :ref:`catalog ` you have selected. If you have selected the :guilabel:`Library`, books will be added to the library. If you have selected the ebook reader device, the books will be uploaded to the device, and so on. - 2. **Add books from directories, including sub-directories (One book per directory, assumes every ebook file is the same book in a different format)**: Allows you to choose a directory. The directory and all its sub-directories are scanned recursively, and any ebooks found are added to the library. |app| assumes that each directory contains a single book. All ebook files in a directory are assumed to be the same book in different formats. This action is the inverse of the :ref:`Save to disk ` action, i.e. you can :guilabel:`Save to disk`, delete the books and re-add them with no lost information except for the date. + 2. **Add books from directories, including sub-directories (One book per directory, assumes every ebook file is the same book in a different format)**: Allows you to choose a directory. The directory and all its sub-directories are scanned recursively, and any ebooks found are added to the library. |app| assumes that each directory contains a single book. All ebook files in a directory are assumed to be the same book in different formats. This action is the inverse of the :ref:`Save to disk ` action, i.e. you can :guilabel:`Save to disk`, delete the books and re-add them with no lost information except for the date (this assumes you have not changed any of the setting for the Save to disk action). - 3. **Add books from directories, including sub-directories (Multiple books per directory, assumes every ebook file is a different book)**: Allows you to choose a directory. The directory and all its sub-directories are scanned recursively and any ebooks found are added to the library. |app| assumes that each directory contains many books. All ebook files with the same name in a directory are assumed to be the same book in different formats. Ebooks with different names are added as different books. This action is the inverse of the :ref:`Save to disk ` action, i.e. you can :guilabel:`Save to disk`, delete the books and re-add them with no lost information except for the date. + 3. **Add books from directories, including sub-directories (Multiple books per directory, assumes every ebook file is a different book)**: Allows you to choose a directory. The directory and all its sub-directories are scanned recursively and any ebooks found are added to the library. |app| assumes that each directory contains many books. All ebook files with the same name in a directory are assumed to be the same book in different formats. Ebooks with different names are added as different books. 4. **Add empty book. (Book Entry with no formats)**: Allows you to create a blank book record. This can be used to then manually fill out the information about a book that you may not have yet in your collection. diff --git a/manual/template_lang.rst b/manual/template_lang.rst index fe62547ef1..b4926b8e42 100644 --- a/manual/template_lang.rst +++ b/manual/template_lang.rst @@ -271,6 +271,8 @@ The following functions are available in addition to those described in single-f ap : use a 12-hour clock instead of a 24-hour clock, with 'ap' replaced by the localized string for am or pm. AP : use a 12-hour clock instead of a 24-hour clock, with 'AP' replaced by the localized string for AM or PM. iso : the date with time and timezone. Must be the only format present. + + You might get unexpected results if the date you are formatting contains localized month names, which can happen if you changed the format tweaks to contain MMMM. In this case, instead of using something like ``{pubdate:format_date(yyyy)}``, write the template using template program mode as in ``{:'format_date(raw_field('pubdate'),'yyyy')'}``. * finish_formatting(val, fmt, prefix, suffix) -- apply the format, prefix, and suffix to a value in the same way as done in a template like ``{series_index:05.2f| - |- }``. This function is provided to ease conversion of complex single-function- or template-program-mode templates to :ref:`general program mode ` (see below) to take advantage of GPM template compilation. For example, the following program produces the same output as the above template:: diff --git a/recipes/cosmopolitan_uk.recipe b/recipes/cosmopolitan_uk.recipe index ae23be224d..078718f6f7 100644 --- a/recipes/cosmopolitan_uk.recipe +++ b/recipes/cosmopolitan_uk.recipe @@ -15,6 +15,7 @@ class AdvancedUserRecipe1306097511(BasicNewsRecipe): max_articles_per_feed = 20 remove_empty_feeds = True remove_javascript = True + ignore_duplicate_articles = {'title'} preprocess_regexps = [ (re.compile(r'.*?', re.IGNORECASE | re.DOTALL), lambda match: '')] diff --git a/recipes/countryfile.recipe b/recipes/countryfile.recipe index 71977048c7..4f2e8cd95f 100644 --- a/recipes/countryfile.recipe +++ b/recipes/countryfile.recipe @@ -1,11 +1,13 @@ from calibre import browser from calibre.web.feeds.news import BasicNewsRecipe +import re + class AdvancedUserRecipe1325006965(BasicNewsRecipe): title = u'Countryfile.com' #cover_url = 'http://www.countryfile.com/sites/default/files/imagecache/160px_wide/cover/2_1.jpg' __author__ = 'Dave Asbury' description = 'The official website of Countryfile Magazine' - # last updated 9/9//12 + # last updated 7/10/12 language = 'en_GB' oldest_article = 30 max_articles_per_feed = 25 @@ -13,12 +15,14 @@ class AdvancedUserRecipe1325006965(BasicNewsRecipe): no_stylesheets = True auto_cleanup = True #articles_are_obfuscated = True + ignore_duplicate_articles = {'title'} def get_cover_url(self): soup = self.index_to_soup('http://www.countryfile.com/') - cov = soup.find(attrs={'class' : 'imagecache imagecache-160px_wide imagecache-linked imagecache-160px_wide_linked'}) + + cov = soup.find(attrs={'width' : '160', 'class' : re.compile('imagecache imagecache-160px_wide')}) print '******** ',cov,' ***' cov2 = str(cov) - cov2=cov2[140:223] + cov2=cov2[10:101] print '******** ',cov2,' ***' #cov2='http://www.countryfile.com/sites/default/files/imagecache/160px_wide/cover/1b_0.jpg' # try to get cover - if can't get known cover @@ -40,3 +44,6 @@ class AdvancedUserRecipe1325006965(BasicNewsRecipe): (u'Country News', u'http://www.countryfile.com/rss/news'), (u'Countryside', u'http://www.countryfile.com/rss/countryside'), ] + + + diff --git a/recipes/der_spiegel.recipe b/recipes/der_spiegel.recipe index 1e94785233..3a12378405 100644 --- a/recipes/der_spiegel.recipe +++ b/recipes/der_spiegel.recipe @@ -72,7 +72,7 @@ class DerSpiegel(BasicNewsRecipe): for article in section.findNextSiblings(['dd','dt']): if article.name == 'dt': break - link = article.find('a') + link = article.find('a', href=True) title = self.tag_to_string(link).strip() if title in self.empty_articles: continue diff --git a/recipes/fc_knudde.recipe b/recipes/fc_knudde.recipe index 8c80f1e949..103a777ecf 100644 --- a/recipes/fc_knudde.recipe +++ b/recipes/fc_knudde.recipe @@ -15,5 +15,6 @@ class AdvancedUserRecipe1347706704(BasicNewsRecipe): remove_tags_before = dict(id='title') remove_tags_after = dict(attrs={'class':'entry-content rich-content'}) use_embedded_content = True + extra_css = 'img{border:0;padding:0;margin:0;width:100%}' feeds = [(u'FC Knudde', u'http://www.nusport.nl/feeds/rss/fc-knudde.rss')] diff --git a/recipes/fhm_uk.recipe b/recipes/fhm_uk.recipe index 84455ddd3c..ffcb411807 100644 --- a/recipes/fhm_uk.recipe +++ b/recipes/fhm_uk.recipe @@ -1,5 +1,6 @@ from calibre.web.feeds.news import BasicNewsRecipe + class AdvancedUserRecipe1325006965(BasicNewsRecipe): title = u'FHM UK' description = 'Good News for Men.' @@ -7,14 +8,15 @@ class AdvancedUserRecipe1325006965(BasicNewsRecipe): # cover_url = 'http://profile.ak.fbcdn.net/hprofile-ak-snc4/373529_38324934806_64930243_n.jpg' masthead_url = 'http://www.fhm.com/App_Resources/Images/Site/re-design/logo.gif' __author__ = 'Dave Asbury' - # last updated 1/7/12 + # last updated 7/10/12 language = 'en_GB' - oldest_article = 28 - max_articles_per_feed = 8 + oldest_article = 31 + max_articles_per_feed = 15 remove_empty_feeds = True no_stylesheets = True #auto_cleanup = True # articles_are_obfuscated = True + keep_only_tags = [ dict(name='h1'), dict(name='img',attrs={'id' : 'ctl00_Body_imgMainImage'}), @@ -28,14 +30,12 @@ class AdvancedUserRecipe1325006965(BasicNewsRecipe): ] feeds = [ - (u'Homepage 1',u'http://feed43.com/6655867614547036.xml'), - (u'Homepage 2',u'http://feed43.com/4167731873103110.xml'), - (u'Homepage 3',u'http://feed43.com/7667138788771570.xml'), - (u'Homepage 4',u'http://feed43.com/6550421522527341.xml'), - (u'Funny - The Very Best Of The Internet',u'http://feed43.com/4538510106331565.xml'), - (u'Gaming',u'http://feed43.com/6537162612465672.xml'), - (u'Girls',u'http://feed43.com/4574262733341068.xml'),# edit link http://feed43.com/feed.html?name=4574262733341068 - ] + # repeatable search = {|}{%}{|}

{*}

+ (u'Homepage',u'http://rss.feedsportal.com/c/375/f/434908/index.rss'), + (u'Funny',u'http://rss.feedsportal.com/c/375/f/434910/index.rss'), + (u'Girls',u'http://rss.feedsportal.com/c/375/f/434913/index.rss'), +] + extra_css = ''' h1{font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:large;} diff --git a/recipes/icons/iol_za.png b/recipes/icons/iol_za.png new file mode 100644 index 0000000000..1c3d207377 Binary files /dev/null and b/recipes/icons/iol_za.png differ diff --git a/recipes/icons/the_new_age_za.png b/recipes/icons/the_new_age_za.png new file mode 100644 index 0000000000..738da62d38 Binary files /dev/null and b/recipes/icons/the_new_age_za.png differ diff --git a/recipes/iol_za.recipe b/recipes/iol_za.recipe new file mode 100644 index 0000000000..0354d5e471 --- /dev/null +++ b/recipes/iol_za.recipe @@ -0,0 +1,47 @@ +__license__ = 'GPL v3' +__copyright__ = '2012, Darko Miletic ' +''' +www.iol.co.za/news +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class IOL_za(BasicNewsRecipe): + title = 'IOL News' + __author__ = 'Darko Miletic' + description = "South Africa's Premier Online News Source. Discover the world of IOL, News South Africa, Sport, Business, Financial, World News, Entertainment, Technology, Motoring, Travel, Property, Classifieds and more." + publisher = 'Independent Newspapers (Pty) Limited.' + category = 'news, politics, South Africa' + oldest_article = 2 + max_articles_per_feed = 200 + no_stylesheets = True + encoding = 'utf8' + use_embedded_content = False + auto_cleanup = False + language = 'en_ZA' + remove_empty_feeds = True + publication_type = 'newsportal' + masthead_url = 'http://www.iol.co.za/polopoly_fs/iol-news5-1.989381!/image/464471284.png_gen/derivatives/absolute/464471284.png' + extra_css = """ + body{font-family: Arial,Helvetica,sans-serif } + img{display: block} + """ + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + + remove_tags = [dict(name=['object','embed','iframe','table','meta','link'])] + keep_only_tags = [dict(attrs={'class':['article_headers', 'byline', 'aticle_column']})] + + + feeds = [ + (u'News' , u'http://iol.co.za/cmlink/1.640' ) + ,(u'Business', u'http://www.iol.co.za/cmlink/1.730910' ) + ,(u'Sport' , u'http://iol.co.za/cmlink/sport-category-rss-1.704' ) + ,(u'World' , u'http://iol.co.za/cmlink/news-world-category-rss-1.653' ) + ,(u'Africa' , u'http://iol.co.za/cmlink/news-africa-category-rss-1.654' ) + ] diff --git a/recipes/mobilenations.recipe b/recipes/mobilenations.recipe new file mode 100644 index 0000000000..c81bffc029 --- /dev/null +++ b/recipes/mobilenations.recipe @@ -0,0 +1,21 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class HindustanTimes(BasicNewsRecipe): + title = u'Mobile Nations' + language = 'en' + __author__ = 'Krittika Goyal' + oldest_article = 1 #days + max_articles_per_feed = 25 + #encoding = 'cp1252' + use_embedded_content = False + + no_stylesheets = True + auto_cleanup = True + #auto_cleanup_keep = '//div[@class="story-image shadowbox entry-content-asset"]' + + + feeds = [ +('News', + 'http://www.mobilenations.com/rss/mb.xml'), +] + diff --git a/recipes/nme.recipe b/recipes/nme.recipe index 48d7ce7503..6a62b00902 100644 --- a/recipes/nme.recipe +++ b/recipes/nme.recipe @@ -4,7 +4,7 @@ class AdvancedUserRecipe1306061239(BasicNewsRecipe): title = u'New Musical Express Magazine' description = 'Author D.Asbury. UK Rock & Pop Mag. ' __author__ = 'Dave Asbury' - # last updated 9/6/12 + # last updated 7/10/12 remove_empty_feeds = True remove_javascript = True no_stylesheets = True @@ -14,26 +14,24 @@ class AdvancedUserRecipe1306061239(BasicNewsRecipe): language = 'en_GB' def get_cover_url(self): - soup = self.index_to_soup('http://www.magazinesdirect.com/categories/mens/tv-and-music/') - cov = soup.find(attrs={'title' : 'NME magazine subscriptions'}) - cov2 = 'http://www.magazinesdirect.com'+cov['src'] - print '***cov = ',cov2,' ***' + soup = self.index_to_soup('http://www.nme.com/component/subscribe') + cov = soup.find(attrs={'id' : 'magazine_cover'}) + cov2 = str(cov['src']) + # print '**** Cov url =*', cover_url,'***' + #print '**** Cov url =*','http://www.magazinesdirect.com/article_images/articledir_3138/1569221/1_largelisting.jpg','***' - cover_url = str(cov2) - # print '**** Cov url =*', cover_url,'***' - #print '**** Cov url =*','http://www.magazinesdirect.com/article_images/articledir_3138/1569221/1_largelisting.jpg','***' - br = browser() - br.set_handle_redirect(False) - try: - br.open_novisit(cov2) - cover_url = str(cov2) - except: - cover_url = 'http://tawanda3000.files.wordpress.com/2011/02/nme-logo.jpg' - return cover_url + br = browser() + br.set_handle_redirect(False) + try: + br.open_novisit(cov2) + cover_url = str(cov2) + except: + cover_url = 'http://tawanda3000.files.wordpress.com/2011/02/nme-logo.jpg' + return cover_url + masthead_url = 'http://tawanda3000.files.wordpress.com/2011/02/nme-logo.jpg' - remove_tags = [ dict( attrs={'class':'clear_icons'}), dict( attrs={'class':'share_links'}), @@ -61,9 +59,15 @@ class AdvancedUserRecipe1306061239(BasicNewsRecipe): feeds = [ - (u'NME News', u'http://feeds2.feedburner.com/nmecom/rss/newsxml'), + (u'NME News', u'http://feeds.feedburner.com/nmecom/rss/newsxml?format=xml'), #(u'Reviews', u'http://feeds2.feedburner.com/nme/SdML'), - (u'Reviews',u'http://feed43.com/4138608576351646.xml'), + (u'Reviews',u'http://feed43.com/1817687144061333.xml'), (u'Bloggs',u'http://feed43.com/3326754333186048.xml'), ] + extra_css = ''' + h1{font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:large;} + h2{font-family:Arial,Helvetica,sans-serif; font-weight:normal;font-size:small;} + p{font-family:Arial,Helvetica,sans-serif;font-size:small;} + body{font-family:Helvetica,Arial,sans-serif;font-size:small;} + ''' diff --git a/recipes/noz.recipe b/recipes/noz.recipe new file mode 100644 index 0000000000..521ad2f5c1 --- /dev/null +++ b/recipes/noz.recipe @@ -0,0 +1,29 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class AdvancedUserRecipe1344926684(BasicNewsRecipe): + title = u'Neue Osnabrücker Zeitung' + __author__ = 'Krittika Goyal' + oldest_article = 7 + max_articles_per_feed = 100 + #auto_cleanup = True + no_stylesheets = True + use_embedded_content = False + language = 'de' + remove_javascript = True + + keep_only_tags = [dict(name='h1', attrs={'class':'enlargeable'}), dict(name='h2', attrs={'class':'enlargeable vorspann'}), dict(name='div', attrs={'id':'largePicContainer'}), dict(name='span', attrs={'id':'articletext'})] + remove_tags = [dict(name='div', attrs={'id':'retresco-title'}),dict(name='div', attrs={'class':'retresco-item s1 relative'}),dict(name='a', attrs={'class':'medium2 largeSpaceTop icon'})] + + feeds = [(u'Lokales', u'http://www.noz.de/rss/Lokales'), +(u'Vermischtes', u'http://www.noz.de/rss/Vermischtes'), +(u'Politik', u'http://www.noz.de/rss/Politik'), +(u'Wirtschaft', u'http://www.noz.de/rss/Wirtschaft'), +(u'Kultur', u'http://www.noz.de/rss/Kultur'), +(u'Medien', u'http://www.noz.de/rss/Medien'), +(u'Wissenschaft', u'http://www.noz.de/rss/wissenschaft'), +(u'Sport', u'http://www.noz.de/rss/Sport'), +(u'Computer', u'http://www.noz.de/rss/Computer'), +(u'Musik', u'http://www.noz.de/rss/Musik'), +(u'Szene', u'http://www.noz.de/rss/Szene'), +(u'Niedersachsen', u'http://www.noz.de/rss/Niedersachsen'), +(u'Kino', u'http://www.noz.de/rss/Kino')] diff --git a/recipes/pubblico_giornale.recipe b/recipes/pubblico_giornale.recipe index b11b5fb8aa..1c176a13a8 100644 --- a/recipes/pubblico_giornale.recipe +++ b/recipes/pubblico_giornale.recipe @@ -1,10 +1,10 @@ #!/usr/bin/env python __license__ = 'GPL v3' -__author__ = 'iusvar' +__copyright__ = 'iusvar' __description__ = 'Pubblico giornale' ''' -http://pubblicogiornale.it/ +[url]http://pubblicogiornale.it/[/url] ''' from calibre.web.feeds.news import BasicNewsRecipe @@ -16,6 +16,14 @@ class Pubblicogiornale(BasicNewsRecipe): publisher = 'PUBBLICO EDIZIONI Srl' category = 'News' language = 'it' - __author__ = 'iusvar' + __author__ = 'iusvar' - feeds = [(u'Pubblico giornale', u'http://pubblicogiornale.it/feed/')] + feeds = [ + (u'Politica', u'http://pubblicogiornale.it/category/politica/feed/'), + (u'Mondo', u'http://pubblicogiornale.it/category/mondo/feed/'), + (u'Economia', u'http://pubblicogiornale.it/category/economia-2/feed/'), + (u'Sport', u'http://pubblicogiornale.it/category/sport-2/feed/'), + (u'Cultura', u'http://pubblicogiornale.it/category/cultura-2/feed/'), + (u'Rete', u'http://pubblicogiornale.it/category/rete/feed/'), + (u'Illustrazioni',u'http://pubblicogiornale.it/category/illustrazioni/feed/') +] diff --git a/recipes/pvp_online.recipe b/recipes/pvp_online.recipe new file mode 100644 index 0000000000..5b6c466062 --- /dev/null +++ b/recipes/pvp_online.recipe @@ -0,0 +1,18 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class AdvancedUserRecipe1344926684(BasicNewsRecipe): + title = u'PVP online' + __author__ = 'Krittika Goyal' + oldest_article = 7 + max_articles_per_feed = 100 + #auto_cleanup = True + no_stylesheets = True + use_embedded_content = False + language = 'en' + remove_javascript = True + + keep_only_tags = [dict(name='div', attrs={'class':'body'})] + remove_tags = [dict(name='div', attrs={'class':'prevBg'}),dict(name='div', attrs={'class':'nextBg'}),dict(name='div', attrs={'class':'postMeta'})] + + feeds = [(u'Comics', u'http://pvponline.com/feed'), ] + diff --git a/recipes/shortlist.recipe b/recipes/shortlist.recipe index 155cbd25aa..e481213691 100644 --- a/recipes/shortlist.recipe +++ b/recipes/shortlist.recipe @@ -5,13 +5,15 @@ class AdvancedUserRecipe1324663493(BasicNewsRecipe): title = u'Shortlist' description = 'Articles From Shortlist.com' # I've set oldest article to 7 days as the website updates weekly - oldest_article = 7 - max_articles_per_feed = 12 + oldest_article = 8 + max_articles_per_feed = 20 remove_empty_feeds = True remove_javascript = True no_stylesheets = True + ignore_duplicate_articles = {'title'} + __author__ = 'Dave Asbury' - # last updated 19/5/12 + # last updated 7/10/12 language = 'en_GB' def get_cover_url(self): soup = self.index_to_soup('http://www.shortlist.com') @@ -45,17 +47,16 @@ class AdvancedUserRecipe1324663493(BasicNewsRecipe): ] feeds = [ - (u'Home carousel',u'http://feed43.com/7106317222455380.xml'), - (u'This Weeks Issue', u'http://feed43.com/0323588208751786.xml'), - (u'Cool Stuff',u'http://feed43.com/6253845228768456.xml'), - (u'Style',u'http://feed43.com/7217107577215678.xml'), - (u'Films',u'http://feed43.com/3101308515277265.xml'), - (u'Music',u'http://feed43.com/2416400550560162.xml'), - (u'TV',u'http://feed43.com/4781172470717123.xml'), - (u'Sport',u'http://feed43.com/5303151885853308.xml'), - (u'Gaming',u'http://feed43.com/8883764600355347.xml'), - (u'Women',u'http://feed43.com/2648221746514241.xml'), - (u'Instant Improver', u'http://feed43.com/1236541026275417.xml'), + #edit http://feed43.com/feed.html?name=3156308700147005 + # repeatable pattern =

{_}{%}{*}

+ + (u'This Weeks Issue', u'http://feed43.com/5205766657404804.xml'), + (u'Home Page',u'http://feed43.com/3156308700147005.xml'), + (u'Cool Stuff',u'http://feed43.com/1557051772026706.xml'), + (u'Style',u'http://feed43.com/4168836374571502.xml'), + (u'Entertainment',u'http://feed43.com/4578504030588024.xml'), + - #(u'Articles', u'http://feed43.com/3428534448355545.xml') ] + + diff --git a/recipes/stamgasten.recipe b/recipes/stamgasten.recipe index 3c7b9cfab8..c4e2cb7ef3 100644 --- a/recipes/stamgasten.recipe +++ b/recipes/stamgasten.recipe @@ -14,5 +14,6 @@ class AdvancedUserRecipe1347706704(BasicNewsRecipe): remove_empty_feeds = True remove_tags_before = dict(id='title') remove_tags_after = dict(attrs={'class':'entry-content rich-content'}) + extra_css = 'img{border:0;padding:0;margin:0;width:100%}' feeds = [(u'Stamgasten', u'http://toonvandriel.nl/feed/')] diff --git a/recipes/television_without_pity.recipe b/recipes/television_without_pity.recipe new file mode 100644 index 0000000000..e48bce5859 --- /dev/null +++ b/recipes/television_without_pity.recipe @@ -0,0 +1,21 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class HindustanTimes(BasicNewsRecipe): + title = u'Television Without Pity' + language = 'en' + __author__ = 'Krittika Goyal' + oldest_article = 1 #days + max_articles_per_feed = 25 + #encoding = 'cp1252' + use_embedded_content = False + + no_stylesheets = True + auto_cleanup = True + #auto_cleanup_keep = '//div[@class="float_right"]' + + + feeds = [ +('News', + 'http://www.televisionwithoutpity.com/rss.xml'), +] + diff --git a/recipes/the_new_age_za.recipe b/recipes/the_new_age_za.recipe new file mode 100644 index 0000000000..ec8c8c5787 --- /dev/null +++ b/recipes/the_new_age_za.recipe @@ -0,0 +1,50 @@ +__license__ = 'GPL v3' +__copyright__ = '2012, Darko Miletic ' +''' +www.thenewage.co.za +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class TheNewAge_za(BasicNewsRecipe): + title = 'The New Age' + __author__ = 'Darko Miletic' + description = "The New Age newspaper is a national daily newspaper, owned and operated by TNA Media (Pty) Ltd. TNA Media was established in June 2010 and the first publication of The New Age was on 6 December 2010. The New Age covers news from all nine provinces, along with national events, Op-Ed columns, politics, Africa and International news, sports, business, entertainment, lifestyle, science and technology." + publisher = 'TNA Media (Pty.) Ltd.' + category = 'news, politics, South Africa' + oldest_article = 2 + max_articles_per_feed = 200 + no_stylesheets = True + encoding = 'utf8' + use_embedded_content = False + auto_cleanup = False + language = 'en_ZA' + remove_empty_feeds = True + publication_type = 'newspaper' + masthead_url = 'http://www.thenewage.co.za/image/tnalogo.png' + extra_css = """ + body{font-family: Arial,Verdana,sans-serif } + img{display: block} + .storyheadline{font-size: x-large; font-weight: bold} + """ + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + + remove_tags = [dict(name=['object','embed','iframe','table','meta','link'])] + keep_only_tags = [dict(name='div', attrs={'id':['dv_headline', 'dv_story_dtls']})] + + + feeds = [ + (u'National' , u'http://www.thenewage.co.za/rss.aspx?cat_id=1007') + ,(u'Provinces', u'http://www.thenewage.co.za/rss.aspx?cat_id=1008') + ,(u'Business' , u'http://www.thenewage.co.za/rss.aspx?cat_id=9' ) + ,(u'Sport' , u'http://www.thenewage.co.za/rss.aspx?cat_id=10' ) + ,(u'World' , u'http://www.thenewage.co.za/rss.aspx?cat_id=1020') + ,(u'Africa' , u'http://www.thenewage.co.za/rss.aspx?cat_id=1019') + ,(u'Science&Tech', u'http://www.thenewage.co.za/rss.aspx?cat_id=1021') + ] diff --git a/recipes/the_sun.recipe b/recipes/the_sun.recipe index d93ac2c49b..d7966c8289 100644 --- a/recipes/the_sun.recipe +++ b/recipes/the_sun.recipe @@ -8,28 +8,23 @@ class AdvancedUserRecipe1325006965(BasicNewsRecipe): title = u'The Sun UK' description = 'Articles from The Sun tabloid UK' __author__ = 'Dave Asbury' - # last updated 25/7/12 + # last updated 12/10/12 added starsons remove article code language = 'en_GB' oldest_article = 1 - max_articles_per_feed = 12 + max_articles_per_feed = 15 remove_empty_feeds = True - no_stylesheets = True - masthead_url = 'http://www.thesun.co.uk/sol/img/global/Sun-logo.gif' encoding = 'UTF-8' remove_javascript = True no_stylesheets = True - - - #preprocess_regexps = [ - # (re.compile(r'