sync
@ -4,6 +4,7 @@ src/calibre/plugins
|
|||||||
resources/images.qrc
|
resources/images.qrc
|
||||||
src/calibre/manual/.build/
|
src/calibre/manual/.build/
|
||||||
src/calibre/manual/cli/
|
src/calibre/manual/cli/
|
||||||
|
src/calibre/manual/template_ref.rst
|
||||||
build
|
build
|
||||||
dist
|
dist
|
||||||
docs
|
docs
|
||||||
@ -13,6 +14,7 @@ resources/scripts.pickle
|
|||||||
resources/ebook-convert-complete.pickle
|
resources/ebook-convert-complete.pickle
|
||||||
resources/builtin_recipes.xml
|
resources/builtin_recipes.xml
|
||||||
resources/builtin_recipes.zip
|
resources/builtin_recipes.zip
|
||||||
|
resources/template-functions.json
|
||||||
setup/installer/windows/calibre/build.log
|
setup/installer/windows/calibre/build.log
|
||||||
src/calibre/translations/.errors
|
src/calibre/translations/.errors
|
||||||
src/cssutils/.svn/
|
src/cssutils/.svn/
|
||||||
|
12
COPYRIGHT
@ -9,6 +9,12 @@ License: GPL-2 or later
|
|||||||
The full text of the GPL is distributed as in
|
The full text of the GPL is distributed as in
|
||||||
/usr/share/common-licenses/GPL-2 on Debian systems.
|
/usr/share/common-licenses/GPL-2 on Debian systems.
|
||||||
|
|
||||||
|
Files: setup/iso_639/*
|
||||||
|
Copyright: Various
|
||||||
|
License: LGPL 2.1
|
||||||
|
The full text of the LGPL is distributed as in
|
||||||
|
/usr/share/common-licenses/LGPL-2.1 on Debian systems.
|
||||||
|
|
||||||
Files: src/calibre/ebooks/BeautifulSoup.py
|
Files: src/calibre/ebooks/BeautifulSoup.py
|
||||||
Copyright: Copyright (c) 2004-2007, Leonard Richardson
|
Copyright: Copyright (c) 2004-2007, Leonard Richardson
|
||||||
License: BSD
|
License: BSD
|
||||||
@ -28,6 +34,12 @@ License: other
|
|||||||
are permitted in any medium without royalty provided the copyright
|
are permitted in any medium without royalty provided the copyright
|
||||||
notice and this notice are preserved.
|
notice and this notice are preserved.
|
||||||
|
|
||||||
|
Files: src/calibre/ebooks/readability/*
|
||||||
|
Copyright: Unknown
|
||||||
|
License: Apache 2.0
|
||||||
|
The full text of the Apache 2.0 license is available at:
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Files: /src/cherrypy/*
|
Files: /src/cherrypy/*
|
||||||
Copyright: Copyright (c) 2004-2007, CherryPy Team (team@cherrypy.org)
|
Copyright: Copyright (c) 2004-2007, CherryPy Team (team@cherrypy.org)
|
||||||
Copyright: Copyright (C) 2005, Tiago Cogumbreiro <cogumbreiro@users.sf.net>
|
Copyright: Copyright (C) 2005, Tiago Cogumbreiro <cogumbreiro@users.sf.net>
|
||||||
|
@ -478,7 +478,7 @@
|
|||||||
type: major
|
type: major
|
||||||
description : >
|
description : >
|
||||||
"You can now save your frequently used searches and access them with a single click. For details
|
"You can now save your frequently used searches and access them with a single click. For details
|
||||||
see http://calibre-ebook.com/user_manual/gui.html#search-sort"
|
see http://manual.calibre-ebook.com/gui.html#search-sort"
|
||||||
|
|
||||||
- title: "Add searching by date/published date"
|
- title: "Add searching by date/published date"
|
||||||
tickets: [5244]
|
tickets: [5244]
|
||||||
|
894
Changelog.yaml
@ -19,6 +19,892 @@
|
|||||||
# new recipes:
|
# new recipes:
|
||||||
# - title:
|
# - title:
|
||||||
|
|
||||||
|
- version: 0.8.16
|
||||||
|
date: 2011-08-26
|
||||||
|
|
||||||
|
new features:
|
||||||
|
- title: "News download: Add algorithms to automatically clean up downloaded HTML"
|
||||||
|
description: "Use the algorithms from the Readability project to automatically cleanup downloaded HTML. You can turn this on in your own recipes by adding auto_cleanup=True to the recipe. It is turned on by default for basic recipes created via the GUI. This makes it a little easier to develop recipes for beginners."
|
||||||
|
type: major
|
||||||
|
|
||||||
|
- title: "Add an option to Preferences->Look and Feel->Cover Browser to show the cover browser full screen. When showing the cover browser in a separate window, you can make it fullscreen by pressing the F11 key."
|
||||||
|
tickets: [829855 ]
|
||||||
|
|
||||||
|
- title: "Show the languages currently used at the top of the drop down list of languages"
|
||||||
|
|
||||||
|
- title: "When automatically computing author sort from author's name, if the name contains certain words like Inc., Company, Team, etc. use the author name as the sort string directly. The list of such words can be controlled via Preferences->Tweaks."
|
||||||
|
tickets: [797895]
|
||||||
|
|
||||||
|
- title: "Add a search for individual tweaks to Preferences->Tweaks"
|
||||||
|
|
||||||
|
- title: "Drivers for a few new android phones"
|
||||||
|
|
||||||
|
bug fixes:
|
||||||
|
- title: "Fix line unwrapping algorithms to account for some central European characters as well."
|
||||||
|
tickets: [822744]
|
||||||
|
|
||||||
|
- title: "Switch to using more modern language names/translations from the iso-codes package"
|
||||||
|
|
||||||
|
- title: "Allow cases insensitive entering of language names for convenience."
|
||||||
|
tickets: [832761]
|
||||||
|
|
||||||
|
- title: "When adding a text indent to paragraphs as part of the remove spacing between paragraphs transformation, do not add an indent to paragraphs that are directly centered or right aligned."
|
||||||
|
tickets: [830439]
|
||||||
|
|
||||||
|
- title: "Conversion pipeline: More robust handling of case insensitive tag and class css selectors"
|
||||||
|
|
||||||
|
- title: "MOBI Output: Add support for the start attribute on <ol> tags"
|
||||||
|
|
||||||
|
- title: "When adding books that have no language specified, do not automatically set the language to calibre's interface language."
|
||||||
|
tickets: [830092]
|
||||||
|
|
||||||
|
- title: "Fix use of tag browser to search for languages when calibre is translated to a non English language"
|
||||||
|
tickets: [830078]
|
||||||
|
|
||||||
|
- title: "When downloading news, set the language field correctly"
|
||||||
|
|
||||||
|
- title: "Fix languages field in the Edit metadata dialog too wide"
|
||||||
|
tickets: [829912]
|
||||||
|
|
||||||
|
- title: "Fix setting of languages that have commas in their names broken"
|
||||||
|
|
||||||
|
- title: "FB2 Input: When convert FB2 files, read the cover from the FB2 file correctly."
|
||||||
|
tickets: [829240]
|
||||||
|
|
||||||
|
improved recipes:
|
||||||
|
- Politifact
|
||||||
|
- Reuters
|
||||||
|
- Sueddeutsche
|
||||||
|
- CNN
|
||||||
|
- Financial Times UK
|
||||||
|
- MSDN Magazine
|
||||||
|
- Houston Chronicle
|
||||||
|
- Harvard Business Review
|
||||||
|
|
||||||
|
new recipes:
|
||||||
|
- title: CBN News and Fairbanks Daily
|
||||||
|
author: by Roger
|
||||||
|
|
||||||
|
- title: Hacker News
|
||||||
|
author: Tom Scholl
|
||||||
|
|
||||||
|
- title: Various Turkish news sources
|
||||||
|
author: thomass
|
||||||
|
|
||||||
|
- title: Cvece Zla
|
||||||
|
author: Darko Miletic
|
||||||
|
|
||||||
|
- title: Various Polish news sources
|
||||||
|
author: fenuks
|
||||||
|
|
||||||
|
- title: Fluter
|
||||||
|
author: Armin Geller
|
||||||
|
|
||||||
|
- title: Brasil de Fato
|
||||||
|
author: Alex Mitrani
|
||||||
|
|
||||||
|
- version: 0.8.15
|
||||||
|
date: 2011-08-19
|
||||||
|
|
||||||
|
new features:
|
||||||
|
- title: "Add a 'languages' metadata field."
|
||||||
|
type: major
|
||||||
|
description: "This is useful if you have a multi-lingual book collection. You can now set one or more languages per book via the Edit Metadata dialog. If you want the languages
|
||||||
|
column to be visible, then go to Preferences->Add your own columns and unhide the languages columns. You can also bulk set the languages on multiple books via the bulk edit metadata dialog. You can also have the languages show up in the book details panel on the right by going to Preferences->Look and Feel->Book details"
|
||||||
|
|
||||||
|
- title: "Get Books: Add XinXii store."
|
||||||
|
|
||||||
|
- title: "Metadata download plugin for ozon.ru, enabled only when user selects russian as their language in the welcome wizard."
|
||||||
|
|
||||||
|
- title: "Bambook driver: Allow direct transfer of PDF files to Bambook devices"
|
||||||
|
|
||||||
|
- title: "Driver for Coby MID7015A and Asus EEE Note"
|
||||||
|
|
||||||
|
- title: "Edit metadata dialog: The keyboard shortcut Ctrl+D can now be used to trigger a metadata download. Also show the row number of the book being edited in the titlebar"
|
||||||
|
|
||||||
|
- title: "Add an option to not preserve the date when using the 'Copy to Library' function (found in Preferences->Adding books)"
|
||||||
|
|
||||||
|
bug fixes:
|
||||||
|
- title: "Linux binary: Use readlink -f rather than readlink -e in the launcher scripts so that they work with recent releases of busybox"
|
||||||
|
|
||||||
|
- title: "When bulk downloading metadata for more than 100 books at a time, automatically split up the download into batches of 100."
|
||||||
|
tickets: [828373]
|
||||||
|
|
||||||
|
- title: "When deleting books from the Kindle also delete 'sidecar' .apnx and .ph1 files as the kindle does not clean them up automatically"
|
||||||
|
tickets: [827684]
|
||||||
|
|
||||||
|
- title: "Fix a subtle bug in the device drivers that caused calibre to lose track of some books on the device if you used author_sort in the send to device template and your books have author sort values that differ only in case."
|
||||||
|
tickets: [825706]
|
||||||
|
|
||||||
|
- title: "Fix scene break character pattern not saved in conversion preferences"
|
||||||
|
tickets: [826038]
|
||||||
|
|
||||||
|
- title: "Keyboard shortcuts: Fix a bug triggered by some third party plugins that made the keyboard preferences unusable in OS X."
|
||||||
|
tickets: [826325]
|
||||||
|
|
||||||
|
- title: "Search box: Fix completion no longer working after using Tag Browser to do a search. Also ensure that completer popup is always hidden when a search is performed."
|
||||||
|
|
||||||
|
- title: "Fix pressing Enter in the search box causes the same search to be executed twice in the plugins and keyboard shortcuts preferences panels"
|
||||||
|
|
||||||
|
- title: "Catalog generation: Fix error creating epub/mobi catalogs on non UTF-8 windows systems when the metadata contained non ASCII characters"
|
||||||
|
|
||||||
|
improved recipes:
|
||||||
|
- Financial Times UK
|
||||||
|
- La Tercera
|
||||||
|
- Folha de Sao Paolo
|
||||||
|
- Metro niews NL
|
||||||
|
- La Nacion
|
||||||
|
- Juventud Rebelde
|
||||||
|
- Rzeczpospolita Online
|
||||||
|
- Newsweek Polska
|
||||||
|
- CNET news
|
||||||
|
|
||||||
|
new recipes:
|
||||||
|
- title: El Mostrador and The Clinic
|
||||||
|
author: Alex Mitrani
|
||||||
|
|
||||||
|
- title: Patente de Corso
|
||||||
|
author: Oscar Megia Lopez
|
||||||
|
|
||||||
|
- version: 0.8.14
|
||||||
|
date: 2011-08-12
|
||||||
|
|
||||||
|
new features:
|
||||||
|
- title: "Make the keyboard shortcuts used by the main calibre interface user customizable, via Preferences->Advanced->Keyboard"
|
||||||
|
type: major
|
||||||
|
|
||||||
|
- title: "When switching libraries, if the library no longer exists, give the user a chance to specify a new location for the library, in case it was moved, before forgetting it."
|
||||||
|
tickets: [822018]
|
||||||
|
|
||||||
|
- title: "Template language: Add strcat and strlen builtin functions."
|
||||||
|
tickets: [821935]
|
||||||
|
|
||||||
|
bug fixes:
|
||||||
|
- title: "The various options to control how automerging works when adding books now also apply when copying a book from one library to another."
|
||||||
|
tickets: [822033]
|
||||||
|
|
||||||
|
- title: "Ebook viewer: Respond to key presses even when the book display area does not have keyboard focus"
|
||||||
|
|
||||||
|
- title: "Allow integer and float column values to go to -999999. -1000000 is the value of 'undefined'."
|
||||||
|
tickets: [821941]
|
||||||
|
|
||||||
|
- title: "Fix in calibre browser not working for the Open books store in Get Books."
|
||||||
|
tickets: [822359]
|
||||||
|
|
||||||
|
- title: "Fix regression in 0.8.13 that caused incorrect title/author for downloaded news if you turned off reading metadata from file contents in Preferences->Adding books"
|
||||||
|
|
||||||
|
- title: "Save to disk: When saving to a single directory, handle the case of the save to disk template containing path separators inside template expression correctly."
|
||||||
|
tickets: [821912]
|
||||||
|
|
||||||
|
- title: "Get Books: Always read metadata from the file contents, ignoring the setting in Preferences->Adding books"
|
||||||
|
|
||||||
|
- title: "Fix merge_metadata to not overwrite non-text fields ('bool', 'int', 'float', 'rating', 'datetime') that have a value of zero/false instead of None."
|
||||||
|
tickets: [821665]
|
||||||
|
|
||||||
|
improved recipes:
|
||||||
|
- The Independent
|
||||||
|
|
||||||
|
new recipes:
|
||||||
|
- title: "Novinite"
|
||||||
|
author: Martin Tsanchev
|
||||||
|
|
||||||
|
- title: "Blog Escrevinhador"
|
||||||
|
author: Diniz Bortolotto
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- version: 0.8.13
|
||||||
|
date: 2011-08-05
|
||||||
|
|
||||||
|
new features:
|
||||||
|
- title: "Add a new action 'Pick Random Book' that can be added to the toolbar via Preferences->Toolbars."
|
||||||
|
tickets: [818315]
|
||||||
|
|
||||||
|
- title: "Driver for Droid X2"
|
||||||
|
tickets: [821053]
|
||||||
|
|
||||||
|
- title: "PDF metadata: Support reading/writing of tags from the Keywords field in PDF files."
|
||||||
|
|
||||||
|
- title: "MOBI Input: Speedup reading of HUFF/CDIC compressed files"
|
||||||
|
|
||||||
|
- title: "MOBI Output: Add a command line option --extract-to that uses the inspect MOBI tool to extract the created MOBI file to the specified directory"
|
||||||
|
|
||||||
|
- title: "Template language: Add a few new functions to manipulate lists (list_difference, list_intersection, list_sort)"
|
||||||
|
|
||||||
|
- title: "Make the Manage Tags/Publishers/etc. dialog show a column with counts for each item, to easily sort by number of items"
|
||||||
|
|
||||||
|
- title: "MOBI Output: Generate navpoints for items at every level in the TOC, not just the deepest level"
|
||||||
|
|
||||||
|
bug fixes:
|
||||||
|
- title: "MOBI Output: Remove option to choose masthead font as the font selection control causes crashes on some windows systems"
|
||||||
|
|
||||||
|
- title: "MOBI Output: Fix bug that caused paragraphs that had only a non breaking space as text before the first child element to be removed."
|
||||||
|
tickets: [819058]
|
||||||
|
|
||||||
|
- title: "Display undefined dates properly in the Book details panel."
|
||||||
|
tickets: [819222]
|
||||||
|
|
||||||
|
- title: "Fix regression that broke deleting of books from first generation Kobos with un-upgraded firmware"
|
||||||
|
tickets: [818704]
|
||||||
|
|
||||||
|
- title: "Get books: Fix Gutenberg store and improvements to chitanka.info and e-knigni.net"
|
||||||
|
|
||||||
|
- title: "News download: Support https proxies"
|
||||||
|
|
||||||
|
- title: "Check library did not know about original_* files"
|
||||||
|
|
||||||
|
- title: "Fix crash caused by having very large numbers of authors > 100 for a book"
|
||||||
|
|
||||||
|
improved recipes:
|
||||||
|
- Nikkei News
|
||||||
|
|
||||||
|
new recipes:
|
||||||
|
- title: Carta Capital
|
||||||
|
author: Pablo Aldama
|
||||||
|
|
||||||
|
- title: El Tiempo, El Colombiano and Portafolio Colombia
|
||||||
|
author: Cavalencia
|
||||||
|
|
||||||
|
|
||||||
|
- version: 0.8.12
|
||||||
|
date: 2011-07-29
|
||||||
|
|
||||||
|
new features:
|
||||||
|
- title: "Content server: Return the correct last modified date when serving ebook files. Also allow getting of book metadata as /get/opf/<book_id>"
|
||||||
|
|
||||||
|
- title: "Driver for the COBY MP977"
|
||||||
|
|
||||||
|
- title: "Get Books: Remove epub bud store. Add Ozon.ru and e-knigni.net stores. Fix broken amazon UK and DE stores."
|
||||||
|
tickets: [816091]
|
||||||
|
|
||||||
|
- title: "Add a new tweak to Preferences->Tweaks that allows auto generation of series numbers when importing books with a series name, but no number"
|
||||||
|
tickets: [815573]
|
||||||
|
|
||||||
|
bug fixes:
|
||||||
|
- title: "Fix a regression in 0.8.11 that broke calibre on linux systems that use a file system encoding that cannot support cyrillic characters"
|
||||||
|
tickets: [815224]
|
||||||
|
|
||||||
|
- title: "Fix long titles not wrapping in cover browser"
|
||||||
|
tickets: [816595]
|
||||||
|
|
||||||
|
- title: "When adding books, handle the case of files without read permission more gracefully."
|
||||||
|
tickets: [814771]
|
||||||
|
|
||||||
|
- title: "When changing metadata in EPUB files do not use the opf: namespace prefix on newly created elements. Apparently, FBReaderJ doesn't understand XML namespaces."
|
||||||
|
tickets: [814722]
|
||||||
|
|
||||||
|
- title: "Prevent metadata download from returning published dates earlier than 101 A.D."
|
||||||
|
|
||||||
|
- title: "Fix a bug where dates before 101AD in the database could cause errors"
|
||||||
|
tickets: [814964]
|
||||||
|
|
||||||
|
- title: "Fix an error in the book details panel if the user sets the default author link to blank"
|
||||||
|
|
||||||
|
improved recipes:
|
||||||
|
- The Economist
|
||||||
|
- Instapaper
|
||||||
|
- Corren
|
||||||
|
|
||||||
|
new recipes:
|
||||||
|
- title: Counterpunch
|
||||||
|
author: O. Emmerson
|
||||||
|
|
||||||
|
- title: National Geographic (PL)
|
||||||
|
author: Marcin Urban
|
||||||
|
|
||||||
|
- title: Caros Amigos
|
||||||
|
author: Pablo Aldama
|
||||||
|
|
||||||
|
- title: Aksiyon Dergisi
|
||||||
|
author: thomass
|
||||||
|
|
||||||
|
- title: Dnevnik (MK) and +Info
|
||||||
|
author: Darko Spasovski
|
||||||
|
|
||||||
|
- title: Dagens Industri
|
||||||
|
author: Jonas Svensson
|
||||||
|
|
||||||
|
|
||||||
|
- version: 0.8.11
|
||||||
|
date: 2011-07-22
|
||||||
|
|
||||||
|
new features:
|
||||||
|
- title: "When doing a conversion from some format to the same format, save the original file"
|
||||||
|
description: "When calibre does a conversion from the same format to the same format, for
|
||||||
|
example, from EPUB to EPUB, the original file is saved as original_epub, so that in case the
|
||||||
|
conversion is poor, you can change the settings and run it again. The original is automatically used
|
||||||
|
every time you run a conversion with that format as input. If you want to disable this,
|
||||||
|
there is a tweak that prevents calibre from saving the originals in Preferences->Tweaks. You can
|
||||||
|
easily replace the converted version with the original in the Edit metadata dialog by right
|
||||||
|
clicking on the list of formats in the top right corner."
|
||||||
|
type: major
|
||||||
|
|
||||||
|
- title: "Conversion pipeline: Add an option to control the height of the blank lines inserted by calibre"
|
||||||
|
|
||||||
|
- title: "Drivers for bq DaVinci, Samsung Galaxy ACE GT-S5830 and Medion e-reader"
|
||||||
|
|
||||||
|
- title: "Get Books: Add stores Chitanka and Bookoteka. Remove epubbuy.de at store's request"
|
||||||
|
|
||||||
|
- title: "Content server: Add a link at the bottom of the mobile interface to switch to the full interface."
|
||||||
|
tickets: [812525]
|
||||||
|
|
||||||
|
- title: "Update the kindle icon shown when a Kindle is connected to use a picture of the Kindle 3"
|
||||||
|
tickets: [810852]
|
||||||
|
|
||||||
|
- title: "MOBI Output: When converting epub documents that have a start element in their guide, use it to mark the starting position at which the MOBI file will be opened."
|
||||||
|
tickets: [804755]
|
||||||
|
|
||||||
|
- title: "News download: Add a default Accept header to all requests"
|
||||||
|
|
||||||
|
bug fixes:
|
||||||
|
- title: "Fix regression that broke loading translations from .po files in the working directory"
|
||||||
|
|
||||||
|
- title: "Fix conversion dialog not allowing series numbers larger than 9999"
|
||||||
|
tickets: [813281]
|
||||||
|
|
||||||
|
- title: "Conversion pipeline: When adding/removing entries to the manifest, ignore unparseable URLs instead of erroring out on them"
|
||||||
|
|
||||||
|
- title: "SD Card in Azbooka not being detected"
|
||||||
|
tickets: [812750]
|
||||||
|
|
||||||
|
- title: "Conversion pipeline: Strip out large blocks of contiguous space (more than 10000 contiguous blanks) as these slow down the conversion process and are almost always indicative of an error in the input document."
|
||||||
|
|
||||||
|
- title: "ebook-convert: Abort if a keyboard interrupt is raised during parsing"
|
||||||
|
|
||||||
|
- title: "Regex builder: Show a nicer error message when the user has the file open in another program on windows."
|
||||||
|
tickets: [811641]
|
||||||
|
|
||||||
|
- title: "When converting in the GUI, set all identifiers present in the book's metadata in the output file, if the output format supports them."
|
||||||
|
|
||||||
|
improved recipes:
|
||||||
|
- NBObline
|
||||||
|
- JBPress
|
||||||
|
- Instapaper
|
||||||
|
- Die Zeit
|
||||||
|
- Wired (UK)
|
||||||
|
|
||||||
|
new recipes:
|
||||||
|
- title: Utrinski Vesnik
|
||||||
|
author: Darko Spasovski
|
||||||
|
|
||||||
|
- title: IDG.se
|
||||||
|
author: zapt0
|
||||||
|
|
||||||
|
- title: Los Andes
|
||||||
|
author: Darko Miletic
|
||||||
|
|
||||||
|
- title: De Luns a Venres
|
||||||
|
author: Susana Sotelo Docío
|
||||||
|
|
||||||
|
- title: "Nikkei News subscription version"
|
||||||
|
author: Ado Nishimura
|
||||||
|
|
||||||
|
- version: 0.8.10
|
||||||
|
date: 2011-07-15
|
||||||
|
|
||||||
|
new features:
|
||||||
|
- title: "Add a right click menu to the cover browser. It allows you to view a book, edit metadata etc. from within the cover browser. The menu can be customized in Preferences->Toolbars"
|
||||||
|
|
||||||
|
- title: "Allow selecting and stopping multiple jobs at once in the jobs window"
|
||||||
|
tickets: [810349]
|
||||||
|
|
||||||
|
- title: "When editing metadata directly in the book list, have a little pop up menu so that all existing values can be accessed by mouse only. For example, when you edit authors, you can use the mouse to select an existing author."
|
||||||
|
|
||||||
|
- title: "Get Books: Add ebook.nl and fix price parsing for the legimi store"
|
||||||
|
|
||||||
|
- title: "Drivers for Samsung Infuse and Motorola XPERT"
|
||||||
|
|
||||||
|
- title: "Tag Browser: Make hierarchical items work in group searched terms."
|
||||||
|
|
||||||
|
bug fixes:
|
||||||
|
- title: "Allow setting numbers larger than 99 in custom series columns"
|
||||||
|
|
||||||
|
- title: "Fix a bug that caused the same news download sent via a USB connection to the device on two different days resulting in a duplicate on the device"
|
||||||
|
|
||||||
|
- title: "Ensure English in the list of interface languages in Preferences is always listed in English, so that it does not become hard to find"
|
||||||
|
|
||||||
|
- title: "SNB Output: Fix bug in handling unicode file names"
|
||||||
|
|
||||||
|
- title: "Fix sorting problem in manage categories. Fix poor performance problem when dropping multiple books onto a user category."
|
||||||
|
|
||||||
|
- title: "Remove 'empty field' error dialogs in bulk search/replace, instead setting the fields to their default value."
|
||||||
|
|
||||||
|
- title: "Fix regression that broke communicating with Kobo devices using outdated firmware"
|
||||||
|
tickets: [807832]
|
||||||
|
|
||||||
|
- title: "LRF Input: Fix conversion of LRF files with non ascii titles on some windows systems"
|
||||||
|
tickets: [807641]
|
||||||
|
|
||||||
|
improved recipes:
|
||||||
|
- Time
|
||||||
|
- Freakonomics Blog
|
||||||
|
- io9
|
||||||
|
- "Computer Act!ve"
|
||||||
|
|
||||||
|
new recipes:
|
||||||
|
- title: Techcrunch and Pecat
|
||||||
|
author: Darko Miletic
|
||||||
|
|
||||||
|
- title: "Vio Mundo, IDG Now! and Tojolaco"
|
||||||
|
author: Diniz Bortolotto
|
||||||
|
|
||||||
|
- title: Geek and Poke, Automatiseringgids IT
|
||||||
|
author: DrMerry
|
||||||
|
|
||||||
|
- version: 0.8.9
|
||||||
|
date: 2011-07-08
|
||||||
|
|
||||||
|
new features:
|
||||||
|
- title: "Kobo Touch: Display Preview Tag for book previews on the device"
|
||||||
|
|
||||||
|
- title: "Improved display of grouped search terms in Tag Browser"
|
||||||
|
|
||||||
|
- title: "When adding HTML files to calibre, add an option to process links in breadth first rather than depth first order. Access it via Preferences->Plugins and customize the HTML to ZIP plugin"
|
||||||
|
|
||||||
|
- title: "Conversion pipeline: Add option to control if duplicate entries are allowed when generating the Table of Contents from links."
|
||||||
|
tickets: [806095]
|
||||||
|
|
||||||
|
- title: "Metadata download: When merging results, if the query to the xisbn service hangs, wait no more than 10 seconds. Also try harder to preserve the month when downloading published date. Do not throw away isbnless results if there are some sources that return isbns and some that do not."
|
||||||
|
tickets: [798309]
|
||||||
|
|
||||||
|
- title: "Get Books: Remove OpenLibrary since it has the same files as archive.org. Allow direct downloading from Project Gutenberg."
|
||||||
|
|
||||||
|
- title: "Add functions to the template language that allow getting the last modified time and size of the individual format files for a book. Also add a has_cover() function."
|
||||||
|
|
||||||
|
bug fixes:
|
||||||
|
- title: "Fix true/false searches dont work on device views"
|
||||||
|
tickets: [807262]
|
||||||
|
|
||||||
|
- title: "Fix renaming of collections in device views"
|
||||||
|
tickets: [807256]
|
||||||
|
|
||||||
|
- title: "Fix regression that broke the use of the device_db plugboard"
|
||||||
|
tickets: [806483]
|
||||||
|
|
||||||
|
- title: "Kobo driver: Hide Expired Book Status for deleted books. Also fix regression that broke connecting to Kobo devices running very old firmware."
|
||||||
|
tickets: [802083]
|
||||||
|
|
||||||
|
- title: "Fix bug in 0.8.8 that could cause the metadata.db to be left in an unusable state if calibre is interrupted at just the wrong moment or if the db is stored in dropbox"
|
||||||
|
|
||||||
|
- title: "Fix sorting of composite custom columns that display numbers."
|
||||||
|
|
||||||
|
improved recipes:
|
||||||
|
- "Computer Act!ve"
|
||||||
|
- Metro News NL
|
||||||
|
- Spiegel Online International
|
||||||
|
- cracked.com
|
||||||
|
- Endgadget
|
||||||
|
- Independent
|
||||||
|
- Telegraph UK
|
||||||
|
|
||||||
|
new recipes:
|
||||||
|
- title: "Blog da Cidadania and Noticias UnB"
|
||||||
|
author: Diniz Bortolotto
|
||||||
|
|
||||||
|
- title: "Galicia Confidential"
|
||||||
|
author: Susana Sotelo Docio
|
||||||
|
|
||||||
|
- title: "South China Morning Post"
|
||||||
|
author: llam
|
||||||
|
|
||||||
|
- title: "Szinti Derigisi"
|
||||||
|
author: thomass
|
||||||
|
|
||||||
|
|
||||||
|
- version: 0.8.8
|
||||||
|
date: 2011-07-01
|
||||||
|
|
||||||
|
new features:
|
||||||
|
- title: "Make author names in the Book Details panel clickable. Clicking them takes you to the wikipedia page for the author by default. You may have to tell calibre to display author names in the Book details panel first via Preferences->Look & Feel->Book details. You can change the link for individual authors by right clicking on the author's name in the Tag Browser and selecting Manage Authors."
|
||||||
|
|
||||||
|
- title: "Get Books: Add 'Open Books' as an available book source"
|
||||||
|
|
||||||
|
- title: "Get Books: When a free download is available for a search result, for example, for public domain books, allow direct download of the book into your calibre library."
|
||||||
|
|
||||||
|
- title: "Support for detecting and mounting reader devices on FreeBSD."
|
||||||
|
tickets: [802708]
|
||||||
|
|
||||||
|
- title: "When creating a composite custom column, allow the use of HTML to create links and other markup that display in the Book details panel"
|
||||||
|
|
||||||
|
- title: "Add the swap_around_comma function to the template language."
|
||||||
|
|
||||||
|
- title: "Drivers for HTC G2, Advent Vega, iRiver Story HD, Lark FreeMe and Moovyman mp7"
|
||||||
|
|
||||||
|
- title: "Quick View: Survives changing libraries. Also allow sorting by series index as well as name."
|
||||||
|
|
||||||
|
- title: "Connect to iTunes: Add an option to control how the driver works depending on whether you have iTunes setup to copy files to its media directory or not. Set this option by customizing the Apple driver in Preferences->Plugins. Having iTunes copy media to its storage folder is no longer neccessary. See http://www.mobileread.com/forums/showthread.php?t=118559 for details"
|
||||||
|
|
||||||
|
- title: "Remove the delete library functionality from calibre, instead you can now remove a library, so calibre will forget about it, but you have to delete the files manually"
|
||||||
|
|
||||||
|
bug fixes:
|
||||||
|
- title: "Fix a regression introduced in 0.8.7 in the Tag Browser that could cause calibre to crash after performing various actions"
|
||||||
|
|
||||||
|
- title: "Fix an unhandled error when deleting all saved searches"
|
||||||
|
tickets: [804383]
|
||||||
|
|
||||||
|
- title: "Fix row numbers in a previous selection being incorrect after a sort operation."
|
||||||
|
|
||||||
|
- title: "Fix ISBN identifier type not recognized if it is in upper case"
|
||||||
|
tickets: [802288]
|
||||||
|
|
||||||
|
- title: "Fix a regression in 0.8.7 that broke reading metadata from MOBI files in the Edit metadata dialog."
|
||||||
|
tickets: [801981]
|
||||||
|
|
||||||
|
- title: "Fix handling of filenames that have an even number of periods before the file extension."
|
||||||
|
tickets: [801939]
|
||||||
|
|
||||||
|
- title: "Fix lack of thread saefty in template format system, that could lead to incorrect template evaluation in some cases."
|
||||||
|
tickets: [801944]
|
||||||
|
|
||||||
|
- title: "Fix conversion to PDB when the input document has no text"
|
||||||
|
tickets: [801888]
|
||||||
|
|
||||||
|
- title: "Fix clicking on first letter of author names generating incorrect search."
|
||||||
|
|
||||||
|
- title: "Also fix updating bulk metadata in custom column causing unnneccessary Tag Browser refreshes."
|
||||||
|
|
||||||
|
- title: "Fix a regression in 0.8.7 that broke renaming items via the Tag Browser"
|
||||||
|
|
||||||
|
- title: "Fix a regression in 0.8.7 that caused the regex builder wizard to fail with LIT files as the input"
|
||||||
|
|
||||||
|
improved recipes:
|
||||||
|
- Zaman Gazetesi
|
||||||
|
- Infobae
|
||||||
|
- El Cronista
|
||||||
|
- Critica de la Argentina
|
||||||
|
- Buenos Aires Economico
|
||||||
|
- El Universal (Venezuela)
|
||||||
|
- wprost
|
||||||
|
- Financial Times UK
|
||||||
|
|
||||||
|
new recipes:
|
||||||
|
- title: "Today's Zaman by thomass"
|
||||||
|
|
||||||
|
- title: "Athens News by Darko Miletic"
|
||||||
|
|
||||||
|
- title: "Catholic News Agency"
|
||||||
|
author: Jetkey
|
||||||
|
|
||||||
|
- title: "Arizona Republic"
|
||||||
|
author: Jim Olo
|
||||||
|
|
||||||
|
- title: "Add Ming Pao Vancouver and Toronto"
|
||||||
|
author: Eddie Lau
|
||||||
|
|
||||||
|
|
||||||
|
- version: 0.8.7
|
||||||
|
date: 2011-06-24
|
||||||
|
|
||||||
|
new features:
|
||||||
|
- title: "Connect to iTunes: You now need to tell iTunes to keep its own copy of every ebook. Do this in iTunes by going to Preferences->Advanced and setting the 'Copy files to iTunes Media folder when adding to library' option. To learn about why this is necessary, see: http://www.mobileread.com/forums/showthread.php?t=140260"
|
||||||
|
|
||||||
|
- title: "Add a couple of date related functions to the calibre template langauge to get 'todays' date and create text based on the value of a date type field"
|
||||||
|
|
||||||
|
- title: "Improved reading of metadata from FB2 files, with support for reading isbns, tags, published date, etc."
|
||||||
|
|
||||||
|
- title: "Driver for the Imagine IMEB5"
|
||||||
|
tickets: [800642]
|
||||||
|
|
||||||
|
- title: "Show the currently used network proxies in Preferences->Miscellaneous"
|
||||||
|
|
||||||
|
- title: "Kobo Touch driver: Show Favorites as a device collection. Various other minor fixes."
|
||||||
|
|
||||||
|
- title: "Content server now sends the Content-Disposition header when sending ebook files."
|
||||||
|
|
||||||
|
- title: "Allow search and replace on comments custom columns."
|
||||||
|
|
||||||
|
- title: "Add a new action 'Quick View' to show the books in your library by the author/tags/series/etc. of the currently selected book, in a separate window. You can add it to your toolbar or right click menu by going to Preferences->Toolbars."
|
||||||
|
|
||||||
|
- title: "Get Books: Add libri.de as a book source. Fix a bug that caused some books downloads to fail. Fixes to the Legimi and beam-ebooks.de stores"
|
||||||
|
tickets: [799367]
|
||||||
|
|
||||||
|
bug fixes:
|
||||||
|
- title: "Fix a memory leak that could result in the leaking of several MB of memory with large libraries"
|
||||||
|
tickets: [800952]
|
||||||
|
|
||||||
|
- title: "Fix the read metadata from format button in the edit metadata dialog using the wrong timezone when setting published date"
|
||||||
|
tickets: [799777]
|
||||||
|
|
||||||
|
- title: "Generating catalog: Fix occassional file in use errors when generating catalogs on windows"
|
||||||
|
|
||||||
|
- title: "Fix clicking on News in Tag Browser not working in non English locales."
|
||||||
|
tickets: [799471]
|
||||||
|
|
||||||
|
- title: "HTML Input: Fix a regression in 0.8.6 that caused CSS stylesheets to be ignored"
|
||||||
|
tickets: [799171]
|
||||||
|
|
||||||
|
- title: "Fix a regression that caused restore database to stop working on some windows sytems"
|
||||||
|
|
||||||
|
- title: "EPUB Output: Convert <br> tags with text in them into <divs> as ADE cannot handle them."
|
||||||
|
tickets: [794427]
|
||||||
|
|
||||||
|
improved recipes:
|
||||||
|
- Le Temps
|
||||||
|
- Perfil
|
||||||
|
- Financial Times UK
|
||||||
|
|
||||||
|
new recipes:
|
||||||
|
- title: "Daytona Beach Journal"
|
||||||
|
author: BRGriff
|
||||||
|
|
||||||
|
- title: "El club del ebook and Frontline"
|
||||||
|
author: Darko Miletic
|
||||||
|
|
||||||
|
|
||||||
|
- version: 0.8.6
|
||||||
|
date: 2011-06-17
|
||||||
|
|
||||||
|
new features:
|
||||||
|
- title: "Builtin support for downloading and installing/updating calibre plugins. Go to Preferences->Plugins and click 'Get new plugins'"
|
||||||
|
description: "When updates for installed plugins are available, calibre will automatically (unobtrusively) notify you"
|
||||||
|
type: major
|
||||||
|
|
||||||
|
- title: "Metadata download configuration: Allow defining a set of 'default' fields for metadata download and quichly switching to/from them"
|
||||||
|
|
||||||
|
- title: "Allow clicking on the news category in the Tag Browser to display all downloaded periodicals"
|
||||||
|
|
||||||
|
- title: "Driver for the Libre Air"
|
||||||
|
|
||||||
|
- title: "Email sending: Allow user to stop email jobs (note that stopping may not actually prevent the email from being sent, depending on when the stop happens). Also automatically abort email sending if it takes longer than 15mins."
|
||||||
|
tickets: [795960]
|
||||||
|
|
||||||
|
bug fixes:
|
||||||
|
- title: "MOBI Output: Allow setting of background color on tables also set the border attribute on the table if the table has any border related css defined."
|
||||||
|
tickets: [797580]
|
||||||
|
|
||||||
|
- title: "Nook TSR: Put news sent to the device in My Files/Newspapers instaed of My Files/Books."
|
||||||
|
tickets: [796674]
|
||||||
|
|
||||||
|
- title: "MOBI Output: Fix a bug where linking to the very first element in an HTML file could sometimes result in the link pointing to the last element in the previous file."
|
||||||
|
tickets: [797214]
|
||||||
|
|
||||||
|
- title: "CSV catalog: Convert HTML comments to plain text"
|
||||||
|
|
||||||
|
- title: "HTML Input: Ignore links to text files."
|
||||||
|
tickets: [791568]
|
||||||
|
|
||||||
|
- title: "EPUB Output: Change orphaned <td> tags to <div> as they cause ADE to crash."
|
||||||
|
|
||||||
|
- title: "Fix 'Stop selected jobs' button trying to stop the same job multiple times"
|
||||||
|
|
||||||
|
- title: "Database: Explicitly test for case sensitivity on OS X instead of assuming a case insensitive filesystem."
|
||||||
|
tickets: [796258]
|
||||||
|
|
||||||
|
- title: "Get Books: More fixes to the Amazon store plugin"
|
||||||
|
|
||||||
|
- title: "FB2 Input: Do not specify font families/background colors"
|
||||||
|
|
||||||
|
|
||||||
|
improved recipes:
|
||||||
|
- Philadelphia Inquirer
|
||||||
|
- Macleans Magazone
|
||||||
|
- Metro UK
|
||||||
|
|
||||||
|
new recipes:
|
||||||
|
- title: "Christian Post, Down To Earth and Words Without Borders"
|
||||||
|
author: sexymax15
|
||||||
|
|
||||||
|
- title: "Noticias R7"
|
||||||
|
author: Diniz Bortolotto
|
||||||
|
|
||||||
|
- title: "UK Daily Mirror"
|
||||||
|
author: Dave Asbury
|
||||||
|
|
||||||
|
- title: "New Musical Express Magazine"
|
||||||
|
author: scissors
|
||||||
|
|
||||||
|
|
||||||
|
- version: 0.8.5
|
||||||
|
date: 2011-06-10
|
||||||
|
|
||||||
|
new features:
|
||||||
|
- title: "A new 'portable' calibre build, useful if you like to carry around calibre and its library on a USB key"
|
||||||
|
type: major
|
||||||
|
description: "For details, see: http://calibre-ebook.com/download_portable"
|
||||||
|
|
||||||
|
- title: "E-book viewer: Remember the last used font size multiplier."
|
||||||
|
tickets: [774343]
|
||||||
|
|
||||||
|
- title: "Preliminary support for the Kobo Touch. Drivers for the ZTE v9 tablet, Samsung S2, Notion Ink Adam and PocketBook 360+"
|
||||||
|
|
||||||
|
- title: "When downloading metadata merge rather than replace tags"
|
||||||
|
|
||||||
|
- title: "Edit metadata dialog: When pasting in an ISBN, if not valid ISBN if present on the clipboard popup a box for the user to enter the ISBN"
|
||||||
|
|
||||||
|
- title: "Windows build: Add code to load .pyd python extensions from a zip file. This allows many more files in the calibre installation to be zipped up, speeding up the installer."
|
||||||
|
- title: "Add an action to remove all formats from the selected books to the remove books button"
|
||||||
|
|
||||||
|
|
||||||
|
bug fixes:
|
||||||
|
- title: "Various minor bug fixes to the column coloring code"
|
||||||
|
|
||||||
|
- title: "Fix the not() template function"
|
||||||
|
|
||||||
|
- title: "Nook Color/TSR: When sending books to the storage card place them in the My Files/Books subdirectory. Also do not upload cover thumbnails as users report that the NC/TSR don't use them."
|
||||||
|
tickets: [792842]
|
||||||
|
|
||||||
|
- title: "Get Books: Update plugins for Amazon and B&N stores to handle website changes. Enable some stores by default on first run. Add Zixo store"
|
||||||
|
tickets: [792762]
|
||||||
|
|
||||||
|
- title: "Comic Input: Replace the # character in filenames as it can cause problem with conversion/vieweing."
|
||||||
|
tickets: [792723]
|
||||||
|
|
||||||
|
- title: "When writing files to zipfile, reset timestamp if it doesn't fit in 1980's vintage storage structures"
|
||||||
|
|
||||||
|
- title: "Amazon metadata plugin: Fix parsing of published date from amazon.de when it has februar in it"
|
||||||
|
|
||||||
|
improved recipes:
|
||||||
|
- Ambito
|
||||||
|
- GoComics
|
||||||
|
- Le Monde Diplomatique
|
||||||
|
- Max Planck
|
||||||
|
- express.de
|
||||||
|
|
||||||
|
new recipes:
|
||||||
|
- title: Ambito Financiero
|
||||||
|
author: Darko Miletic
|
||||||
|
|
||||||
|
- title: Stiin Tas Technica
|
||||||
|
author: Silviu Cotoara
|
||||||
|
|
||||||
|
- title: "Metro News NL"
|
||||||
|
author: DrMerry
|
||||||
|
|
||||||
|
- title: "Brigitte.de, Polizeipresse DE and Heise Online"
|
||||||
|
author: schuster
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
- version: 0.8.4
|
||||||
|
date: 2011-06-03
|
||||||
|
|
||||||
|
new features:
|
||||||
|
- title: "New and much simpler interface for specifying column coloring via Preferences->Look & Feel->Column Coloring"
|
||||||
|
|
||||||
|
- title: "Driver for Trekstor eBook Player 5M, Samsung Galaxy SII I9100, Motorola Defy and miBuk GAMMA 6.2"
|
||||||
|
tickets: [792091, 791216]
|
||||||
|
|
||||||
|
- title: "Get Books: Add EpubBud, WH Smits and E-book Shoppe stores"
|
||||||
|
|
||||||
|
- title: "When deleting 'all formats except ...', do not delete if it leaves a book with no formats"
|
||||||
|
|
||||||
|
- title: "Change default toolbar to make it a little more new user friendly. The icons have been re-arranged and now the text is always visiblke by default. You can change that in Preferences->Look & Feeel and Preferences->Toolbar"
|
||||||
|
|
||||||
|
- title: "Windows installer: Remember and use previous settings for installing desktop icons, adding to path, etc. This makes the installer a little slower, complaints should go to Microsoft."
|
||||||
|
|
||||||
|
- title: "Template language: Add str_in_list and on_device formatter functions. Make debugging templates a little easier"
|
||||||
|
|
||||||
|
- title: "Allow the user to specify formatting for number type custom columns"
|
||||||
|
|
||||||
|
bug fixes:
|
||||||
|
- title: "Fix typo in NOOK TSR driver that prevented it from working on windows"
|
||||||
|
|
||||||
|
- title: "Fix quotes in identifiers causing Tag Browser to be blank."
|
||||||
|
tickets: [791044]
|
||||||
|
|
||||||
|
- title: "Speedup auto complete when there are lots of items (>2500) the downside being that non ASCII characters are not sorted correctly. The threshold can be controlled via Preferences->Tweaks"
|
||||||
|
tickets: [792191]
|
||||||
|
|
||||||
|
- title: "RTF Output: Fix handling of curly brackets"
|
||||||
|
tickets: [791805]
|
||||||
|
|
||||||
|
- title: "Fix searching in Get Books not working with non ASCII characters"
|
||||||
|
tickets: [791788]
|
||||||
|
|
||||||
|
- title: "Fix excessive memory consumption when moving very large files during a metadata change"
|
||||||
|
tickets: [791806]
|
||||||
|
|
||||||
|
- title: "Fix series index being overwritten even when series is turned off in bulk metadata download"
|
||||||
|
tickets: [789990]
|
||||||
|
|
||||||
|
- title: "Fix regression in templates where id and other non standard fields no longer worked."
|
||||||
|
|
||||||
|
- title: "EPUB Output: Fix crash caused by ids with non-ascii characters in them"
|
||||||
|
|
||||||
|
- title: "Try to preserve the timestamps of files in a ZIP container"
|
||||||
|
|
||||||
|
- title: "After adding books always select the most recently added book."
|
||||||
|
tickets: [789343]
|
||||||
|
|
||||||
|
improved recipes:
|
||||||
|
- bild.de
|
||||||
|
- CNN
|
||||||
|
- BBC News (fast)
|
||||||
|
- Dilema Veche
|
||||||
|
|
||||||
|
new recipes:
|
||||||
|
- title: Metro UK
|
||||||
|
author: Dave Asbury
|
||||||
|
|
||||||
|
- title: Alt om Herning and Version2.dk
|
||||||
|
author: Rasmus Lauritsen
|
||||||
|
|
||||||
|
- title: Observatorul cultural
|
||||||
|
author: song2
|
||||||
|
|
||||||
|
|
||||||
|
- version: 0.8.3
|
||||||
|
date: 2011-05-27
|
||||||
|
|
||||||
|
new features:
|
||||||
|
- title: "Allow the coloring of columns in the book list."
|
||||||
|
description: "You can either create a custom column with a fixed set of values and assign a color to each value, or you can use the calibre template language to color any column in arbitrarily powerful ways. For example, you can have the title appear in red if the book has a particular tag."
|
||||||
|
type: major
|
||||||
|
|
||||||
|
- title: "Support for the Nook Simple Reader"
|
||||||
|
|
||||||
|
- title: "Get Books, new stores: Virtualo, lulu.net"
|
||||||
|
|
||||||
|
- title: "A store chooser dialog for Get Books (click the little preferences icon at the bottom of the Get Books screen)."
|
||||||
|
|
||||||
|
- title: "Add a merge_lists, and, or, not template functions to the calibre template language"
|
||||||
|
|
||||||
|
- title: "EPUB Output: Change any white-space:pre declarations in the CSS to pre-wrap to accomodate readers that cannot scroll horizontally."
|
||||||
|
tickets: [786722]
|
||||||
|
|
||||||
|
- title: "Windows installer: Remember and use previous installation folder when upgrading. Note that this will work for future upgrades, after this one."
|
||||||
|
|
||||||
|
bug fixes:
|
||||||
|
- title: "MOBI Output: Fix hidden tags with id attributes also hiding their trailing text"
|
||||||
|
tickets: [788570]
|
||||||
|
|
||||||
|
- title: "Fix switching from one news source to another via a search not saving changes to the scheduling of the first source"
|
||||||
|
tickets: [774849]
|
||||||
|
|
||||||
|
- title: "Dont allow user to use non email usernames when setting up Hotmail or Gmail accounts"
|
||||||
|
|
||||||
|
- title: "Amazon metadata download: Use separate identifiers for country specific downloads so that the links to Amazon in the Book details panel work when downloading metadata from country specific amazon websites."
|
||||||
|
tickets: [786146]
|
||||||
|
|
||||||
|
- title: "Nicer error message when user attempts to set title/author via Edit metadata dialog and one of the files is open in another program."
|
||||||
|
|
||||||
|
- title: "Fix {id} not working in send to device templates"
|
||||||
|
|
||||||
|
- title: "Windows: If creating a bytestring temp dir fails, create a unicode one and hope the rest of calibre can handle it"
|
||||||
|
|
||||||
|
- title: "Get Books: Fix some results from Amazon missing."
|
||||||
|
tickets: [785962]
|
||||||
|
|
||||||
|
improved recipes:
|
||||||
|
- Kathermini
|
||||||
|
- Faz.net
|
||||||
|
- The Washington Post
|
||||||
|
- El Mundo
|
||||||
|
- Marca
|
||||||
|
- The Nation
|
||||||
|
|
||||||
|
new recipes:
|
||||||
|
- title: Various German news sources
|
||||||
|
author: schuster
|
||||||
|
|
||||||
|
- title: "George R. R. Martin's Blog"
|
||||||
|
author: Darko Miletic
|
||||||
|
|
||||||
|
- title: "Focus (DE) and National Geographic"
|
||||||
|
auhtor: Anonymous
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- version: 0.8.2
|
- version: 0.8.2
|
||||||
date: 2011-05-20
|
date: 2011-05-20
|
||||||
|
|
||||||
@ -163,7 +1049,7 @@
|
|||||||
|
|
||||||
|
|
||||||
- version: 0.8.0
|
- version: 0.8.0
|
||||||
date: 2010-05-06
|
date: 2011-05-06
|
||||||
|
|
||||||
new features:
|
new features:
|
||||||
- title: "Go to http://calibre-ebook.com/new-in/eight to see what's new in 0.8.0"
|
- title: "Go to http://calibre-ebook.com/new-in/eight to see what's new in 0.8.0"
|
||||||
@ -522,7 +1408,7 @@
|
|||||||
- title: "FB2 Output: Option to set the FB2 genre explicitly."
|
- title: "FB2 Output: Option to set the FB2 genre explicitly."
|
||||||
tickets: [743178]
|
tickets: [743178]
|
||||||
|
|
||||||
- title: "Plugin developers: calibre now has a new plugin API, see http://calibre-ebook.com/user_manual/creating_plugins.html. Your existing plugins should continue to work, but it would be good to test them to make sure."
|
- title: "Plugin developers: calibre now has a new plugin API, see http://manual.calibre-ebook.com/creating_plugins.html. Your existing plugins should continue to work, but it would be good to test them to make sure."
|
||||||
|
|
||||||
bug fixes:
|
bug fixes:
|
||||||
- title: "Fix text color in the search bar set to black instead of the system font color"
|
- title: "Fix text color in the search bar set to black instead of the system font color"
|
||||||
@ -907,7 +1793,7 @@
|
|||||||
|
|
||||||
new features:
|
new features:
|
||||||
- title: "Tag Browser: Support the creation of nested User Categories"
|
- title: "Tag Browser: Support the creation of nested User Categories"
|
||||||
description: "See http://calibre-ebook.com/user_manual/gui.html#tag-browser for details"
|
description: "See http://manual.calibre-ebook.com/gui.html#tag-browser for details"
|
||||||
type: major
|
type: major
|
||||||
|
|
||||||
- title: "Disable Kent District Library plugin to download series information. The website could not handle the load calibre's 2 million users put on it. You can manually re-enable it if you really want series information, but it is very slow"
|
- title: "Disable Kent District Library plugin to download series information. The website could not handle the load calibre's 2 million users put on it. You can manually re-enable it if you really want series information, but it is very slow"
|
||||||
@ -3780,7 +4666,7 @@
|
|||||||
type: major
|
type: major
|
||||||
description: >
|
description: >
|
||||||
"You can now change the icons used in the User Interface and other static resources. Details on how to
|
"You can now change the icons used in the User Interface and other static resources. Details on how to
|
||||||
do this are at: http://calibre-ebook.com/user_manual/customize.html#overriding-icons-templates-etcetera"
|
do this are at: http://manual.calibre-ebook.com/customize.html#overriding-icons-templates-etcetera"
|
||||||
|
|
||||||
- title: "Split the 'Send to device' button into two buttons, 'Connect/share' and 'Send to device'. The new 'Send to device' button will now only be available when a device is connected."
|
- title: "Split the 'Send to device' button into two buttons, 'Connect/share' and 'Send to device'. The new 'Send to device' button will now only be available when a device is connected."
|
||||||
|
|
||||||
|
2
INSTALL
@ -3,7 +3,7 @@ calibre supports installation from source, only on Linux.
|
|||||||
Note that you *do not* need to install from source to hack on
|
Note that you *do not* need to install from source to hack on
|
||||||
the calibre source code. To get started with calibre development,
|
the calibre source code. To get started with calibre development,
|
||||||
use a normal calibre install and follow the instructions at
|
use a normal calibre install and follow the instructions at
|
||||||
http://calibre-ebook.com/user_manual/develop.html
|
http://manual.calibre-ebook.com/develop.html
|
||||||
|
|
||||||
On Linux, there are two kinds of installation from source possible.
|
On Linux, there are two kinds of installation from source possible.
|
||||||
Note that both kinds require lots of dependencies as well as a
|
Note that both kinds require lots of dependencies as well as a
|
||||||
|
4
README
@ -6,8 +6,8 @@ reading. It is cross platform, running on Linux, Windows and OS X.
|
|||||||
|
|
||||||
For screenshots: https://calibre-ebook.com/demo
|
For screenshots: https://calibre-ebook.com/demo
|
||||||
|
|
||||||
For installation/usage instructions please see
|
For usage instructions please see
|
||||||
http://calibre-ebook.com/user_manual
|
http://manual.calibre-ebook.com
|
||||||
|
|
||||||
For source code access:
|
For source code access:
|
||||||
bzr branch lp:calibre
|
bzr branch lp:calibre
|
||||||
|
BIN
icons/favicon.ico
Normal file
After Width: | Height: | Size: 158 KiB |
912
imgsrc/keyboard-prefs.svg
Normal file
@ -0,0 +1,912 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 12.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://web.resource.org/cc/"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
version="1.0"
|
||||||
|
id="Livello_1"
|
||||||
|
width="128"
|
||||||
|
height="128"
|
||||||
|
viewBox="0 0 144 94"
|
||||||
|
overflow="visible"
|
||||||
|
enable-background="new 0 0 144 94"
|
||||||
|
xml:space="preserve"
|
||||||
|
sodipodi:version="0.32"
|
||||||
|
inkscape:version="0.45+devel"
|
||||||
|
sodipodi:docname="preferences-desktop-keyboard.svgz"
|
||||||
|
inkscape:output_extension="org.inkscape.output.svgz.inkscape"
|
||||||
|
style="overflow:visible"><metadata
|
||||||
|
id="metadata224"><rdf:RDF><cc:Work
|
||||||
|
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
|
||||||
|
id="defs222"><linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#XMLID_35_"
|
||||||
|
id="linearGradient2719"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1.1250094,0,0,1.125,-4.5001124,-11.275)"
|
||||||
|
x1="72.000504"
|
||||||
|
y1="83.799797"
|
||||||
|
x2="72.000504"
|
||||||
|
y2="5.8003001" /><linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#rect3941_1_"
|
||||||
|
id="linearGradient2721"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.474754,0,0,-0.465075,-255.92554,-542.49842)"
|
||||||
|
x1="780.77576"
|
||||||
|
y1="-1248.1824"
|
||||||
|
x2="780.81049"
|
||||||
|
y2="-1195.5962" /><linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#rect3941_1_"
|
||||||
|
id="linearGradient2723"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.474754,0,0,-0.465075,-263.1733,-542.49842)"
|
||||||
|
x1="708.36438"
|
||||||
|
y1="-1248.1824"
|
||||||
|
x2="708.39648"
|
||||||
|
y2="-1195.5962" /><linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#rect3941_1_"
|
||||||
|
id="linearGradient2725"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.474754,0,0,-0.465075,-270.42218,-542.49842)"
|
||||||
|
x1="635.95538"
|
||||||
|
y1="-1248.1824"
|
||||||
|
x2="635.9834"
|
||||||
|
y2="-1195.5962" /><linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#rect3941_1_"
|
||||||
|
id="linearGradient2727"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.474754,0,0,-0.465075,-253.92268,-535.12325)"
|
||||||
|
x1="790.77502"
|
||||||
|
y1="-1324.245"
|
||||||
|
x2="790.81049"
|
||||||
|
y2="-1271.6509" /><linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#rect3941_1_"
|
||||||
|
id="linearGradient2729"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.474754,0,0,-0.465075,-261.17157,-535.12325)"
|
||||||
|
x1="718.36609"
|
||||||
|
y1="-1324.245"
|
||||||
|
x2="718.39838"
|
||||||
|
y2="-1271.6509" /><linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#rect3941_1_"
|
||||||
|
id="linearGradient2731"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.474754,0,0,-0.465075,-268.41933,-535.12325)"
|
||||||
|
x1="645.95471"
|
||||||
|
y1="-1324.245"
|
||||||
|
x2="645.9834"
|
||||||
|
y2="-1271.6509" /><filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
x="-0.36659993"
|
||||||
|
width="1.7331999"
|
||||||
|
y="-0.17839379"
|
||||||
|
height="1.3567876"
|
||||||
|
id="filter3416"><feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.51430916"
|
||||||
|
id="feGaussianBlur3418" /></filter><filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
x="-0.36972603"
|
||||||
|
width="1.7394521"
|
||||||
|
y="-0.17766281"
|
||||||
|
height="1.3553256"
|
||||||
|
id="filter3424"><feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.51984026"
|
||||||
|
id="feGaussianBlur3426" /></filter><filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
x="-0.22179123"
|
||||||
|
width="1.4435825"
|
||||||
|
y="-0.10660794"
|
||||||
|
height="1.2132159"
|
||||||
|
id="filter3444"><feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.31193415"
|
||||||
|
id="feGaussianBlur3446" /></filter><filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
x="-0.21995996"
|
||||||
|
width="1.4399199"
|
||||||
|
y="-0.10703628"
|
||||||
|
height="1.2140726"
|
||||||
|
id="filter3448"><feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.30858549"
|
||||||
|
id="feGaussianBlur3450" /></filter><filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
x="-0.22183562"
|
||||||
|
width="1.4436712"
|
||||||
|
y="-0.10659768"
|
||||||
|
height="1.2131954"
|
||||||
|
id="filter3452"><feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.31190415"
|
||||||
|
id="feGaussianBlur3454" /></filter><filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
x="-0.21995996"
|
||||||
|
width="1.4399199"
|
||||||
|
y="-0.10703628"
|
||||||
|
height="1.2140726"
|
||||||
|
id="filter3456"><feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.30858549"
|
||||||
|
id="feGaussianBlur3458" /></filter><filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
x="-0.22179123"
|
||||||
|
width="1.4435825"
|
||||||
|
y="-0.10660794"
|
||||||
|
height="1.2132159"
|
||||||
|
id="filter3460"><feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.31193415"
|
||||||
|
id="feGaussianBlur3462" /></filter><filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
x="-0.21991603"
|
||||||
|
width="1.4398321"
|
||||||
|
y="-0.10704668"
|
||||||
|
height="1.2140934"
|
||||||
|
id="filter3464"><feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.30861549"
|
||||||
|
id="feGaussianBlur3466" /></filter><filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
x="-0.22179123"
|
||||||
|
width="1.4435825"
|
||||||
|
y="-0.10660794"
|
||||||
|
height="1.2132159"
|
||||||
|
id="filter3468"><feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.31193415"
|
||||||
|
id="feGaussianBlur3470" /></filter><filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
x="-0.21995996"
|
||||||
|
width="1.4399199"
|
||||||
|
y="-0.10703628"
|
||||||
|
height="1.2140726"
|
||||||
|
id="filter3472"><feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.30858549"
|
||||||
|
id="feGaussianBlur3474" /></filter><filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
x="-0.22183562"
|
||||||
|
width="1.4436712"
|
||||||
|
y="-0.10659768"
|
||||||
|
height="1.2131954"
|
||||||
|
id="filter3476"><feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.31190415"
|
||||||
|
id="feGaussianBlur3478" /></filter><filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
x="-0.21995996"
|
||||||
|
width="1.4399199"
|
||||||
|
y="-0.10703628"
|
||||||
|
height="1.2140726"
|
||||||
|
id="filter3484"><feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.30858549"
|
||||||
|
id="feGaussianBlur3486" /></filter><filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
x="-0.02891983"
|
||||||
|
width="1.0578397"
|
||||||
|
y="-0.14107949"
|
||||||
|
height="1.282159"
|
||||||
|
id="filter3492"><feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.33591005"
|
||||||
|
id="feGaussianBlur3494" /></filter><filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
x="-0.02891983"
|
||||||
|
width="1.0578397"
|
||||||
|
y="-0.14107949"
|
||||||
|
height="1.282159"
|
||||||
|
id="filter3496"><feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.33591005"
|
||||||
|
id="feGaussianBlur3498" /></filter><filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
x="-0.028919654"
|
||||||
|
width="1.0578393"
|
||||||
|
y="-0.14108369"
|
||||||
|
height="1.2821674"
|
||||||
|
id="filter3500"><feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.33592005"
|
||||||
|
id="feGaussianBlur3502" /></filter><filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
x="-0.02891983"
|
||||||
|
width="1.0578397"
|
||||||
|
y="-0.14107949"
|
||||||
|
height="1.282159"
|
||||||
|
id="filter3504"><feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.33591005"
|
||||||
|
id="feGaussianBlur3506" /></filter><filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
x="-0.02891983"
|
||||||
|
width="1.0578397"
|
||||||
|
y="-0.14107949"
|
||||||
|
height="1.282159"
|
||||||
|
id="filter3508"><feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.33591005"
|
||||||
|
id="feGaussianBlur3510" /></filter><filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
x="-0.02891983"
|
||||||
|
width="1.0578397"
|
||||||
|
y="-0.14107949"
|
||||||
|
height="1.282159"
|
||||||
|
id="filter3512"><feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.33591005"
|
||||||
|
id="feGaussianBlur3514" /></filter><linearGradient
|
||||||
|
id="XMLID_31_"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="69.333504"
|
||||||
|
y1="17.6504"
|
||||||
|
x2="69.333504"
|
||||||
|
y2="9.7958002"
|
||||||
|
xlink:href="#XMLID_32_">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#FFFFFF"
|
||||||
|
id="stop169" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#DDDDDD"
|
||||||
|
id="stop171" />
|
||||||
|
</linearGradient><linearGradient
|
||||||
|
id="XMLID_32_"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="106.334"
|
||||||
|
y1="17.6504"
|
||||||
|
x2="106.334"
|
||||||
|
y2="9.7958002">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#FFFFFF"
|
||||||
|
id="stop186" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#DDDDDD"
|
||||||
|
id="stop188" />
|
||||||
|
</linearGradient><linearGradient
|
||||||
|
id="XMLID_30_"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="31.742201"
|
||||||
|
y1="17.6504"
|
||||||
|
x2="31.742201"
|
||||||
|
y2="9.7958002">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#FFFFFF"
|
||||||
|
id="stop152" /><stop
|
||||||
|
id="stop3366"
|
||||||
|
style="stop-color:#eaeaea;stop-opacity:1;"
|
||||||
|
offset="0.68235296" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#c8c8c8;stop-opacity:1;"
|
||||||
|
id="stop154" />
|
||||||
|
</linearGradient><linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#XMLID_30_"
|
||||||
|
id="linearGradient2945"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="69.333504"
|
||||||
|
y1="17.6504"
|
||||||
|
x2="69.333504"
|
||||||
|
y2="9.7958002" /><linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#XMLID_30_"
|
||||||
|
id="linearGradient2947"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="106.334"
|
||||||
|
y1="17.6504"
|
||||||
|
x2="106.334"
|
||||||
|
y2="9.7958002" /><linearGradient
|
||||||
|
xlink:href="#XMLID_30_"
|
||||||
|
id="XMLID_28_"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="38.033699"
|
||||||
|
y1="55.649399"
|
||||||
|
x2="38.033699"
|
||||||
|
y2="47.795502"
|
||||||
|
spreadMethod="pad">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#FFFFFF"
|
||||||
|
id="stop118" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#DDDDDD"
|
||||||
|
id="stop120" />
|
||||||
|
</linearGradient><linearGradient
|
||||||
|
id="XMLID_29_"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="75.333"
|
||||||
|
y1="55.649399"
|
||||||
|
x2="75.333"
|
||||||
|
y2="47.795502">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#FFFFFF"
|
||||||
|
id="stop135" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#DDDDDD"
|
||||||
|
id="stop137" />
|
||||||
|
</linearGradient><linearGradient
|
||||||
|
id="XMLID_33_"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="112.334"
|
||||||
|
y1="55.649399"
|
||||||
|
x2="112.334"
|
||||||
|
y2="47.795502">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#FFFFFF"
|
||||||
|
id="stop203" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#DDDDDD"
|
||||||
|
id="stop205" />
|
||||||
|
</linearGradient><linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#XMLID_30_"
|
||||||
|
id="linearGradient2979"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
spreadMethod="pad"
|
||||||
|
x1="38.033699"
|
||||||
|
y1="55.649399"
|
||||||
|
x2="38.033699"
|
||||||
|
y2="47.795502" /><linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#XMLID_30_"
|
||||||
|
id="linearGradient2981"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="75.333"
|
||||||
|
y1="55.649399"
|
||||||
|
x2="75.333"
|
||||||
|
y2="47.795502" /><linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#XMLID_30_"
|
||||||
|
id="linearGradient2983"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="112.334"
|
||||||
|
y1="55.649399"
|
||||||
|
x2="112.334"
|
||||||
|
y2="47.795502" /><filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="filter3372"><feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.3179705"
|
||||||
|
id="feGaussianBlur3374" /></filter><linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#XMLID_30_"
|
||||||
|
id="linearGradient3378"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="106.334"
|
||||||
|
y1="17.6504"
|
||||||
|
x2="106.334"
|
||||||
|
y2="9.7958002" /><linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#XMLID_30_"
|
||||||
|
id="linearGradient3380"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="31.742201"
|
||||||
|
y1="17.6504"
|
||||||
|
x2="31.742201"
|
||||||
|
y2="9.7958002" /></defs><sodipodi:namedview
|
||||||
|
inkscape:window-height="696"
|
||||||
|
inkscape:window-width="998"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
guidetolerance="10.0"
|
||||||
|
gridtolerance="10.0"
|
||||||
|
objecttolerance="10.0"
|
||||||
|
borderopacity="1.0"
|
||||||
|
bordercolor="#666666"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
id="base"
|
||||||
|
height="128px"
|
||||||
|
width="128px"
|
||||||
|
inkscape:zoom="2.8284271"
|
||||||
|
inkscape:cx="65.761733"
|
||||||
|
inkscape:cy="68.182683"
|
||||||
|
inkscape:window-x="26"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:current-layer="g2620" />
|
||||||
|
<filter
|
||||||
|
id="AI_Sfocatura_2">
|
||||||
|
<feGaussianBlur
|
||||||
|
stdDeviation="2"
|
||||||
|
id="feGaussianBlur4" />
|
||||||
|
</filter>
|
||||||
|
<path
|
||||||
|
display="none"
|
||||||
|
d="M 89.758,1.8 C 88.983,1.8 88.229,1.945 87.501,2.17 C 86.774,1.945 86.022,1.8 85.248,1.8 L 52.752,1.8 C 51.978,1.8 51.226,1.945 50.499,2.17 C 49.772,1.944 49.02,1.8 48.245,1.8 L 15.755,1.8 C 11.479,1.8 8,5.275 8,9.546 L 8,42.054 C 8,45.72 10.57,48.783 14,49.582 C 14,53.16 14,80.057 14,80.057 C 14,84.327 17.478,87.8 21.752,87.8 L 54.248,87.8 C 55.022,87.8 55.774,87.655 56.5,87.431 C 57.227,87.656 57.979,87.8 58.754,87.8 L 91.241,87.8 C 92.017,87.8 92.77,87.655 93.498,87.431 C 94.225,87.655 94.977,87.8 95.751,87.8 L 128.241,87.8 C 132.518,87.8 135.999,84.326 135.999,80.057 L 135.999,47.546 C 135.999,43.881 133.43,40.818 129.999,40.019 C 129.999,36.442 129.999,9.546 129.999,9.546 C 129.999,5.275 126.521,1.8 122.247,1.8 L 89.758,1.8 L 89.758,1.8 z"
|
||||||
|
id="path6"
|
||||||
|
style="fill:#ff00bf;display:none" />
|
||||||
|
|
||||||
|
<linearGradient
|
||||||
|
id="XMLID_35_"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="72.000504"
|
||||||
|
y1="83.799797"
|
||||||
|
x2="72.000504"
|
||||||
|
y2="5.8003001">
|
||||||
|
<stop
|
||||||
|
offset="0.0059"
|
||||||
|
style="stop-color:#888888"
|
||||||
|
id="stop13" />
|
||||||
|
<stop
|
||||||
|
offset="0.5"
|
||||||
|
style="stop-color:#555555"
|
||||||
|
id="stop15" />
|
||||||
|
<stop
|
||||||
|
offset="0.54"
|
||||||
|
style="stop-color:#888888"
|
||||||
|
id="stop17" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#555555"
|
||||||
|
id="stop19" />
|
||||||
|
</linearGradient>
|
||||||
|
|
||||||
|
<linearGradient
|
||||||
|
id="rect3785_1_"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="780.81049"
|
||||||
|
y1="-1240.9404"
|
||||||
|
x2="780.81049"
|
||||||
|
y2="-1195.5962"
|
||||||
|
gradientTransform="matrix(0.422,0,0,-0.4134,-223.4874,-472.1986)">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#BEBEBE"
|
||||||
|
id="stop24" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#EDEDED"
|
||||||
|
id="stop26" />
|
||||||
|
</linearGradient>
|
||||||
|
|
||||||
|
|
||||||
|
<linearGradient
|
||||||
|
id="rect3791_1_"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="708.39648"
|
||||||
|
y1="-1240.9404"
|
||||||
|
x2="708.39648"
|
||||||
|
y2="-1195.5962"
|
||||||
|
gradientTransform="matrix(0.422,0,0,-0.4134,-229.9298,-472.1986)">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#BEBEBE"
|
||||||
|
id="stop38" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#EDEDED"
|
||||||
|
id="stop40" />
|
||||||
|
</linearGradient>
|
||||||
|
|
||||||
|
|
||||||
|
<linearGradient
|
||||||
|
id="rect3797_1_"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="635.9834"
|
||||||
|
y1="-1240.9404"
|
||||||
|
x2="635.9834"
|
||||||
|
y2="-1195.5962"
|
||||||
|
gradientTransform="matrix(0.422,0,0,-0.4134,-236.3732,-472.1986)">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#BEBEBE"
|
||||||
|
id="stop52" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#EDEDED"
|
||||||
|
id="stop54" />
|
||||||
|
</linearGradient>
|
||||||
|
|
||||||
|
|
||||||
|
<linearGradient
|
||||||
|
id="rect3929_1_"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="790.81049"
|
||||||
|
y1="-1316.9951"
|
||||||
|
x2="790.81049"
|
||||||
|
y2="-1271.6509"
|
||||||
|
gradientTransform="matrix(0.422,0,0,-0.4134,-221.7071,-465.6429)">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#BEBEBE"
|
||||||
|
id="stop66" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#EDEDED"
|
||||||
|
id="stop68" />
|
||||||
|
</linearGradient>
|
||||||
|
|
||||||
|
|
||||||
|
<linearGradient
|
||||||
|
id="rect3935_1_"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="718.39838"
|
||||||
|
y1="-1316.9951"
|
||||||
|
x2="718.39838"
|
||||||
|
y2="-1271.6509"
|
||||||
|
gradientTransform="matrix(0.422,0,0,-0.4134,-228.1505,-465.6429)">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#BEBEBE"
|
||||||
|
id="stop80" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#EDEDED"
|
||||||
|
id="stop82" />
|
||||||
|
</linearGradient>
|
||||||
|
|
||||||
|
|
||||||
|
<linearGradient
|
||||||
|
id="rect3941_1_"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="645.9834"
|
||||||
|
y1="-1316.9951"
|
||||||
|
x2="645.9834"
|
||||||
|
y2="-1271.6509"
|
||||||
|
gradientTransform="matrix(0.422,0,0,-0.4134,-234.5929,-465.6429)">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#e4e4e4;stop-opacity:1;"
|
||||||
|
id="stop94" /><stop
|
||||||
|
id="stop3516"
|
||||||
|
style="stop-color:#bebebe;stop-opacity:1;"
|
||||||
|
offset="0.18012393" /><stop
|
||||||
|
offset="0.61417598"
|
||||||
|
style="stop-color:#cdcdcd;stop-opacity:1;"
|
||||||
|
id="stop3376" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#b3b3b3;stop-opacity:1;"
|
||||||
|
id="stop96" />
|
||||||
|
</linearGradient>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<g
|
||||||
|
id="g8"
|
||||||
|
style="opacity:0.8;filter:url(#AI_Sfocatura_2)"
|
||||||
|
transform="matrix(1.1250094,0,0,1.125,-9.0001128,-12.4)">
|
||||||
|
<path
|
||||||
|
d="M 128.242,45.8 L 125.547,45.8 C 125.826,45.276 126,44.688 126,44.054 L 126,11.546 C 126,9.481 124.316,7.8 122.248,7.8 L 89.758,7.8 C 88.907,7.8 88.131,8.093 87.501,8.57 C 86.872,8.093 86.097,7.8 85.248,7.8 L 52.752,7.8 C 51.903,7.8 51.128,8.093 50.499,8.57 C 49.869,8.094 49.094,7.8 48.245,7.8 L 15.755,7.8 C 13.685,7.8 12,9.48 12,11.546 L 12,44.054 C 12,46.119 13.685,47.8 15.755,47.8 L 18.453,47.8 C 18.173,48.323 18,48.912 18,49.546 L 18,82.057 C 18,84.121 19.683,85.8 21.752,85.8 L 54.248,85.8 C 55.097,85.8 55.872,85.507 56.5,85.031 C 57.13,85.507 57.905,85.8 58.754,85.8 L 91.241,85.8 C 92.092,85.8 92.868,85.507 93.498,85.03 C 94.127,85.507 94.902,85.8 95.751,85.8 L 128.241,85.8 C 130.313,85.8 131.999,84.121 131.999,82.057 L 131.999,49.546 C 132,47.48 130.314,45.8 128.242,45.8 z"
|
||||||
|
id="path10"
|
||||||
|
style="opacity:0.8" />
|
||||||
|
</g><g
|
||||||
|
id="g2620"
|
||||||
|
transform="translate(-4.5,0)"><path
|
||||||
|
style="fill:url(#linearGradient2721);fill-opacity:1"
|
||||||
|
d="M 96.478481,-2.5 L 133.03004,-2.5 C 134.11905,-2.5 135.00105,-1.621375 135.00105,-0.53575 L 135.00105,36.03575 C 135.00105,37.121374 134.11905,38 133.03004,38 L 96.478481,38 C 95.382722,38 94.500715,37.121374 94.500715,36.03575 L 94.500715,-0.53575 C 94.500715,-1.621375 95.382722,-2.5 96.478481,-2.5 z"
|
||||||
|
id="rect3785" /><g
|
||||||
|
transform="matrix(1.1250094,0,0,1.125,-4.5001124,-11.275)"
|
||||||
|
nodetypes="cccsssssscccc"
|
||||||
|
id="path3787">
|
||||||
|
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.6404,-8.5e-3,-7.7e-3,-0.6279,-240.4975,-567.9111)"
|
||||||
|
r="40.036301"
|
||||||
|
cy="-971.75677"
|
||||||
|
cx="527.62299"
|
||||||
|
id="XMLID_17_">
|
||||||
|
<stop
|
||||||
|
id="stop31"
|
||||||
|
style="stop-color:#E8E8E8"
|
||||||
|
offset="0" />
|
||||||
|
<stop
|
||||||
|
id="stop33"
|
||||||
|
style="stop-color:#FFFFFF"
|
||||||
|
offset="1" />
|
||||||
|
</radialGradient>
|
||||||
|
<path
|
||||||
|
style="fill:url(#XMLID_17_)"
|
||||||
|
id="path35"
|
||||||
|
d="M 91.145,9.856 L 89.924,35.848 L 89.852,37.041 C 91.107,37.752 92.344,38.38 93.661,38.908 C 93.683,38.914 93.717,38.9 93.738,38.908 C 97.663,40.465 101.819,41.179 105.966,41.145 C 106.662,41.14 107.359,41.12 108.055,41.072 C 109.436,40.973 110.852,40.816 112.223,40.55 C 113.593,40.285 114.914,39.932 116.252,39.504 C 118.259,38.861 120.26,38.043 122.15,37.042 L 122.077,35.849 L 120.928,9.857 L 91.145,9.857 L 91.145,9.856 z" />
|
||||||
|
</g><path
|
||||||
|
style="fill:url(#linearGradient2723);fill-opacity:1"
|
||||||
|
d="M 54.846383,-2.5 L 91.404689,-2.5 C 92.492573,-2.5 93.375705,-1.621375 93.375705,-0.53575 L 93.375705,36.03575 C 93.375705,37.121374 92.492573,38 91.404689,38 L 54.846383,38 C 53.758499,38 52.875367,37.121374 52.875367,36.03575 L 52.875367,-0.53575 C 52.875367,-1.621375 53.758499,-2.5 54.846383,-2.5 z"
|
||||||
|
id="rect3791" /><g
|
||||||
|
transform="matrix(1.1250094,0,0,1.125,-4.5001124,-11.275)"
|
||||||
|
nodetypes="cccsssssscccc"
|
||||||
|
id="path3793">
|
||||||
|
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.6404,-8.5e-3,-7.7e-3,-0.6279,-247.2058,-567.9111)"
|
||||||
|
r="40.036098"
|
||||||
|
cy="-971.12653"
|
||||||
|
cx="480.29791"
|
||||||
|
id="XMLID_19_">
|
||||||
|
<stop
|
||||||
|
id="stop45"
|
||||||
|
style="stop-color:#E8E8E8"
|
||||||
|
offset="0" />
|
||||||
|
<stop
|
||||||
|
id="stop47"
|
||||||
|
style="stop-color:#FFFFFF"
|
||||||
|
offset="1" />
|
||||||
|
</radialGradient>
|
||||||
|
<path
|
||||||
|
style="fill:url(#XMLID_19_)"
|
||||||
|
id="path49"
|
||||||
|
d="M 54.145,9.856 L 52.921,35.848 L 52.849,37.041 C 54.109,37.752 55.348,38.38 56.663,38.908 C 56.682,38.914 56.715,38.9 56.734,38.908 C 60.662,40.465 64.821,41.179 68.962,41.145 C 69.658,41.14 70.355,41.12 71.048,41.072 C 72.433,40.973 73.848,40.816 75.218,40.55 C 76.589,40.285 77.909,39.932 79.253,39.504 C 81.254,38.861 83.255,38.043 85.147,37.042 L 85.08,35.849 L 83.927,9.856 L 54.145,9.856 z" />
|
||||||
|
</g><path
|
||||||
|
style="fill:url(#linearGradient2725);fill-opacity:1"
|
||||||
|
d="M 13.224411,-2.5 L 49.775966,-2.5 C 50.867225,-2.5 51.750357,-1.621375 51.750357,-0.53575 L 51.750357,36.03575 C 51.750357,37.121374 50.867225,38 49.775966,38 L 13.224411,38 C 12.133151,38 11.250019,37.121374 11.250019,36.03575 L 11.250019,-0.53575 C 11.250019,-1.621375 12.133151,-2.5 13.224411,-2.5 z"
|
||||||
|
id="rect3797" /><g
|
||||||
|
transform="matrix(1.1250094,0,0,1.125,-4.5001124,-11.275)"
|
||||||
|
nodetypes="cccsssssscccc"
|
||||||
|
id="path3799">
|
||||||
|
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.6403,-8.5e-3,-7.7e-3,-0.6279,-253.8748,-567.9111)"
|
||||||
|
r="40.033199"
|
||||||
|
cy="-970.48578"
|
||||||
|
cx="432.98141"
|
||||||
|
id="XMLID_24_">
|
||||||
|
<stop
|
||||||
|
id="stop59"
|
||||||
|
style="stop-color:#E8E8E8"
|
||||||
|
offset="0" />
|
||||||
|
<stop
|
||||||
|
id="stop61"
|
||||||
|
style="stop-color:#FFFFFF"
|
||||||
|
offset="1" />
|
||||||
|
</radialGradient>
|
||||||
|
<path
|
||||||
|
style="fill:url(#XMLID_24_)"
|
||||||
|
id="path63"
|
||||||
|
d="M 17.146,9.856 L 15.924,35.848 L 15.852,37.041 C 17.109,37.752 18.348,38.38 19.663,38.908 C 19.682,38.914 19.716,38.9 19.735,38.908 C 23.662,40.465 27.821,41.179 31.964,41.145 C 32.657,41.14 33.357,41.12 34.05,41.072 C 35.435,40.973 36.85,40.816 38.22,40.55 C 39.591,40.285 40.909,39.932 42.249,39.504 C 44.258,38.861 46.254,38.043 48.146,37.042 L 48.075,35.849 L 46.925,9.857 L 17.146,9.857 L 17.146,9.856 z" />
|
||||||
|
</g><path
|
||||||
|
style="fill:url(#linearGradient2727);fill-opacity:1"
|
||||||
|
d="M 103.22179,40.25 L 139.77334,40.25 C 140.8691,40.25 141.75111,41.128625 141.75111,42.21425 L 141.75111,78.789125 C 141.75111,79.87475 140.8691,80.75 139.77334,80.75 L 103.22179,80.75 C 102.13278,80.75 101.25077,79.873625 101.25077,78.789125 L 101.25077,42.21425 C 101.25077,41.128625 102.13278,40.25 103.22179,40.25 z"
|
||||||
|
id="rect3929" /><g
|
||||||
|
transform="matrix(1.1250094,0,0,1.125,-4.5001124,-11.275)"
|
||||||
|
nodetypes="cccsssssscccc"
|
||||||
|
id="path3931">
|
||||||
|
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.6404,-8.5e-3,-7.7e-3,-0.6279,-238.6489,-561.7972)"
|
||||||
|
r="40.036499"
|
||||||
|
cy="-1022.5366"
|
||||||
|
cx="533.49512"
|
||||||
|
id="XMLID_25_">
|
||||||
|
<stop
|
||||||
|
id="stop73"
|
||||||
|
style="stop-color:#E8E8E8"
|
||||||
|
offset="0" />
|
||||||
|
<stop
|
||||||
|
id="stop75"
|
||||||
|
style="stop-color:#FFFFFF"
|
||||||
|
offset="1" />
|
||||||
|
</radialGradient>
|
||||||
|
<path
|
||||||
|
style="fill:url(#XMLID_25_)"
|
||||||
|
id="path77"
|
||||||
|
d="M 97.145,47.856 L 95.918,73.85 L 95.851,75.04 C 97.113,75.751 98.35,76.383 99.665,76.908 C 99.682,76.914 99.716,76.902 99.731,76.908 C 103.661,78.47 107.824,79.181 111.963,79.148 C 112.654,79.142 113.357,79.125 114.047,79.075 C 115.434,78.979 116.849,78.821 118.221,78.55 C 119.591,78.29 120.912,77.936 122.25,77.506 C 124.262,76.863 126.252,76.045 128.147,75.04 L 128.075,73.85 L 126.926,47.857 L 97.145,47.857 L 97.145,47.856 z" />
|
||||||
|
</g><path
|
||||||
|
style="fill:url(#linearGradient2729);fill-opacity:1"
|
||||||
|
d="M 61.599815,40.25 L 98.148,40.25 C 99.24263,40.25 100.12576,41.128625 100.12576,42.21425 L 100.12576,78.789125 C 100.12576,79.87475 99.24263,80.75 98.148,80.75 L 61.599815,80.75 C 60.511931,80.75 59.625423,79.873625 59.625423,78.789125 L 59.625423,42.21425 C 59.625423,41.128625 60.511931,40.25 61.599815,40.25 z"
|
||||||
|
id="rect3935" /><g
|
||||||
|
transform="matrix(1.1250094,0,0,1.125,-4.5001124,-11.275)"
|
||||||
|
nodetypes="cccsssssscccc"
|
||||||
|
id="path3937">
|
||||||
|
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.6403,-8.5e-3,-7.7e-3,-0.6279,-245.3333,-561.7972)"
|
||||||
|
r="40.038898"
|
||||||
|
cy="-1021.9087"
|
||||||
|
cx="486.17969"
|
||||||
|
id="XMLID_26_">
|
||||||
|
<stop
|
||||||
|
id="stop87"
|
||||||
|
style="stop-color:#E8E8E8"
|
||||||
|
offset="0" />
|
||||||
|
<stop
|
||||||
|
id="stop89"
|
||||||
|
style="stop-color:#FFFFFF"
|
||||||
|
offset="1" />
|
||||||
|
</radialGradient>
|
||||||
|
<path
|
||||||
|
style="fill:url(#XMLID_26_)"
|
||||||
|
id="path91"
|
||||||
|
d="M 60.145,47.856 L 58.923,73.85 L 58.852,75.04 C 60.112,75.751 61.347,76.383 62.663,76.908 C 62.684,76.914 62.715,76.902 62.735,76.908 C 66.662,78.47 70.824,79.181 74.964,79.148 C 75.654,79.142 76.357,79.125 77.048,79.075 C 78.441,78.979 79.856,78.821 81.227,78.55 C 82.597,78.29 83.913,77.936 85.25,77.506 C 87.263,76.863 89.258,76.045 91.153,75.04 L 91.076,73.85 L 89.926,47.857 L 60.145,47.857 L 60.145,47.856 z" />
|
||||||
|
</g><path
|
||||||
|
style="fill:url(#linearGradient2731)"
|
||||||
|
d="M 19.971092,40.25 L 56.529397,40.25 C 57.617282,40.25 58.500414,41.128625 58.500414,42.21425 L 58.500414,78.789125 C 58.500414,79.87475 57.617282,80.75 56.529397,80.75 L 19.971092,80.75 C 18.883208,80.75 18.000075,79.873625 18.000075,78.789125 L 18.000075,42.21425 C 18.000075,41.128625 18.883208,40.25 19.971092,40.25 z"
|
||||||
|
id="rect3941" /><g
|
||||||
|
transform="matrix(1.1250094,0,0,1.125,-4.5001124,-11.275)"
|
||||||
|
nodetypes="cccsssssscccc"
|
||||||
|
id="path3943"
|
||||||
|
style="filter:url(#filter3372)">
|
||||||
|
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.6404,-8.5e-3,-7.7e-3,-0.6279,-252.0475,-561.7972)"
|
||||||
|
r="40.039001"
|
||||||
|
cy="-1021.27"
|
||||||
|
cx="438.85059"
|
||||||
|
id="XMLID_27_">
|
||||||
|
<stop
|
||||||
|
id="stop101"
|
||||||
|
style="stop-color:#E8E8E8"
|
||||||
|
offset="0" />
|
||||||
|
<stop
|
||||||
|
id="stop103"
|
||||||
|
style="stop-color:#FFFFFF"
|
||||||
|
offset="0.5858" />
|
||||||
|
</radialGradient>
|
||||||
|
<path
|
||||||
|
style="fill:url(#XMLID_27_)"
|
||||||
|
id="path105"
|
||||||
|
d="M 23.146,47.856 L 21.921,73.85 L 21.849,75.04 C 23.11,75.751 24.348,76.383 25.663,76.908 C 25.682,76.914 25.715,76.902 25.734,76.908 C 29.662,78.47 33.821,79.181 37.965,79.148 C 38.658,79.142 39.358,79.125 40.049,79.075 C 41.436,78.979 42.851,78.821 44.222,78.55 C 45.593,78.29 46.911,77.936 48.252,77.506 C 50.262,76.863 52.257,76.045 54.15,75.04 L 54.078,73.85 L 52.926,47.857 L 23.146,47.857 L 23.146,47.856 z" />
|
||||||
|
</g><g
|
||||||
|
style="filter:url(#filter3460)"
|
||||||
|
id="g109"
|
||||||
|
transform="matrix(1.1250094,0,0,1.125,-4.5001124,-11.275)">
|
||||||
|
<path
|
||||||
|
d="M 22.213,81.018 L 23.666,76.231 C 23.666,76.231 23.743,74.036 21.849,75.041 L 21.921,76.231 L 20.291,81.018 C 20.605,81.49 21.142,81.8 21.752,81.8 L 23.515,81.8 C 22.971,81.8 22.493,81.489 22.213,81.018 z"
|
||||||
|
id="path111"
|
||||||
|
style="fill:#ffffff" />
|
||||||
|
</g><g
|
||||||
|
style="filter:url(#filter3464)"
|
||||||
|
id="g113"
|
||||||
|
transform="matrix(1.1250094,0,0,1.125,-4.5001124,-11.275)">
|
||||||
|
<path
|
||||||
|
d="M 54.079,76.23 L 54.151,75.04 C 52.89,74.329 52.333,76.23 52.333,76.23 L 53.779,81.033 C 53.498,81.496 53.023,81.8 52.485,81.8 L 54.249,81.8 C 54.853,81.8 55.386,81.496 55.701,81.033 L 54.079,76.23 z"
|
||||||
|
id="path115"
|
||||||
|
style="fill:#ffffff" />
|
||||||
|
</g><path
|
||||||
|
d="M 24.1,48.856 C 23.693,57.45 52.262,55.434 51.971,48.856 C 42.68,48.856 33.39,48.856 24.1,48.856"
|
||||||
|
id="path122"
|
||||||
|
style="fill:url(#linearGradient2979);fill-opacity:1;filter:url(#filter3500)"
|
||||||
|
transform="matrix(1.1250094,0,0,1.7718407,-4.5001124,-41.815049)" /><g
|
||||||
|
style="filter:url(#filter3468)"
|
||||||
|
id="g126"
|
||||||
|
transform="matrix(1.1250094,0,0,1.125,-4.5001124,-11.275)">
|
||||||
|
<path
|
||||||
|
d="M 59.513,81.018 L 60.966,76.231 C 60.966,76.231 61.043,74.036 59.149,75.041 L 59.221,76.231 L 57.591,81.018 C 57.905,81.49 58.442,81.8 59.052,81.8 L 60.815,81.8 C 60.271,81.8 59.792,81.489 59.513,81.018 z"
|
||||||
|
id="path128"
|
||||||
|
style="fill:#ffffff" />
|
||||||
|
</g><g
|
||||||
|
style="filter:url(#filter3472)"
|
||||||
|
id="g130"
|
||||||
|
transform="matrix(1.1250094,0,0,1.125,-4.5001124,-11.275)">
|
||||||
|
<path
|
||||||
|
d="M 91.379,76.23 L 91.451,75.04 C 90.189,74.329 89.633,76.23 89.633,76.23 L 91.078,81.033 C 90.797,81.496 90.322,81.8 89.784,81.8 L 91.548,81.8 C 92.152,81.8 92.685,81.496 93,81.033 L 91.379,76.23 z"
|
||||||
|
id="path132"
|
||||||
|
style="fill:#ffffff" />
|
||||||
|
</g><path
|
||||||
|
d="M 61.399,48.856 C 60.992,57.45 89.56,55.434 89.269,48.856 C 79.98,48.856 70.689,48.856 61.399,48.856"
|
||||||
|
id="path139"
|
||||||
|
style="fill:url(#linearGradient2981);filter:url(#filter3496)"
|
||||||
|
transform="matrix(1.1250094,0,0,1.7718407,-4.5001124,-41.815049)" /><g
|
||||||
|
id="g143"
|
||||||
|
transform="matrix(1.1250094,0,0,1.125,-4.5001124,-11.275)">
|
||||||
|
<path
|
||||||
|
d="M 15.921,43.018 L 17.374,38.231 C 17.374,38.231 17.451,36.036 15.557,37.041 L 15.629,38.231 L 14,43.018 C 14.314,43.49 14.851,43.8 15.461,43.8 L 17.224,43.8 C 16.68,43.8 16.201,43.489 15.921,43.018 z"
|
||||||
|
id="path145"
|
||||||
|
style="fill:#ffffff;filter:url(#filter3424)" />
|
||||||
|
</g><path
|
||||||
|
id="path149"
|
||||||
|
d="M 47.788,38.23 L 47.86,37.04 C 46.598,36.329 46.042,38.23 46.042,38.23 L 47.487,43.033 C 47.206,43.496 46.731,43.8 46.193,43.8 L 47.957,43.8 C 48.561,43.8 49.094,43.496 49.409,43.033 L 47.788,38.23 z"
|
||||||
|
style="fill:#ffffff;filter:url(#filter3416)"
|
||||||
|
transform="matrix(1.1250094,0,0,1.125,-4.5001124,-11.275)" /><path
|
||||||
|
d="M 17.808,10.856 C 17.401,19.45 45.969,17.434 45.678,10.856 C 36.389,10.856 27.098,10.856 17.808,10.856"
|
||||||
|
id="path156"
|
||||||
|
style="fill:url(#linearGradient3380);fill-opacity:1;filter:url(#filter3504)"
|
||||||
|
transform="matrix(1.1250094,0,0,1.7718407,-4.5001124,-17.235103)" /><g
|
||||||
|
style="filter:url(#filter3444)"
|
||||||
|
id="g160"
|
||||||
|
transform="matrix(1.1250094,0,0,1.125,-4.5001124,-11.275)">
|
||||||
|
<path
|
||||||
|
d="M 53.513,43.018 L 54.966,38.231 C 54.966,38.231 55.043,36.036 53.149,37.041 L 53.221,38.231 L 51.591,43.018 C 51.905,43.49 52.442,43.8 53.052,43.8 L 54.815,43.8 C 54.271,43.8 53.792,43.489 53.513,43.018 z"
|
||||||
|
id="path162"
|
||||||
|
style="fill:#ffffff" />
|
||||||
|
</g><g
|
||||||
|
style="filter:url(#filter3448)"
|
||||||
|
id="g164"
|
||||||
|
transform="matrix(1.1250094,0,0,1.125,-4.5001124,-11.275)">
|
||||||
|
<path
|
||||||
|
d="M 85.379,38.23 L 85.451,37.04 C 84.189,36.329 83.633,38.23 83.633,38.23 L 85.078,43.033 C 84.797,43.496 84.322,43.8 83.784,43.8 L 85.548,43.8 C 86.152,43.8 86.685,43.496 87,43.033 L 85.379,38.23 z"
|
||||||
|
id="path166"
|
||||||
|
style="fill:#ffffff" />
|
||||||
|
</g><path
|
||||||
|
d="M 55.399,10.856 C 54.992,19.45 83.56,17.434 83.269,10.856 C 73.98,10.856 64.689,10.856 55.399,10.856"
|
||||||
|
id="path173"
|
||||||
|
style="fill:url(#linearGradient2945);fill-opacity:1;filter:url(#filter3508)"
|
||||||
|
transform="matrix(1.1250094,0,0,1.7718407,-4.5001124,-17.235103)" /><g
|
||||||
|
style="filter:url(#filter3452)"
|
||||||
|
id="g177"
|
||||||
|
transform="matrix(1.1250094,0,0,1.125,-4.5001124,-11.275)">
|
||||||
|
<path
|
||||||
|
d="M 90.513,43.018 L 91.966,38.231 C 91.966,38.231 92.043,36.036 90.149,37.041 L 90.221,38.231 L 88.592,43.018 C 88.905,43.49 89.442,43.8 90.053,43.8 L 91.815,43.8 C 91.271,43.8 90.793,43.489 90.513,43.018 z"
|
||||||
|
id="path179"
|
||||||
|
style="fill:#ffffff" />
|
||||||
|
</g><g
|
||||||
|
style="filter:url(#filter3456)"
|
||||||
|
id="g181"
|
||||||
|
transform="matrix(1.1250094,0,0,1.125,-4.5001124,-11.275)">
|
||||||
|
<path
|
||||||
|
d="M 122.379,38.23 L 122.451,37.04 C 121.189,36.329 120.633,38.23 120.633,38.23 L 122.078,43.033 C 121.797,43.496 121.322,43.8 120.784,43.8 L 122.548,43.8 C 123.152,43.8 123.685,43.496 124,43.033 L 122.379,38.23 z"
|
||||||
|
id="path183"
|
||||||
|
style="fill:#ffffff" />
|
||||||
|
</g><path
|
||||||
|
d="M 92.399,10.856 C 91.992,19.45 120.56,17.434 120.269,10.856 C 110.98,10.856 101.689,10.856 92.399,10.856"
|
||||||
|
id="path190"
|
||||||
|
style="fill:url(#linearGradient3378);fill-opacity:1;filter:url(#filter3512)"
|
||||||
|
transform="matrix(1.1250094,0,0,1.7718407,-4.5001124,-17.235103)" /><g
|
||||||
|
style="filter:url(#filter3476)"
|
||||||
|
id="g194"
|
||||||
|
transform="matrix(1.1250094,0,0,1.125,-4.5001124,-11.275)">
|
||||||
|
<path
|
||||||
|
d="M 96.513,81.018 L 97.966,76.231 C 97.966,76.231 98.043,74.036 96.149,75.041 L 96.221,76.231 L 94.592,81.018 C 94.905,81.49 95.442,81.8 96.053,81.8 L 97.815,81.8 C 97.271,81.8 96.793,81.489 96.513,81.018 z"
|
||||||
|
id="path196"
|
||||||
|
style="fill:#ffffff" />
|
||||||
|
</g><g
|
||||||
|
style="filter:url(#filter3484)"
|
||||||
|
id="g198"
|
||||||
|
transform="matrix(1.1250094,0,0,1.125,-4.5001124,-11.275)">
|
||||||
|
<path
|
||||||
|
d="M 128.379,76.23 L 128.451,75.04 C 127.189,74.329 126.633,76.23 126.633,76.23 L 128.078,81.033 C 127.797,81.496 127.322,81.8 126.784,81.8 L 128.548,81.8 C 129.152,81.8 129.685,81.496 130,81.033 L 128.379,76.23 z"
|
||||||
|
id="path200"
|
||||||
|
style="fill:#ffffff" />
|
||||||
|
</g><path
|
||||||
|
d="M 98.399,48.856 C 97.992,57.45 126.56,55.434 126.269,48.856 C 116.98,48.856 107.689,48.856 98.399,48.856"
|
||||||
|
id="path207"
|
||||||
|
style="fill:url(#linearGradient2983);filter:url(#filter3492)"
|
||||||
|
transform="matrix(1.1250094,0,0,1.7718407,-4.5001124,-41.815049)" /><path
|
||||||
|
style="fill:#323232"
|
||||||
|
id="path209"
|
||||||
|
d="M 21.99503,12.125 L 19.778139,23.842759 C 19.61869,24.635599 19.540614,25.268992 19.540614,25.848502 C 19.540614,27.088895 20.172912,27.749779 21.150501,27.749779 C 22.470079,27.749779 23.261827,26.799689 23.788558,23.974716 L 26.058233,12.125 L 28.723782,12.125 L 26.533281,23.632728 C 25.715142,27.960908 24.079966,30.125 20.832702,30.125 C 18.27382,30.125 16.875066,28.645985 16.875066,26.112415 C 16.875066,25.399849 16.981732,24.502542 17.166473,23.47328 L 19.330582,12.125 L 21.99503,12.125 L 21.99503,12.125 z" /><path
|
||||||
|
style="fill:#323232"
|
||||||
|
id="path211"
|
||||||
|
d="M 64.643632,12.125 L 61.198712,30.125 L 58.500414,30.125 L 61.918629,12.125 L 64.643632,12.125 L 64.643632,12.125 z" /><path
|
||||||
|
style="fill:#323232"
|
||||||
|
id="path213"
|
||||||
|
d="M 111.34148,17.759442 C 111.34148,21.280968 110.11546,26.238278 107.82102,28.532705 C 106.7515,29.602206 105.57766,30.125 104.19402,30.125 C 100.56813,30.125 100.12576,26.368704 100.12576,24.464472 C 100.12576,20.995117 101.35178,16.037807 103.77666,13.664038 C 104.79508,12.672793 105.99394,12.125 107.35038,12.125 C 110.95129,12.125 111.34148,15.62044 111.34148,17.759442 z M 105.60374,15.124819 C 103.82883,16.899712 102.83867,21.985274 102.83867,24.593812 C 102.83867,25.793739 102.94301,27.802314 104.58532,27.802314 C 105.05486,27.802314 105.4983,27.567546 105.91676,27.15018 C 107.76775,25.270946 108.60358,19.585419 108.60358,17.629015 C 108.60358,16.089978 108.47315,14.446599 106.98627,14.446599 C 106.48956,14.447686 106.0211,14.681367 105.60374,15.124819 z" /><path
|
||||||
|
style="fill:#323232"
|
||||||
|
id="path215"
|
||||||
|
d="M 30.011882,54.875 L 32.678531,54.875 L 30.223015,67.727587 C 29.431267,71.819347 27.794991,72.875 25.182225,72.875 C 24.522435,72.875 23.91543,72.768335 23.625122,72.663868 L 24.073779,70.288648 C 24.443261,70.394213 24.785251,70.420605 25.287791,70.420605 C 26.450121,70.420605 27.161593,69.681647 27.531075,67.728687 L 30.011882,54.875 z" /><path
|
||||||
|
style="fill:#323232"
|
||||||
|
id="path217"
|
||||||
|
d="M 68.668474,54.876125 L 71.338789,54.876125 L 69.683194,63.422176 L 69.763303,63.422176 C 70.350773,62.407464 70.804726,61.659781 71.285383,60.885397 L 75.156227,54.877238 L 78.146981,54.877238 L 72.512615,62.72901 L 74.782383,72.876125 L 71.978553,72.876125 L 70.428657,64.732844 L 69.148018,66.387312 L 67.895195,72.875012 L 65.25047,72.875012 L 68.668474,54.876125 z" /><path
|
||||||
|
style="fill:#323232"
|
||||||
|
id="path219"
|
||||||
|
d="M 110.29425,54.873875 L 113.0183,54.873875 L 110.02717,70.523727 L 114.67522,70.523727 L 114.22121,72.873875 L 106.87582,72.873875 L 110.29425,54.873875 z" /></g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 34 KiB |
98
imgsrc/languages.svg
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" height="128" width="128" version="1.0" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 256 256">
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="b" y2="158.07" gradientUnits="userSpaceOnUse" x2="141.27" gradientTransform="matrix(1.68, 0, 0, 1.68, -86.7, -86.7)" y1="70.428" x1="141.27">
|
||||||
|
<stop stop-color="#FFF" offset="0"/>
|
||||||
|
<stop stop-color="#00a200" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="a" y2="158.07" gradientUnits="userSpaceOnUse" y1="70.428" gradientTransform="matrix(1.68, 0, 0, 1.68, -86.7, -86.7)" x2="141.27" x1="141.27">
|
||||||
|
<stop stop-color="#FFF" offset="0"/>
|
||||||
|
<stop stop-color="#00a100" offset="0.5"/>
|
||||||
|
<stop stop-color="#000" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="c" y2="397.34" gradientUnits="userSpaceOnUse" x2="12.991" gradientTransform="matrix(2.573, 0, 0, -2.573, 207.924, 1307.73)" y1="397.34" x1="-117">
|
||||||
|
<stop stop-color="#0053BD" offset="0"/>
|
||||||
|
<stop stop-color="#0032A4" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient id="d" gradientUnits="userSpaceOnUse" cy="439.63" cx="-57.022" gradientTransform="matrix(2.573, 0, 0, -2.573, 207.924, 1307.73)" r="98">
|
||||||
|
<stop stop-color="#FFF" offset="0"/>
|
||||||
|
<stop stop-color="#57ADFF" offset="0.6"/>
|
||||||
|
<stop stop-color="#C9E6FF" offset="1"/>
|
||||||
|
</radialGradient>
|
||||||
|
<linearGradient id="e" y2="183.37" gradientUnits="userSpaceOnUse" x2="127.66" gradientTransform="matrix(2.573, 0, 0, 2.573, -251.365, -39.26)" y1="63.215" x1="127.66">
|
||||||
|
<stop stop-color="#006a00" offset="0"/>
|
||||||
|
<stop stop-color="#004000" offset="0.2"/>
|
||||||
|
<stop stop-color="#00d000" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="f" y2="361.42" gradientUnits="userSpaceOnUse" x2="-52.251" gradientTransform="matrix(2.573, 0, 0, -2.573, 207.924, 1307.73)" y1="457.03" x1="-52.251">
|
||||||
|
<stop stop-color="#FFF" offset="0"/>
|
||||||
|
<stop stop-color="#94CAFF" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="g" y2="158.07" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="141.27" gradientTransform="matrix(2.573, 0, 0, 2.573, -251.365, -39.26)" y1="70.428" x1="141.27"/>
|
||||||
|
<linearGradient id="h" y2="130.03" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="100.51" gradientTransform="matrix(2.573, 0, 0, 2.573, -251.365, -39.26)" y1="70.033" x1="100.51"/>
|
||||||
|
<linearGradient id="i" y2="85.32" xlink:href="#b" gradientUnits="userSpaceOnUse" x2="120.48" gradientTransform="matrix(2.573, 0, 0, 2.573, -251.365, -39.26)" y1="68.117" x1="120.48"/>
|
||||||
|
<linearGradient id="j" y2="79.161" xlink:href="#b" gradientUnits="userSpaceOnUse" x2="124.57" y1="73.444" x1="124.57"/>
|
||||||
|
<linearGradient id="k" y2="73.865" xlink:href="#b" gradientUnits="userSpaceOnUse" x2="132.78" y1="67.756" x1="132.78"/>
|
||||||
|
<linearGradient id="l" y2="323.36" gradientUnits="userSpaceOnUse" x2="258.77" gradientTransform="translate(5.58, -12.8322)" y1="408.7" x1="258.77">
|
||||||
|
<stop stop-color="#3434ff" offset="0"/>
|
||||||
|
<stop stop-color="#b9b9b9" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="m" y2="85.792" gradientUnits="userSpaceOnUse" x2="-60.735" gradientTransform="translate(2.16, -1.33)" y1="171.13" x1="-60.735">
|
||||||
|
<stop stop-color="#ffff01" offset="0"/>
|
||||||
|
<stop stop-color="#b9b9b9" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="n" y2="298.71" gradientUnits="userSpaceOnUse" x2="-105.42" y1="384.04" x1="-105.42">
|
||||||
|
<stop stop-color="red" offset="0"/>
|
||||||
|
<stop stop-color="#b9b9b9" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="o" y2="408.7" gradientUnits="userSpaceOnUse" x2="32.595" gradientTransform="translate(-3.45, -0.43)" y1="494.61" x1="32.595">
|
||||||
|
<stop stop-color="lime" offset="0"/>
|
||||||
|
<stop stop-color="#b9b9b9" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="p" y2="99.849" gradientUnits="userSpaceOnUse" x2="230.67" gradientTransform="translate(1.59, 1.61)" y1="171.13" x1="230.67">
|
||||||
|
<stop stop-color="#F0F" offset="0"/>
|
||||||
|
<stop stop-color="#b9b9b9" offset="1"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<g transform="translate(-3.417, 1.068)">
|
||||||
|
<g transform="matrix(0.6, 0, 0, 0.6, 83.43, -47.62)">
|
||||||
|
<path fill-opacity="0.3" d="M-39.634,171.47c-31.743,31.66-49.227,73.53-49.227,117.89,0,92.35,75.02,167.48,167.23,167.48,92.218,0,167.25-75.13,167.25-167.48,0-92.06-75.03-166.96-167.25-166.96-44.38,0.01-86.288,17.43-118.01,49.07z" fill="#000"/>
|
||||||
|
<path d="M-43.9,167.2c-31.744,31.66-49.228,73.53-49.228,117.89,0,92.35,75.02,167.48,167.23,167.48,92.225,0,167.24-75.13,167.24-167.48,0-92.06-75.02-166.96-167.24-166.96-44.38,0.01-86.287,17.43-118,49.07z" fill="url(#c)"/>
|
||||||
|
<path d="M-39.03,172.09c-30.439,30.35-47.207,70.49-47.207,113,0,88.55,71.929,160.59,160.34,160.59,88.42,0,160.35-72.04,160.35-160.59,0-88.25-71.93-160.06-160.35-160.06-42.533,0.01-82.714,16.72-113.13,47.06z" fill="#b0d9ff"/>
|
||||||
|
<path d="M74.105,440.51c85.675,0,155.18-69.8,155.18-155.42,0-85.08-69.51-154.88-155.18-154.88-85.068,0-155.16,69.8-155.16,154.88,0,85.62,70.098,155.42,155.16,155.42z" fill="#FFF"/>
|
||||||
|
<path d="M74.105,440.51c85.675,0,155.18-69.8,155.18-155.42,0-85.08-69.51-154.88-155.18-154.88-85.068,0-155.16,69.8-155.16,154.88,0,85.62,70.098,155.42,155.16,155.42z" fill="url(#d)"/>
|
||||||
|
<path d="M22.564,147.28c-0.767,0-1.608,0.31-2.467,0.8,2.019-0.59,2.969-0.8,2.467-0.8m49.961,9.74l0.502-7.31-7.712,0.49,1.019,6.82h6.191m-87.044,126.31c-1.554-1.46-0.512-7.81-0.512-7.81s-23.183-12.18-48.417-19.5c-3.111-0.9-1.541-7.31,1.539-9.74l-1.022-6.84c-0.512-3.41,5.157-19.99,10.82-21.44,5.669-1.47-0.517,9.74-0.517,9.74l-5.661,3.41s6.693,7.8,8.244,7.8c1.542,0,4.117-3.9,4.117-3.9l-7.207-4.87,6.695-2.93,0.422-2.57,1.125-0.36,11.087-16.79c7.662-3.14,17.08-7.02,18.276-7.59,2.064-0.97,16.478-9.26,19.056-11.2,2.5833-1.97,8.2368-1.47,10.292-1.47,2.072,0,5.157-0.98,5.669-6.35,0.514-5.36,2.578-6.34,4.127-4.87,1.549,1.45-1.549,3.9,2.061,4.87,3.602,0.98,6.69,3.42,9.273,0.98,1.881-1.78-0.638-3.82-2.336-5.35h28.599l3.096-8.8-6.695-0.97-24.735-2.43v-2.93l-1.971,0.33c2.679-14.71,18.58-12.29,6.608-20.8-0.729-0.53-11.203,16.5-13.869,16.17-4.83-0.64-11.067-0.69-12.395,0.88-1.7595,2.08,3.95-7.13,8.862-9.92-7.845,2.31-32.626,10.79-58.82,38.7-25.046,26.67-35.032,62.62-35.032,63.88,0,2.43,5.156,3.41,5.668,6.34,0.518,2.91-9.785,12.68-9.785,17.55,0,2.25-2.426,32.3,6.17,57.06,10.051,28.89,31.505,53.03,34.001,54.62l5.146-2.44s-11.847-20.97-12.359-22.93c-0.509-1.94,13.391-30.23,20.093-29.24,6.693,0.95,5.152,2.92,9.271,0.48,4.122-2.43,6.6951-22.44,11.332-24.38,4.6392-1.96,9.7853-4.39,9.2733-9.27-0.5378-4.89-18.047-13.66-19.589-15.12m111.77-143.37l-13.905-4.88,2.578,7.81,11.327-2.93m-52.022,18.04c1.552,0,32.449-20.47,29.359-20.96-3.08-0.49-3.598,0-11.854-0.98-8.229-0.98-16.993,11.7-19.049,13.66-2.061,1.95-1.366,8.28,1.544,8.28m141.8,147.04l3.99-5.18-3.99-1.4-2.99,3.76-3.48,5.16,2.99,1.41,3.48-3.75m17.45,16.93l-1-7.53h-6.48l-0.5,5.64-5.99-0.93-1.48-6.12-2.99-1.88-3.5,4.23-3.48-0.94-1,3.29,3.99,0.95v30.54l14.11,3.4c-0.33,0.56-0.57,1.03-0.65,1.29-1.01,3.29,3.98,4.72,7.46,3.29,1.3-0.51,5.4-4.66,7.98-10.8,3.59-8.54,6.73-19.82,7.36-23.8l1.61-3.45-9.97,3.75-5.49-0.93h0.02m20.94-56.88l-2.61-5.04c-3.08-17.39-10.15-39.64-25.3-62.64-22.8-34.57-86.26-54.51-86.26-54.51l-3.48,4.22-2-3.28-4.99-1.89v4.24l4.5,3.76-2.99,1.41-11.476,0.93-25.918,14.11,2.488,11.28-2.997,0.94-1.483,2.35,8.474,12.68,0.496,4.24-6.978,1.41v8.45l-3.986,0.94,0.5,6.58-33.906,23.52,0.999,13.14c2.488,3.29,21.935,23.04,21.935,23.04s22.429,0.92,27.413-1.88c4.987-2.82,1.493,2.82,2.995,4.23,1.488,1.42,1.989,11.28,3.482,12.22,1.495,0.93,0,6.57,1.994,8.46,1.991,1.87,1.991,24.44,1.991,24.44s11.967,20.2,11.967,25.37c0,5.18-0.504,4.7,8.97,4.24,9.48-0.47,11.47-4.24,13.45-5.64,2.01-1.41,2.01-4.7,4-7.52,2-2.83,5.48-13.63,9.98-17.39,4.48-3.77,16.45-6.59,17.43-13.16,1-6.58,5.49-11.75,5.49-11.75l21.55-22.8-0.6,3.06-0.5,11.74,6.48-2.34-0.49-12.7-2.33-2.46,0.33-0.36s-1.49-2.82-3.48-2.82-13.97,2.82-15.95,2.35c-2-0.47-10.48-23.03-11.97-23.96-1.5-0.94-10.97-16.46-10.97-16.46s21.93,26.32,25.43,36.66c2.02,6.02,9.63,0.41,15.82-5.87l1.64,4,3.98-0.95-0.5-4.7h4.48v7.05l-1.49,3.76-0.51,6.1,3.99,3.77,2-3.28,6.47-6.12,7.48-3.76,2,3.76,1,5.18-2,5.63-3.99,3.29-1.99,8.46v4.23l-4.48-2.82-0.49-8.93-6.49,0.48-2.99,7.98,4.49,6.59,10.46,1.41,8.48-8,1-15.49,3.77-4.98c2.45,6.31,4.21,12.92,4.21,19.08,0,6.74,3.08-4.68,0.46-25.26l1.52-2.02m-125.63-47.94l-26.917-0.95,11.46-9.39h5.983l9.474,6.57v3.77m32.913-3.29v4.23h-11.46l0.99,2.83-6.98,0.95-0.49,2.34-4.99-0.93-8.98-1.89,1.5-2.34,1.5-2.84,4.98-5.16,2,3.76,7.48-0.48,3.98-4.23,15.46,2.82-4.99,0.94m0.98-6.11l-5.97,0.94-1-4.24,7.47-0.93,1-4.23,5.5,5.65-7,2.8v0.01m28.93,146.16l-3.5,2.82,0.5,7.06h4.49v-6.1l3.99-5.18v-10.81l-2.5-0.48-2.98,12.69m-33.4-14.08s-3.49,0.91,0.49,2.33,19.94-23.01,19.94-23.01l-13.46,8.45-6.98,12.23h0.01m-27.14,90.07l-2.978-2.84-5.985-0.95-0.991,2.84-7.976-0.94-0.499-3.78h-5.98l-6.476,3.78h-11.458l-0.996-2.84-18.433-1.9-2.995,2.84-7.462-1.88-1.001-6.63-3.487-0.49-3.988,7.12-13.452-0.47c2.4088,1.13,22.491,13.12,53.301,15.61,40.856,3.31,60.296-6.62,60.296-6.62l-1.5-1.43-17.94-1.41v-0.01z" fill="url(#e)"/>
|
||||||
|
<path d="M73.583,254c53.147,0,99.387-18.31,123.18-45.31-23.96-45.72-70.24-76.92-123.41-76.92-52.699,0-99.045,31.1-123.15,76.69,23.726,27.12,70.075,45.54,123.38,45.54z" fill="url(#f)"/>
|
||||||
|
<path d="M141.67,229.84s3.61,4.33,8.13,10.17c19.53-7.86,35.75-18.61,46.96-31.32-7.94-15.15-18.35-28.7-30.64-40.06-25.84-16.6-54.87-25.73-54.87-25.73l-3.48,4.22-2-3.28-4.99-1.89v4.24l4.5,3.76-2.99,1.41-11.476,0.93-25.918,14.11,2.488,11.28-2.997,0.94-1.483,2.35,8.474,12.68,0.496,4.24-6.978,1.41v8.45l-3.986,0.94,0.5,6.58-33.906,23.52,0.803,10.55c14.209,3,29.423,4.66,45.276,4.66,27.537,0,53.187-4.94,74.847-13.44-3.12-4.76-6.76-10.72-6.76-10.72zm-41.883-12.69l-26.917-0.95,11.46-9.39h5.983l9.474,6.57v3.77zm32.913-3.29v4.23h-11.46l0.99,2.83-6.98,0.95-0.49,2.34-4.99-0.93-8.98-1.89,1.5-2.34,1.5-2.84,4.98-5.16,2,3.76,7.48-0.48,3.98-4.23,15.46,2.82-4.99,0.94zm0.98-6.12v0.01l-5.97,0.94-1-4.24,7.47-0.93,1-4.23,5.5,5.65-7,2.8z" fill="url(#g)"/>
|
||||||
|
<path d="M-15.54,199.94c2.063-0.97,16.478-9.26,19.056-11.2,2.5833-1.97,8.2361-1.47,10.292-1.47,2.071,0,5.156-0.98,5.669-6.35,0.514-5.36,2.578-6.34,4.127-4.87,1.549,1.45-1.549,3.9,2.061,4.87,3.602,0.98,6.69,3.42,9.273,0.98,1.881-1.78-0.638-3.82-2.336-5.35h28.599l3.095-8.8-6.695-0.97-24.734-2.43v-2.93l-1.971,0.33c2.678-14.71,18.58-12.29,6.607-20.8-0.728-0.53-11.203,16.5-13.868,16.17-4.83-0.64-11.067-0.69-12.395,0.88-1.7598,2.08,3.95-7.13,8.862-9.92-6.106,1.8-22.478,7.38-41.781,22.9-11.17,10.8-20.701,23.45-28.121,37.48,2.789,3.19,5.918,6.25,9.309,9.18l6.674-10.11c7.663-3.13,17.083-7.02,18.277-7.59z" fill="url(#h)"/>
|
||||||
|
<path d="M43.679,149.72c-2.059,1.95-1.364,8.28,1.546,8.28,1.552,0,32.449-20.47,29.359-20.96-3.08-0.49-3.598,0-11.854-0.98-8.232-0.98-16.996,11.7-19.051,13.66z" fill="url(#i)"/>
|
||||||
|
<polygon points="126.07,73.444,123.08,73.631,123.47,76.284,125.88,76.284,125.88,76.285,126.07,73.444" transform="matrix(2.573, 0, 0, 2.573, -251.365, -39.26)" fill="url(#j)"/>
|
||||||
|
<polygon points="135.49,69.653,130.08,67.756,131.08,70.792,135.49,69.653" transform="matrix(2.573, 0, 0, 2.573, -251.365, -39.26)" fill="url(#k)"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(0.6, 0, 0, 0.6, 83.43, -47.62)">
|
||||||
|
<path d="M247.4,375.48l15.77,2.64c-2.02,5.79-5.23,10.19-9.6,13.21-4.38,3.02-9.85,4.54-16.42,4.54-10.4,0-18.1-3.4-23.09-10.2-3.95-5.44-5.92-12.32-5.92-20.61,0-9.92,2.59-17.68,7.78-23.3,5.18-5.61,11.73-8.42,19.65-8.42,8.9,0,15.92,2.94,21.07,8.82,5.14,5.88,7.6,14.88,7.38,27.01h-39.66c0.12,4.69,1.39,8.34,3.83,10.95,2.45,2.61,5.49,3.92,9.13,3.92,2.48,0,4.56-0.68,6.25-2.03s2.97-3.53,3.83-6.53zm0.9-16c-0.11-4.58-1.29-8.07-3.55-10.45-2.25-2.38-4.99-3.58-8.22-3.58-3.45,0-6.31,1.26-8.56,3.78-2.25,2.51-3.36,5.93-3.32,10.25h23.65zm-20.22-32.11l7.78-16.84h17.74l-15.49,16.84h-10.03z" stroke="#000064" stroke-width="10" fill="none"/>
|
||||||
|
<path fill-opacity="0.3" d="M236.03,308.41l-1.72,3.71-7.78,16.85-3.06,6.62c-2.91,1.64-5.67,3.57-8,6.1-6.46,6.99-9.47,16.59-9.47,27.62,0,9.31,2.28,17.68,7.12,24.38l0.04,0.03c6.25,8.5,16.45,12.81,28.25,12.81,7.55,0,14.45-1.78,20.06-5.65,5.56-3.85,9.61-9.57,12-16.38l2.53-7.16-1.38-0.25,0.07-3.53c0.24-13.05-2.36-23.79-8.97-31.34-4.14-4.73-9.57-7.82-15.66-9.5l12.5-13.6,9.88-10.71h-36.41zm-2.75,36.59c-2.2,1.01-4.2,2.42-5.81,4.22-3.48,3.88-5.02,9.15-4.97,14.59l0.03,3.22h-0.47l0.16,6.56c0.14,5.78,1.85,11.19,5.56,15.16,1.5,1.6,3.33,2.86,5.28,3.84-4.13-1.16-7.22-3.21-9.59-6.43-3.04-4.2-4.66-9.56-4.66-16.85,0-8.8,2.16-14.7,6.07-18.93,2.5-2.72,5.24-4.41,8.4-5.38zm15.94,0.59c0.6,0.25,1.1,0.64,1.66,0.94-0.53-0.36-1.1-0.63-1.66-0.94zm1.72,0.97c1.9,1.05,3.63,2.35,5.15,4.1,2.93,3.34,4.95,8.71,5.57,16.37h-2.6l-0.09-3.44c-0.14-5.6-1.66-10.85-5.28-14.68-0.83-0.88-1.77-1.66-2.75-2.35zm-10.13,9.56c1.43,0.01,2.18,0.34,3.13,1.22h-6.44c0.91-0.86,1.7-1.21,3.31-1.22zm-3.78,23.72h7.75c-0.38,0.77-0.75,1.3-0.94,1.44-0.49,0.4-0.93,0.63-2.25,0.63-2.11,0-3.11-0.43-4.47-1.88-0.04-0.04-0.05-0.14-0.09-0.19zm18.53,7.07l1.97,0.31c-1,1.18-2.09,2.26-3.34,3.12-1.14,0.79-2.44,1.38-3.85,1.91,0.51-0.31,1.04-0.6,1.5-0.97,1.54-1.23,2.75-2.72,3.72-4.37z" fill="#000"/>
|
||||||
|
<path d="M247.4,375.48l15.77,2.64c-2.02,5.79-5.23,10.19-9.6,13.21-4.38,3.02-9.85,4.54-16.42,4.54-10.4,0-18.1-3.4-23.09-10.2-3.95-5.44-5.92-12.32-5.92-20.61,0-9.92,2.59-17.68,7.78-23.3,5.18-5.61,11.73-8.42,19.65-8.42,8.9,0,15.92,2.94,21.07,8.82,5.14,5.88,7.6,14.88,7.38,27.01h-39.66c0.12,4.69,1.39,8.34,3.83,10.95,2.45,2.61,5.49,3.92,9.13,3.92,2.48,0,4.56-0.68,6.25-2.03s2.97-3.53,3.83-6.53zm0.9-16c-0.11-4.58-1.29-8.07-3.55-10.45-2.25-2.38-4.99-3.58-8.22-3.58-3.45,0-6.31,1.26-8.56,3.78-2.25,2.51-3.36,5.93-3.32,10.25h23.65zm-20.22-32.11l7.78-16.84h17.74l-15.49,16.84h-10.03z" fill="url(#l)"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(0.6, 0, 0, 0.6, 83.43, -47.62)">
|
||||||
|
<path fill-opacity="0.3" d="M25.844,80.688c-3.427,0.201-6.099,1.831-7.969,3.968-0.97,1.099-1.8,2.437-2.344,4-2.276,0.558-4.235,1.611-5.656,3.032l-0.0312-0.032c-0.1083,0.101-0.2094,0.206-0.3126,0.313-0.0412,0.042-0.0845,0.081-0.125,0.125l-0.1562,0.156-0.125,0.156c-1.8144,2.203-3.1928,5.222-2.5625,9.034,0.4099,2.47,1.6306,4.23,2.9063,5.62-0.4704-0.02-0.9399-0.09-1.4063-0.09h-14.75c-0.0153-1.66-0.0326-3.43-0.0937-6.13v-2.871c0.0081-0.22,0.0081-0.218,0-0.438v-0.219c-0.2142-2.996-1.4385-6.385-4.5628-8.781-2.742-2.103-5.854-2.492-8.312-2.406v-0.063h-0.313c-2.23,0.081-5.351,0.632-8,2.782-3.122,2.534-4.187,5.874-4.187,9.125-0.004,0.146-0.004,0.135,0,0.281v0.188c0.148,2.732,0.27,5.532,0.344,8.342,0.001,0.07-0.002,0.12,0,0.19h-17.563c-2.952,0-6.189,0.93-8.719,3.78-2.285,2.57-2.885,5.66-2.968,7.91v0.03c-0.077,2.15,0.238,5.34,2.343,8.12,2.478,3.27,5.856,4.32,9,4.31h15.875c-1.561,6.33-4.261,11.82-8.281,16.69-3.494,4.25-8.049,8.02-13.844,11.28-2.61,1.47-5.285,3.91-6.437,7.66-0.904,2.94-0.651,5.87,0.594,8.59,0.075,0.17,0.135,0.34,0.218,0.5,0.133,0.32,0.25,0.63,0.25,0.63l0.063,0.09c0.007,0.01,0.024,0.02,0.031,0.03l0.031,0.07c-0.541-0.91-0.521-0.79,0.157,0.28l3.093,4.87,1.563-0.78c0.986,0.54,1.933,1.15,3.062,1.41,3.446,0.79,6.763,0.03,9.406-1.38l0.219-0.12,0.125-0.1c0.021-0.01,0.042-0.02,0.063-0.03,0.111-0.07,0.235-0.14,0.343-0.22v-0.03c10.4-6.22,18.697-14.33,24.75-24.03h0.376l1.812-3.34c3.595-6.66,6.063-14.07,7.6875-22.07h9.5625c-0.44,5.74-0.9,11.66-1.1562,14.1v0.09l-0.03,0.22c-0.5064,5.19-1.1158,9.15-1.5625,10.94-0.2162,0.78-0.4454,1.14-0.625,1.47h-6.4688c-2.9742,0-6.5122,0.82-9.3122,3.62-2.488,2.49-3.5,5.52-3.5,8.63-0.011,0.25-0.011,0.24,0,0.5v0.25c0.061,0.73,0.386,1.33,0.562,2l-1.344,1.34,4.532,4.53c1.718,1.72,1.831,1.74,0.187,0.16-0.202-0.2-0.188-0.18,0.063,0.06,2.71,2.56,6.053,3.5,9.156,3.5l7.2812,0.13h0.1876c6.6615,0,12.942-2.73,17.25-7.57h0.719l1.812-3.15,0.031-0.03c2.821-4.91,4.094-11.02,5.313-19.07l0.156-0.31,0.125-1.06c0.479-4.07,0.943-9.08,1.406-15.09,0.467-5.21,0.696-8.98,0.781-11.72,0.104-1.87-0.192-3.7-0.687-5.5,2.84,0.2,5.131-0.73,7.031-2l0.032,0.06c0.073-0.04,0.146-0.06,0.218-0.1l0.688-0.37,0.625-0.53c1.368-1.22,2.599-2.87,3.343-4.94,1.367-0.35,2.474-0.98,3.532-1.69l0.031,0.07c0.073-0.04,0.146-0.06,0.219-0.1l0.687-0.37,0.625-0.53c2.042-1.82,3.909-4.57,4.032-8.32,0.116-3.585-1.544-6.502-3.188-8.34l-0.062-0.062-0.094-0.094c-0.072-0.075-0.144-0.147-0.219-0.219-1.61-1.691-2.862-2.91-4.094-4.063l-0.093-0.093-0.094-0.094c-1.897-1.724-3.728-3.203-5.625-4.469-1.827-1.279-4.511-2.402-7.625-2.218zm-17.75,37.752c0.1539,0.02,0.9063,0.12,0.9062,0.12-0.0002,0,0.3432,0.11,0.625,0.19-0.3653-0.07-1.4337-0.29-1.5312-0.31zm-4.2188,1.34h0.1875c-0.3096,0.23-0.3931,0.27-0.625,0.44,0.0494-0.07,0.25-0.35,0.25-0.34,0,0,0.1622-0.09,0.1875-0.1zm8.063,0.78c0.02,0.01,0.042,0.02,0.062,0.03l-0.625,0.53,0.563-0.56zm0.843,0.53c0.027,0.03,0.037,0.07,0.063,0.1l-0.938,0.65,0.875-0.75zm0.5,0.69c0.093,0.16,0.184,0.31,0.25,0.5-0.048-0.08-0.113-0.26-0.25-0.5zm-11.594,1.03c-0.0233,0.11-0.0516,0.24-0.0937,0.44,0.0065-0.07,0.0312-0.34,0.0312-0.34s0.0587-0.09,0.0625-0.1zm11.906,4.28c-0.003,0.06-0.028,0.16-0.032,0.22-0.137,0.23-1,1.72-1,1.72,0.001,0-0.369,0.28-0.593,0.44,0.331-0.49,1.323-1.94,1.625-2.38zm-10.938,1.6c0.1258,0.16,0.316,0.33,0.4688,0.5l-0.0625,0.06c-0.0913-0.1-0.2038-0.23-0.25-0.28-0.1353-0.16-0.1402-0.2-0.1563-0.22-0.004,0-0.0291-0.03-0.0312-0.03l0.0312-0.03zm0.6876,0.75c0.1283,0.12,0.1857,0.25,0.3437,0.37-0.1548-0.12-0.3158-0.25-0.4063-0.34l0.0626-0.03zm0.5312,0.53c0.2412,0.19,0.5718,0.42,1.25,0.72-0.1829-0.08-0.3407-0.14-0.5938-0.28-0.0098-0.01-0.0212-0.03-0.0312-0.03,0.0002,0-0.4694-0.29-0.625-0.41zm7.031,0.25c-0.319,0.23-0.75,0.53-0.75,0.53s-0.3648,0.06-0.531,0.09c0.399-0.19,0.73-0.35,1.281-0.62z" fill="#000"/>
|
||||||
|
<path d="M21.968,82.795c-1.392,0.082-2.666,0.824-3.531,1.812-0.889,1.008-1.555,2.502-1.312,4,0.242,1.499,1.174,2.603,2.218,3.438,1.879,1.503,3.31,2.692,4.219,3.531,1.214,1.143,2.159,2.174,2.906,3.125,0.021,0.032,0.041,0.063,0.063,0.094,0.933,1.088,2.154,1.985,3.687,2.185,1.534,0.21,3.014-0.43,4.094-1.341,0.021-0.01,0.042-0.021,0.063-0.032,1.018-0.905,1.857-2.235,1.906-3.75,0.049-1.514-0.646-2.818-1.563-3.843-0.02-0.021-0.041-0.042-0.062-0.063-1.559-1.636-2.918-2.965-4.094-4.062-0.01-0.011-0.021-0.021-0.031-0.032-1.741-1.582-3.356-2.893-4.875-3.906-1.063-0.744-2.266-1.24-3.688-1.156zm-45.968,5.406c-1.526,0.055-2.976,0.36-4.188,1.344-1.228,0.997-1.844,2.662-1.844,4.156-0.001,0.042-0.001,0.084,0,0.125,0.151,2.794,0.269,5.661,0.344,8.534,0.055,2.48,0.026,4.61,0,6.75h-23.969c-1.377,0-2.914,0.51-3.906,1.62-0.992,1.12-1.323,2.52-1.375,3.91-0.05,1.4,0.145,2.82,1.063,4.03,0.917,1.21,2.503,1.78,3.875,1.78h23.5c-1.118,10.52-4.697,19.55-10.969,27.16-4.045,4.91-9.235,9.18-15.625,12.78-1.585,0.89-2.932,2.22-3.469,3.97-0.472,1.53-0.261,3.32,0.563,4.72,0.003,0-0.004,0.02,0,0.03,0.023,0.04,0.037,0.08,0.062,0.12l0.063-0.03c0.814,1.38,2.219,2.37,3.718,2.72,1.664,0.38,3.407,0.04,4.938-0.78,0.032-0.02,0.063-0.04,0.094-0.06,10.928-6.45,19.303-14.87,24.937-25.19h0.031c3.976-7.36,6.576-15.91,8-25.44h20.688c0.9846,0,0.952,0.2,0.875,0.09,0.0205,0.03,0.0413,0.05,0.0625,0.07-0.1075-0.15,0.1515,0.24,0.0937,1.28-0.6844,9.66-1.2515,16.24-1.625,19.75v0.03c-0.5275,5.5-1.1278,9.6-1.75,12.09-0.76,2.76-1.7441,4.35-2.5937,5.07-0.021,0.01-0.0418,0.02-0.0625,0.03-0.8088,0.72-2.0336,1.22-4.125,1.22h-6.5309c-1.748,0-3.534,0.5-4.782,1.75-1.062,1.06-1.625,2.63-1.625,4.09-0.003,0.07-0.003,0.15,0,0.22,0.123,1.47,0.862,2.86,1.907,3.84l-0.032,0.03c0.027,0.03,0.067,0.04,0.094,0.07,0.011,0.01,0.021,0.02,0.031,0.03,1.262,1.19,3.032,1.75,4.75,1.75l7.4066,0.12h0.0313c6.2648,0,11.418-2.61,14.281-7.53h0.0313c2.1206-3.69,3.5126-9.5,4.7496-17.94,0.011-0.02,0.022-0.04,0.032-0.06,0.462-3.93,0.916-8.88,1.375-14.84,0.459-5.13,0.702-8.88,0.781-11.41,0.184-3.32-0.967-6.4-3.406-8.44v-0.03c-2.262-1.85-5.2882-2.62-8.7191-2.62h-21.188c0.036-1.59,0.094-3.12,0.094-4.88,0-1.65-0.049-4.14-0.125-7.498v-3.031c0.002-0.062,0.002-0.125,0-0.187-0.11-1.546-0.755-3.154-2.062-4.157-1.29-0.989-2.871-1.245-4.438-1.156h-0.062zm37.406,2.094c-1.368,0.121-2.581,0.835-3.4689,1.781-0.0431,0.04-0.0848,0.082-0.125,0.125-0.8348,1.014-1.4285,2.481-1.1875,3.938,0.2411,1.457,1.1663,2.537,2.1874,3.343,1.792,1.498,3.121,2.698,4.156,3.658,0.011,0.01,0.021,0.02,0.032,0.03,1.298,1.15,2.297,2.17,3,3.06,0.02,0.03,0.041,0.07,0.062,0.1,0.934,1.09,2.159,2,3.688,2.21,1.529,0.22,3.029-0.42,4.125-1.34,0.021-0.01,0.041-0.02,0.062-0.03,1.026-0.91,1.875-2.27,1.906-3.78,0.032-1.52-0.683-2.8-1.593-3.814-0.021-0.021-0.042-0.042-0.063-0.062-1.547-1.625-2.9-2.98-4.094-4.094-0.01-0.011-0.02-0.021-0.031-0.031-1.727-1.57-3.347-2.912-4.937-4-1.059-0.725-2.349-1.215-3.719-1.094z" stroke="#3c3c00" stroke-width="10" fill="none"/>
|
||||||
|
<path d="M21.968,82.795c-1.392,0.082-2.666,0.824-3.531,1.812-0.889,1.008-1.555,2.502-1.312,4,0.242,1.499,1.174,2.603,2.218,3.438,1.879,1.503,3.31,2.692,4.219,3.531,1.214,1.143,2.159,2.174,2.906,3.125,0.021,0.032,0.041,0.063,0.063,0.094,0.933,1.088,2.154,1.985,3.687,2.185,1.534,0.21,3.014-0.43,4.094-1.341,0.021-0.01,0.042-0.021,0.063-0.032,1.018-0.905,1.857-2.235,1.906-3.75,0.049-1.514-0.646-2.818-1.563-3.843-0.02-0.021-0.041-0.042-0.062-0.063-1.559-1.636-2.918-2.965-4.094-4.062-0.01-0.011-0.021-0.021-0.031-0.032-1.741-1.582-3.356-2.893-4.875-3.906-1.063-0.744-2.266-1.24-3.688-1.156zm-45.968,5.406c-1.526,0.055-2.976,0.36-4.188,1.344-1.228,0.997-1.844,2.662-1.844,4.156-0.001,0.042-0.001,0.084,0,0.125,0.151,2.794,0.269,5.661,0.344,8.534,0.055,2.48,0.026,4.61,0,6.75h-23.969c-1.377,0-2.914,0.51-3.906,1.62-0.992,1.12-1.323,2.52-1.375,3.91-0.05,1.4,0.145,2.82,1.063,4.03,0.917,1.21,2.503,1.78,3.875,1.78h23.5c-1.118,10.52-4.697,19.55-10.969,27.16-4.045,4.91-9.235,9.18-15.625,12.78-1.585,0.89-2.932,2.22-3.469,3.97-0.472,1.53-0.261,3.32,0.563,4.72,0.003,0-0.004,0.02,0,0.03,0.023,0.04,0.037,0.08,0.062,0.12l0.063-0.03c0.814,1.38,2.219,2.37,3.718,2.72,1.664,0.38,3.407,0.04,4.938-0.78,0.032-0.02,0.063-0.04,0.094-0.06,10.928-6.45,19.303-14.87,24.937-25.19h0.031c3.976-7.36,6.576-15.91,8-25.44h20.688c0.9846,0,0.952,0.2,0.875,0.09,0.0205,0.03,0.0413,0.05,0.0625,0.07-0.1075-0.15,0.1515,0.24,0.0937,1.28-0.6844,9.66-1.2515,16.24-1.625,19.75v0.03c-0.5275,5.5-1.1278,9.6-1.75,12.09-0.76,2.76-1.7441,4.35-2.5937,5.07-0.021,0.01-0.0418,0.02-0.0625,0.03-0.8088,0.72-2.0336,1.22-4.125,1.22h-6.5309c-1.748,0-3.534,0.5-4.782,1.75-1.062,1.06-1.625,2.63-1.625,4.09-0.003,0.07-0.003,0.15,0,0.22,0.123,1.47,0.862,2.86,1.907,3.84l-0.032,0.03c0.027,0.03,0.067,0.04,0.094,0.07,0.011,0.01,0.021,0.02,0.031,0.03,1.262,1.19,3.032,1.75,4.75,1.75l7.4066,0.12h0.0313c6.2648,0,11.418-2.61,14.281-7.53h0.0313c2.1206-3.69,3.5126-9.5,4.7496-17.94,0.011-0.02,0.022-0.04,0.032-0.06,0.462-3.93,0.916-8.88,1.375-14.84,0.459-5.13,0.702-8.88,0.781-11.41,0.184-3.32-0.967-6.4-3.406-8.44v-0.03c-2.262-1.85-5.2882-2.62-8.7191-2.62h-21.188c0.036-1.59,0.094-3.12,0.094-4.88,0-1.65-0.049-4.14-0.125-7.498v-3.031c0.002-0.062,0.002-0.125,0-0.187-0.11-1.546-0.755-3.154-2.062-4.157-1.29-0.989-2.871-1.245-4.438-1.156h-0.062zm37.406,2.094c-1.368,0.121-2.581,0.835-3.4689,1.781-0.0431,0.04-0.0848,0.082-0.125,0.125-0.8348,1.014-1.4285,2.481-1.1875,3.938,0.2411,1.457,1.1663,2.537,2.1874,3.343,1.792,1.498,3.121,2.698,4.156,3.658,0.011,0.01,0.021,0.02,0.032,0.03,1.298,1.15,2.297,2.17,3,3.06,0.02,0.03,0.041,0.07,0.062,0.1,0.934,1.09,2.159,2,3.688,2.21,1.529,0.22,3.029-0.42,4.125-1.34,0.021-0.01,0.041-0.02,0.062-0.03,1.026-0.91,1.875-2.27,1.906-3.78,0.032-1.52-0.683-2.8-1.593-3.814-0.021-0.021-0.042-0.042-0.063-0.062-1.547-1.625-2.9-2.98-4.094-4.094-0.01-0.011-0.02-0.021-0.031-0.031-1.727-1.57-3.347-2.912-4.937-4-1.059-0.725-2.349-1.215-3.719-1.094z" fill="url(#m)"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(0.6, 0, 0, 0.6, 83.43, -47.62)">
|
||||||
|
<path fill-opacity="0.3" d="M-61.025,286.89c-3.782,0-7.29,2.17-8.968,5.56-2.725,5.45-4,11.45-4,17.66,0.002,2.9,1.311,5.59,3.437,7.47l1,6.03c1.254,7.88,2.268,14.86,3.125,21.22,0.957,7.16,1.294,11.61,1.406,14.46-0.503,0.33-0.753,0.54-2.125,1.1-3.979,1.6-8.262,2.44-13.218,2.44-4.428,0-6.878-0.95-7.75-1.57-1.089-0.76-0.594,0.48-0.594-1.93,0-1.31,0.182-2.78,0.656-4.47,0.403-1.41,1.087-3.24,2.094-5.41,0.778-1.65,1.762-3.55,3.031-5.84,2.602-4.68,0.949-10.72-3.656-13.44l-1.688-1.03c-2.324-1.4-5.099-1.77-7.718-1.06-2.619,0.7-4.847,2.43-6.157,4.81-1.99,3.6-3.62,6.73-4.91,9.56-1.75,3.83-3.1,7.47-4.03,10.97-1.11,4.12-1.68,8.22-1.68,12.28,0,7.05,2.85,13.72,7.9,18.47v0.62l2.81,1.88c6.143,4.11,13.616,5.53,21.785,5.53,6.2,0,11.614-0.55,16.532-1.75h0.437l0.656-0.19,0.125-0.03,0.063-0.03c6.188-1.71,11.792-4.84,15.781-9.78l0.031-0.03c4.435-5.56,6.282-12.64,6.282-20.03,0-4.72-0.518-10.68-1.407-18.38-0.561-4.86-1.368-11.12-2.5-18.75v-0.03c-0.239-1.59-0.264-1.84-0.375-2.59,0.733-1.01,1.337-2.11,1.657-3.35,0.59-2.28,1.016-4.12,1.281-5.81,0.335-2.15,0.406-4.35,0.406-7.09-0.003-3.79-2.172-7.29-5.562-8.97-0.744-0.37-1.617-0.81-2.657-1.31-0.48-0.24-0.886-0.39-1.343-0.6-1.431-3.8-4.989-6.58-9.188-6.59h-0.969zm2.5,11.25h0.032c-0.007,0.01-0.025,0.02-0.032,0.03v-0.03zm1,6.37c0.79,0.35,1.549,0.68,2.407,1.1h0.031v0.03c0.334,0.16,0.597,0.28,0.906,0.44-0.038,1.29-0.061,2.76-0.156,3.37-0.103,0.66-0.436,1.97-0.719,3.16l-3.187,1.09-0.157-0.97-0.531-3.09-2.094-1.13c0.071-1.36,0.191-2.7,0.438-3.97l3.062-0.03zm4.938,2.35h0.031v0.03c-0.013-0.01-0.018-0.03-0.031-0.03zm-47.344,59.28c1.065,2.28,2.593,4.26,4.438,5.56,3.942,2.78,8.992,3.94,15.125,3.94,6.437,0,12.488-1.14,18.031-3.38,3.08-1.24,5.327-2.45,7.312-4.37,0.407-0.4,0.767-1.03,1.157-1.53-0.585,2.41-1.505,4.43-2.782,6.03-1.939,2.4-4.919,4.22-9.062,5.4l-0.188,0.07c-3.645,0.99-8.417,1.53-14.375,1.53-6.53,0-11.23-1.15-14.437-3.22l-0.219-0.16c-3.183-2.14-4.887-5.42-5-9.87z" fill="#000"/>
|
||||||
|
<path d="M-63.656,295.12c-1.366,0.01-2.613,0.78-3.219,2-2.252,4.51-3.344,9.49-3.344,14.82,0.001,1.34,0.748,2.57,1.938,3.18l0.937,0.5,1.469,8.76c1.262,7.93,2.292,15.03,3.156,21.43,1.113,8.33,1.656,14.29,1.657,17.41-0.001,0.55-0.107,1.01-1.032,1.9-0.924,0.9-2.69,1.99-5.281,3.04-4.761,1.91-9.928,2.9-15.625,2.9-5.28,0-9.03-1.05-11.438-2.75-2.331-1.64-3.312-3.57-3.312-7.15,0-1.96,0.297-4.01,0.906-6.19,0.512-1.79,1.306-3.94,2.438-6.38,0.868-1.84,1.945-3.88,3.25-6.25,0.948-1.7,0.365-3.85-1.313-4.84l-1.719-1.03c-0.836-0.5-1.842-0.65-2.785-0.39-0.943,0.25-1.743,0.88-2.215,1.73-1.942,3.52-3.502,6.53-4.692,9.13-1.62,3.55-2.83,6.87-3.65,9.97-0.98,3.63-1.47,7.17-1.47,10.62,0,6.5,2.76,12.18,7.88,15.63-0.01,0.01-0.01,0.02,0,0.03,4.669,3.13,10.796,4.44,18.214,4.43,6.324,0,11.633-0.54,16.062-1.74h0.032c5.224-1.45,9.549-3.97,12.531-7.66,3.326-4.17,4.875-9.67,4.875-16.03,0-4.25-0.468-10.07-1.344-17.66-0.55-4.76-1.375-10.95-2.5-18.53-0.547-3.63-0.617-4.16-0.875-6,1.142-0.39,2.01-1.33,2.313-2.5,0.563-2.18,0.948-3.89,1.156-5.22,0.239-1.53,0.312-3.47,0.312-6.09-0.001-1.37-0.776-2.62-2-3.22-0.754-0.38-1.612-0.81-2.594-1.28-1.378-0.67-2.668-1.25-3.874-1.75h-0.032c0.001-0.03-0.201-0.54-0.312-1.6-0.193-1.82-1.728-3.21-3.563-3.22h-0.937z" transform="translate(-1.63, -6.1)" stroke="#510000" stroke-width="10" fill="none"/>
|
||||||
|
<path transform="translate(-1.63, -6.1)" d="M-63.656,295.12c-1.366,0.01-2.613,0.78-3.219,2-2.252,4.51-3.344,9.49-3.344,14.82,0.001,1.34,0.748,2.57,1.938,3.18l0.937,0.5,1.469,8.76c1.262,7.93,2.292,15.03,3.156,21.43,1.113,8.33,1.656,14.29,1.657,17.41-0.001,0.55-0.107,1.01-1.032,1.9-0.924,0.9-2.69,1.99-5.281,3.04-4.761,1.91-9.928,2.9-15.625,2.9-5.28,0-9.03-1.05-11.438-2.75-2.331-1.64-3.312-3.57-3.312-7.15,0-1.96,0.297-4.01,0.906-6.19,0.512-1.79,1.306-3.94,2.438-6.38,0.868-1.84,1.945-3.88,3.25-6.25,0.948-1.7,0.365-3.85-1.313-4.84l-1.719-1.03c-0.836-0.5-1.842-0.65-2.785-0.39-0.943,0.25-1.743,0.88-2.215,1.73-1.942,3.52-3.502,6.53-4.692,9.13-1.62,3.55-2.83,6.87-3.65,9.97-0.98,3.63-1.47,7.17-1.47,10.62,0,6.5,2.76,12.18,7.88,15.63-0.01,0.01-0.01,0.02,0,0.03,4.669,3.13,10.796,4.44,18.214,4.43,6.324,0,11.633-0.54,16.062-1.74h0.032c5.224-1.45,9.549-3.97,12.531-7.66,3.326-4.17,4.875-9.67,4.875-16.03,0-4.25-0.468-10.07-1.344-17.66-0.55-4.76-1.375-10.95-2.5-18.53-0.547-3.63-0.617-4.16-0.875-6,1.142-0.39,2.01-1.33,2.313-2.5,0.563-2.18,0.948-3.89,1.156-5.22,0.239-1.53,0.312-3.47,0.312-6.09-0.001-1.37-0.776-2.62-2-3.22-0.754-0.38-1.612-0.81-2.594-1.28-1.378-0.67-2.668-1.25-3.874-1.75h-0.032c0.001-0.03-0.201-0.54-0.312-1.6-0.193-1.82-1.728-3.21-3.563-3.22h-0.937z" fill="url(#n)"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(0.6, 0, 0, 0.6, 83.43, -47.62)">
|
||||||
|
<path fill-opacity="0.3" d="M84.844,406.06c-1.134,0.12-2.236,0.56-3.25,1.25-2.029,1.38-3.196,3.74-3.063,6.19,0.174,5.03,0.324,11.84,0.5,18.62h-3.937l-1.406-1.24c0.945-0.89,1.658-2.03,2-3.32,0.671-2.53-0.141-5.28-2.094-7.03l-0.094-0.09-0.125-0.1-6.156-5.06c-1.462-1.3-3.212-1.76-5.157-1.56-0.608-0.95-1.353-1.81-2.374-2.38l-7.032-4.25c-1.169-0.73-2.433-1.03-3.812-1h-0.032c-3.379,0.1-6.28,2.69-6.75,6.03,0.078-0.54-0.176,0.75-0.812,2.35-0.636,1.59-1.628,3.76-2.906,6.44-2.398,5.01-6.437,11.81-12.094,20.06-1.892,2.72-1.551,6.46,0.75,8.84l0.031,0.03,0.031,0.04,1.094,1.09c1.083,1.09,2.488,1.66,3.938,1.87-0.042,8.6-0.07,18.19-0.219,22.94v0.03c-0.029,1.03,0.291,1.99,0.687,2.91-0.999,3.22-2.13,5.28-2.093,5.25-1.466,1.29-3.047,2.89-3.907,5.47-1.038,3.11-0.225,6.71,2.126,9.06,2.968,2.97,8.227,3.76,11.937,1.91,1.539-0.77,2.807-1.85,3.875-3.07,2.082,1.47,4.625,1.82,6.625,1.54,1.928-0.28,3.638-1.36,5.094-2.69,0.346,0.2,0.676,0.45,1.031,0.59-0.108,1.44,0.166,2.93,0.969,4.25l0.062,0.09,0.063,0.1,0.718,1.09c2.045,3.15,6.379,4.08,9.563,2.1,7.964-4.74,14.225-11.13,18.937-18.88v2.44c0,3.22,0.735,6.66,3.094,9.47,2.405,2.86,5.991,4.2,9.282,4.4h0.252c0.12,0.01,0.23,0.01,0.34,0h11.06c5.8,0,11.08-4.17,13.29-9.31,0.95-2.06,0.78-4.28-0.35-6.25-0.64-1.12-1.61-1.95-2.72-2.56-0.19-2.55-0.31-5.72-0.31-9.84,0.02-1.89-0.73-3.64-2.06-4.97-1.34-1.34-3.18-2.09-5.06-2.07h-1.72c-2.79-0.03-5.22,1.65-6.35,4.07v-22.94h12.13c2.86,0.05,5.41-1.69,6.5-4.35,1.09-2.65,0.44-5.73-1.63-7.71l-6.03-6.07c-0.43-0.43-0.98-0.69-1.5-1-0.14-2.99-1.36-5.84-3.06-7.96-3-3.75-7.01-5.8-12.69-8.38-0.143-0.07-0.294-0.04-0.436-0.09-0.658-0.82-1.432-1.58-2.406-2.03l-0.126-0.07-0.124-0.03-8.688-3.62c-1.113-0.52-2.272-0.72-3.406-0.6zm-5.813,42.6c-0.196,5.17-0.706,10.05-1.75,14.46-0.072-4-0.164-8.36-0.187-14.12,0.509-0.04,0.999-0.09,1.5-0.25l0.062-0.03h0.063c0.085-0.03,0.225-0.04,0.312-0.06z" fill="#000"/>
|
||||||
|
<path d="M44.734,408.22c-0.301,0.01-0.552,0.23-0.593,0.53-0.21,1.47-1.637,5.13-4.282,10.66-2.628,5.5-6.819,12.48-12.593,20.91-0.169,0.24-0.143,0.56,0.062,0.78l1.094,1.09c0.229,0.23,0.598,0.25,0.844,0.03,1.939-1.74,3.586-3.5,5.062-5.25-0.009,15.45-0.083,27.42-0.312,34.75-0.007,0.22,0.104,0.43,0.291,0.54,0.187,0.12,0.421,0.13,0.615,0.02l4.687-2.53c0.204-0.1,0.336-0.3,0.344-0.53v-2.62h20.438v3.97c-0.06-0.03-0.097-0.07-0.157-0.1-0.286-0.15-0.641-0.05-0.812,0.22l-0.719,1.09c-0.152,0.24-0.126,0.55,0.063,0.75,1.673,1.92,2.84,3.45,3.531,4.6,0.687,1.14,1.345,2.7,1.937,4.59,0.325,1.04,0.759,1.82,1.469,2.22s1.604,0.24,2.375-0.25c0.324-0.21,0.57-0.47,0.813-0.75-2.695,3.53-5.749,6.78-9.313,9.69-0.253,0.19-0.32,0.54-0.156,0.81l0.719,1.09c0.183,0.29,0.558,0.37,0.843,0.19,17.903-10.64,26.682-29.9,26.344-57.4h2.375v46.37c0,2.26,0.507,4.08,1.594,5.38,1.086,1.29,2.737,1.99,4.781,2.12h11.252c3.35,0,5.9-1.92,7.4-5.44,0.09-0.18,0.08-0.39-0.02-0.56-0.1-0.18-0.28-0.29-0.48-0.31-0.95-0.11-1.59-0.47-2.09-1.13s-0.82-1.66-0.94-3.03c-0.24-2.87-0.37-6.56-0.37-11.12,0-0.17-0.07-0.33-0.18-0.45-0.12-0.12-0.28-0.18-0.45-0.18h-1.81c-0.33,0-0.61,0.26-0.62,0.6-0.25,5.29-0.55,9.38-0.91,12.25-0.17,1.37-0.53,2.34-1,2.93s-1,0.85-1.81,0.85h-4.03c-1.827,0.22-2.995-0.07-3.661-0.78-0.666-0.72-0.949-2.02-0.718-3.97,0.001-0.02,0.001-0.05,0-0.07v-43.46h18.529c0.26,0,0.49-0.15,0.58-0.39,0.1-0.23,0.04-0.5-0.14-0.68l-6.13-6.15c-0.11-0.12-0.27-0.19-0.43-0.19-0.17,0-0.32,0.07-0.44,0.19l-4.16,4.15h-16.122v-19.31l2.969-1.97c0.179-0.13,0.278-0.34,0.258-0.56-0.019-0.22-0.153-0.41-0.352-0.5l-8.687-3.63c-0.197-0.09-0.427-0.07-0.606,0.05s-0.281,0.33-0.269,0.55c0.235,6.82,0.482,15.34,0.718,25.37h-12c-0.238,0-0.457,0.13-0.562,0.35l-5.188-4.53c-0.128-0.11-0.292-0.16-0.457-0.14-0.164,0.02-0.315,0.1-0.418,0.23l-2.718,3.37h-7.094c2.095-2.77,3.962-5.22,5.312-6.84,1.548-1.86,2.694-2.98,3.094-3.22,1.15-0.69,2.306-1.15,3.438-1.37,0.226-0.05,0.406-0.22,0.465-0.45,0.06-0.22-0.012-0.46-0.184-0.62l-6.156-5.06c-0.13-0.11-0.302-0.17-0.474-0.15-0.173,0.02-0.33,0.11-0.433,0.25l-2.343,3h-8.688c0.965-1.64,1.886-3,2.688-3.85,0.961-1.02,1.763-1.4,2.343-1.4,0.284,0,0.534-0.19,0.608-0.46s-0.048-0.56-0.295-0.7l-7.219-4.34c-0.103-0.07-0.222-0.1-0.344-0.1zm48.094,5.78c-0.154,0.01-0.299,0.08-0.406,0.19l-1.094,1.09c-0.119,0.13-0.179,0.3-0.168,0.47,0.012,0.17,0.096,0.33,0.231,0.44,3.795,3.08,6.048,6.14,6.843,9.09,0.432,1.61,0.907,2.79,1.5,3.6,0.296,0.4,0.626,0.72,1.036,0.9,0.4,0.19,0.88,0.23,1.31,0.1,1.44-0.44,2.42-1.73,2.94-3.53,0.54-1.9-0.04-3.85-1.57-5.75-1.59-1.99-5.003-4.11-10.341-6.53-0.087-0.05-0.184-0.07-0.281-0.07zm-47.75,8.13h9.531l-5.562,11.4h-8.094l-2.562-1.71c2.227-2.93,4.462-6.15,6.687-9.69zm24.438,13.81l2.281,2.28c0.162,0.17,0.404,0.23,0.625,0.16,2.098-0.7,4.468-1.06,7.062-1.06h1.907c0.622,18.59-3.482,33.69-12.282,45.37,0.239-0.33,0.435-0.72,0.563-1.12,0.278-0.89,0.285-1.89,0.094-3.04-0.221-1.32-1.188-2.59-2.782-3.9-1.344-1.11-3.247-2.29-5.531-3.5l4.875-2.06c0.236-0.11,0.386-0.34,0.375-0.6-0.238-6.18-0.342-16.38-0.344-30.37l2.969-2c0.072-0.04,0.136-0.1,0.188-0.16zm-29.563,0.66h7.438v11.75h-7.438v-11.75zm13.031,0h7.407v11.75h-7.407v-11.75zm-13.031,14.81h7.438v12.12h-7.438v-12.12zm13.031,0h7.407v12.12h-7.407v-12.12zm-1.812,20.09c-0.089,0.02-0.175,0.05-0.25,0.1l-1.094,0.72c-0.282,0.18-0.365,0.55-0.187,0.84,0.953,1.67,1.786,3.33,2.5,5,0.7,1.63,1.238,3.49,1.593,5.62,0.193,1.16,0.497,2.05,1.157,2.57,0.659,0.52,1.595,0.48,2.437,0.06,1.68-0.84,2.471-2.67,2.344-5.09-0.072-1.37-0.845-2.79-2.188-4.38s-3.29-3.37-5.843-5.31c-0.133-0.11-0.302-0.15-0.469-0.13zm-8.656,1.44c-0.144,0.02-0.276,0.08-0.375,0.19l-0.719,0.72c-0.167,0.17-0.216,0.43-0.125,0.65,0.466,1.17,0.894,2.59,1.25,4.25,0.345,1.62,0.431,3.56,0.312,5.82-0.064,1.22,0.113,2.2,0.657,2.9,0.543,0.7,1.46,0.95,2.437,0.81,0.993-0.14,1.811-0.67,2.344-1.5,0.532-0.82,0.811-1.91,0.875-3.25,0.137-2.88-2.012-6.26-6.156-10.4-0.13-0.14-0.314-0.21-0.5-0.19zm-6.875,0.72c-0.256,0.04-0.455,0.24-0.5,0.5-1.192,5.24-2.85,8.69-4.719,10.34-1.067,0.94-1.765,1.8-2.063,2.69s-0.075,1.86,0.594,2.53c1.23,1.23,2.914,1.5,4.531,0.69,1.597-0.8,2.767-2.25,3.532-4.16,0.816-2.04,1.023-5.81,0.781-11.62-0.016-0.27-0.206-0.5-0.469-0.56l-1.437-0.38c-0.081-0.03-0.166-0.04-0.25-0.03z" stroke="#003c00" stroke-width="10" fill="none"/>
|
||||||
|
<path d="M44.734,408.22c-0.301,0.01-0.552,0.23-0.593,0.53-0.21,1.47-1.637,5.13-4.282,10.66-2.628,5.5-6.819,12.48-12.593,20.91-0.169,0.24-0.143,0.56,0.062,0.78l1.094,1.09c0.229,0.23,0.598,0.25,0.844,0.03,1.939-1.74,3.586-3.5,5.062-5.25-0.009,15.45-0.083,27.42-0.312,34.75-0.007,0.22,0.104,0.43,0.291,0.54,0.187,0.12,0.421,0.13,0.615,0.02l4.687-2.53c0.204-0.1,0.336-0.3,0.344-0.53v-2.62h20.438v3.97c-0.06-0.03-0.097-0.07-0.157-0.1-0.286-0.15-0.641-0.05-0.812,0.22l-0.719,1.09c-0.152,0.24-0.126,0.55,0.063,0.75,1.673,1.92,2.84,3.45,3.531,4.6,0.687,1.14,1.345,2.7,1.937,4.59,0.325,1.04,0.759,1.82,1.469,2.22s1.604,0.24,2.375-0.25c0.324-0.21,0.57-0.47,0.813-0.75-2.695,3.53-5.749,6.78-9.313,9.69-0.253,0.19-0.32,0.54-0.156,0.81l0.719,1.09c0.183,0.29,0.558,0.37,0.843,0.19,17.903-10.64,26.682-29.9,26.344-57.4h2.375v46.37c0,2.26,0.507,4.08,1.594,5.38,1.086,1.29,2.737,1.99,4.781,2.12h11.252c3.35,0,5.9-1.92,7.4-5.44,0.09-0.18,0.08-0.39-0.02-0.56-0.1-0.18-0.28-0.29-0.48-0.31-0.95-0.11-1.59-0.47-2.09-1.13s-0.82-1.66-0.94-3.03c-0.24-2.87-0.37-6.56-0.37-11.12,0-0.17-0.07-0.33-0.18-0.45-0.12-0.12-0.28-0.18-0.45-0.18h-1.81c-0.33,0-0.61,0.26-0.62,0.6-0.25,5.29-0.55,9.38-0.91,12.25-0.17,1.37-0.53,2.34-1,2.93s-1,0.85-1.81,0.85h-4.03c-1.827,0.22-2.995-0.07-3.661-0.78-0.666-0.72-0.949-2.02-0.718-3.97,0.001-0.02,0.001-0.05,0-0.07v-43.46h18.529c0.26,0,0.49-0.15,0.58-0.39,0.1-0.23,0.04-0.5-0.14-0.68l-6.13-6.15c-0.11-0.12-0.27-0.19-0.43-0.19-0.17,0-0.32,0.07-0.44,0.19l-4.16,4.15h-16.122v-19.31l2.969-1.97c0.179-0.13,0.278-0.34,0.258-0.56-0.019-0.22-0.153-0.41-0.352-0.5l-8.687-3.63c-0.197-0.09-0.427-0.07-0.606,0.05s-0.281,0.33-0.269,0.55c0.235,6.82,0.482,15.34,0.718,25.37h-12c-0.238,0-0.457,0.13-0.562,0.35l-5.188-4.53c-0.128-0.11-0.292-0.16-0.457-0.14-0.164,0.02-0.315,0.1-0.418,0.23l-2.718,3.37h-7.094c2.095-2.77,3.962-5.22,5.312-6.84,1.548-1.86,2.694-2.98,3.094-3.22,1.15-0.69,2.306-1.15,3.438-1.37,0.226-0.05,0.406-0.22,0.465-0.45,0.06-0.22-0.012-0.46-0.184-0.62l-6.156-5.06c-0.13-0.11-0.302-0.17-0.474-0.15-0.173,0.02-0.33,0.11-0.433,0.25l-2.343,3h-8.688c0.965-1.64,1.886-3,2.688-3.85,0.961-1.02,1.763-1.4,2.343-1.4,0.284,0,0.534-0.19,0.608-0.46s-0.048-0.56-0.295-0.7l-7.219-4.34c-0.103-0.07-0.222-0.1-0.344-0.1zm48.094,5.78c-0.154,0.01-0.299,0.08-0.406,0.19l-1.094,1.09c-0.119,0.13-0.179,0.3-0.168,0.47,0.012,0.17,0.096,0.33,0.231,0.44,3.795,3.08,6.048,6.14,6.843,9.09,0.432,1.61,0.907,2.79,1.5,3.6,0.296,0.4,0.626,0.72,1.036,0.9,0.4,0.19,0.88,0.23,1.31,0.1,1.44-0.44,2.42-1.73,2.94-3.53,0.54-1.9-0.04-3.85-1.57-5.75-1.59-1.99-5.003-4.11-10.341-6.53-0.087-0.05-0.184-0.07-0.281-0.07zm-47.75,8.13h9.531l-5.562,11.4h-8.094l-2.562-1.71c2.227-2.93,4.462-6.15,6.687-9.69zm24.438,13.81l2.281,2.28c0.162,0.17,0.404,0.23,0.625,0.16,2.098-0.7,4.468-1.06,7.062-1.06h1.907c0.622,18.59-3.482,33.69-12.282,45.37,0.239-0.33,0.435-0.72,0.563-1.12,0.278-0.89,0.285-1.89,0.094-3.04-0.221-1.32-1.188-2.59-2.782-3.9-1.344-1.11-3.247-2.29-5.531-3.5l4.875-2.06c0.236-0.11,0.386-0.34,0.375-0.6-0.238-6.18-0.342-16.38-0.344-30.37l2.969-2c0.072-0.04,0.136-0.1,0.188-0.16zm-29.563,0.66h7.438v11.75h-7.438v-11.75zm13.031,0h7.407v11.75h-7.407v-11.75zm-13.031,14.81h7.438v12.12h-7.438v-12.12zm13.031,0h7.407v12.12h-7.407v-12.12zm-1.812,20.09c-0.089,0.02-0.175,0.05-0.25,0.1l-1.094,0.72c-0.282,0.18-0.365,0.55-0.187,0.84,0.953,1.67,1.786,3.33,2.5,5,0.7,1.63,1.238,3.49,1.593,5.62,0.193,1.16,0.497,2.05,1.157,2.57,0.659,0.52,1.595,0.48,2.437,0.06,1.68-0.84,2.471-2.67,2.344-5.09-0.072-1.37-0.845-2.79-2.188-4.38s-3.29-3.37-5.843-5.31c-0.133-0.11-0.302-0.15-0.469-0.13zm-8.656,1.44c-0.144,0.02-0.276,0.08-0.375,0.19l-0.719,0.72c-0.167,0.17-0.216,0.43-0.125,0.65,0.466,1.17,0.894,2.59,1.25,4.25,0.345,1.62,0.431,3.56,0.312,5.82-0.064,1.22,0.113,2.2,0.657,2.9,0.543,0.7,1.46,0.95,2.437,0.81,0.993-0.14,1.811-0.67,2.344-1.5,0.532-0.82,0.811-1.91,0.875-3.25,0.137-2.88-2.012-6.26-6.156-10.4-0.13-0.14-0.314-0.21-0.5-0.19zm-6.875,0.72c-0.256,0.04-0.455,0.24-0.5,0.5-1.192,5.24-2.85,8.69-4.719,10.34-1.067,0.94-1.765,1.8-2.063,2.69s-0.075,1.86,0.594,2.53c1.23,1.23,2.914,1.5,4.531,0.69,1.597-0.8,2.767-2.25,3.532-4.16,0.816-2.04,1.023-5.81,0.781-11.62-0.016-0.27-0.206-0.5-0.469-0.56l-1.437-0.38c-0.081-0.03-0.166-0.04-0.25-0.03z" fill="url(#o)"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(0.6, 0, 0, 0.6, 83.43, -47.62)">
|
||||||
|
<path fill-opacity="0.3" d="M208.28,99.312c-9.25,0.001-16.95,1.548-22.87,5.718-5.68,4-9.54,10.17-11.6,17.53l-1.87,6.78,6.9,1.25,7.72,1.41c-0.33,0.15-0.77,0.25-1.09,0.41-4.18,2.02-7.7,5.14-10.09,9.06-2.4,3.92-3.57,8.51-3.57,13.22,0,7.06,2.76,13.73,7.81,18.5,5.22,4.91,12.4,7.19,20.29,7.19,4.61,0,9.11-0.88,13.28-2.66,1.26-0.54,2.42-1.31,3.62-2l1.25,3.19h31.69l-4.47-9.19c-1.33-2.73-2.17-5.18-2.59-7.25-0.38-1.87-0.69-5.87-0.69-11.41l0.16-20.12v-0.06c0-7.95-0.41-13.62-3.1-18.54-2.31-4.23-6.15-7.42-10.78-9.65-5.31-2.57-11.79-3.377-20-3.378zm0,12.808c7.2,0.01,12.2,1.02,14.44,2.1,2.92,1.41,4.36,2.86,5.12,4.25,0.39,0.7,1.53,5.34,1.54,12.41l-0.19,20.12v0.06c0,5.95,0.24,10.39,0.97,13.97,0.07,0.36,0.22,0.73,0.31,1.09h-3.41c-0.06-0.22-0.09-0.26-0.15-0.5-0.31-1.08-0.44-1.65-0.75-2.5l-2.6-6.9c0.2-0.49,0.54-0.9,0.69-1.41,0.94-3.07,0.94-5.84,0.94-10.22v-16.43c0-4.38-1.17-8.91-4.69-11.94-3.86-3.33-8.22-3.69-13.44-3.69-3.91,0-7.68,0.76-10.87,3-1.72,1.21-3.04,2.73-4.13,4.44l-3.03-0.56c1.08-1.63,2.34-2.91,3.75-3.91,2.69-1.89,7.78-3.37,15.5-3.38zm-1.22,13.22c1.61,0,2.63,0.2,3.5,0.38-2.14,0.54-5.01,1.15-8.03,1.75,0.47-0.85,0.89-1.39,1-1.47,0.26-0.18,1.3-0.66,3.53-0.66zm-13.47,17.66c-2.66,2.57-4.5,6.2-4.5,9.91,0,4.01,1.78,8.05,4.63,10.84,1.89,1.84,4.29,3.08,6.84,3.78-0.22,0.01-0.42,0.06-0.65,0.06-5.57,0-8.97-1.36-11.5-3.75-2.69-2.53-3.82-5.06-3.82-9.15,0-2.67,0.59-4.71,1.72-6.57,1.14-1.86,2.57-3.13,4.75-4.18,0.61-0.3,1.67-0.63,2.53-0.94zm18.5,6.44c-0.03,0.33-0.1,1.75-0.09,1.72v0.03l-0.03,0.03c-0.26,0.88-0.62,1.51-1.78,2.37-1.93,1.4-3.38,1.82-5.1,1.82-1.44,0-1.81-0.21-2.43-0.82-0.76-0.74-0.78-0.86-0.78-1.68,0-0.51-0.31-0.18,0.68-0.88-0.33,0.22,2.55-1,7.06-1.97,1.09-0.23,1.51-0.41,2.47-0.62z" fill="#000"/>
|
||||||
|
<path d="M191.4,122.86l-15.68-2.83c1.76-6.31,4.8-10.99,9.1-14.02,4.31-3.04,10.7-4.55,19.19-4.55,7.71,0,13.45,0.91,17.22,2.73,3.77,1.83,6.43,4.14,7.97,6.95,1.53,2.81,2.3,7.97,2.3,15.47l-0.18,20.17c0,5.74,0.28,9.98,0.83,12.7,0.55,2.73,1.59,5.65,3.1,8.77h-17.09c-0.45-1.15-1.01-2.85-1.66-5.11-0.29-1.02-0.5-1.7-0.62-2.03-2.95,2.87-6.11,5.03-9.47,6.46-3.36,1.44-6.95,2.15-10.76,2.15-6.73,0-12.03-1.82-15.9-5.47-3.88-3.65-5.81-8.26-5.81-13.84,0-3.69,0.88-6.98,2.64-9.87,1.77-2.89,4.24-5.1,7.41-6.64,3.18-1.54,7.76-2.88,13.75-4.03,8.08-1.52,13.67-2.93,16.79-4.24v-1.73c0-3.32-0.82-5.68-2.46-7.1-1.64-1.41-4.74-2.12-9.29-2.12-3.07,0-5.47,0.6-7.19,1.81-1.73,1.21-3.12,3.33-4.19,6.37zm23.13,14.02c-2.22,0.74-5.72,1.62-10.52,2.65-4.8,1.02-7.93,2.03-9.41,3.01-2.25,1.6-3.38,3.63-3.38,6.09,0,2.42,0.9,4.51,2.71,6.27,1.8,1.76,4.1,2.65,6.88,2.65,3.12,0,6.09-1.03,8.92-3.08,2.09-1.56,3.47-3.46,4.12-5.72,0.45-1.48,0.68-4.28,0.68-8.42v-3.45z" stroke="#500050" stroke-width="10" fill="none"/>
|
||||||
|
<path d="M191.4,122.86l-15.68-2.83c1.76-6.31,4.8-10.99,9.1-14.02,4.31-3.04,10.7-4.55,19.19-4.55,7.71,0,13.45,0.91,17.22,2.73,3.77,1.83,6.43,4.14,7.97,6.95,1.53,2.81,2.3,7.97,2.3,15.47l-0.18,20.17c0,5.74,0.28,9.98,0.83,12.7,0.55,2.73,1.59,5.65,3.1,8.77h-17.09c-0.45-1.15-1.01-2.85-1.66-5.11-0.29-1.02-0.5-1.7-0.62-2.03-2.95,2.87-6.11,5.03-9.47,6.46-3.36,1.44-6.95,2.15-10.76,2.15-6.73,0-12.03-1.82-15.9-5.47-3.88-3.65-5.81-8.26-5.81-13.84,0-3.69,0.88-6.98,2.64-9.87,1.77-2.89,4.24-5.1,7.41-6.64,3.18-1.54,7.76-2.88,13.75-4.03,8.08-1.52,13.67-2.93,16.79-4.24v-1.73c0-3.32-0.82-5.68-2.46-7.1-1.64-1.41-4.74-2.12-9.29-2.12-3.07,0-5.47,0.6-7.19,1.81-1.73,1.21-3.12,3.33-4.19,6.37zm23.13,14.02c-2.22,0.74-5.72,1.62-10.52,2.65-4.8,1.02-7.93,2.03-9.41,3.01-2.25,1.6-3.38,3.63-3.38,6.09,0,2.42,0.9,4.51,2.71,6.27,1.8,1.76,4.1,2.65,6.88,2.65,3.12,0,6.09-1.03,8.92-3.08,2.09-1.56,3.47-3.46,4.12-5.72,0.45-1.48,0.68-4.28,0.68-8.42v-3.45z" fill="url(#p)"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 41 KiB |
438
imgsrc/mimetypes/djvu.svg
Normal file
@ -0,0 +1,438 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
version="1.0"
|
||||||
|
width="128"
|
||||||
|
height="128"
|
||||||
|
id="svg2606"
|
||||||
|
inkscape:version="0.48.1 "
|
||||||
|
sodipodi:docname="C:\cygwin\home\mperry\calibre\imgsrc\mimetypes\djvu.svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="975"
|
||||||
|
inkscape:window-height="735"
|
||||||
|
id="namedview3077"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="2.0390625"
|
||||||
|
inkscape:cx="64"
|
||||||
|
inkscape:cy="64"
|
||||||
|
inkscape:window-x="298"
|
||||||
|
inkscape:window-y="122"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="svg2606" />
|
||||||
|
<defs
|
||||||
|
id="defs2608">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient10207">
|
||||||
|
<stop
|
||||||
|
id="stop10209"
|
||||||
|
style="stop-color:#a2a2a2;stop-opacity:1"
|
||||||
|
offset="0" />
|
||||||
|
<stop
|
||||||
|
id="stop10211"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1"
|
||||||
|
offset="1" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
x1="96"
|
||||||
|
y1="104"
|
||||||
|
x2="88.000198"
|
||||||
|
y2="96.000198"
|
||||||
|
id="XMLID_12_"
|
||||||
|
gradientUnits="userSpaceOnUse">
|
||||||
|
<stop
|
||||||
|
id="stop83"
|
||||||
|
style="stop-color:#888a85;stop-opacity:1"
|
||||||
|
offset="0" />
|
||||||
|
<stop
|
||||||
|
id="stop85"
|
||||||
|
style="stop-color:#8c8e89;stop-opacity:1"
|
||||||
|
offset="0.0072" />
|
||||||
|
<stop
|
||||||
|
id="stop87"
|
||||||
|
style="stop-color:#abaca9;stop-opacity:1"
|
||||||
|
offset="0.0673" />
|
||||||
|
<stop
|
||||||
|
id="stop89"
|
||||||
|
style="stop-color:#c5c6c4;stop-opacity:1"
|
||||||
|
offset="0.1347" />
|
||||||
|
<stop
|
||||||
|
id="stop91"
|
||||||
|
style="stop-color:#dbdbda;stop-opacity:1"
|
||||||
|
offset="0.2652576" />
|
||||||
|
<stop
|
||||||
|
id="stop93"
|
||||||
|
style="stop-color:#ebebeb;stop-opacity:1"
|
||||||
|
offset="0.37646064" />
|
||||||
|
<stop
|
||||||
|
id="stop95"
|
||||||
|
style="stop-color:#f7f7f6;stop-opacity:1"
|
||||||
|
offset="0.48740286" />
|
||||||
|
<stop
|
||||||
|
id="stop97"
|
||||||
|
style="stop-color:#fdfdfd;stop-opacity:1"
|
||||||
|
offset="0.6324091" />
|
||||||
|
<stop
|
||||||
|
id="stop99"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1"
|
||||||
|
offset="1" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
cx="102"
|
||||||
|
cy="112.3047"
|
||||||
|
r="139.55859"
|
||||||
|
id="XMLID_8_"
|
||||||
|
gradientUnits="userSpaceOnUse">
|
||||||
|
<stop
|
||||||
|
id="stop41"
|
||||||
|
style="stop-color:#b7b8b9;stop-opacity:1"
|
||||||
|
offset="0" />
|
||||||
|
<stop
|
||||||
|
id="stop47"
|
||||||
|
style="stop-color:#ececec;stop-opacity:1"
|
||||||
|
offset="0.18851049" />
|
||||||
|
<stop
|
||||||
|
id="stop49"
|
||||||
|
style="stop-color:#fafafa;stop-opacity:1"
|
||||||
|
offset="0.25718147" />
|
||||||
|
<stop
|
||||||
|
id="stop51"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1"
|
||||||
|
offset="0.30111277" />
|
||||||
|
<stop
|
||||||
|
id="stop53"
|
||||||
|
style="stop-color:#fafafa;stop-opacity:1"
|
||||||
|
offset="0.53130001" />
|
||||||
|
<stop
|
||||||
|
id="stop55"
|
||||||
|
style="stop-color:#ebecec;stop-opacity:1"
|
||||||
|
offset="0.84490001" />
|
||||||
|
<stop
|
||||||
|
id="stop57"
|
||||||
|
style="stop-color:#e1e2e3;stop-opacity:1"
|
||||||
|
offset="1" />
|
||||||
|
</radialGradient>
|
||||||
|
<filter
|
||||||
|
x="-0.19200002"
|
||||||
|
y="-0.19199999"
|
||||||
|
width="1.3839999"
|
||||||
|
height="1.3839999"
|
||||||
|
color-interpolation-filters="sRGB"
|
||||||
|
id="filter6697">
|
||||||
|
<feGaussianBlur
|
||||||
|
id="feGaussianBlur6699"
|
||||||
|
stdDeviation="1.9447689" />
|
||||||
|
</filter>
|
||||||
|
<clipPath
|
||||||
|
id="clipPath7084">
|
||||||
|
<path
|
||||||
|
d="m 72,88 -32,32 -8,0 0,-40 40,0 0,8 z"
|
||||||
|
id="path7086"
|
||||||
|
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" />
|
||||||
|
</clipPath>
|
||||||
|
<radialGradient
|
||||||
|
cx="102"
|
||||||
|
cy="112.3047"
|
||||||
|
r="139.55859"
|
||||||
|
id="radialGradient9437"
|
||||||
|
xlink:href="#XMLID_8_"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1,0,0,0.9996653,2e-6,0.00301608)" />
|
||||||
|
<linearGradient
|
||||||
|
x1="98.617439"
|
||||||
|
y1="106.41443"
|
||||||
|
x2="91.228737"
|
||||||
|
y2="99.254974"
|
||||||
|
id="linearGradient10213"
|
||||||
|
xlink:href="#linearGradient10207"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<filter
|
||||||
|
color-interpolation-filters="sRGB"
|
||||||
|
id="filter2770">
|
||||||
|
<feGaussianBlur
|
||||||
|
id="feGaussianBlur2772"
|
||||||
|
stdDeviation="2.0786429" />
|
||||||
|
</filter>
|
||||||
|
<linearGradient
|
||||||
|
x1="45.033901"
|
||||||
|
y1="44.966038"
|
||||||
|
x2="11.675456"
|
||||||
|
y2="1.4610662"
|
||||||
|
id="linearGradient2774"
|
||||||
|
xlink:href="#linearGradient2545"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1.0115079,0,0,1.0161106,5.5234761,9.1336546)" />
|
||||||
|
<linearGradient
|
||||||
|
x1="25.553648"
|
||||||
|
y1="34.006008"
|
||||||
|
x2="0"
|
||||||
|
y2="34.153435"
|
||||||
|
id="linearGradient2756"
|
||||||
|
xlink:href="#linearGradient11545"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1.0237894,0,0,1.0414051,4.9857129,9.0513362)" />
|
||||||
|
<linearGradient
|
||||||
|
x1="40.864098"
|
||||||
|
y1="40.518246"
|
||||||
|
x2="33.136433"
|
||||||
|
y2="32.651588"
|
||||||
|
id="linearGradient2749"
|
||||||
|
xlink:href="#linearGradient11663"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1.0237894,0,0,1.0414051,4.9857129,9.0513362)" />
|
||||||
|
<linearGradient
|
||||||
|
x1="45.033901"
|
||||||
|
y1="44.966038"
|
||||||
|
x2="11.675456"
|
||||||
|
y2="1.4610662"
|
||||||
|
id="linearGradient2543"
|
||||||
|
xlink:href="#linearGradient2545"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.9880039,0,0,0.9757112,0.5252674,0.07904551)" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2545">
|
||||||
|
<stop
|
||||||
|
id="stop2547"
|
||||||
|
style="stop-color:#342679;stop-opacity:1"
|
||||||
|
offset="0" />
|
||||||
|
<stop
|
||||||
|
id="stop2553"
|
||||||
|
style="stop-color:#7b51ae;stop-opacity:0.96862745"
|
||||||
|
offset="0.72235626" />
|
||||||
|
<stop
|
||||||
|
id="stop2549"
|
||||||
|
style="stop-color:#d9cce8;stop-opacity:0.96862745"
|
||||||
|
offset="1" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
x1="25.553648"
|
||||||
|
y1="34.006008"
|
||||||
|
x2="0"
|
||||||
|
y2="34.153435"
|
||||||
|
id="linearGradient11653"
|
||||||
|
xlink:href="#linearGradient11545"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.4601868,0,0,0.9728475,2.2307835,28.622031)" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient11545">
|
||||||
|
<stop
|
||||||
|
id="stop11547"
|
||||||
|
style="stop-color:#f89c11;stop-opacity:1"
|
||||||
|
offset="0" />
|
||||||
|
<stop
|
||||||
|
id="stop11549"
|
||||||
|
style="stop-color:#fabf60;stop-opacity:1"
|
||||||
|
offset="1" />
|
||||||
|
</linearGradient>
|
||||||
|
<clipPath
|
||||||
|
id="clip7">
|
||||||
|
<path
|
||||||
|
d="m 10.84375,39.414062 -10.84375,0 0,-10.953124 10.84375,0 0,-28.45703175 35.542969,0 0,32.73437475 -13.058594,13.058594 -22.484375,0 0,-6.382813"
|
||||||
|
id="path25" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
id="clip32">
|
||||||
|
<path
|
||||||
|
d="m 10.84375,39.414062 -10.84375,0 0,-10.953124 10.84375,0 0,-28.45703175 35.542969,0 0,32.73437475 -13.058594,13.058594 -22.484375,0 0,-6.382813"
|
||||||
|
id="path100" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
id="clip48">
|
||||||
|
<path
|
||||||
|
d="m 10.84375,39.414062 -10.84375,0 0,-10.953124 10.84375,0 0,-28.45703175 35.542969,0 0,32.73437475 -13.058594,13.058594 -22.484375,0 0,-6.382813"
|
||||||
|
id="path148" />
|
||||||
|
</clipPath>
|
||||||
|
<linearGradient
|
||||||
|
x1="25.553648"
|
||||||
|
y1="34.006008"
|
||||||
|
x2="0"
|
||||||
|
y2="34.153435"
|
||||||
|
id="linearGradient2525"
|
||||||
|
xlink:href="#linearGradient11545"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
x1="40.864098"
|
||||||
|
y1="40.518246"
|
||||||
|
x2="33.136433"
|
||||||
|
y2="32.651588"
|
||||||
|
id="linearGradient2518"
|
||||||
|
xlink:href="#linearGradient11663"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient11663">
|
||||||
|
<stop
|
||||||
|
id="stop11665"
|
||||||
|
style="stop-color:#342679;stop-opacity:1"
|
||||||
|
offset="0" />
|
||||||
|
<stop
|
||||||
|
id="stop11667"
|
||||||
|
style="stop-color:#dacfe4;stop-opacity:1"
|
||||||
|
offset="1" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<metadata
|
||||||
|
id="metadata2611">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
id="layer1">
|
||||||
|
<path
|
||||||
|
d="m 16,8 0,112 c 0,0 63.15625,0 63.15625,0 l 0.03125,0 c 3e-6,0 11.90625,-9.90625 17.40625,-15.40625 C 102.09375,99.09375 112,87.1875 112,87.1875 L 112,87.15625 112,8 16,8 z"
|
||||||
|
transform="matrix(1.0416667,0,0,1.0267857,-2.6666667,-1.2142891)"
|
||||||
|
id="path7865"
|
||||||
|
style="opacity:0.5;fill:#000000;fill-opacity:1;filter:url(#filter2770)" />
|
||||||
|
<path
|
||||||
|
d="M 16.000001,8 16,120 c 0,0 63.146418,0 63.146418,0 L 112,87.14642 112,8 16.000001,8 z"
|
||||||
|
id="path34"
|
||||||
|
style="fill:#ffffff;fill-opacity:1" />
|
||||||
|
<path
|
||||||
|
d="m 18.000002,9.0000034 c -0.551,0 -1,0.44885 -1,0.999665 l 0,107.9638516 c 0,0.55181 0.449,0.99966 1,0.99966 l 59.171997,0 c 0.263,0 2.76268,0.11813 2.948681,-0.0688 L 110.707,88.094202 C 110.894,87.907264 111,85.40942 111,85.146508 l 0,-75.1468396 c 0,-0.550815 -0.448,-0.999665 -1,-0.999665 l -91.999998,0 z"
|
||||||
|
id="path59"
|
||||||
|
style="fill:url(#radialGradient9437);fill-opacity:1" />
|
||||||
|
<path
|
||||||
|
d="m 41.879531,115.98249 c 0,0 24.309609,-24.309614 24.309609,-24.309614 0,0 -9.35314,2.913124 -19.60314,2.913124 0,10.25 -4.706469,21.39649 -4.706469,21.39649 z"
|
||||||
|
transform="translate(40,0)"
|
||||||
|
clip-path="url(#clipPath7084)"
|
||||||
|
id="path5540"
|
||||||
|
style="opacity:0.4;fill:#000000;fill-opacity:1;filter:url(#filter6697)" />
|
||||||
|
<path
|
||||||
|
d="m 79.172,120 c 0,0 11.914,-9.914 17.414,-15.414 5.5,-5.5 15.414,-17.414 15.414,-17.414 0,0 -13.75,8.828 -24,8.828 0,10.25 -8.828,24 -8.828,24 z"
|
||||||
|
id="path14523"
|
||||||
|
style="fill:url(#linearGradient10213);fill-opacity:1" />
|
||||||
|
<g
|
||||||
|
transform="matrix(2.6666667,0,0,2.6666667,-26.364309,-16.219923)"
|
||||||
|
id="layer1-2">
|
||||||
|
<g
|
||||||
|
transform="matrix(1.000026,0,0,0.9968473,-1.2968723e-4,0.405534)"
|
||||||
|
id="g2454">
|
||||||
|
<g
|
||||||
|
transform="matrix(1.0237894,0,0,1.0414051,9.6816161,-27.57005)"
|
||||||
|
id="g11649">
|
||||||
|
<rect
|
||||||
|
width="11.895136"
|
||||||
|
height="11.569371"
|
||||||
|
ry="2.7001941e-017"
|
||||||
|
x="3.1296141"
|
||||||
|
y="57.056187"
|
||||||
|
transform="matrix(0.9396926,-0.3420201,0.3420201,0.9396926,0,0)"
|
||||||
|
id="rect11645"
|
||||||
|
style="fill:#000000;fill-opacity:1" />
|
||||||
|
<rect
|
||||||
|
width="11.895135"
|
||||||
|
height="11.56937"
|
||||||
|
ry="2.7001941e-017"
|
||||||
|
x="2.2307839"
|
||||||
|
y="56.063431"
|
||||||
|
transform="matrix(0.9396926,-0.3420201,0.3420201,0.9396926,0,0)"
|
||||||
|
id="rect11641"
|
||||||
|
style="fill:url(#linearGradient11653);fill-opacity:1" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
transform="matrix(1.0237894,0,0,1.0414051,4.9857129,9.0513362)"
|
||||||
|
clip-path="url(#clip7)"
|
||||||
|
id="g1139" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1.0237894,0,0,1.0414051,0.779179,8.770206)"
|
||||||
|
id="g11677"
|
||||||
|
style="fill:#816392;fill-opacity:0.86179516">
|
||||||
|
<g
|
||||||
|
transform="translate(4.2261802,1.3274155)"
|
||||||
|
clip-path="url(#clip32)"
|
||||||
|
id="g11679"
|
||||||
|
style="fill:#816392;fill-opacity:0.86179516">
|
||||||
|
<path
|
||||||
|
d="m 26.128906,23.296875 c 2.015625,1.242187 4.480469,1.78125 6.523438,0.195313 1.574218,-1.210938 1.84375,-3.335938 1.324218,-5.414063 -0.917968,-3.585937 -4.5625,-7.527344 -4.5625,-7.527344 L 18.972656,-2.15625 c 0,0 -0.136718,-0.171875 -0.433594,-0.261719 -0.414062,-0.117187 -1.035156,0.261719 -0.683593,1.027344 l 10.910156,13.445313 c 0,0 3.265625,3.304687 3.886719,6.472656 0.296875,1.484375 0.214844,2.960937 -0.917969,3.871094 C 30.214844,23.621094 28.289062,22.9375 26.605469,21.863281 24.34375,20.417969 22.429688,18.09375 22.429688,18.09375 L 7.777344,0.679688 7.613281,2.613281 21.472656,19.136719 c 0,0 2.082032,2.566406 4.65625,4.160156"
|
||||||
|
id="path11681"
|
||||||
|
style="fill:#816392;fill-opacity:0.86179516;fill-rule:nonzero;stroke:none" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
transform="translate(4.2261807,1.4535628)"
|
||||||
|
clip-path="url(#clip48)"
|
||||||
|
id="g11683"
|
||||||
|
style="fill:#816392;fill-opacity:0.86179516">
|
||||||
|
<path
|
||||||
|
d="m 28.304688,15.984375 c 2.003906,2.550781 0.160156,3.707031 -1.125,3.027344 -1.875,-1 -4.425782,-4.386719 -4.425782,-4.386719 L 15.613281,6.003906 C 15.070312,5.257812 14.429688,5.644531 14.296875,6.09375 c -0.09766,0.347656 0.238281,0.683594 0.238281,0.683594 l 7.191406,8.703125 c 0,0 2.207032,2.601562 3.398438,3.738281 3.5,3.367188 7.761719,0.152344 4.050781,-4.558594 C 27.074219,12 23.867188,8.175781 23.867188,8.175781 L 13.371094,-4.707031 11.859375,-4.839844 11.789062,-4.050781 22.511719,8.71875 c 0,0 3.636719,4.523438 5.792969,7.265625"
|
||||||
|
id="path11685"
|
||||||
|
style="fill:#816392;fill-opacity:0.86179516;fill-rule:nonzero;stroke:none" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
transform="matrix(1.0237894,0,0,1.0414051,0.659598,7.725718)"
|
||||||
|
id="g11671">
|
||||||
|
<g
|
||||||
|
transform="translate(4.2261802,1.3274155)"
|
||||||
|
clip-path="url(#clip32)"
|
||||||
|
id="g3875">
|
||||||
|
<path
|
||||||
|
d="m 26.128906,23.296875 c 2.015625,1.242187 4.480469,1.78125 6.523438,0.195313 1.574218,-1.210938 1.84375,-3.335938 1.324218,-5.414063 -0.917968,-3.585937 -4.5625,-7.527344 -4.5625,-7.527344 L 18.972656,-2.15625 c 0,0 -0.136718,-0.171875 -0.433594,-0.261719 -0.414062,-0.117187 -1.035156,0.261719 -0.683593,1.027344 l 10.910156,13.445313 c 0,0 3.265625,3.304687 3.886719,6.472656 0.296875,1.484375 0.214844,2.960937 -0.917969,3.871094 C 30.214844,23.621094 28.289062,22.9375 26.605469,21.863281 24.34375,20.417969 22.429688,18.09375 22.429688,18.09375 L 7.777344,0.679688 7.613281,2.613281 21.472656,19.136719 c 0,0 2.082032,2.566406 4.65625,4.160156"
|
||||||
|
id="path3877"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
transform="translate(4.2261807,1.4535628)"
|
||||||
|
clip-path="url(#clip48)"
|
||||||
|
id="g6171">
|
||||||
|
<path
|
||||||
|
d="m 28.304688,15.984375 c 2.003906,2.550781 0.160156,3.707031 -1.125,3.027344 -1.875,-1 -4.425782,-4.386719 -4.425782,-4.386719 L 15.613281,6.003906 C 15.070312,5.257812 14.429688,5.644531 14.296875,6.09375 c -0.09766,0.347656 0.238281,0.683594 0.238281,0.683594 l 7.191406,8.703125 c 0,0 2.207032,2.601562 3.398438,3.738281 3.5,3.367188 7.761719,0.152344 4.050781,-4.558594 C 27.074219,12 23.867188,8.175781 23.867188,8.175781 L 13.371094,-4.707031 11.859375,-4.839844 11.789062,-4.050781 22.511719,8.71875 c 0,0 3.636719,4.523438 5.792969,7.265625"
|
||||||
|
id="path6173"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<text
|
||||||
|
x="6.855123"
|
||||||
|
y="40.434292"
|
||||||
|
transform="scale(0.9915063,1.0085665)"
|
||||||
|
id="text11553"
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:41.30238724px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"><tspan
|
||||||
|
x="6.855123"
|
||||||
|
y="40.434292"
|
||||||
|
id="tspan11555" /></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
transform="matrix(0.10181328,0,0,0.10181328,23.503861,90.420112)"
|
||||||
|
id="g8370">
|
||||||
|
<path
|
||||||
|
d="m 20.795,23.442 c 41.244,-1.555 81.688,-2.171 104.79,17.582 10.619,27.832 15.009,83.404 4.99,117.209 -18.421,31.11 -62.996,31.504 -109.78,29.303 0,-54.699 0,-109.396 0,-164.094 z m 34.93,134.79 c 11.643,0 23.287,0 34.93,0 16.604,-30.859 22.254,-125.032 -34.93,-105.488 0,35.163 0,70.326 0,105.488 z"
|
||||||
|
id="path8372"
|
||||||
|
style="fill-rule:evenodd" />
|
||||||
|
<path
|
||||||
|
d="m 165.505,23.442 c 33.267,0 66.533,0 99.8,0 7.251,46.182 16.995,89.436 34.931,123.07 14.479,-35.739 17.123,-85.377 29.939,-123.07 11.644,0 23.287,0 34.93,0 -12.062,58.113 -35.35,103.042 -44.909,164.093 -14.971,0 -29.94,0 -44.91,0 -9.471,-49.436 -28.165,-88.039 -39.92,-134.791 -23.287,0 -46.573,0 -69.86,0 -0.001,-9.767 -0.001,-19.535 -0.001,-29.302 z"
|
||||||
|
id="path8374"
|
||||||
|
style="fill-rule:evenodd" />
|
||||||
|
<path
|
||||||
|
d="m 385.065,76.186 c 12.301,-0.773 24.042,-0.888 29.939,5.86 -2.146,26.978 -3.585,49.781 4.99,76.186 45.408,12.307 33.898,-42.234 34.93,-82.046 9.98,0 19.96,0 29.94,0 0,37.116 0,74.232 0,111.349 -22.437,6.814 -26.368,-8.103 -29.94,-23.442 -14.933,22.293 -52.771,32.37 -69.859,5.86 0,-31.255 0,-62.511 0,-93.767 z"
|
||||||
|
id="path8376"
|
||||||
|
style="fill-rule:evenodd" />
|
||||||
|
<path
|
||||||
|
d="m 165.505,87.907 c 9.98,0 19.96,0 29.94,0 -2.328,48.057 6.913,109.699 -9.98,140.651 -23.857,2.642 -21.052,2.642 -44.91,0 24.686,-27.659 29.399,-78.774 24.95,-140.651 z"
|
||||||
|
id="path8378"
|
||||||
|
style="fill-rule:evenodd" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 17 KiB |
758
imgsrc/random.svg
Normal file
@ -0,0 +1,758 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="128"
|
||||||
|
height="128"
|
||||||
|
id="svg10643"
|
||||||
|
sodipodi:version="0.32"
|
||||||
|
inkscape:version="0.46+devel"
|
||||||
|
sodipodi:docname="pointer.svgz"
|
||||||
|
inkscape:output_extension="org.inkscape.output.svgz.inkscape"
|
||||||
|
inkscape:export-filename="/home/pinheiro/pics/oxygen-icons/scalable/actions/small/32x32/pointer.png"
|
||||||
|
inkscape:export-xdpi="90"
|
||||||
|
inkscape:export-ydpi="90"
|
||||||
|
version="1.0">
|
||||||
|
<defs
|
||||||
|
id="defs10645">
|
||||||
|
<inkscape:perspective
|
||||||
|
sodipodi:type="inkscape:persp3d"
|
||||||
|
inkscape:vp_x="0 : 12 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_z="24 : 12 : 1"
|
||||||
|
inkscape:persp3d-origin="12 : 8 : 1"
|
||||||
|
id="perspective108" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3233">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3235" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop3237" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3866">
|
||||||
|
<stop
|
||||||
|
id="stop3868"
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#fff299;stop-opacity:1;" />
|
||||||
|
<stop
|
||||||
|
id="stop3870"
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#dcd8bd;stop-opacity:0;" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient11059">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#727272;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop11061" />
|
||||||
|
<stop
|
||||||
|
id="stop11067"
|
||||||
|
offset="0.5"
|
||||||
|
style="stop-color:#a6a6a6;stop-opacity:1;" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#cdcdcd;stop-opacity:1;"
|
||||||
|
offset="0.75"
|
||||||
|
id="stop11069" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#acacac;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop11063" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient10925">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bf0303;stop-opacity:0;"
|
||||||
|
offset="0"
|
||||||
|
id="stop10927" />
|
||||||
|
<stop
|
||||||
|
id="stop10978"
|
||||||
|
offset="0.39309064"
|
||||||
|
style="stop-color:#bf0303;stop-opacity:0;" />
|
||||||
|
<stop
|
||||||
|
id="stop10935"
|
||||||
|
offset="0.46538317"
|
||||||
|
style="stop-color:#bf0303;stop-opacity:0.49803922;" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bf0303;stop-opacity:1;"
|
||||||
|
offset="0.5"
|
||||||
|
id="stop10976" />
|
||||||
|
<stop
|
||||||
|
id="stop10933"
|
||||||
|
offset="0.5"
|
||||||
|
style="stop-color:#bf0303;stop-opacity:1;" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bf0303;stop-opacity:0.49803922;"
|
||||||
|
offset="0.55339807"
|
||||||
|
id="stop10937" />
|
||||||
|
<stop
|
||||||
|
id="stop10980"
|
||||||
|
offset="0.60542935"
|
||||||
|
style="stop-color:#bf0303;stop-opacity:0;" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bf0303;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop10929" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient10901">
|
||||||
|
<stop
|
||||||
|
id="stop10903"
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#fff299;stop-opacity:0;" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#fff299;stop-opacity:1;"
|
||||||
|
offset="0.5"
|
||||||
|
id="stop10909" />
|
||||||
|
<stop
|
||||||
|
id="stop10905"
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#fff299;stop-opacity:0;" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient10854">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop10856" />
|
||||||
|
<stop
|
||||||
|
id="stop10862"
|
||||||
|
offset="0.5"
|
||||||
|
style="stop-color:#000000;stop-opacity:0;" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop10858" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient10711">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop10713" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop10715" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10711"
|
||||||
|
id="radialGradient10875"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.8967678,0.05935673,-0.05873468,0.8873664,-5.4012494,0.1392525)"
|
||||||
|
spreadMethod="reflect"
|
||||||
|
cx="18.708233"
|
||||||
|
cy="24.759357"
|
||||||
|
fx="18.708233"
|
||||||
|
fy="24.759357"
|
||||||
|
r="13.169441" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10925"
|
||||||
|
id="radialGradient10931"
|
||||||
|
cx="9.996233"
|
||||||
|
cy="23.364098"
|
||||||
|
fx="7.6629176"
|
||||||
|
fy="18.295921"
|
||||||
|
r="8.7188435"
|
||||||
|
gradientTransform="matrix(3.0577456,1.8802807,-0.9054531,1.4724637,3.4545267,-24.480143)"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10711"
|
||||||
|
id="radialGradient10968"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.8967678,0.05935673,-0.05873468,0.8873664,-5.4012494,0.1392525)"
|
||||||
|
spreadMethod="reflect"
|
||||||
|
cx="18.708233"
|
||||||
|
cy="24.759357"
|
||||||
|
fx="18.708233"
|
||||||
|
fy="24.759357"
|
||||||
|
r="13.169441" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10925"
|
||||||
|
id="radialGradient10971"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(2.7002217,0.5715519,-0.4374946,2.0668853,-4.8632848,-26.818351)"
|
||||||
|
cx="9.1802711"
|
||||||
|
cy="24.942194"
|
||||||
|
fx="6.0336409"
|
||||||
|
fy="17.669048"
|
||||||
|
r="8.7188435" />
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath10999">
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="ccccc"
|
||||||
|
id="path11001"
|
||||||
|
d="M 3.6413483,1.9681703 3.779696,17.490509 14.887308,19.785771 21.079035,17.498126 3.6413483,1.9681703 z"
|
||||||
|
style="fill:#ff80ff;fill-opacity:1;fill-rule:evenodd;stroke:none" />
|
||||||
|
</clipPath>
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10925"
|
||||||
|
id="radialGradient11003"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(2.7002217,0.5715519,-0.4374946,2.0668853,-4.8632848,-26.818351)"
|
||||||
|
cx="8.2921495"
|
||||||
|
cy="23.935163"
|
||||||
|
fx="8.2488832"
|
||||||
|
fy="19.781427"
|
||||||
|
r="8.7188435" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10925"
|
||||||
|
id="radialGradient11030"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(2.7002217,0.5715519,-0.4374946,2.0668853,-4.8632848,-26.818351)"
|
||||||
|
cx="8.2921495"
|
||||||
|
cy="23.935163"
|
||||||
|
fx="8.2488832"
|
||||||
|
fy="19.781427"
|
||||||
|
r="8.7188435" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10711"
|
||||||
|
id="radialGradient11032"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.8967678,0.05935673,-0.05873468,0.8873664,-5.4012494,0.1392525)"
|
||||||
|
spreadMethod="reflect"
|
||||||
|
cx="18.708233"
|
||||||
|
cy="24.759357"
|
||||||
|
fx="18.708233"
|
||||||
|
fy="24.759357"
|
||||||
|
r="13.169441" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10925"
|
||||||
|
id="radialGradient11034"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(2.7002217,0.5715519,-0.4374946,2.0668853,-4.8632848,-26.818351)"
|
||||||
|
cx="8.2921495"
|
||||||
|
cy="23.935163"
|
||||||
|
fx="8.2488832"
|
||||||
|
fy="19.781427"
|
||||||
|
r="8.7188435" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10711"
|
||||||
|
id="radialGradient3294"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.7030075,0.6357809,-0.8060735,0.8913044,14.84311,-8.1934483)"
|
||||||
|
spreadMethod="reflect"
|
||||||
|
cx="16.993044"
|
||||||
|
cy="20.648924"
|
||||||
|
fx="16.993044"
|
||||||
|
fy="20.648924"
|
||||||
|
r="13.169441" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10711"
|
||||||
|
id="linearGradient3297"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.9823337,0,0,0.9823337,0.03300739,0.6182451)"
|
||||||
|
spreadMethod="pad"
|
||||||
|
x1="19.879225"
|
||||||
|
y1="12.061514"
|
||||||
|
x2="16.034332"
|
||||||
|
y2="15.552854" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10711"
|
||||||
|
id="linearGradient3353"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.9823337,0,0,0.9823337,0.03300739,0.6182451)"
|
||||||
|
spreadMethod="pad"
|
||||||
|
x1="19.879225"
|
||||||
|
y1="12.061514"
|
||||||
|
x2="16.034332"
|
||||||
|
y2="15.552854" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10711"
|
||||||
|
id="radialGradient3355"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.7030075,0.6357809,-0.8060735,0.8913044,14.84311,-8.1934483)"
|
||||||
|
spreadMethod="reflect"
|
||||||
|
cx="16.993044"
|
||||||
|
cy="20.648924"
|
||||||
|
fx="16.993044"
|
||||||
|
fy="20.648924"
|
||||||
|
r="13.169441" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10711"
|
||||||
|
id="linearGradient3362"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.9823337,0,0,0.9823337,0.03300739,0.6182451)"
|
||||||
|
spreadMethod="pad"
|
||||||
|
x1="19.879225"
|
||||||
|
y1="12.061514"
|
||||||
|
x2="16.034332"
|
||||||
|
y2="15.552854" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10711"
|
||||||
|
id="radialGradient3364"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.8341244,0.2489558,-0.2435026,0.8158514,0.7851109,-0.01382395)"
|
||||||
|
spreadMethod="reflect"
|
||||||
|
cx="17.54755"
|
||||||
|
cy="21.708042"
|
||||||
|
fx="17.54755"
|
||||||
|
fy="21.708042"
|
||||||
|
r="13.169441" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10711"
|
||||||
|
id="radialGradient3367"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.8151394,0.2358626,-0.2306962,0.7972824,0.7011221,-1.0582457)"
|
||||||
|
spreadMethod="reflect"
|
||||||
|
cx="17.54755"
|
||||||
|
cy="21.708042"
|
||||||
|
fx="17.54755"
|
||||||
|
fy="21.708042"
|
||||||
|
r="13.169441" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10711"
|
||||||
|
id="linearGradient3370"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.9575785,-0.00803118,0.00803118,0.9575785,-0.0268605,-0.4359562)"
|
||||||
|
spreadMethod="pad"
|
||||||
|
x1="19.879225"
|
||||||
|
y1="12.061514"
|
||||||
|
x2="16.034332"
|
||||||
|
y2="15.552854" />
|
||||||
|
<linearGradient
|
||||||
|
y2="19.626715"
|
||||||
|
x2="10.711697"
|
||||||
|
y1="18.63658"
|
||||||
|
x1="9.7192469"
|
||||||
|
gradientTransform="matrix(3.547255,-0.03993894,0.03993894,3.547255,-27.397339,-48.790495)"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
id="linearGradient3488"
|
||||||
|
xlink:href="#linearGradient10711"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<radialGradient
|
||||||
|
r="1.15625"
|
||||||
|
fy="20.478674"
|
||||||
|
fx="11.413477"
|
||||||
|
cy="20.478674"
|
||||||
|
cx="11.413477"
|
||||||
|
spreadMethod="pad"
|
||||||
|
gradientTransform="matrix(1.7083003,-0.01851949,0.01798426,1.6589328,-8.4797796,-13.189665)"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
id="radialGradient3486"
|
||||||
|
xlink:href="#linearGradient3330"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<linearGradient
|
||||||
|
y2="19.626715"
|
||||||
|
x2="10.711697"
|
||||||
|
y1="18.63658"
|
||||||
|
x1="9.7192469"
|
||||||
|
gradientTransform="matrix(3.5474799,0,0,3.5474799,-26.927898,-62.356391)"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
id="linearGradient3475"
|
||||||
|
xlink:href="#linearGradient10711"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<radialGradient
|
||||||
|
r="1.15625"
|
||||||
|
fy="20.478674"
|
||||||
|
fx="11.413477"
|
||||||
|
cy="20.478674"
|
||||||
|
cx="11.413477"
|
||||||
|
spreadMethod="pad"
|
||||||
|
gradientTransform="matrix(1.7083003,-0.01851949,0.01798426,1.6589328,-8.4797796,-13.189665)"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
id="radialGradient3473"
|
||||||
|
xlink:href="#linearGradient3330"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<radialGradient
|
||||||
|
spreadMethod="reflect"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.7809876,0.01449707,-0.0055455,0.2987498,-0.2924169,2.0957246)"
|
||||||
|
r="11.765625"
|
||||||
|
fy="10.911069"
|
||||||
|
fx="1.1416299"
|
||||||
|
cy="10.911069"
|
||||||
|
cx="1.1416299"
|
||||||
|
id="radialGradient3317"
|
||||||
|
xlink:href="#linearGradient3206"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<linearGradient
|
||||||
|
y2="26.641653"
|
||||||
|
x2="16.836901"
|
||||||
|
y1="6.8943019"
|
||||||
|
x1="5.6869311"
|
||||||
|
gradientTransform="translate(0,-7.2094174)"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
id="linearGradient3265"
|
||||||
|
xlink:href="#linearGradient3267"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<linearGradient
|
||||||
|
y2="17.133453"
|
||||||
|
x2="16.836901"
|
||||||
|
y1="-2.6138983"
|
||||||
|
x1="5.6869311"
|
||||||
|
gradientTransform="translate(0,2.298783)"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
id="linearGradient3261"
|
||||||
|
xlink:href="#linearGradient3267"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<linearGradient
|
||||||
|
gradientTransform="translate(0,-4.8361309)"
|
||||||
|
y2="24.268368"
|
||||||
|
x2="16.836901"
|
||||||
|
y1="4.5210156"
|
||||||
|
x1="5.6869311"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
id="linearGradient3257"
|
||||||
|
xlink:href="#linearGradient3267"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<linearGradient
|
||||||
|
gradientTransform="translate(0,-2.4628444)"
|
||||||
|
y2="21.895081"
|
||||||
|
x2="16.836901"
|
||||||
|
y1="2.1477292"
|
||||||
|
x1="5.6869311"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
id="linearGradient3249"
|
||||||
|
xlink:href="#linearGradient3267"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<linearGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
y2="19.432236"
|
||||||
|
x2="16.836901"
|
||||||
|
y1="-0.31511527"
|
||||||
|
x1="5.6869311"
|
||||||
|
id="linearGradient3239"
|
||||||
|
xlink:href="#linearGradient3267"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<linearGradient
|
||||||
|
y2="19.626715"
|
||||||
|
x2="10.711697"
|
||||||
|
y1="18.384007"
|
||||||
|
x1="9.8687286"
|
||||||
|
gradientTransform="matrix(3.6334443,0,0,3.6334443,-27.580699,-51.677773)"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
id="linearGradient3220"
|
||||||
|
xlink:href="#linearGradient10711"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<radialGradient
|
||||||
|
r="1.15625"
|
||||||
|
fy="20.478674"
|
||||||
|
fx="11.413477"
|
||||||
|
cy="20.478674"
|
||||||
|
cx="11.413477"
|
||||||
|
spreadMethod="pad"
|
||||||
|
gradientTransform="matrix(1.7083003,-0.01851949,0.01798426,1.6589328,-8.4797796,-13.189665)"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
id="radialGradient3218"
|
||||||
|
xlink:href="#linearGradient10711"
|
||||||
|
inkscape:collect="always" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2657">
|
||||||
|
<stop
|
||||||
|
id="stop2659"
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#ff80ff;stop-opacity:1;" />
|
||||||
|
<stop
|
||||||
|
id="stop2661"
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#ff80ff;stop-opacity:0;" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3206">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#b1d28f;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3208" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#b1d28f;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop3210" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3241">
|
||||||
|
<stop
|
||||||
|
id="stop3243"
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#000000;stop-opacity:1;" />
|
||||||
|
<stop
|
||||||
|
id="stop3245"
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#debc85;stop-opacity:0" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3267">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#debc85;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3269" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#debc85;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop3271" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3273">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3275" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#debc85;stop-opacity:0"
|
||||||
|
offset="1"
|
||||||
|
id="stop3277" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3279">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3281" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#debc85;stop-opacity:0"
|
||||||
|
offset="1"
|
||||||
|
id="stop3283" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3285">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3287" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#debc85;stop-opacity:0"
|
||||||
|
offset="1"
|
||||||
|
id="stop3289" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3330">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff80ff;stop-opacity:0;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3332" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#666666;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop3334" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10711"
|
||||||
|
id="radialGradient4021"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.9318803,-0.2210697,0.2308678,0.9731826,-3.9252239,2.7241703)"
|
||||||
|
spreadMethod="pad"
|
||||||
|
cx="11.074039"
|
||||||
|
cy="20.428291"
|
||||||
|
fx="11.074039"
|
||||||
|
fy="20.428291"
|
||||||
|
r="1.15625" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10711"
|
||||||
|
id="linearGradient4023"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.8514941,0.5243642,-0.5243642,0.8514941,24.154135,2.8247022)"
|
||||||
|
x1="21.461079"
|
||||||
|
y1="23.349636"
|
||||||
|
x2="22.96941"
|
||||||
|
y2="28.038134" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10711"
|
||||||
|
id="linearGradient4030"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(0.8514941,0.5243642,-0.5243642,0.8514941,18.007546,-15.657615)"
|
||||||
|
x1="21.461079"
|
||||||
|
y1="23.349636"
|
||||||
|
x2="22.96941"
|
||||||
|
y2="28.038134" />
|
||||||
|
<filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
x="-0.20028582"
|
||||||
|
width="1.4005716"
|
||||||
|
y="-0.11837127"
|
||||||
|
height="1.2367425"
|
||||||
|
id="filter3484">
|
||||||
|
<feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.97202214"
|
||||||
|
id="feGaussianBlur3486" />
|
||||||
|
</filter>
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10711"
|
||||||
|
id="radialGradient3490"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1.1086176,-0.4093269,0.6608062,1.7897223,-9.2289678,-4.0397151)"
|
||||||
|
spreadMethod="reflect"
|
||||||
|
cx="8.8133469"
|
||||||
|
cy="14.235861"
|
||||||
|
fx="8.8133469"
|
||||||
|
fy="14.235861"
|
||||||
|
r="5.3238101" />
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3496">
|
||||||
|
<rect
|
||||||
|
style="opacity:0.62633481;fill:none;stroke:#000000;stroke-width:0.19602102;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
id="rect3498"
|
||||||
|
width="13.277639"
|
||||||
|
height="22.63365"
|
||||||
|
x="5.309958"
|
||||||
|
y="1.2316679"
|
||||||
|
ry="1.171887" />
|
||||||
|
</clipPath>
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10711"
|
||||||
|
id="radialGradient3508"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1.1106976,-0.4036489,0.6516398,1.7930801,-9.2127514,-4.7972628)"
|
||||||
|
spreadMethod="reflect"
|
||||||
|
cx="8.8133469"
|
||||||
|
cy="14.235861"
|
||||||
|
fx="8.8133469"
|
||||||
|
fy="14.235861"
|
||||||
|
r="5.3238101" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3233"
|
||||||
|
id="linearGradient3240"
|
||||||
|
x1="9.4485903"
|
||||||
|
y1="2.761672"
|
||||||
|
x2="7.6776314"
|
||||||
|
y2="19.013866"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(4.1741381,0,0,4.1613891,14.977639,14.527008)" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient10711"
|
||||||
|
id="radialGradient3253"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(4.7157796,-1.4428762,2.6160831,8.4980426,-22.699134,-22.277012)"
|
||||||
|
spreadMethod="reflect"
|
||||||
|
cx="8.2230186"
|
||||||
|
cy="14.316785"
|
||||||
|
fx="8.2230186"
|
||||||
|
fy="14.316785"
|
||||||
|
r="5.3238101" />
|
||||||
|
<filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="filter3757"
|
||||||
|
x="-0.14567212"
|
||||||
|
width="1.2913442"
|
||||||
|
y="-0.098205952"
|
||||||
|
height="1.1964119">
|
||||||
|
<feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.79012916"
|
||||||
|
id="feGaussianBlur3759" />
|
||||||
|
</filter>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="2"
|
||||||
|
inkscape:cx="8.5584572"
|
||||||
|
inkscape:cy="52.628863"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="true"
|
||||||
|
inkscape:grid-bbox="true"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:window-width="1280"
|
||||||
|
inkscape:window-height="742"
|
||||||
|
inkscape:window-x="296"
|
||||||
|
inkscape:window-y="56"
|
||||||
|
showguides="true"
|
||||||
|
inkscape:guide-bbox="true"
|
||||||
|
width="24px"
|
||||||
|
height="24px"
|
||||||
|
inkscape:object-paths="false"
|
||||||
|
inkscape:object-nodes="true"
|
||||||
|
inkscape:snap-nodes="false"
|
||||||
|
inkscape:snap-global="false">
|
||||||
|
<inkscape:grid
|
||||||
|
type="xygrid"
|
||||||
|
id="grid3664"
|
||||||
|
empspacing="2"
|
||||||
|
visible="true"
|
||||||
|
enabled="true"
|
||||||
|
spacingx="2.6666px"
|
||||||
|
spacingy="2.6666px" />
|
||||||
|
<sodipodi:guide
|
||||||
|
orientation="1,0"
|
||||||
|
position="10.507812,7.328125"
|
||||||
|
id="guide3666" />
|
||||||
|
<sodipodi:guide
|
||||||
|
orientation="0,1"
|
||||||
|
position="10.292968,7.5546875"
|
||||||
|
id="guide3668" />
|
||||||
|
</sodipodi:namedview>
|
||||||
|
<metadata
|
||||||
|
id="metadata10648">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
id="layer1"
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer">
|
||||||
|
<path
|
||||||
|
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;opacity:0.18099551;color:#000000;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3757);enable-background:accumulate;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
|
||||||
|
d="m 5,19 c 5.24e-5,0.523584 0.4764155,0.999948 1,1 l 3.59375,0 2.5,2.5625 c 0.272702,0.267764 0.706204,0.357015 1.0625,0.21875 l 1.25,-0.46875 c 0.353635,-0.127466 0.619754,-0.46962 0.65625,-0.84375 l 0.34375,-3.3125 2.40625,-3 c 0.296435,-0.374818 0.26821,-0.967546 -0.0625,-1.3125 L 5.2034921,1.0488435 5,19 z"
|
||||||
|
id="path3670"
|
||||||
|
sodipodi:nodetypes="cccccccccccc"
|
||||||
|
transform="matrix(3.8351065,0,0,3.8305733,20.000787,24.35592)" />
|
||||||
|
<path
|
||||||
|
style="fill:#201020;fill-rule:evenodd;stroke:#595959;stroke-width:5.33333349;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
d="m 40.022468,18.688398 0,66.582224 16.696553,0 L 68.436432,97.122145 73.70512,95.153883 75.247683,80.05609 86.03678,66.636329 40.022468,18.688398 z"
|
||||||
|
id="path3502"
|
||||||
|
sodipodi:nodetypes="cccccccc" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cccccccc"
|
||||||
|
id="path3504"
|
||||||
|
d="m 40.022468,18.688397 0,66.58222 16.696554,0 11.717412,11.851511 5.268688,-1.968253 1.54256,-15.09779 L 85.892267,66.67168 40.022468,18.688397 z"
|
||||||
|
style="fill:#c4c4c4;fill-opacity:1;fill-rule:evenodd;stroke:none" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#radialGradient3253);fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||||
|
d="m 40.022468,18.688397 0,66.58222 16.696554,0 11.717412,11.851511 5.268688,-1.968253 1.54256,-15.09779 10.56036,-13.22296 -45.785574,-48.144728 z"
|
||||||
|
id="path3506"
|
||||||
|
sodipodi:nodetypes="cccccccc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:url(#linearGradient3240);stroke-width:2.667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
d="M 41.38037,83.915714 58.396539,84.11082 69.204513,94.929961 72.193882,93.656427 73.839587,79.399575 84.08764,66.742537 41.448646,22.246495 41.38037,83.915714 z"
|
||||||
|
id="path2253"
|
||||||
|
sodipodi:nodetypes="cccccccc" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 25 KiB |
42
recipes/aachener_nachrichten.recipe
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
from calibre.web.feeds.recipes import BasicNewsRecipe
|
||||||
|
class AdvancedUserRecipe(BasicNewsRecipe):
|
||||||
|
|
||||||
|
title = u'Aachener Nachrichten'
|
||||||
|
__author__ = 'schuster'
|
||||||
|
oldest_article = 1
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
use_embedded_content = False
|
||||||
|
language = 'de'
|
||||||
|
remove_javascript = True
|
||||||
|
cover_url = 'http://www.an-online.de/einwaage/images/an_logo.png'
|
||||||
|
masthead_url = 'http://www.an-online.de/einwaage/images/an_logo.png'
|
||||||
|
extra_css = '''
|
||||||
|
.fliesstext_detail:{margin-bottom:10%;}
|
||||||
|
.headline_1:{margin-bottom:25%;}
|
||||||
|
b{font-family:Arial,Helvetica,sans-serif; font-weight:200;font-size:large;}
|
||||||
|
a{font-family:Arial,Helvetica,sans-serif; font-weight:400;font-size:large;}
|
||||||
|
ll{font-family:Arial,Helvetica,sans-serif; font-weight:100;font-size:large;}
|
||||||
|
h4{font-family:Arial,Helvetica,sans-serif; font-weight:normal;font-size:small;}
|
||||||
|
img {min-width:300px; max-width:600px; min-height:300px; max-height:800px}
|
||||||
|
dd{font-family:Arial,Helvetica,sans-serif;font-size:large;}
|
||||||
|
body{font-family:Helvetica,Arial,sans-serif;font-size:small;}
|
||||||
|
'''
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
keep_only_tags = [
|
||||||
|
dict(name='span', attrs={'class':['fliesstext_detail', 'headline_1', 'autor_detail']}),
|
||||||
|
dict(id=['header-logo'])
|
||||||
|
]
|
||||||
|
|
||||||
|
feeds = [(u'Euregio', u'http://www.an-online.de/an/rss/Euregio.xml'),
|
||||||
|
(u'Aachen', u'http://www.an-online.de/an/rss/Aachen.xml'),
|
||||||
|
(u'Nordkreis', u'http://www.an-online.de/an/rss/Nordkreis.xml'),
|
||||||
|
(u'Düren', u'http://www.an-online.de/an/rss/Dueren.xml'),
|
||||||
|
(u'Eiffel', u'http://www.an-online.de/an/rss/Eifel.xml'),
|
||||||
|
(u'Eschweiler', u'http://www.an-online.de/an/rss/Eschweiler.xml'),
|
||||||
|
(u'Geilenkirchen', u'http://www.an-online.de/an/rss/Geilenkirchen.xml'),
|
||||||
|
(u'Heinsberg', u'http://www.an-online.de/an/rss/Heinsberg.xml'),
|
||||||
|
(u'Jülich', u'http://www.an-online.de/an/rss/Juelich.xml'),
|
||||||
|
(u'Stolberg', u'http://www.an-online.de/an/rss/Stolberg.xml'),
|
||||||
|
(u'Ratgebenr', u'http://www.an-online.de/an/rss/Ratgeber.xml')]
|
53
recipes/aksiyon_derigisi.recipe
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class Aksiyon (BasicNewsRecipe):
|
||||||
|
|
||||||
|
title = u'Aksiyon Dergisi'
|
||||||
|
__author__ = u'thomass'
|
||||||
|
description = 'Haftalık haber dergisi '
|
||||||
|
oldest_article =13
|
||||||
|
max_articles_per_feed =100
|
||||||
|
no_stylesheets = True
|
||||||
|
#delay = 1
|
||||||
|
#use_embedded_content = False
|
||||||
|
encoding = 'utf-8'
|
||||||
|
publisher = 'Aksiyon'
|
||||||
|
category = 'news, haberler,TR,gazete'
|
||||||
|
language = 'tr'
|
||||||
|
publication_type = 'magazine'
|
||||||
|
#extra_css = ' body{ font-family: Verdana,Helvetica,Arial,sans-serif } .introduction{font-weight: bold} .story-feature{display: block; padding: 0; border: 1px solid; width: 40%; font-size: small} .story-feature h2{text-align: center; text-transform: uppercase} '
|
||||||
|
#keep_only_tags = [dict(name='font', attrs={'class':['newsDetail','agenda2NewsSpot']}),dict(name='span', attrs={'class':['agenda2Title']}),dict(name='div', attrs={'id':['gallery']})]
|
||||||
|
remove_tags = [dict(name='img', attrs={'src':[ 'http://medya.aksiyon.com.tr/aksiyon/images/logo/logo.bmp','/aksiyon/images/template/green/baslik0.gif','mobile/home.jpg']}) ]
|
||||||
|
|
||||||
|
cover_img_url = 'http://www.aksiyon.com.tr/aksiyon/images/aksiyon/top-page/aksiyon_top_r2_c1.jpg'
|
||||||
|
masthead_url = 'http://aksiyon.com.tr/aksiyon/images/aksiyon/top-page/aksiyon_top_r2_c1.jpg'
|
||||||
|
remove_empty_feeds= True
|
||||||
|
remove_attributes = ['width','height']
|
||||||
|
|
||||||
|
feeds = [
|
||||||
|
( u'ANASAYFA', u'http://www.aksiyon.com.tr/aksiyon/rss?sectionId=0'),
|
||||||
|
( u'KARAKUTU', u'http://www.aksiyon.com.tr/aksiyon/rss?sectionId=11'),
|
||||||
|
( u'EKONOMİ', u'http://www.aksiyon.com.tr/aksiyon/rss?sectionId=35'),
|
||||||
|
( u'EKOANALİZ', u'http://www.aksiyon.com.tr/aksiyon/rss?sectionId=284'),
|
||||||
|
( u'YAZARLAR', u'http://www.aksiyon.com.tr/aksiyon/rss?sectionId=17'),
|
||||||
|
( u'KİTAPLIK', u'http://www.aksiyon.com.tr/aksiyon/rss?sectionId=13'),
|
||||||
|
( u'SİNEMA', u'http://www.aksiyon.com.tr/aksiyon/rss?sectionId=14'),
|
||||||
|
( u'ARKA PENCERE', u'http://www.aksiyon.com.tr/aksiyon/rss?sectionId=27'),
|
||||||
|
( u'DÜNYA', u'http://www.aksiyon.com.tr/aksiyon/rss?sectionId=32'),
|
||||||
|
( u'DOSYALAR', u'http://www.aksiyon.com.tr/aksiyon/rss?sectionId=34'),
|
||||||
|
( u'KÜLTÜR & SANAT', u'http://www.aksiyon.com.tr/aksiyon/rss?sectionId=12'),
|
||||||
|
( u'KAPAK', u'http://www.aksiyon.com.tr/aksiyon/rss?sectionId=26'),
|
||||||
|
( u'SPOR', u'http://www.aksiyon.com.tr/aksiyon/rss?sectionId=38'),
|
||||||
|
( u'BİLİŞİM - TEKNOLOJİ', u'http://www.aksiyon.com.tr/aksiyon/rss?sectionId=39'),
|
||||||
|
( u'3. BOYUT', u'http://www.aksiyon.com.tr/aksiyon/rss?sectionId=172'),
|
||||||
|
( u'HAYAT BİLGİSİ', u'http://www.aksiyon.com.tr/aksiyon/rss?sectionId=283'),
|
||||||
|
( u'İŞ DÜNYASI', u'http://www.aksiyon.com.tr/aksiyon/rss?sectionId=283'),
|
||||||
|
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
|
def print_version(self, url):
|
||||||
|
return url.replace('http://www.aksiyon.com.tr/aksiyon/newsDetail_getNewsById.action?load=detay&', 'http://www.aksiyon.com.tr/aksiyon/mobile_detailn.action?')
|
||||||
|
|
43
recipes/alt_om_herning.recipe
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
__license__ = 'GPL v3'
|
||||||
|
__copyright__ = '2011, Rasmus Lauritsen <rasmus at lauritsen.info>'
|
||||||
|
'''
|
||||||
|
aoh.dk
|
||||||
|
'''
|
||||||
|
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class aoh_dk(BasicNewsRecipe):
|
||||||
|
title = 'Alt om Herning'
|
||||||
|
__author__ = 'Rasmus Lauritsen'
|
||||||
|
description = 'Nyheder fra Herning om omegn'
|
||||||
|
publisher = 'Mediehuset Herning Folkeblad'
|
||||||
|
category = 'news, local, Denmark'
|
||||||
|
oldest_article = 14
|
||||||
|
max_articles_per_feed = 50
|
||||||
|
no_stylesheets = True
|
||||||
|
delay = 1
|
||||||
|
encoding = 'utf8'
|
||||||
|
use_embedded_content = False
|
||||||
|
language = 'da'
|
||||||
|
extra_css = """ body{font-family: Verdana,Arial,sans-serif }
|
||||||
|
img{margin-bottom: 0.4em}
|
||||||
|
.txtContent,.stamp{font-size: small}
|
||||||
|
"""
|
||||||
|
|
||||||
|
conversion_options = {
|
||||||
|
'comment' : description
|
||||||
|
, 'tags' : category
|
||||||
|
, 'publisher' : publisher
|
||||||
|
, 'language' : language
|
||||||
|
}
|
||||||
|
|
||||||
|
feeds = [(u'All news', u'http://aoh.dk/rss.xml')]
|
||||||
|
|
||||||
|
keep_only_tags = [
|
||||||
|
dict(name='h1')
|
||||||
|
,dict(name='span', attrs={'class':['frontpage_body']})
|
||||||
|
]
|
||||||
|
|
||||||
|
remove_tags = [
|
||||||
|
dict(name=['object','link'])
|
||||||
|
]
|
@ -1,7 +1,5 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
__license__ = 'GPL v3'
|
__license__ = 'GPL v3'
|
||||||
__copyright__ = '2008-2009, Darko Miletic <darko.miletic at gmail.com>'
|
__copyright__ = '2008-2011, Darko Miletic <darko.miletic at gmail.com>'
|
||||||
'''
|
'''
|
||||||
ambito.com
|
ambito.com
|
||||||
'''
|
'''
|
||||||
@ -11,51 +9,56 @@ from calibre.web.feeds.news import BasicNewsRecipe
|
|||||||
class Ambito(BasicNewsRecipe):
|
class Ambito(BasicNewsRecipe):
|
||||||
title = 'Ambito.com'
|
title = 'Ambito.com'
|
||||||
__author__ = 'Darko Miletic'
|
__author__ = 'Darko Miletic'
|
||||||
description = 'Informacion Libre las 24 horas'
|
description = 'Ambito.com con noticias del Diario Ambito Financiero de Buenos Aires'
|
||||||
publisher = 'Ambito.com'
|
publisher = 'Editorial Nefir S.A.'
|
||||||
category = 'news, politics, Argentina'
|
category = 'news, politics, economy, finances, Argentina'
|
||||||
oldest_article = 2
|
oldest_article = 2
|
||||||
max_articles_per_feed = 100
|
|
||||||
no_stylesheets = True
|
no_stylesheets = True
|
||||||
encoding = 'iso-8859-1'
|
encoding = 'cp1252'
|
||||||
cover_url = 'http://www.ambito.com/img/logo_.jpg'
|
masthead_url = 'http://www.ambito.com/img/logo_.jpg'
|
||||||
remove_javascript = True
|
|
||||||
use_embedded_content = False
|
use_embedded_content = False
|
||||||
|
language = 'es_AR'
|
||||||
|
publication_type = 'newsportal'
|
||||||
|
extra_css = """
|
||||||
|
body{font-family: "Trebuchet MS",Verdana,sans-serif}
|
||||||
|
.volanta{font-size: small}
|
||||||
|
.t2_portada{font-size: xx-large; font-family: Georgia,serif; color: #026698}
|
||||||
|
"""
|
||||||
|
|
||||||
html2lrf_options = [
|
|
||||||
'--comment', description
|
|
||||||
, '--category', category
|
|
||||||
, '--publisher', publisher
|
|
||||||
]
|
|
||||||
|
|
||||||
html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"'
|
conversion_options = {
|
||||||
|
'comment' : description
|
||||||
|
, 'tags' : category
|
||||||
|
, 'publisher' : publisher
|
||||||
|
, 'language' : language
|
||||||
|
}
|
||||||
|
|
||||||
keep_only_tags = [dict(name='div', attrs={'align':'justify'})]
|
keep_only_tags = [dict(name='div', attrs={'align':'justify'})]
|
||||||
|
remove_tags = [dict(name=['object','link','embed','iframe','meta','link','table','img'])]
|
||||||
remove_tags = [dict(name=['object','link'])]
|
remove_attributes = ['align']
|
||||||
|
|
||||||
feeds = [
|
feeds = [
|
||||||
(u'Principales Noticias', u'http://www.ambito.com/rss/noticiasp.asp' )
|
(u'Principales Noticias', u'http://www.ambito.com/rss/noticiasp.asp' )
|
||||||
,(u'Economia' , u'http://www.ambito.com/rss/noticias.asp?S=Econom%EDa' )
|
,(u'Economia' , u'http://www.ambito.com/rss/noticias.asp?S=Econom%EDa' )
|
||||||
,(u'Politica' , u'http://www.ambito.com/rss/noticias.asp?S=Pol%EDtica' )
|
,(u'Politica' , u'http://www.ambito.com/rss/noticias.asp?S=Pol%EDtica' )
|
||||||
,(u'Informacion General' , u'http://www.ambito.com/rss/noticias.asp?S=Informaci%F3n%20General')
|
,(u'Informacion General' , u'http://www.ambito.com/rss/noticias.asp?S=Informaci%F3n%20General')
|
||||||
,(u'Agro' , u'http://www.ambito.com/rss/noticias.asp?S=Agro' )
|
,(u'Campo' , u'http://www.ambito.com/rss/noticias.asp?S=Agro' )
|
||||||
,(u'Internacionales' , u'http://www.ambito.com/rss/noticias.asp?S=Internacionales' )
|
,(u'Internacionales' , u'http://www.ambito.com/rss/noticias.asp?S=Internacionales' )
|
||||||
,(u'Deportes' , u'http://www.ambito.com/rss/noticias.asp?S=Deportes' )
|
,(u'Deportes' , u'http://www.ambito.com/rss/noticias.asp?S=Deportes' )
|
||||||
,(u'Espectaculos' , u'http://www.ambito.com/rss/noticias.asp?S=Espect%E1culos' )
|
,(u'Espectaculos' , u'http://www.ambito.com/rss/noticias.asp?S=Espect%E1culos' )
|
||||||
,(u'Tecnologia' , u'http://www.ambito.com/rss/noticias.asp?S=Tecnologia' )
|
,(u'Tecnologia' , u'http://www.ambito.com/rss/noticias.asp?S=Tecnolog%EDa' )
|
||||||
,(u'Salud' , u'http://www.ambito.com/rss/noticias.asp?S=Salud' )
|
|
||||||
,(u'Ambito Nacional' , u'http://www.ambito.com/rss/noticias.asp?S=Ambito%20Nacional' )
|
,(u'Ambito Nacional' , u'http://www.ambito.com/rss/noticias.asp?S=Ambito%20Nacional' )
|
||||||
]
|
]
|
||||||
|
|
||||||
def print_version(self, url):
|
def print_version(self, url):
|
||||||
return url.replace('http://www.ambito.com/noticia.asp?','http://www.ambito.com/noticias/imprimir.asp?')
|
return url.replace('/noticia.asp?','/noticias/imprimir.asp?')
|
||||||
|
|
||||||
def preprocess_html(self, soup):
|
def preprocess_html(self, soup):
|
||||||
mtag = '<meta http-equiv="Content-Language" content="es-AR"/>'
|
|
||||||
soup.head.insert(0,mtag)
|
|
||||||
for item in soup.findAll(style=True):
|
for item in soup.findAll(style=True):
|
||||||
del item['style']
|
del item['style']
|
||||||
|
for item in soup.findAll('a'):
|
||||||
|
str = item.string
|
||||||
|
if str is None:
|
||||||
|
str = self.tag_to_string(item)
|
||||||
|
item.replaceWith(str)
|
||||||
return soup
|
return soup
|
||||||
|
|
||||||
language = 'es_AR'
|
|
||||||
|
87
recipes/ambito_financiero.recipe
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
__license__ = 'GPL v3'
|
||||||
|
__copyright__ = '2011, Darko Miletic <darko.miletic at gmail.com>'
|
||||||
|
'''
|
||||||
|
ambito.com/diario
|
||||||
|
'''
|
||||||
|
|
||||||
|
import time
|
||||||
|
from calibre import strftime
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class Ambito_Financiero(BasicNewsRecipe):
|
||||||
|
title = 'Ambito Financiero'
|
||||||
|
__author__ = 'Darko Miletic'
|
||||||
|
description = 'Informacion Libre las 24 horas'
|
||||||
|
publisher = 'Editorial Nefir S.A.'
|
||||||
|
category = 'news, politics, economy, Argentina'
|
||||||
|
no_stylesheets = True
|
||||||
|
encoding = 'cp1252'
|
||||||
|
masthead_url = 'http://www.ambito.com/diario/img/logo_af.gif'
|
||||||
|
publication_type = 'newspaper'
|
||||||
|
needs_subscription = 'optional'
|
||||||
|
use_embedded_content = False
|
||||||
|
language = 'es_AR'
|
||||||
|
PREFIX = 'http://www.ambito.com'
|
||||||
|
INDEX = PREFIX + '/diario/index.asp'
|
||||||
|
LOGIN = PREFIX + '/diario/login/entrada.asp'
|
||||||
|
extra_css = """
|
||||||
|
body{font-family: "Trebuchet MS",Verdana,sans-serif}
|
||||||
|
.volanta{font-size: small}
|
||||||
|
.t2_portada{font-size: xx-large; font-family: Georgia,serif; color: #026698}
|
||||||
|
"""
|
||||||
|
|
||||||
|
conversion_options = {
|
||||||
|
'comment' : description
|
||||||
|
, 'tags' : category
|
||||||
|
, 'publisher' : publisher
|
||||||
|
, 'language' : language
|
||||||
|
}
|
||||||
|
|
||||||
|
keep_only_tags = [dict(name='div', attrs={'align':'justify'})]
|
||||||
|
remove_tags = [dict(name=['object','link','embed','iframe','meta','link','table','img'])]
|
||||||
|
remove_attributes = ['align']
|
||||||
|
|
||||||
|
def get_browser(self):
|
||||||
|
br = BasicNewsRecipe.get_browser()
|
||||||
|
br.open(self.INDEX)
|
||||||
|
if self.username is not None and self.password is not None:
|
||||||
|
br.open(self.LOGIN)
|
||||||
|
br.select_form(name='frmlogin')
|
||||||
|
br['USER_NAME'] = self.username
|
||||||
|
br['USER_PASS'] = self.password
|
||||||
|
br.submit()
|
||||||
|
return br
|
||||||
|
|
||||||
|
def print_version(self, url):
|
||||||
|
return url.replace('/diario/noticia.asp?','/noticias/imprimir.asp?')
|
||||||
|
|
||||||
|
def preprocess_html(self, soup):
|
||||||
|
for item in soup.findAll(style=True):
|
||||||
|
del item['style']
|
||||||
|
for item in soup.findAll('a'):
|
||||||
|
str = item.string
|
||||||
|
if str is None:
|
||||||
|
str = self.tag_to_string(item)
|
||||||
|
item.replaceWith(str)
|
||||||
|
return soup
|
||||||
|
|
||||||
|
def parse_index(self):
|
||||||
|
soup = self.index_to_soup(self.INDEX)
|
||||||
|
cover_item = soup.find('img',attrs={'class':'fotodespliegue'})
|
||||||
|
if cover_item:
|
||||||
|
self.cover_url = self.PREFIX + cover_item['src']
|
||||||
|
articles = []
|
||||||
|
checker = []
|
||||||
|
for feed_link in soup.findAll('a', attrs={'class':['t0_portada','t2_portada','bajada']}):
|
||||||
|
url = self.PREFIX + feed_link['href']
|
||||||
|
title = self.tag_to_string(feed_link)
|
||||||
|
date = strftime("%a, %d %b %Y %H:%M:%S +0000",time.gmtime())
|
||||||
|
if url not in checker:
|
||||||
|
checker.append(url)
|
||||||
|
articles.append({
|
||||||
|
'title' :title
|
||||||
|
,'date' :date
|
||||||
|
,'url' :url
|
||||||
|
,'description':u''
|
||||||
|
})
|
||||||
|
return [(self.title, articles)]
|
12
recipes/android_com_pl.recipe
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class Android_com_pl(BasicNewsRecipe):
|
||||||
|
title = u'Android.com.pl'
|
||||||
|
__author__ = 'fenuks'
|
||||||
|
description = 'Android.com.pl - biggest polish Android site'
|
||||||
|
category = 'Android, mobile'
|
||||||
|
language = 'pl'
|
||||||
|
cover_url =u'http://upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Android_robot.svg/220px-Android_robot.svg.png'
|
||||||
|
oldest_article = 8
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
feeds = [(u'Android', u'http://android.com.pl/component/content/frontpage/frontpage.feed?type=rss')]
|
68
recipes/arizona_republic.recipe
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
__license__ = 'GPL v3'
|
||||||
|
__copyright__ = '2010, jolo'
|
||||||
|
'''
|
||||||
|
azrepublic.com
|
||||||
|
'''
|
||||||
|
from calibre.web.feeds.recipes import BasicNewsRecipe
|
||||||
|
|
||||||
|
class AdvancedUserRecipe1307301031(BasicNewsRecipe):
|
||||||
|
title = u'AZRepublic'
|
||||||
|
__author__ = 'Jim Olo'
|
||||||
|
language = 'en'
|
||||||
|
description = "The Arizona Republic is Arizona's leading provider of news and information, and has published a daily newspaper in Phoenix for more than 110 years"
|
||||||
|
publisher = 'AZRepublic/AZCentral'
|
||||||
|
masthead_url = 'http://freedom2t.com/wp-content/uploads/press_az_republic_v2.gif'
|
||||||
|
cover_url = 'http://www.valleyleadership.org/Common/Img/2line4c_AZRepublic%20with%20azcentral%20logo.jpg'
|
||||||
|
category = 'news, politics, USA, AZ, Arizona'
|
||||||
|
|
||||||
|
oldest_article = 7
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
remove_empty_feeds = True
|
||||||
|
no_stylesheets = True
|
||||||
|
remove_javascript = True
|
||||||
|
# extra_css = '.headline {font-size: medium;} \n .fact { padding-top: 10pt }'
|
||||||
|
extra_css = ' body{ font-family: Verdana,Helvetica,Arial,sans-serif } .headline {font-size: medium} .introduction{font-weight: bold} .story-feature{display: block; padding: 0; border: 1px solid; width: 40%; font-size: small} .story-feature h2{text-align: center; text-transform: uppercase} '
|
||||||
|
|
||||||
|
remove_attributes = ['width','height','h2','subHeadline','style']
|
||||||
|
remove_tags = [
|
||||||
|
dict(name='div', attrs={'id':['slidingBillboard', 'top728x90', 'subindex-header', 'topSearch']}),
|
||||||
|
dict(name='div', attrs={'id':['simplesearch', 'azcLoginBox', 'azcLoginBoxInner', 'topNav']}),
|
||||||
|
dict(name='div', attrs={'id':['carsDrop', 'homesDrop', 'rentalsDrop', 'classifiedDrop']}),
|
||||||
|
dict(name='div', attrs={'id':['nav', 'mp', 'subnav', 'jobsDrop']}),
|
||||||
|
dict(name='h6', attrs={'class':['section-header']}),
|
||||||
|
dict(name='a', attrs={'href':['#comments']}),
|
||||||
|
dict(name='div', attrs={'class':['articletools clearfix', 'floatRight']}),
|
||||||
|
dict(name='div', attrs={'id':['fbFrame', 'ob', 'storyComments', 'storyGoogleAdBox']}),
|
||||||
|
dict(name='div', attrs={'id':['storyTopHomes', 'openRight', 'footerwrap', 'copyright']}),
|
||||||
|
dict(name='div', attrs={'id':['blogsHed', 'blog_comments', 'blogByline','blogTopics']}),
|
||||||
|
dict(name='div', attrs={'id':['membersRightMain', 'dealsfooter', 'azrTopHed', 'azrRightCol']}),
|
||||||
|
dict(name='div', attrs={'id':['ttdHeader', 'ttdTimeWeather']}),
|
||||||
|
dict(name='div', attrs={'id':['membersRightMain', 'deals-header-wrap']}),
|
||||||
|
dict(name='div', attrs={'id':['todoTopSearchBar', 'byline clearfix', 'subdex-topnav']}),
|
||||||
|
dict(name='h1', attrs={'id':['SEOtext']}),
|
||||||
|
dict(name='table', attrs={'class':['ap-mediabox-table']}),
|
||||||
|
dict(name='p', attrs={'class':['ap_para']}),
|
||||||
|
dict(name='span', attrs={'class':['source-org vcard', 'org fn']}),
|
||||||
|
dict(name='a', attrs={'href':['http://hosted2.ap.org/APDEFAULT/privacy']}),
|
||||||
|
dict(name='a', attrs={'href':['http://hosted2.ap.org/APDEFAULT/terms']}),
|
||||||
|
dict(name='div', attrs={'id':['onespot_nextclick']}),
|
||||||
|
]
|
||||||
|
|
||||||
|
feeds = [
|
||||||
|
(u'FrontPage', u'http://www.azcentral.com/rss/feeds/republicfront.xml'),
|
||||||
|
(u'TopUS-News', u'http://hosted.ap.org/lineups/USHEADS.rss?SITE=AZPHG&SECTION=HOME'),
|
||||||
|
(u'WorldNews', u'http://hosted.ap.org/lineups/WORLDHEADS.rss?SITE=AZPHG&SECTION=HOME'),
|
||||||
|
(u'TopBusiness', u'http://hosted.ap.org/lineups/BUSINESSHEADS.rss?SITE=AZPHG&SECTION=HOME'),
|
||||||
|
(u'Entertainment', u'http://hosted.ap.org/lineups/ENTERTAINMENT.rss?SITE=AZPHG&SECTION=HOME'),
|
||||||
|
(u'ArizonaNews', u'http://www.azcentral.com/rss/feeds/news.xml'),
|
||||||
|
(u'Gilbert', u'http://www.azcentral.com/rss/feeds/gilbert.xml'),
|
||||||
|
(u'Chandler', u'http://www.azcentral.com/rss/feeds/chandler.xml'),
|
||||||
|
(u'DiningReviews', u'http://www.azcentral.com/rss/feeds/diningreviews.xml'),
|
||||||
|
(u'AZBusiness', u'http://www.azcentral.com/rss/feeds/business.xml'),
|
||||||
|
(u'ArizonaDeals', u'http://www.azcentral.com/members/Blog%7E/RealDealsblog'),
|
||||||
|
(u'GroceryDeals', u'http://www.azcentral.com/members/Blog%7E/RealDealsblog/tag/2646')
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
70
recipes/athens_news.recipe
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
__license__ = 'GPL v3'
|
||||||
|
__copyright__ = '2011, Darko Miletic <darko.miletic at gmail.com>'
|
||||||
|
'''
|
||||||
|
www.athensnews.gr
|
||||||
|
'''
|
||||||
|
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class AthensNews(BasicNewsRecipe):
|
||||||
|
title = 'Athens News'
|
||||||
|
__author__ = 'Darko Miletic'
|
||||||
|
description = 'Greece in English since 1952'
|
||||||
|
publisher = 'NEP Publishing Company SA'
|
||||||
|
category = 'news, politics, Greece, Athens'
|
||||||
|
oldest_article = 1
|
||||||
|
max_articles_per_feed = 200
|
||||||
|
no_stylesheets = True
|
||||||
|
encoding = 'utf8'
|
||||||
|
use_embedded_content = False
|
||||||
|
language = 'en_GR'
|
||||||
|
remove_empty_feeds = True
|
||||||
|
publication_type = 'newspaper'
|
||||||
|
masthead_url = 'http://www.athensnews.gr/sites/athensnews/themes/athensnewsv3/images/logo.jpg'
|
||||||
|
extra_css = """
|
||||||
|
body{font-family: Arial,Helvetica,sans-serif }
|
||||||
|
img{margin-bottom: 0.4em; display:block}
|
||||||
|
.big{font-size: xx-large; font-family: Georgia,serif}
|
||||||
|
.articlepubdate{font-size: small; color: gray; font-family: Georgia,serif}
|
||||||
|
.lezanta{font-size: x-small; font-weight: bold; text-align: left; margin-bottom: 1em; display: block}
|
||||||
|
"""
|
||||||
|
|
||||||
|
conversion_options = {
|
||||||
|
'comment' : description
|
||||||
|
, 'tags' : category
|
||||||
|
, 'publisher' : publisher
|
||||||
|
, 'language' : language
|
||||||
|
, 'linearize_tables' : True
|
||||||
|
}
|
||||||
|
|
||||||
|
remove_tags = [
|
||||||
|
dict(name=['meta','link'])
|
||||||
|
]
|
||||||
|
keep_only_tags=[
|
||||||
|
dict(name='span',attrs={'class':'big'})
|
||||||
|
,dict(name='td', attrs={'class':['articlepubdate','text']})
|
||||||
|
]
|
||||||
|
remove_attributes=['lang']
|
||||||
|
|
||||||
|
|
||||||
|
feeds = [
|
||||||
|
(u'News' , u'http://www.athensnews.gr/category/1/feed' )
|
||||||
|
,(u'Politics' , u'http://www.athensnews.gr/category/8/feed' )
|
||||||
|
,(u'Business' , u'http://www.athensnews.gr/category/2/feed' )
|
||||||
|
,(u'Economy' , u'http://www.athensnews.gr/category/11/feed')
|
||||||
|
,(u'Community' , u'http://www.athensnews.gr/category/5/feed' )
|
||||||
|
,(u'Arts' , u'http://www.athensnews.gr/category/3/feed' )
|
||||||
|
,(u'Living in Athens', u'http://www.athensnews.gr/category/7/feed' )
|
||||||
|
,(u'Sports' , u'http://www.athensnews.gr/category/4/feed' )
|
||||||
|
,(u'Travel' , u'http://www.athensnews.gr/category/6/feed' )
|
||||||
|
,(u'Letters' , u'http://www.athensnews.gr/category/44/feed')
|
||||||
|
,(u'Media' , u'http://www.athensnews.gr/multimedia/feed' )
|
||||||
|
]
|
||||||
|
|
||||||
|
def print_version(self, url):
|
||||||
|
return url + '?action=print'
|
||||||
|
|
||||||
|
def preprocess_html(self, soup):
|
||||||
|
for item in soup.findAll(style=True):
|
||||||
|
del item['style']
|
||||||
|
return soup
|
39
recipes/automatiseringgids.recipe
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
import re
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class autogids(BasicNewsRecipe):
|
||||||
|
title = u'Automatiseringgids IT'
|
||||||
|
oldest_article = 7
|
||||||
|
__author__ = 'DrMerry'
|
||||||
|
description = 'IT-nieuws van Automatiseringgids'
|
||||||
|
language = 'nl'
|
||||||
|
publisher = 'AutomatiseringGids'
|
||||||
|
category = 'Nieuws, IT, Nederlandstalig'
|
||||||
|
simultaneous_downloads = 5
|
||||||
|
#delay = 1
|
||||||
|
timefmt = ' [%A, %d %B, %Y]'
|
||||||
|
#timefmt = ''
|
||||||
|
no_stylesheets = True
|
||||||
|
remove_javascript = True
|
||||||
|
remove_empty_feeds = True
|
||||||
|
publication_type = 'newspaper'
|
||||||
|
encoding = 'utf-8'
|
||||||
|
cover_url = 'http://www.automatiseringgids.nl/siteimg/header_logo.gif'
|
||||||
|
keep_only_tags = [dict(id=['content'])]
|
||||||
|
extra_css = '.artikelheader {font-size:0.8em; color: #666;} .artikelintro {font-weight:bold} div.imgArticle {float: right; margin: 0 0em 1em 1em; display: block; position: relative; } \
|
||||||
|
h2 { margin: 0 0 0.5em; min-height: 30px; font-size: 1.5em; letter-spacing: -0.2px; margin: 0 0 0.5em; color: black; font-weight: bold; line-height: 1.2em; padding: 4px 3px 0; }'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
remove_tags = [dict(name='div', attrs={'id':['loginbox','reactiecollapsible','reactiebox']}),
|
||||||
|
dict(name='div', attrs={'class':['column_a','column_c','bannerfullsize','reactieheader','reactiecollapsible','formulier','artikel_headeroptions']}),
|
||||||
|
dict(name='ul', attrs={'class':['highlightlist']}),
|
||||||
|
dict(name='input', attrs={'type':['button']}),
|
||||||
|
dict(name='div', attrs={'style':['display:block; width:428px; height:30px; float:left;']}),
|
||||||
|
]
|
||||||
|
preprocess_regexps = [
|
||||||
|
(re.compile(r'(<h3>Reacties</h3>|<h2>Zie ook:</h2>|<div style=".*</div>|<a[^>]*>|</a>)', re.DOTALL|re.IGNORECASE),
|
||||||
|
lambda match: ''),
|
||||||
|
]
|
||||||
|
|
||||||
|
feeds = [(u'Actueel', u'http://www.automatiseringgids.nl/rss.aspx')]
|
15
recipes/bash_org_pl.recipe
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
|
||||||
|
class Bash_org_pl(BasicNewsRecipe):
|
||||||
|
title = u'Bash.org.pl'
|
||||||
|
__author__ = 'fenuks'
|
||||||
|
description = 'Bash.org.pl - funny quotations from IRC discussions'
|
||||||
|
category = 'funny quotations, humour'
|
||||||
|
language = 'pl'
|
||||||
|
oldest_article = 15
|
||||||
|
cover_url = u'http://userlogos.org/files/logos/dzikiosiol/none_0.png'
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
no_stylesheets= True
|
||||||
|
keep_only_tags= [dict(name='div', attrs={'class':'quote post-content post-body'})]
|
||||||
|
feeds = [(u'Cytaty', u'http://bash.org.pl/rss')]
|
@ -36,8 +36,9 @@ class BBC(BasicNewsRecipe):
|
|||||||
]
|
]
|
||||||
|
|
||||||
remove_tags = [
|
remove_tags = [
|
||||||
dict(name='div', attrs={'class':['story-feature related narrow', 'share-help', 'embedded-hyper', \
|
dict(name='div', attrs={'class':['story-feature related narrow', 'share-help', 'embedded-hyper',
|
||||||
'story-feature wide ', 'story-feature narrow']})
|
'story-feature wide ', 'story-feature narrow']}),
|
||||||
|
dict(id=['hypertab', 'comment-form']),
|
||||||
]
|
]
|
||||||
|
|
||||||
remove_attributes = ['width','height']
|
remove_attributes = ['width','height']
|
||||||
|
@ -1,27 +1,30 @@
|
|||||||
__license__ = 'GPL v3'
|
__license__ = 'GPL v3'
|
||||||
__copyright__ = '2010, Darko Miletic <darko.miletic at gmail.com>'
|
__copyright__ = '2010 - 2011, Darko Miletic <darko.miletic at gmail.com>'
|
||||||
'''
|
'''
|
||||||
news.bbc.co.uk
|
news.bbc.co.uk
|
||||||
'''
|
'''
|
||||||
import re
|
|
||||||
from calibre.web.feeds.recipes import BasicNewsRecipe
|
from calibre.web.feeds.recipes import BasicNewsRecipe
|
||||||
|
|
||||||
class BBC(BasicNewsRecipe):
|
class BBC(BasicNewsRecipe):
|
||||||
title = 'BBC News (fast)'
|
title = 'BBC News (fast)'
|
||||||
__author__ = 'Darko Miletic, Starson17'
|
__author__ = 'Darko Miletic, Starson17'
|
||||||
description = 'News from UK. A much faster version that does not download pictures'
|
description = 'Visit BBC News for up-to-the-minute news, breaking news, video, audio and feature stories. BBC News provides trusted World and UK news as well as local and regional perspectives. Also entertainment, business, science, technology and health news.'
|
||||||
oldest_article = 2
|
oldest_article = 2
|
||||||
max_articles_per_feed = 100
|
max_articles_per_feed = 100
|
||||||
no_stylesheets = True
|
no_stylesheets = True
|
||||||
#delay = 1
|
|
||||||
use_embedded_content = False
|
use_embedded_content = False
|
||||||
encoding = 'utf8'
|
encoding = 'utf8'
|
||||||
publisher = 'BBC'
|
publisher = 'BBC'
|
||||||
category = 'news, UK, world'
|
category = 'news, UK, world'
|
||||||
language = 'en_GB'
|
language = 'en_GB'
|
||||||
publication_type = 'newsportal'
|
publication_type = 'newsportal'
|
||||||
extra_css = ' body{ font-family: Verdana,Helvetica,Arial,sans-serif } .introduction{font-weight: bold} .story-feature{display: block; padding: 0; border: 1px solid; width: 40%; font-size: small} .story-feature h2{text-align: center; text-transform: uppercase} '
|
masthead_url = 'http://news.bbcimg.co.uk/img/1_0_1/cream/hi/news/news-blocks.gif'
|
||||||
preprocess_regexps = [(re.compile(r'<!--.*?-->', re.DOTALL), lambda m: '')]
|
extra_css = """
|
||||||
|
body{ font-family: Verdana,Helvetica,Arial,sans-serif }
|
||||||
|
.introduction{font-weight: bold}
|
||||||
|
.story-feature{display: block; padding: 0; border: 1px solid; width: 40%; font-size: small}
|
||||||
|
.story-feature h2{text-align: center; text-transform: uppercase}
|
||||||
|
"""
|
||||||
conversion_options = {
|
conversion_options = {
|
||||||
'comments' : description
|
'comments' : description
|
||||||
,'tags' : category
|
,'tags' : category
|
||||||
@ -31,31 +34,54 @@ class BBC(BasicNewsRecipe):
|
|||||||
}
|
}
|
||||||
|
|
||||||
keep_only_tags = [
|
keep_only_tags = [
|
||||||
dict(name='div', attrs={'class':['layout-block-a layout-block']})
|
dict(name='div', attrs={'class':['layout-block-a layout-block']})
|
||||||
,dict(attrs={'class':['story-body','storybody']})
|
,dict(attrs={'class':['story-body','storybody']})
|
||||||
|
,dict(attrs={'id':['meta-information','story-body']})
|
||||||
]
|
]
|
||||||
|
|
||||||
remove_tags = [
|
remove_tags = [
|
||||||
dict(name='div', attrs={'class':['story-feature related narrow', 'share-help', 'embedded-hyper', \
|
dict(name='div', attrs={'class':['story-feature related narrow', \
|
||||||
'story-feature wide ', 'story-feature narrow']})
|
'share-help', 'embedded-hyper', \
|
||||||
, dict(name=['img'])
|
'story-feature wide ', \
|
||||||
]
|
'story-feature narrow', \
|
||||||
|
'hidden','story-actions', \
|
||||||
|
'embedded-hyper']})
|
||||||
|
,dict(name=['img','meta','link','object','embed','iframe','base'])
|
||||||
|
,dict(attrs={'class':['hidden','videoInStoryC']})
|
||||||
|
,dict(attrs={'id':['bbccom_sponsor_section','toggle-controls', \
|
||||||
|
'toggle-images','toggle-title']})
|
||||||
|
]
|
||||||
|
|
||||||
remove_attributes = ['width','height']
|
remove_attributes = ['width','height','xmlns:og','lang','clear']
|
||||||
|
|
||||||
feeds = [
|
feeds = [
|
||||||
('News Front Page', 'http://newsrss.bbc.co.uk/rss/newsonline_world_edition/front_page/rss.xml'),
|
('Top Stories' , 'http://feeds.bbci.co.uk/news/rss.xml' ),
|
||||||
('Science/Nature', 'http://newsrss.bbc.co.uk/rss/newsonline_world_edition/science/nature/rss.xml'),
|
('Science/Environment', 'http://feeds.bbci.co.uk/news/science_and_environment/rss.xml'),
|
||||||
('Technology', 'http://newsrss.bbc.co.uk/rss/newsonline_world_edition/technology/rss.xml'),
|
('Technology' , 'http://feeds.bbci.co.uk/news/technology/rss.xml' ),
|
||||||
('Entertainment', 'http://newsrss.bbc.co.uk/rss/newsonline_world_edition/entertainment/rss.xml'),
|
('Entertainment/Arts' , 'http://feeds.bbci.co.uk/news/entertainment_and_arts/rss.xml' ),
|
||||||
('Magazine', 'http://newsrss.bbc.co.uk/rss/newsonline_world_edition/uk_news/magazine/rss.xml'),
|
('Magazine' , 'http://feeds.bbci.co.uk/news/magazine/rss.xml' ),
|
||||||
('Business', 'http://newsrss.bbc.co.uk/rss/newsonline_world_edition/business/rss.xml'),
|
('Business' , 'http://feeds.bbci.co.uk/news/business/rss.xml' ),
|
||||||
('Health', 'http://newsrss.bbc.co.uk/rss/newsonline_world_edition/health/rss.xml'),
|
('Politics' , 'http://feeds.bbci.co.uk/news/politics/rss.xml' ),
|
||||||
('Americas', 'http://newsrss.bbc.co.uk/rss/newsonline_world_edition/americas/rss.xml'),
|
('Health' , 'http://feeds.bbci.co.uk/news/health/rss.xml' ),
|
||||||
('Europe', 'http://newsrss.bbc.co.uk/rss/newsonline_world_edition/europe/rss.xml'),
|
('US&Canada' , 'http://feeds.bbci.co.uk/news/world/us_and_canada/rss.xml' ),
|
||||||
('South Asia', 'http://newsrss.bbc.co.uk/rss/newsonline_world_edition/south_asia/rss.xml'),
|
('Latin America' , 'http://feeds.bbci.co.uk/news/world/latin_america/rss.xml' ),
|
||||||
('UK', 'http://newsrss.bbc.co.uk/rss/newsonline_world_edition/uk_news/rss.xml'),
|
('Europe' , 'http://feeds.bbci.co.uk/news/world/europe/rss.xml' ),
|
||||||
('Asia-Pacific', 'http://newsrss.bbc.co.uk/rss/newsonline_world_edition/asia-pacific/rss.xml'),
|
('South Asia' , 'http://feeds.bbci.co.uk/news/world/south_asia/rss.xml' ),
|
||||||
('Africa', 'http://newsrss.bbc.co.uk/rss/newsonline_world_edition/africa/rss.xml'),
|
('England' , 'http://feeds.bbci.co.uk/news/england/rss.xml' ),
|
||||||
|
('Asia-Pacific' , 'http://feeds.bbci.co.uk/news/world/asia_pacific/rss.xml' ),
|
||||||
|
('Africa' , 'http://feeds.bbci.co.uk/news/world/africa/rss.xml' )
|
||||||
]
|
]
|
||||||
|
|
||||||
|
def preprocess_html(self, soup):
|
||||||
|
for item in soup.findAll(style=True):
|
||||||
|
del item['style']
|
||||||
|
for item in soup.findAll('left'):
|
||||||
|
item.name='span'
|
||||||
|
for item in soup.findAll('a'):
|
||||||
|
if item.string is not None:
|
||||||
|
str = item.string
|
||||||
|
item.replaceWith(str)
|
||||||
|
else:
|
||||||
|
str = self.tag_to_string(item)
|
||||||
|
item.replaceWith(str)
|
||||||
|
return soup
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from calibre.web.feeds.recipes import BasicNewsRecipe
|
from calibre.web.feeds.recipes import BasicNewsRecipe
|
||||||
class AdvancedUserRecipe1303841067(BasicNewsRecipe):
|
class AdvancedUserRecipe1303841067(BasicNewsRecipe):
|
||||||
|
|
||||||
title = u'Bild.de'
|
title = u'Bild.de'
|
||||||
__author__ = 'schuster'
|
__author__ = 'schuster'
|
||||||
oldest_article = 1
|
oldest_article = 1
|
||||||
max_articles_per_feed = 50
|
max_articles_per_feed = 100
|
||||||
no_stylesheets = True
|
no_stylesheets = True
|
||||||
use_embedded_content = False
|
use_embedded_content = False
|
||||||
language = 'de'
|
language = 'de'
|
||||||
@ -12,11 +13,25 @@ class AdvancedUserRecipe1303841067(BasicNewsRecipe):
|
|||||||
|
|
||||||
# get cover from myspace
|
# get cover from myspace
|
||||||
cover_url = 'http://a3.l3-images.myspacecdn.com/images02/56/0232f842170b4d349779f8379c27e073/l.jpg'
|
cover_url = 'http://a3.l3-images.myspacecdn.com/images02/56/0232f842170b4d349779f8379c27e073/l.jpg'
|
||||||
|
masthead_url = 'http://a3.l3-images.myspacecdn.com/images02/56/0232f842170b4d349779f8379c27e073/l.jpg'
|
||||||
|
|
||||||
# set what to fetch on the site
|
# set what to fetch on the site
|
||||||
remove_tags_before = dict(name = 'h2', attrs={'id':'cover'})
|
remove_tags_before = dict(name = 'h2', attrs={'id':'cover'})
|
||||||
remove_tags_after = dict(name ='div', attrs={'class':'back'})
|
remove_tags_after = dict(name ='div', attrs={'class':'back'})
|
||||||
|
|
||||||
|
|
||||||
|
# remove things on the site that we don't want
|
||||||
|
remove_tags = [dict(name='div', attrs={'class':'credit'}),
|
||||||
|
dict(name='div', attrs={'class':'index'}),
|
||||||
|
dict(name='div', attrs={'id':'zstart31'}),
|
||||||
|
dict(name='div', attrs={'class':'hentry'}),
|
||||||
|
dict(name='div', attrs={'class':'back'}),
|
||||||
|
dict(name='div', attrs={'class':'pagination'}),
|
||||||
|
dict(name='div', attrs={'class':'header'}),
|
||||||
|
dict(name='div', attrs={'class':'element floatL'}),
|
||||||
|
dict(name='div', attrs={'class':'stWrap'})
|
||||||
|
]
|
||||||
|
|
||||||
# thanx to kiklop74 for code (see sticky thread -> Recipes - Re-usable code)
|
# thanx to kiklop74 for code (see sticky thread -> Recipes - Re-usable code)
|
||||||
# this one removes a lot of direct-link's
|
# this one removes a lot of direct-link's
|
||||||
def preprocess_html(self, soup):
|
def preprocess_html(self, soup):
|
||||||
@ -42,5 +57,18 @@ class AdvancedUserRecipe1303841067(BasicNewsRecipe):
|
|||||||
(u'Unterhaltung', u'http://rss.bild.de/bild-unterhaltung.xml'),
|
(u'Unterhaltung', u'http://rss.bild.de/bild-unterhaltung.xml'),
|
||||||
(u'Sport', u'http://rss.bild.de/bild-sport.xml'),
|
(u'Sport', u'http://rss.bild.de/bild-sport.xml'),
|
||||||
(u'Lifestyle', u'http://rss.bild.de/bild-lifestyle.xml'),
|
(u'Lifestyle', u'http://rss.bild.de/bild-lifestyle.xml'),
|
||||||
(u'Ratgeber', u'http://rss.bild.de/bild-ratgeber.xml')
|
(u'Ratgeber', u'http://rss.bild.de/bild-ratgeber.xml'),
|
||||||
|
(u'Reg. - Berlin', u'http://rss.bild.de/bild-berlin.xml'),
|
||||||
|
(u'Reg. - Bremen', u'http://rss.bild.de/bild-bremen.xml'),
|
||||||
|
(u'Reg. - Dresden', u'http://rss.bild.de/bild-dresden.xml'),
|
||||||
|
(u'Reg. - Düsseldorf', u'http://rss.bild.de/bild-duesseldorf.xml'),
|
||||||
|
(u'Reg. - Frankfurt-Main', u'http://rss.bild.de/bild-frankfurt-main.xml'),
|
||||||
|
(u'Reg. - Hamburg', u'http://rss.bild.de/bild-hamburg.xml'),
|
||||||
|
(u'Reg. - Hannover', u'http://rss.bild.de/bild-hannover.xml'),
|
||||||
|
(u'Reg. - Köln', u'http://rss.bild.de/bild-koeln.xml'),
|
||||||
|
(u'Reg. - Leipzig', u'http://rss.bild.de/bild-leipzig.xml'),
|
||||||
|
(u'Reg. - München', u'http://rss.bild.de/bild-muenchen.xml'),
|
||||||
|
(u'Reg. - Ruhrgebiet', u'http://rss.bild.de/bild-ruhrgebiet.xml'),
|
||||||
|
(u'Reg. - Stuttgart', u'http://rss.bild.de/bild-stuttgart.xml')
|
||||||
]
|
]
|
||||||
|
|
||||||
|
20
recipes/blog_da_cidadania.recipe
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class BlogdaCidadania(BasicNewsRecipe):
|
||||||
|
title = 'Blog da Cidadania'
|
||||||
|
__author__ = 'Diniz Bortolotto'
|
||||||
|
description = 'Posts do Blog da Cidadania'
|
||||||
|
oldest_article = 7
|
||||||
|
max_articles_per_feed = 50
|
||||||
|
encoding = 'utf8'
|
||||||
|
publisher = 'Eduardo Guimaraes'
|
||||||
|
category = 'politics, Brazil'
|
||||||
|
language = 'pt_BR'
|
||||||
|
publication_type = 'politics portal'
|
||||||
|
|
||||||
|
feeds = [(u'Blog da Cidadania', u'http://www.blogcidadania.com.br/feed/')]
|
||||||
|
|
||||||
|
reverse_article_order = True
|
||||||
|
|
31
recipes/brasil_de_fato.recipe
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class BrasilDeFato(BasicNewsRecipe):
|
||||||
|
news = True
|
||||||
|
title = u'Brasil de Fato'
|
||||||
|
__author__ = 'Alex Mitrani'
|
||||||
|
description = u'Uma visão popular do Brasil e do mundo.'
|
||||||
|
publisher = u'SOCIEDADE EDITORIAL BRASIL DE FATO'
|
||||||
|
category = 'news, politics, Brazil, rss, Portuguese'
|
||||||
|
oldest_article = 10
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
summary_length = 1000
|
||||||
|
language = 'pt_BR'
|
||||||
|
|
||||||
|
remove_javascript = True
|
||||||
|
no_stylesheets = True
|
||||||
|
use_embedded_content = False
|
||||||
|
remove_empty_feeds = True
|
||||||
|
masthead_url = 'http://www.brasildefato.com.br/sites/default/files/zeropoint_logo.jpg'
|
||||||
|
keep_only_tags = [dict(name='div', attrs={'id':'main'})]
|
||||||
|
remove_tags = [dict(name='div', attrs={'class':'links'})]
|
||||||
|
remove_tags_after = [dict(name='div', attrs={'class':'links'})]
|
||||||
|
|
||||||
|
feeds = [(u'Nacional', u'http://www.brasildefato.com.br/rss_nacional')
|
||||||
|
,(u'Internacional', u'http://www.brasildefato.com.br/rss_internacional')
|
||||||
|
,(u'Entrevista', u'http://www.brasildefato.com.br/rss_entrevista')
|
||||||
|
,(u'Cultura', u'http://www.brasildefato.com.br/rss_cultura')
|
||||||
|
,(u'Análise', u'http://www.brasildefato.com.br/rss_analise')
|
||||||
|
]
|
36
recipes/brigitte_de.recipe
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class AdvancedUserRecipe(BasicNewsRecipe):
|
||||||
|
|
||||||
|
title = u'Brigitte.de'
|
||||||
|
__author__ = 'schuster'
|
||||||
|
oldest_article = 14
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
no_stylesheets = True
|
||||||
|
use_embedded_content = False
|
||||||
|
language = 'de'
|
||||||
|
remove_javascript = True
|
||||||
|
remove_empty_feeds = True
|
||||||
|
timeout = 10
|
||||||
|
cover_url = 'http://www.medienmilch.de/typo3temp/pics/Brigitte-Logo_d5feb4a6e4.jpg'
|
||||||
|
masthead_url = 'http://www.medienmilch.de/typo3temp/pics/Brigitte-Logo_d5feb4a6e4.jpg'
|
||||||
|
|
||||||
|
|
||||||
|
remove_tags = [dict(attrs={'class':['linklist', 'head', 'indent right relatedContent', 'artikel-meta segment', 'segment', 'comment commentFormWrapper segment borderBG', 'segment borderBG comments', 'segment borderBG box', 'center', 'segment nextPageLink', 'inCar']}),
|
||||||
|
dict(id=['header', 'artTools', 'context', 'interact', 'footer-navigation', 'bwNet', 'copy', 'keyboardNavigationHint']),
|
||||||
|
dict(name=['hjtrs', 'kud'])]
|
||||||
|
|
||||||
|
feeds = [(u'Mode', u'http://www.brigitte.de/mode/feed.rss'),
|
||||||
|
(u'Beauty', u'http://www.brigitte.de/beauty/feed.rss'),
|
||||||
|
(u'Luxus', u'http://www.brigitte.de/luxus/feed.rss'),
|
||||||
|
(u'Figur', u'http://www.brigitte.de/figur/feed.rss'),
|
||||||
|
(u'Gesundheit', u'http://www.brigitte.de/gesundheit/feed.rss'),
|
||||||
|
(u'Liebe&Sex', u'http://www.brigitte.de/liebe-sex/feed.rss'),
|
||||||
|
(u'Gesellschaft', u'http://www.brigitte.de/gesellschaft/feed.rss'),
|
||||||
|
(u'Kultur', u'http://www.brigitte.de/kultur/feed.rss'),
|
||||||
|
(u'Reise', u'http://www.brigitte.de/reise/feed.rss'),
|
||||||
|
(u'Kochen', u'http://www.brigitte.de/kochen/feed.rss'),
|
||||||
|
(u'Wohnen', u'http://www.brigitte.de/wohnen/feed.rss'),
|
||||||
|
(u'Job', u'http://www.brigitte.de/job/feed.rss'),
|
||||||
|
(u'Erfahrungen', u'http://www.brigitte.de/erfahrungen/feed.rss'),
|
||||||
|
]
|
@ -1,72 +1,59 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
__license__ = 'GPL v3'
|
__license__ = 'GPL v3'
|
||||||
__copyright__ = '2009, Darko Miletic <darko.miletic at gmail.com>'
|
__copyright__ = '2009-2011, Darko Miletic <darko.miletic at gmail.com>'
|
||||||
'''
|
'''
|
||||||
elargentino.com
|
www.diariobae.com
|
||||||
'''
|
'''
|
||||||
|
from calibre import strftime
|
||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
from calibre.ebooks.BeautifulSoup import Tag
|
|
||||||
|
|
||||||
class BsAsEconomico(BasicNewsRecipe):
|
class BsAsEconomico(BasicNewsRecipe):
|
||||||
title = 'Buenos Aires Economico'
|
title = 'Buenos Aires Economico'
|
||||||
__author__ = 'Darko Miletic'
|
__author__ = 'Darko Miletic'
|
||||||
description = 'Revista Argentina'
|
description = 'Diario BAE es el diario economico-politico con mas influencia en la Argentina. Fuente de empresarios y politicos del pais y el exterior. El pozo estaria aportando en periodos breves un volumen equivalente a 800m3 diarios. Pero todavia deben efectuarse otras perforaciones adicionales.'
|
||||||
publisher = 'ElArgentino.com'
|
publisher = 'Diario BAE'
|
||||||
category = 'news, politics, economy, Argentina'
|
category = 'news, politics, economy, Argentina'
|
||||||
oldest_article = 2
|
oldest_article = 2
|
||||||
max_articles_per_feed = 100
|
max_articles_per_feed = 100
|
||||||
no_stylesheets = True
|
no_stylesheets = True
|
||||||
use_embedded_content = False
|
use_embedded_content = False
|
||||||
encoding = 'utf-8'
|
encoding = 'utf-8'
|
||||||
language = 'es_AR'
|
language = 'es_AR'
|
||||||
|
cover_url = strftime('http://www.diariobae.com/imgs_portadas/%Y%m%d_portadasBAE.jpg')
|
||||||
|
masthead_url = 'http://www.diariobae.com/img/logo_bae.png'
|
||||||
|
remove_empty_feeds = True
|
||||||
|
publication_type = 'newspaper'
|
||||||
|
extra_css = """
|
||||||
|
body{font-family: Georgia,"Times New Roman",Times,serif}
|
||||||
|
#titulo{font-size: x-large}
|
||||||
|
#epi{font-size: small; font-style: italic; font-weight: bold}
|
||||||
|
img{display: block; margin-top: 1em}
|
||||||
|
"""
|
||||||
|
conversion_options = {
|
||||||
|
'comment' : description
|
||||||
|
, 'tags' : category
|
||||||
|
, 'publisher' : publisher
|
||||||
|
, 'language' : language
|
||||||
|
}
|
||||||
|
|
||||||
lang = 'es-AR'
|
remove_tags_before= dict(attrs={'id':'titulo'})
|
||||||
direction = 'ltr'
|
remove_tags_after = dict(attrs={'id':'autor' })
|
||||||
INDEX = 'http://www.elargentino.com/medios/121/Buenos-Aires-Economico.html'
|
remove_tags = [
|
||||||
extra_css = ' .titulo{font-size: x-large; font-weight: bold} .volantaImp{font-size: small; font-weight: bold} '
|
dict(name=['meta','base','iframe','link','lang'])
|
||||||
|
,dict(attrs={'id':'barra_tw'})
|
||||||
html2lrf_options = [
|
|
||||||
'--comment' , description
|
|
||||||
, '--category' , category
|
|
||||||
, '--publisher', publisher
|
|
||||||
]
|
]
|
||||||
|
remove_attributes = ['data-count','data-via']
|
||||||
|
|
||||||
html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"\noverride_css=" p {text-indent: 0cm; margin-top: 0em; margin-bottom: 0.5em} "'
|
feeds = [
|
||||||
|
(u'Argentina' , u'http://www.diariobae.com/rss/argentina.xml' )
|
||||||
keep_only_tags = [dict(name='div', attrs={'class':'ContainerPop'})]
|
,(u'Valores' , u'http://www.diariobae.com/rss/valores.xml' )
|
||||||
|
,(u'Finanzas' , u'http://www.diariobae.com/rss/finanzas.xml' )
|
||||||
remove_tags = [dict(name='link')]
|
,(u'Negocios' , u'http://www.diariobae.com/rss/negocios.xml' )
|
||||||
|
,(u'Mundo' , u'http://www.diariobae.com/rss/mundo.xml' )
|
||||||
feeds = [(u'Articulos', u'http://www.elargentino.com/Highlights.aspx?ParentType=Section&ParentId=121&Content-Type=text/xml&ChannelDesc=Buenos%20Aires%20Econ%C3%B3mico')]
|
,(u'5 dias' , u'http://www.diariobae.com/rss/5dias.xml' )
|
||||||
|
,(u'Espectaculos', u'http://www.diariobae.com/rss/espectaculos.xml')
|
||||||
def print_version(self, url):
|
]
|
||||||
main, sep, article_part = url.partition('/nota-')
|
|
||||||
article_id, rsep, rrest = article_part.partition('-')
|
|
||||||
return u'http://www.elargentino.com/Impresion.aspx?Id=' + article_id
|
|
||||||
|
|
||||||
def preprocess_html(self, soup):
|
def preprocess_html(self, soup):
|
||||||
for item in soup.findAll(style=True):
|
for item in soup.findAll(style=True):
|
||||||
del item['style']
|
del item['style']
|
||||||
soup.html['lang'] = self.lang
|
|
||||||
soup.html['dir' ] = self.direction
|
|
||||||
mlang = Tag(soup,'meta',[("http-equiv","Content-Language"),("content",self.lang)])
|
|
||||||
mcharset = Tag(soup,'meta',[("http-equiv","Content-Type"),("content","text/html; charset=utf-8")])
|
|
||||||
soup.head.insert(0,mlang)
|
|
||||||
soup.head.insert(1,mcharset)
|
|
||||||
return soup
|
return soup
|
||||||
|
|
||||||
def get_cover_url(self):
|
|
||||||
cover_url = None
|
|
||||||
soup = self.index_to_soup(self.INDEX)
|
|
||||||
cover_item = soup.find('div',attrs={'class':'colder'})
|
|
||||||
if cover_item:
|
|
||||||
clean_url = self.image_url_processor(None,cover_item.div.img['src'])
|
|
||||||
cover_url = 'http://www.elargentino.com' + clean_url + '&height=600'
|
|
||||||
return cover_url
|
|
||||||
|
|
||||||
def image_url_processor(self, baseurl, url):
|
|
||||||
base, sep, rest = url.rpartition('?Id=')
|
|
||||||
img, sep2, rrest = rest.partition('&')
|
|
||||||
return base + sep + img
|
|
||||||
|
57
recipes/bugun_gazetesi.recipe
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class Bugun (BasicNewsRecipe):
|
||||||
|
|
||||||
|
title = u'BUGÜN Gazetesi'
|
||||||
|
__author__ = u'thomass'
|
||||||
|
oldest_article = 2
|
||||||
|
max_articles_per_feed =100
|
||||||
|
#no_stylesheets = True
|
||||||
|
#delay = 1
|
||||||
|
use_embedded_content = False
|
||||||
|
encoding = 'UTF-8'
|
||||||
|
publisher = 'thomass'
|
||||||
|
category = 'news, haberler,TR,gazete'
|
||||||
|
language = 'tr'
|
||||||
|
publication_type = 'newspaper '
|
||||||
|
extra_css = ' div{font-size: small} h2{font-size: small;font-weight: bold} #ctl00_ortayer_haberBaslik{font-size:20px;font-weight: bold} '#h1{ font-size:10%;font-weight: bold} '#ctl00_ortayer_haberBaslik{ 'font-size:10%;font-weight: bold'}
|
||||||
|
#introduction{} .story-feature{display: block; padding: 0; border: 1px solid; width: 40%; font-size: small} .story-feature h2{text-align: center; text-transform: uppercase} '
|
||||||
|
conversion_options = {
|
||||||
|
'tags' : category
|
||||||
|
,'language' : language
|
||||||
|
,'publisher' : publisher
|
||||||
|
,'linearize_tables': True
|
||||||
|
}
|
||||||
|
cover_img_url = 'http://www.bugun.com.tr/images/bugunLogo2011.png'
|
||||||
|
masthead_url = 'http://www.bugun.com.tr/images/bugunLogo2011.png'
|
||||||
|
|
||||||
|
keep_only_tags = [dict(name='h1', attrs={'class':[ 'haberBaslik']}),dict(name='h2', attrs={'class':[ 'haberOzet']}), dict(name='div', attrs={'class':['haberGriDivvvv']}), dict(name='div', attrs={'id':[ 'haberTextDiv']}), ]
|
||||||
|
|
||||||
|
#keep_only_tags = [dict(name='div', attrs={'id':[ 'news-detail-content']}), dict(name='td', attrs={'class':['columnist-detail','columnist_head']}) ]
|
||||||
|
#remove_tags = [ dict(name='div', attrs={'id':['news-detail-news-text-font-size','news-detail-gallery','news-detail-news-bottom-social']}),dict(name='div', attrs={'class':['radioEmbedBg','radyoProgramAdi']}),dict(name='a', attrs={'class':['webkit-html-attribute-value webkit-html-external-link']}),dict(name='table', attrs={'id':['yaziYorumTablosu']}),dict(name='img', attrs={'src':['http://medya.zaman.com.tr/pics/paylas.gif','http://medya.zaman.com.tr/extentions/zaman.com.tr/img/columnist/ma-16.png']})]
|
||||||
|
|
||||||
|
|
||||||
|
#remove_attributes = ['width','height']
|
||||||
|
remove_empty_feeds= True
|
||||||
|
|
||||||
|
feeds = [
|
||||||
|
( u'Son Dakika', u'http://www.bugun.com.tr/haberler.xml'),
|
||||||
|
( u'Yazarlar', u'http://www.bugun.com.tr/rss/yazarlar.xml'),
|
||||||
|
( u'Gündem', u'http://www.bugun.com.tr/rss/gundem.xml'),
|
||||||
|
( u'Ekonomi', u'http://www.bugun.com.tr/rss/ekonomi.xml'),
|
||||||
|
( u'Spor', u'http://www.bugun.com.tr/rss/spor.xml'),
|
||||||
|
( u'Magazin', u'http://www.bugun.com.tr/rss/magazin.xml'),
|
||||||
|
( u'Teknoloji', u'http://www.bugun.com.tr/rss/teknoloji.xml'),
|
||||||
|
( u'Yaşam', u'http://www.bugun.com.tr/rss/yasam.xml'),
|
||||||
|
( u'Medya', u'http://www.bugun.com.tr/rss/medya.xml'),
|
||||||
|
( u'Dünya', u'http://www.bugun.com.tr/rss/dunya.xml'),
|
||||||
|
( u'Politika', u'http://www.bugun.com.tr/rss/politika.xml'),
|
||||||
|
( u'Sağlık', u'http://www.bugun.com.tr/rss/saglik.xml'),
|
||||||
|
( u'Tarifler', u'http://www.bugun.com.tr/rss/yemek-tarifi.xml'),
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
]
|
17
recipes/caros_amigos.recipe
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
__copyright__ = '2011, Pablo Aldama <pabloaldama at gmail.com>'
|
||||||
|
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class AdvancedUserRecipe1311839910(BasicNewsRecipe):
|
||||||
|
title = u'Caros Amigos'
|
||||||
|
oldest_article = 20
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
language = 'pt_BR'
|
||||||
|
__author__ = 'Pablo Aldama'
|
||||||
|
|
||||||
|
feeds = [(u'Caros Amigos', u'http://carosamigos.terra.com.br/index/index.php?format=feed&type=rss')]
|
||||||
|
keep_only_tags = [dict(name='div', attrs={'class':['blog']})
|
||||||
|
,dict(name='div', attrs={'class':['blogcontent']})
|
||||||
|
]
|
||||||
|
remove_tags = [dict(name='div', attrs={'class':'addtoany'})]
|
||||||
|
|
23
recipes/carta_capital.recipe
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class AdvancedUserRecipe1312361378(BasicNewsRecipe):
|
||||||
|
title = u'Carta capital'
|
||||||
|
__author__ = 'Pablo Aldama'
|
||||||
|
language = 'pt_BR'
|
||||||
|
oldest_article = 9
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
|
||||||
|
feeds = [(u'Politica', u'http://www.cartacapital.com.br/category/politica/feed')
|
||||||
|
,(u'Economia', u'http://www.cartacapital.com.br/category/economia/feed')
|
||||||
|
,(u'Cultura', u'http://www.cartacapital.com.br/category/cultura/feed')
|
||||||
|
,(u'Internacional', u'http://www.cartacapital.com.br/category/internacional/feed')
|
||||||
|
,(u'Saude', u'http://www.cartacapital.com.br/category/saude/feed')
|
||||||
|
,(u'Sociedade', u'http://www.cartacapital.com.br/category/sociedade/feed')
|
||||||
|
,(u'Tecnologia', u'http://www.cartacapital.com.br/category/tecnologia/feed')
|
||||||
|
,(u'Carta na escola', u'http://www.cartacapital.com.br/category/carta-na-escola/feed')
|
||||||
|
,(u'Carta fundamental', u'http://www.cartacapital.com.br/category/carta-fundamental/feed')
|
||||||
|
,(u'Carta verde', u'http://www.cartacapital.com.br/category/carta-verde/feed')
|
||||||
|
|
||||||
|
]
|
||||||
|
def print_version(self, url):
|
||||||
|
return url + '/print'
|
13
recipes/catholic_news_agency.recipe
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class AdvancedUserRecipe1301972345(BasicNewsRecipe):
|
||||||
|
title = u'Catholic News Agency'
|
||||||
|
language = 'en'
|
||||||
|
__author__ = 'Jetkey'
|
||||||
|
oldest_article = 5
|
||||||
|
max_articles_per_feed = 20
|
||||||
|
|
||||||
|
feeds = [(u'U.S. News', u'http://feeds.feedburner.com/catholicnewsagency/dailynews-us'),
|
||||||
|
(u'Vatican', u'http://feeds.feedburner.com/catholicnewsagency/dailynews-vatican'),
|
||||||
|
(u'Bishops Corner', u'http://feeds.feedburner.com/catholicnewsagency/columns/bishopscorner'),
|
||||||
|
(u'Saint of the Day', u'http://feeds.feedburner.com/catholicnewsagency/saintoftheday')]
|
73
recipes/cbn.recipe
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
|
||||||
|
class CBN(BasicNewsRecipe):
|
||||||
|
title = u'CBN News'
|
||||||
|
__author__ = 'Roger'
|
||||||
|
# TODO: I just noticed this is downloading 25+ articles, while
|
||||||
|
# the online site is only publishing at most 7 articles daily.
|
||||||
|
# So, somehow this needs to be fixed it only downloads max 7 articles
|
||||||
|
oldest_article = 7
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
|
||||||
|
description = 'The Christian Broadcasting Network'
|
||||||
|
publisher = 'http://www.cbn.com/'
|
||||||
|
category = 'news, religion, spiritual, christian'
|
||||||
|
language = 'en'
|
||||||
|
|
||||||
|
# Make article titles, author and date bold, italic or small font.
|
||||||
|
# TODO: Could use a smaller title text
|
||||||
|
# TODO: Italicize Author and Publisher?
|
||||||
|
#
|
||||||
|
# http://www.cbn.com/App_Themes/Common/base.css,
|
||||||
|
# http://www.cbn.com/App_Themes/CBNNews/article.css",
|
||||||
|
# ... and many more style sheets.
|
||||||
|
#extra_css = '''
|
||||||
|
# .story_item_headline { font-size: medium; font-weight: bold; }
|
||||||
|
# .story_item_author { font-size: small; font-style:italic; }
|
||||||
|
# .signature_line { font-size: small; }
|
||||||
|
# '''
|
||||||
|
|
||||||
|
remove_javascript = True
|
||||||
|
use_embedded_content = False
|
||||||
|
no_stylesheets = True
|
||||||
|
language = 'en'
|
||||||
|
encoding = 'iso-8859-1'
|
||||||
|
conversion_options = {'linearize_tables':True}
|
||||||
|
|
||||||
|
# TODO: No masterhead_url for CBN, using one I grepped from a news article
|
||||||
|
# (There's a better/higher contrast blue on white background image, but
|
||||||
|
# can't get it or it's too big -- embedded into a larger jpeg?)
|
||||||
|
masthead_url = 'http://www.cbn.com/templates/images/cbn_com_logo.jpg'
|
||||||
|
|
||||||
|
keep_only_tags = [
|
||||||
|
dict(name='h1', attrs={'id':'articleTitle'}),
|
||||||
|
dict(name='div', attrs={'class':'articleAuthor'}),
|
||||||
|
dict(name='div', attrs={'class':'articleDate'}),
|
||||||
|
dict(name='div', attrs={'class':'articleText'}),
|
||||||
|
]
|
||||||
|
|
||||||
|
remove_tags = [
|
||||||
|
# The article image is usually Adobe Flash Player Image
|
||||||
|
# The snapshot .jpg image files of the video are found
|
||||||
|
# within a URL folder named "PageFiles_Files"
|
||||||
|
# Filter this for now.
|
||||||
|
# (Majority of images seem to be Adobe Flash.)
|
||||||
|
dict(name='div', attrs={'class':'articleImage'}),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
# Comment-out or uncomment any of the following RSS feeds according to your
|
||||||
|
# liking.
|
||||||
|
# A full list can be found here: http://www.cbn.com/rss.aspx
|
||||||
|
|
||||||
|
feeds = [
|
||||||
|
(u'World', u'http://www.cbn.com/cbnnews/world/feed/'),
|
||||||
|
(u'US', u'http://www.cbn.com/cbnnews/us/feed/'),
|
||||||
|
(u'Inside Israel', u'http://www.cbn.com/cbnnews/insideisrael/feed/'),
|
||||||
|
(u'Politics', u'http://www.cbn.com/cbnnews/politics/feed/'),
|
||||||
|
(u'Christian World News', u'http://www.cbn.com/cbnnews/shows/cwn/feed/'),
|
||||||
|
(u'Health and Science', u'http://www.cbn.com/cbnnews/healthscience/feed/'),
|
||||||
|
(u'Finance', u'http://www.cbn.com/cbnnews/finance/feed/'),
|
||||||
|
]
|
||||||
|
|
16
recipes/cd_action.recipe
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
|
||||||
|
class CD_Action(BasicNewsRecipe):
|
||||||
|
title = u'CD-Action'
|
||||||
|
__author__ = 'fenuks'
|
||||||
|
description = 'cdaction.pl - polish magazine about games site'
|
||||||
|
category = 'games'
|
||||||
|
language = 'pl'
|
||||||
|
oldest_article = 8
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
no_stylesheets= True
|
||||||
|
cover_url =u'http://s.cdaction.pl/obrazki/logo-CD-Action_172k9.JPG'
|
||||||
|
keep_only_tags= dict(id='news_content')
|
||||||
|
remove_tags_after= dict(name='div', attrs={'class':'tresc'})
|
||||||
|
feeds = [(u'Newsy', u'http://www.cdaction.pl/rss_newsy.xml')]
|
37
recipes/christian_post.recipe
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#created by sexymax15 ....sexymax15@gmail.com
|
||||||
|
#christian post recipe
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class ChristianPost(BasicNewsRecipe):
|
||||||
|
|
||||||
|
title = 'The Christian Post'
|
||||||
|
__author__ = 'sexymax15'
|
||||||
|
description = 'Homepage'
|
||||||
|
language = 'en'
|
||||||
|
no_stylesheets = True
|
||||||
|
use_embedded_content = False
|
||||||
|
oldest_article = 30
|
||||||
|
max_articles_per_feed = 15
|
||||||
|
|
||||||
|
remove_empty_feeds = True
|
||||||
|
no_stylesheets = True
|
||||||
|
remove_javascript = True
|
||||||
|
|
||||||
|
extra_css = '''
|
||||||
|
h1 {color:#008852;font-family:Arial,Helvetica,sans-serif; font-size:20px; font-size-adjust:none; font-stretch:normal; font-style:normal; font-variant:normal; font-weight:bold; line-height:18px;}
|
||||||
|
h2 {color:#4D4D4D;font-family:Arial,Helvetica,sans-serif; font-size:16px; font-size-adjust:none; font-stretch:normal; font-style:normal; font-variant:normal; font-weight:bold; line-height:16px; } '''
|
||||||
|
|
||||||
|
|
||||||
|
feeds = [
|
||||||
|
('Homepage', 'http://www.christianpost.com/services/rss/feed/'),
|
||||||
|
('Most Popular', 'http://www.christianpost.com/services/rss/feed/most-popular'),
|
||||||
|
('Entertainment', 'http://www.christianpost.com/services/rss/feed/entertainment/'),
|
||||||
|
('Politics', 'http://www.christianpost.com/services/rss/feed/politics/'),
|
||||||
|
('Living', 'http://www.christianpost.com/services/rss/feed/living/'),
|
||||||
|
('Business', 'http://www.christianpost.com/services/rss/feed/business/'),
|
||||||
|
('Opinion', 'http://www.christianpost.com/services/rss/feed/opinion/')
|
||||||
|
]
|
||||||
|
|
||||||
|
def print_version(self, url):
|
||||||
|
return url +'print.html'
|
||||||
|
|
@ -30,8 +30,14 @@ class CnetNews(BasicNewsRecipe):
|
|||||||
remove_tags = [
|
remove_tags = [
|
||||||
dict(name='div', attrs={'id':'tweetmemeAndFacebook'})
|
dict(name='div', attrs={'id':'tweetmemeAndFacebook'})
|
||||||
,dict(name='ul', attrs={'class':'contentTools'})
|
,dict(name='ul', attrs={'class':'contentTools'})
|
||||||
|
,dict(name='aside', attrs={'id':'filed'})
|
||||||
|
,dict(name='div', attrs={'class':'postLinks'})
|
||||||
|
,dict(name='span', attrs={'class':'shareButton'})
|
||||||
|
,dict(name='span', attrs={'class':'printButton'})
|
||||||
|
,dict(name='span', attrs={'class':'emailButton'})
|
||||||
|
,dict(name='div', attrs={'class':'editorBio'})
|
||||||
]
|
]
|
||||||
keep_only_tags = dict(name='div', attrs={'class':'txtWrap'})
|
keep_only_tags = dict(name='div', attrs={'class':'post'})
|
||||||
|
|
||||||
feeds = [(u'News', u'http://news.cnet.com/2547-1_3-0-20.xml')]
|
feeds = [(u'News', u'http://news.cnet.com/2547-1_3-0-20.xml')]
|
||||||
|
|
||||||
|
@ -3,71 +3,40 @@ __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
|
|||||||
'''
|
'''
|
||||||
Profile to download CNN
|
Profile to download CNN
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
import re
|
||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
from calibre.ebooks.BeautifulSoup import BeautifulSoup
|
|
||||||
|
|
||||||
class CNN(BasicNewsRecipe):
|
class CNN(BasicNewsRecipe):
|
||||||
|
|
||||||
title = 'CNN'
|
title = 'CNN'
|
||||||
description = 'Global news'
|
description = 'Global news'
|
||||||
timefmt = ' [%d %b %Y]'
|
timefmt = ' [%d %b %Y]'
|
||||||
__author__ = 'Krittika Goyal and Sujata Raman'
|
__author__ = 'Kovid Goyal'
|
||||||
language = 'en'
|
language = 'en'
|
||||||
|
|
||||||
no_stylesheets = True
|
no_stylesheets = True
|
||||||
use_embedded_content = False
|
use_embedded_content = False
|
||||||
oldest_article = 15
|
oldest_article = 15
|
||||||
recursions = 1
|
#recursions = 1
|
||||||
match_regexps = [r'http://sportsillustrated.cnn.com/.*/[1-9].html']
|
#match_regexps = [r'http://sportsillustrated.cnn.com/.*/[1-9].html']
|
||||||
max_articles_per_feed = 25
|
max_articles_per_feed = 25
|
||||||
|
|
||||||
extra_css = '''
|
preprocess_regexps = [
|
||||||
.cnn_strycntntlft{font-family :Arial,Helvetica,sans-serif;}
|
(re.compile(r'<!--\[if.*if\]-->', re.DOTALL), lambda m: ''),
|
||||||
h2{font-family :Arial,Helvetica,sans-serif; font-size:x-small}
|
(re.compile(r'<script.*?</script>', re.DOTALL), lambda m: ''),
|
||||||
.cnnTxtCmpnt{font-family :Arial,Helvetica,sans-serif; font-size:x-small}
|
(re.compile(r'<style.*?</style>', re.DOTALL), lambda m: ''),
|
||||||
.cnnTMcontent{font-family :Arial,Helvetica,sans-serif; font-size:x-small;color:#575757}
|
|
||||||
.storytext{font-family :Arial,Helvetica,sans-serif; font-size:small}
|
|
||||||
.storybyline{font-family :Arial,Helvetica,sans-serif; font-size:x-small; color:#575757}
|
|
||||||
.credit{font-family :Arial,Helvetica,sans-serif; font-size:xx-small; color:#575757}
|
|
||||||
.storyBrandingBanner{font-family :Arial,Helvetica,sans-serif; font-size:x-small; color:#575757}
|
|
||||||
.storytimestamp{font-family :Arial,Helvetica,sans-serif; font-size:x-small; color:#575757}
|
|
||||||
.timestamp{font-family :Arial,Helvetica,sans-serif; font-size:x-small; color:#575757}
|
|
||||||
.cnn_strytmstmp{font-family :Arial,Helvetica,sans-serif; font-size:x-small; color:#666666;}
|
|
||||||
.cnn_stryimg640caption{font-family :Arial,Helvetica,sans-serif; font-size:x-small; color:#666666;}
|
|
||||||
.cnn_strylccimg300cntr{font-family :Arial,Helvetica,sans-serif; font-size:x-small; color:#666666;}
|
|
||||||
.cnn_stryichgfcpt{font-family :Arial,Helvetica,sans-serif; font-size:x-small; color:#666666;}
|
|
||||||
.cnnByline{font-family :Arial,Helvetica,sans-serif; font-size:x-small; color:#666666;}
|
|
||||||
.cnn_bulletbin cnnStryHghLght{ font-size:xx-small;}
|
|
||||||
.subhead p{font-family :Arial,Helvetica,sans-serif; font-size:x-small;}
|
|
||||||
.cnnStoryContent{font-family :Arial,Helvetica,sans-serif; font-size:x-small}
|
|
||||||
.cnnContentContainer{font-family :Arial,Helvetica,sans-serif; font-size:x-small}
|
|
||||||
.col1{font-family :Arial,Helvetica,sans-serif; font-size:x-small; color:#666666;}
|
|
||||||
.col3{color:#333333; font-family :Arial,Helvetica,sans-serif; font-size:x-small;font-weight:bold;}
|
|
||||||
.cnnInlineT1Caption{font-family :Arial,Helvetica,sans-serif; font-size:x-small;font-weight:bold;}
|
|
||||||
.cnnInlineT1Credit{font-family :Arial,Helvetica,sans-serif; font-size:x-small;color:#333333;}
|
|
||||||
.col10{color:#5A637E;}
|
|
||||||
.cnnInlineRailBulletList{color:black;}
|
|
||||||
.cnnLine0{font-family :Arial,Helvetica,sans-serif; color:#666666;font-weight:bold;}
|
|
||||||
.cnnTimeStamp{font-family :Arial,Helvetica,sans-serif; font-size:x-small;color:#333333;}
|
|
||||||
.galleryhedDek{font-family :Arial,Helvetica,sans-serif; font-size:x-small;color:#575757;}
|
|
||||||
.galleryWidgetHeader{font-family :Arial,Helvetica,sans-serif; font-size:x-small;color:#004276;}
|
|
||||||
.article-content{font-family :Arial,Helvetica,sans-serif; font-size:x-small}
|
|
||||||
.cnnRecapStory{font-family :Arial,Helvetica,sans-serif; font-size:x-small}
|
|
||||||
h1{font-family :Arial,Helvetica,sans-serif; font-size:x-large}
|
|
||||||
.captionname{font-family :Arial,Helvetica,sans-serif; font-size:x-small;color:#575757;}
|
|
||||||
inStoryIE{{font-family :Arial,Helvetica,sans-serif; font-size:x-small;}
|
|
||||||
'''
|
|
||||||
|
|
||||||
#remove_tags_before = dict(name='h1', attrs={'class':'heading'})
|
|
||||||
#remove_tags_after = dict(name='td', attrs={'class':'newptool1'})
|
|
||||||
remove_tags = [
|
|
||||||
dict(name='iframe'),
|
|
||||||
dict(name='div', attrs={'class':['cnnEndOfStory', 'cnnShareThisItem', 'cnn_strylctcntr cnn_strylctcqrelt', 'cnnShareBoxContent', 'cnn_strybtmcntnt', 'cnn_strycntntrgt']}),
|
|
||||||
dict(name='div', attrs={'id':['IEContainer', 'clickIncludeBox']}),
|
|
||||||
#dict(name='ul', attrs={'class':'article-tools'}),
|
|
||||||
#dict(name='ul', attrs={'class':'articleTools'}),
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
keep_only_tags = [dict(id=['cnnContentContainer', 'storycontent'])]
|
||||||
|
remove_tags = [
|
||||||
|
{'class':['cnn_strybtntools', 'cnn_strylftcntnt',
|
||||||
|
'cnn_strybtntools', 'cnn_strybtntoolsbttm', 'cnn_strybtmcntnt',
|
||||||
|
'cnn_strycntntrgt', 'hed_side', 'foot']},
|
||||||
|
dict(id=['ie_column']),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
feeds = [
|
feeds = [
|
||||||
('Top News', 'http://rss.cnn.com/rss/cnn_topstories.rss'),
|
('Top News', 'http://rss.cnn.com/rss/cnn_topstories.rss'),
|
||||||
('World', 'http://rss.cnn.com/rss/cnn_world.rss'),
|
('World', 'http://rss.cnn.com/rss/cnn_world.rss'),
|
||||||
@ -84,15 +53,8 @@ class CNN(BasicNewsRecipe):
|
|||||||
('Offbeat', 'http://rss.cnn.com/rss/cnn_offbeat.rss'),
|
('Offbeat', 'http://rss.cnn.com/rss/cnn_offbeat.rss'),
|
||||||
('Most Popular', 'http://rss.cnn.com/rss/cnn_mostpopular.rss')
|
('Most Popular', 'http://rss.cnn.com/rss/cnn_mostpopular.rss')
|
||||||
]
|
]
|
||||||
def preprocess_html(self, soup):
|
|
||||||
story = soup.find(name='div', attrs={'class':'cnnBody_Left'})
|
def get_article_url(self, article):
|
||||||
if story is None:
|
ans = BasicNewsRecipe.get_article_url(self, article)
|
||||||
story = soup.find(name='div', attrs={'id':'cnnContentContainer'})
|
return ans.partition('?')[0]
|
||||||
soup = BeautifulSoup('<html><head><title>t</title></head><body></body></html>')
|
|
||||||
body = soup.find(name='body')
|
|
||||||
body.insert(0, story)
|
|
||||||
else:
|
|
||||||
soup = BeautifulSoup('<html><head><title>t</title></head><body></body></html>')
|
|
||||||
body = soup.find(name='body')
|
|
||||||
body.insert(0, story)
|
|
||||||
return soup
|
|
||||||
|
@ -1,19 +1,20 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
__license__ = 'GPL v3'
|
__license__ = 'GPL v3'
|
||||||
__author__ = 'Lorenzo Vigentini'
|
__author__ = 'DrMerry Based on v1.01 by Lorenzo Vigentini'
|
||||||
__copyright__ = '2009, Lorenzo Vigentini <l.vigentini at gmail.com>'
|
__copyright__ = 'For version 1.02, 1.03: DrMerry'
|
||||||
__version__ = 'v1.01'
|
__version__ = 'v1.03'
|
||||||
__date__ = '14, January 2010'
|
__date__ = '11, July 2011'
|
||||||
__description__ = 'Computeractive publishes new downloads, reviews, news stories, step-by-step guides and answers to PC problems every day.'
|
__description__ = 'Computeractive publishes new downloads, reviews, news stories, step-by-step guides and answers to PC problems every day. Original version (c): 2009, Lorenzo Vigentini <l.vigentini at gmail.com>'
|
||||||
|
|
||||||
'''
|
'''
|
||||||
http://www.computeractive.co.uk/
|
http://www.computeractive.co.uk/
|
||||||
'''
|
'''
|
||||||
|
|
||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
import re
|
||||||
|
|
||||||
class computeractive(BasicNewsRecipe):
|
class computeractive(BasicNewsRecipe):
|
||||||
__author__ = 'Lorenzo Vigentini'
|
__author__ = 'DrMerry'
|
||||||
description = 'Computeractive publishes new downloads, reviews, news stories, step-by-step guides and answers to PC problems every day.'
|
description = 'Computeractive publishes new downloads, reviews, news stories, step-by-step guides and answers to PC problems every day.'
|
||||||
cover_url = 'http://images.pcworld.com/images/common/header/header-logo.gif'
|
cover_url = 'http://images.pcworld.com/images/common/header/header-logo.gif'
|
||||||
|
|
||||||
@ -31,24 +32,27 @@ class computeractive(BasicNewsRecipe):
|
|||||||
|
|
||||||
remove_javascript = True
|
remove_javascript = True
|
||||||
no_stylesheets = True
|
no_stylesheets = True
|
||||||
|
remove_empty_feeds = True
|
||||||
|
remove_tags_after = dict(name='div', attrs={'class':'article_tags_block'})
|
||||||
|
|
||||||
keep_only_tags = [
|
keep_only_tags = [
|
||||||
dict(name='div', attrs={'id':'main'})
|
dict(name='div', attrs={'id':'container_left'})
|
||||||
]
|
]
|
||||||
|
|
||||||
remove_tags = [
|
remove_tags = [
|
||||||
dict(name='div', attrs={'id':['seeAlsoTags','commentsModule','relatedArticles','mainLeft','mainRight']}),
|
dict(name='div', attrs={'id':['seeAlsoTags','commentsModule','relatedArticles','mainLeft','mainRight','recent_comment_block_parent','reviewDetails']}),
|
||||||
dict(name='div', attrs={'class':['buyIt','detailMpu']}),
|
dict(name='div', attrs={'class':['buyIt','detailMpu','small_section','recent_comment_block_parent','title_right_button_fix','section_title.title_right_button_fix','common_button']}),
|
||||||
dict(name='a', attrs={'class':'largerImage'})
|
dict(name='a', attrs={'class':'largerImage'})
|
||||||
]
|
]
|
||||||
|
|
||||||
|
preprocess_regexps = [
|
||||||
|
(re.compile(r'(<a [^>]*>|</a>)', re.DOTALL|re.IGNORECASE),
|
||||||
|
lambda match: ''),
|
||||||
|
]
|
||||||
|
|
||||||
feeds = [
|
feeds = [
|
||||||
(u'General content', u'http://feeds.computeractive.co.uk/rss/latest/computeractive/all'),
|
(u'General content', u'http://feeds.computeractive.co.uk/rss/latest/computeractive/all'),
|
||||||
(u'News', u'http://feeds.computeractive.co.uk/rss/latest/computeractive/news'),
|
(u'News', u'http://feeds.computeractive.co.uk/rss/latest/computeractive/news'),
|
||||||
(u'Downloads', u'http://feeds.computeractive.co.uk/rss/latest/computeractive/downloads'),
|
|
||||||
(u'Hardware', u'http://feeds.computeractive.co.uk/rss/latest/computeractive/hardware'),
|
|
||||||
(u'Software', u'http://feeds.computeractive.co.uk/rss/latest/computeractive/software'),
|
|
||||||
(u'Competitions', u'http://www.v3.co.uk/feeds/rss20/personal-technology/competitions')
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,39 +1,34 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
__license__ = 'GPLv3'
|
||||||
|
|
||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
class AdvancedUserRecipe1255797795(BasicNewsRecipe):
|
class AdvancedUserRecipe1311446032(BasicNewsRecipe):
|
||||||
title = u'Corren'
|
title = 'Corren'
|
||||||
language = 'sv'
|
__author__ = 'Jonas Svensson'
|
||||||
__author__ = 'Jonas Svensson'
|
description = 'News from Sweden'
|
||||||
simultaneous_downloads = 1
|
publisher = 'Corren'
|
||||||
no_stylesheets = True
|
category = 'news, politics, Sweden'
|
||||||
oldest_article = 7
|
oldest_article = 2
|
||||||
|
delay = 1
|
||||||
max_articles_per_feed = 100
|
max_articles_per_feed = 100
|
||||||
remove_attributes = ['onload']
|
no_stylesheets = True
|
||||||
timefmt = ''
|
use_embedded_content = False
|
||||||
|
encoding = 'iso-8859-1'
|
||||||
|
language = 'sv'
|
||||||
|
|
||||||
feeds = [
|
feeds = [
|
||||||
(u'Toppnyheter (alla kategorier)', u'http://www.corren.se/inc/RssHandler.ashx?id=4122151&ripurl=http://www.corren.se/nyheter/'),
|
(u'Toppnyheter', u'http://www.corren.se/inc/RssHandler.ashx?id=4122151&ripurl=http://www.corren.se/nyheter/')
|
||||||
(u'Bostad', u'http://www.corren.se/inc/RssHandler.ashx?id=4122174&ripurl=http://www.corren.se/bostad/'),
|
,(u'Ekonomi', u'http://www.corren.se/inc/RssHandler.ashx?id=4122176&ripurl=http://www.corren.se/ekonomi/')
|
||||||
(u'Ekonomi & Jobb', u'http://www.corren.se/inc/RssHandler.ashx?id=4122176&ripurl=http://www.corren.se/ekonomi/'),
|
,(u'Link\xf6ping', u'http://www.corren.se/inc/RssHandler.ashx?id=4122234')
|
||||||
(u'Kultur & Nöje', u'http://www.corren.se/inc/RssHandler.ashx?id=4122192&ripurl=http://www.corren.se/kultur/'),
|
,(u'Åsikter', u'http://www.corren.se/inc/RssHandler.ashx?id=4122223,4122224,4122226,4122227,4122228,4122229,4122230')
|
||||||
(u'Mat & dryck', u'http://www.corren.se/inc/RssHandler.ashx?id=4122201&ripurl=http://www.corren.se/mat-dryck/'),
|
]
|
||||||
(u'Motor', u'http://www.corren.se/inc/RssHandler.ashx?id=4122203&ripurl=http://www.corren.se/motor/'),
|
|
||||||
(u'Sport', u'http://www.corren.se/inc/RssHandler.ashx?id=4122206&ripurl=http://www.corren.se/sport/'),
|
|
||||||
(u'Åsikter', u'http://www.corren.se/inc/RssHandler.ashx?id=4122223&ripurl=http://www.corren.se/asikter/'),
|
|
||||||
(u'Mjölby', u'http://www.corren.se/inc/RssHandler.ashx?id=4122235&ripurl=http://www.corren.se/ostergotland/mjolby/'),
|
|
||||||
(u'Motala', u'http://www.corren.se/inc/RssHandler.ashx?id=4122236&ripurl=http://www.corren.se/ostergotland/motala/')
|
|
||||||
]
|
|
||||||
|
|
||||||
def print_version(self, url):
|
|
||||||
url = url.replace("ekonomi/artikel.aspx", "Print.aspx")
|
|
||||||
url = url.replace("bostad/artikel.aspx", "Print.aspx")
|
|
||||||
url = url.replace("kultur/artikel.aspx", "Print.aspx")
|
|
||||||
url = url.replace("motor/artikel.aspx", "Print.aspx")
|
|
||||||
url = url.replace("mat-dryck/artikel.aspx", "Print.aspx")
|
|
||||||
url = url.replace("sport/artikel.aspx", "Print.aspx")
|
|
||||||
url = url.replace("asikter/artikel.aspx", "Print.aspx")
|
|
||||||
url = url.replace("mat-dryck/artikel.aspx", "Print.aspx")
|
|
||||||
url = url.replace("ostergotland/mjolby/artikel.aspx", "Print.aspx")
|
|
||||||
url = url.replace("ostergotland/motala/artikel.aspx", "Print.aspx")
|
|
||||||
return url.replace("nyheter/artikel.aspx", "Print.aspx")
|
|
||||||
|
|
||||||
|
keep_only_tags = [dict(name='div', attrs={'id':'article'}),dict(name='div', attrs={'class':'body'})]
|
||||||
|
remove_tags = [
|
||||||
|
dict(name='ul',attrs={'class':'functions'})
|
||||||
|
,dict(name='a',attrs={'href':'javascript*'})
|
||||||
|
,dict(name='div',attrs={'class':'box'})
|
||||||
|
,dict(name='div',attrs={'class':'functionsbottom'})
|
||||||
|
]
|
||||||
|
40
recipes/counterpunch.recipe
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
import re
|
||||||
|
from lxml.html import parse
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class Counterpunch(BasicNewsRecipe):
|
||||||
|
'''
|
||||||
|
Parses counterpunch.com for articles
|
||||||
|
'''
|
||||||
|
title = 'Counterpunch'
|
||||||
|
description = 'Daily political opinion from www.Counterpunch.com'
|
||||||
|
language = 'en'
|
||||||
|
__author__ = 'O. Emmerson'
|
||||||
|
keep_only_tags = [dict(name='td', attrs={'width': '522'})]
|
||||||
|
max_articles_per_feed = 10
|
||||||
|
|
||||||
|
def parse_index(self):
|
||||||
|
feeds = []
|
||||||
|
title, url = 'Counterpunch', 'http://www.counterpunch.com'
|
||||||
|
articles = self.parse_page(url)
|
||||||
|
if articles:
|
||||||
|
feeds.append((title, articles))
|
||||||
|
return feeds
|
||||||
|
|
||||||
|
def parse_page(self, url):
|
||||||
|
parsed_page = parse(url).getroot()
|
||||||
|
articles = []
|
||||||
|
unwanted_text = re.compile('Website\ of\ the|I\ urge\ you|Subscribe\ now|DONATE|\@asis\.com|donation\ button|click\ over\ to\ our')
|
||||||
|
parsed_articles = [a for a in parsed_page.cssselect("html>body>table tr>td>p[class='style2']") if not unwanted_text.search(a.text_content())]
|
||||||
|
for art in parsed_articles:
|
||||||
|
try:
|
||||||
|
author = art.text
|
||||||
|
title = art.cssselect("a")[0].text + ' by {0}'.format(author)
|
||||||
|
art_url = 'http://www.counterpunch.com/' + art.cssselect("a")[0].attrib['href']
|
||||||
|
articles.append({'title': title, 'url': art_url})
|
||||||
|
except Exception as e:
|
||||||
|
e
|
||||||
|
#print('Handler Error: ', e, 'title :', a.text_content())
|
||||||
|
pass
|
||||||
|
return articles
|
||||||
|
|
@ -1,83 +1,63 @@
|
|||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
import re
|
|
||||||
|
|
||||||
class Cracked(BasicNewsRecipe):
|
class Cracked(BasicNewsRecipe):
|
||||||
title = u'Cracked.com'
|
title = u'Cracked.com'
|
||||||
__author__ = u'Nudgenudge'
|
__author__ = 'UnWeave'
|
||||||
language = 'en'
|
language = 'en'
|
||||||
description = 'America''s Only Humor and Video Site, since 1958'
|
description = "America's Only HumorSite since 1958"
|
||||||
publisher = 'Cracked'
|
publisher = 'Cracked'
|
||||||
category = 'comedy, lists'
|
category = 'comedy, lists'
|
||||||
oldest_article = 2
|
oldest_article = 3 #days
|
||||||
delay = 10
|
max_articles_per_feed = 100
|
||||||
max_articles_per_feed = 2
|
|
||||||
no_stylesheets = True
|
no_stylesheets = True
|
||||||
encoding = 'cp1252'
|
encoding = 'ascii'
|
||||||
remove_javascript = True
|
remove_javascript = True
|
||||||
use_embedded_content = False
|
use_embedded_content = False
|
||||||
INDEX = u'http://www.cracked.com'
|
|
||||||
extra_css = """
|
feeds = [ (u'Articles', u'http://feeds.feedburner.com/CrackedRSS/') ]
|
||||||
.pageheader_type{font-size: x-large; font-weight: bold; color: #828D74}
|
|
||||||
.pageheader_title{font-size: xx-large; color: #394128}
|
|
||||||
.pageheader_byline{font-size: small; font-weight: bold; color: #394128}
|
|
||||||
.score_bg {display: inline; width: 100%; margin-bottom: 2em}
|
|
||||||
.score_column_1{ padding-left: 10px; font-size: small; width: 50%}
|
|
||||||
.score_column_2{ padding-left: 10px; font-size: small; width: 50%}
|
|
||||||
.score_column_3{ padding-left: 10px; font-size: small; width: 50%}
|
|
||||||
.score_header{font-size: large; color: #50544A}
|
|
||||||
.bodytext{display: block}
|
|
||||||
body{font-family: Helvetica,Arial,sans-serif}
|
|
||||||
"""
|
|
||||||
|
|
||||||
conversion_options = {
|
conversion_options = {
|
||||||
'comment' : description
|
'comment' : description
|
||||||
, 'tags' : category
|
, 'tags' : category
|
||||||
, 'publisher' : publisher
|
, 'publisher' : publisher
|
||||||
, 'language' : language
|
, 'language' : language
|
||||||
, 'linearize_tables' : True
|
|
||||||
}
|
}
|
||||||
|
|
||||||
keep_only_tags = [
|
remove_tags_before = dict(id='PrimaryContent')
|
||||||
dict(name='div', attrs={'class':['Column1']})
|
|
||||||
]
|
|
||||||
|
|
||||||
feeds = [(u'Articles', u'http://feeds.feedburner.com/CrackedRSS')]
|
remove_tags_after = dict(name='div', attrs={'class':'shareBar'})
|
||||||
|
|
||||||
def get_article_url(self, article):
|
remove_tags = [ dict(name='div', attrs={'class':['social',
|
||||||
return article.get('guid', None)
|
'FacebookLike',
|
||||||
|
'shareBar'
|
||||||
|
]}),
|
||||||
|
|
||||||
def cleanup_page(self, soup):
|
dict(name='div', attrs={'id':['inline-share-buttons',
|
||||||
for item in soup.findAll(style=True):
|
]}),
|
||||||
del item['style']
|
|
||||||
for alink in soup.findAll('a'):
|
|
||||||
if alink.string is not None:
|
|
||||||
tstr = alink.string
|
|
||||||
alink.replaceWith(tstr)
|
|
||||||
for div_to_remove in soup.findAll('div', attrs={'id':['googlead_1','fb-like-article','comments_section']}):
|
|
||||||
div_to_remove.extract()
|
|
||||||
for div_to_remove in soup.findAll('div', attrs={'class':['share_buttons_col_1','GenericModule1']}):
|
|
||||||
div_to_remove.extract()
|
|
||||||
for div_to_remove in soup.findAll('div', attrs={'class':re.compile("prev_next")}):
|
|
||||||
div_to_remove.extract()
|
|
||||||
for ul_to_remove in soup.findAll('ul', attrs={'class':['Nav6']}):
|
|
||||||
ul_to_remove.extract()
|
|
||||||
for image in soup.findAll('img', attrs={'alt': 'article image'}):
|
|
||||||
image.extract()
|
|
||||||
|
|
||||||
def append_page(self, soup, appendtag, position):
|
dict(name='span', attrs={'class':['views',
|
||||||
pager = soup.find('a',attrs={'class':'next_arrow_active'})
|
'KonaFilter'
|
||||||
if pager:
|
]}),
|
||||||
nexturl = self.INDEX + pager['href']
|
#dict(name='img'),
|
||||||
soup2 = self.index_to_soup(nexturl)
|
]
|
||||||
texttag = soup2.find('div', attrs={'class':re.compile("userStyled")})
|
|
||||||
newpos = len(texttag.contents)
|
def appendPage(self, soup, appendTag, position):
|
||||||
self.append_page(soup2,texttag,newpos)
|
# Check if article has multiple pages
|
||||||
texttag.extract()
|
pageNav = soup.find('nav', attrs={'class':'PaginationContent'})
|
||||||
self.cleanup_page(appendtag)
|
if pageNav:
|
||||||
appendtag.insert(position,texttag)
|
# Check not at last page
|
||||||
else:
|
nextPage = pageNav.find('a', attrs={'class':'next'})
|
||||||
self.cleanup_page(appendtag)
|
if nextPage:
|
||||||
|
nextPageURL = nextPage['href']
|
||||||
|
nextPageSoup = self.index_to_soup(nextPageURL)
|
||||||
|
# 8th <section> tag contains article content
|
||||||
|
nextPageContent = nextPageSoup.findAll('section')[7]
|
||||||
|
newPosition = len(nextPageContent.contents)
|
||||||
|
self.appendPage(nextPageSoup,nextPageContent,newPosition)
|
||||||
|
nextPageContent.extract()
|
||||||
|
pageNav.extract()
|
||||||
|
appendTag.insert(position,nextPageContent)
|
||||||
|
|
||||||
def preprocess_html(self, soup):
|
def preprocess_html(self, soup):
|
||||||
self.append_page(soup, soup.body, 3)
|
self.appendPage(soup, soup.body, 3)
|
||||||
return self.adeify_images(soup)
|
return soup
|
||||||
|
@ -1,69 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
__license__ = 'GPL v3'
|
|
||||||
__copyright__ = '2008, Darko Miletic <darko.miletic at gmail.com>'
|
|
||||||
'''
|
|
||||||
criticadigital.com
|
|
||||||
'''
|
|
||||||
|
|
||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
|
||||||
|
|
||||||
class CriticaDigital(BasicNewsRecipe):
|
|
||||||
title = 'Critica de la Argentina'
|
|
||||||
__author__ = 'Darko Miletic and Sujata Raman'
|
|
||||||
description = 'Noticias de Argentina'
|
|
||||||
oldest_article = 2
|
|
||||||
max_articles_per_feed = 100
|
|
||||||
language = 'es_AR'
|
|
||||||
|
|
||||||
no_stylesheets = True
|
|
||||||
use_embedded_content = False
|
|
||||||
encoding = 'cp1252'
|
|
||||||
|
|
||||||
extra_css = '''
|
|
||||||
h1{font-family:"Trebuchet MS";}
|
|
||||||
h3{color:#9A0000; font-family:Tahoma; font-size:x-small;}
|
|
||||||
h2{color:#504E53; font-family:Arial,Helvetica,sans-serif ;font-size:small;}
|
|
||||||
#epigrafe{font-family:Arial,Helvetica,sans-serif ;color:#666666 ; font-size:x-small;}
|
|
||||||
p {font-family:Arial,Helvetica,sans-serif;}
|
|
||||||
#fecha{color:#858585; font-family:Tahoma; font-size:x-small;}
|
|
||||||
#autor{color:#858585; font-family:Tahoma; font-size:x-small;}
|
|
||||||
#hora{color:#F00000;font-family:Tahoma; font-size:x-small;}
|
|
||||||
'''
|
|
||||||
keep_only_tags = [
|
|
||||||
dict(name='div', attrs={'class':['bloqueTitulosNoticia','cfotonota']})
|
|
||||||
,dict(name='div', attrs={'id':'boxautor'})
|
|
||||||
,dict(name='p', attrs={'id':'textoNota'})
|
|
||||||
]
|
|
||||||
|
|
||||||
remove_tags = [
|
|
||||||
dict(name='div', attrs={'class':'box300' })
|
|
||||||
,dict(name='div', style=True )
|
|
||||||
,dict(name='div', attrs={'class':'titcomentario'})
|
|
||||||
,dict(name='div', attrs={'class':'comentario' })
|
|
||||||
,dict(name='div', attrs={'class':'paginador' })
|
|
||||||
]
|
|
||||||
|
|
||||||
feeds = [
|
|
||||||
(u'Politica', u'http://www.criticadigital.com/herramientas/rss.php?ch=politica' )
|
|
||||||
,(u'Economia', u'http://www.criticadigital.com/herramientas/rss.php?ch=economia' )
|
|
||||||
,(u'Deportes', u'http://www.criticadigital.com/herramientas/rss.php?ch=deportes' )
|
|
||||||
,(u'Espectaculos', u'http://www.criticadigital.com/herramientas/rss.php?ch=espectaculos')
|
|
||||||
,(u'Mundo', u'http://www.criticadigital.com/herramientas/rss.php?ch=mundo' )
|
|
||||||
,(u'Policiales', u'http://www.criticadigital.com/herramientas/rss.php?ch=policiales' )
|
|
||||||
,(u'Sociedad', u'http://www.criticadigital.com/herramientas/rss.php?ch=sociedad' )
|
|
||||||
,(u'Salud', u'http://www.criticadigital.com/herramientas/rss.php?ch=salud' )
|
|
||||||
,(u'Tecnologia', u'http://www.criticadigital.com/herramientas/rss.php?ch=tecnologia' )
|
|
||||||
,(u'Santa Fe', u'http://www.criticadigital.com/herramientas/rss.php?ch=santa_fe' )
|
|
||||||
]
|
|
||||||
|
|
||||||
def get_cover_url(self):
|
|
||||||
cover_url = None
|
|
||||||
index = 'http://www.criticadigital.com/impresa/'
|
|
||||||
soup = self.index_to_soup(index)
|
|
||||||
link_item = soup.find('div',attrs={'class':'tapa'})
|
|
||||||
if link_item:
|
|
||||||
cover_url = index + link_item.img['src']
|
|
||||||
return cover_url
|
|
||||||
|
|
||||||
|
|
47
recipes/cvecezla.recipe
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
|
||||||
|
__license__ = 'GPL v3'
|
||||||
|
__copyright__ = '2011, Darko Miletic <darko.miletic at gmail.com>'
|
||||||
|
'''
|
||||||
|
cvecezla.wordpress.com
|
||||||
|
'''
|
||||||
|
|
||||||
|
import re
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class CveceZla(BasicNewsRecipe):
|
||||||
|
title = 'Cvece zla i naopakog'
|
||||||
|
__author__ = 'Darko Miletic'
|
||||||
|
description = 'Haoticnost razmisljanja poradja haoticnost pisanja. Muzika, stripovi, igre, knjige, generalno glupiranje...'
|
||||||
|
oldest_article = 7
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
language = 'sr'
|
||||||
|
encoding = 'utf-8'
|
||||||
|
no_stylesheets = True
|
||||||
|
use_embedded_content = False
|
||||||
|
publication_type = 'blog'
|
||||||
|
extra_css = ' @font-face {font-family: "serif1";src:url(res:///opt/sony/ebook/FONT/tt0011m_.ttf)} @font-face {font-family: "sans1";src:url(res:///opt/sony/ebook/FONT/tt0003m_.ttf)} body{font-family: "Trebuchet MS",Trebuchet,Verdana,sans1,sans-serif} .article_description{font-family: sans1, sans-serif} img{display: block } '
|
||||||
|
|
||||||
|
conversion_options = {
|
||||||
|
'comment' : description
|
||||||
|
, 'tags' : 'igre, muzika, film, blog, Srbija'
|
||||||
|
, 'publisher': 'Mehmet Krljic'
|
||||||
|
, 'language' : language
|
||||||
|
}
|
||||||
|
|
||||||
|
preprocess_regexps = [(re.compile(u'\u0110'), lambda match: u'\u00D0')]
|
||||||
|
|
||||||
|
remove_tags_before = dict(attrs={'class':'navigation'})
|
||||||
|
remove_tags_after = dict(attrs={'class':'commentlist'})
|
||||||
|
remove_tags = [
|
||||||
|
dict(attrs={'class':['postmetadata alt','sharedaddy sharedaddy-dark sd-like-enabled sd-sharing-enabled','reply','navigation']})
|
||||||
|
,dict(attrs={'id':'respond'})
|
||||||
|
]
|
||||||
|
|
||||||
|
feeds = [(u'Clanci', u'http://cvecezla.wordpress.com/feed/')]
|
||||||
|
|
||||||
|
def preprocess_html(self, soup):
|
||||||
|
for item in soup.findAll(style=True):
|
||||||
|
del item['style']
|
||||||
|
return soup
|
||||||
|
|
||||||
|
|
32
recipes/dagens_industri.recipe
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
__license__ = 'GPLv3'
|
||||||
|
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class AdvancedUserRecipe1311450855(BasicNewsRecipe):
|
||||||
|
title = u'Dagens Industri'
|
||||||
|
__author__ = 'Jonas Svensson'
|
||||||
|
description = 'Economy news from Sweden'
|
||||||
|
publisher = 'DI'
|
||||||
|
category = 'news, politics, Sweden'
|
||||||
|
oldest_article = 2
|
||||||
|
delay = 1
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
no_stylesheets = True
|
||||||
|
use_embedded_content = False
|
||||||
|
encoding = 'utf-8'
|
||||||
|
language = 'sv'
|
||||||
|
|
||||||
|
feeds = [(u'DI', u'http://di.se/rss')]
|
||||||
|
|
||||||
|
keep_only_tags = [dict(name='h1', attrs={'id':'ctl00_ExtraWideContentRegion_WideContentRegion_MainRegion_MainContentRegion_MainBodyRegion_headlineNormal'}),dict(name='div', attrs={'id':'articleBody'})]
|
||||||
|
|
||||||
|
remove_tags = [
|
||||||
|
dict(name='div',attrs={'class':'article-actions clear'})
|
||||||
|
,dict(name='div',attrs={'class':'article-action-popup'})
|
||||||
|
,dict(name='div',attrs={'class':'header'})
|
||||||
|
,dict(name='div',attrs={'class':'content clear'})
|
||||||
|
,dict(name='div',attrs={'id':'articleAdvertisementDiv'})
|
||||||
|
,dict(name='ul',attrs={'class':'action-list'})
|
||||||
|
]
|
52
recipes/daily_mirror.recipe
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class AdvancedUserRecipe1306061239(BasicNewsRecipe):
|
||||||
|
title = u'The Daily Mirror'
|
||||||
|
description = 'News as provide by The Daily Mirror -UK'
|
||||||
|
|
||||||
|
__author__ = 'Dave Asbury'
|
||||||
|
language = 'en_GB'
|
||||||
|
|
||||||
|
cover_url = 'http://yookeo.com/screens/m/i/mirror.co.uk.jpg'
|
||||||
|
|
||||||
|
masthead_url = 'http://www.nmauk.co.uk/nma/images/daily_mirror.gif'
|
||||||
|
|
||||||
|
|
||||||
|
oldest_article = 1
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
remove_empty_feeds = True
|
||||||
|
remove_javascript = True
|
||||||
|
no_stylesheets = True
|
||||||
|
|
||||||
|
keep_only_tags = [
|
||||||
|
dict(name='h1'),
|
||||||
|
dict(attrs={'class':['article-attr']}),
|
||||||
|
dict(name='div', attrs={'class' : [ 'article-body', 'crosshead']})
|
||||||
|
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
|
remove_tags = [
|
||||||
|
dict(name='div', attrs={'class' : ['caption', 'article-resize']}),
|
||||||
|
dict( attrs={'class':'append-html'})
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
feeds = [
|
||||||
|
|
||||||
|
(u'News', u'http://www.mirror.co.uk/news/rss.xml')
|
||||||
|
,(u'Tech News', u'http://www.mirror.co.uk/news/technology/rss.xml')
|
||||||
|
,(u'Weird World','http://www.mirror.co.uk/news/weird-world/rss.xml')
|
||||||
|
,(u'Film Gossip','http://www.mirror.co.uk/celebs/film/rss.xml')
|
||||||
|
,(u'Music News','http://www.mirror.co.uk/celebs/music/rss.xml')
|
||||||
|
,(u'Celebs and Tv Gossip','http://www.mirror.co.uk/celebs/tv/rss.xml')
|
||||||
|
,(u'Sport','http://www.mirror.co.uk/sport/rss.xml')
|
||||||
|
,(u'Life Style','http://www.mirror.co.uk/life-style/rss.xml')
|
||||||
|
,(u'Advice','http://www.mirror.co.uk/advice/rss.xml')
|
||||||
|
,(u'Travel','http://www.mirror.co.uk/advice/travel/rss.xml')
|
||||||
|
|
||||||
|
# example of commented out feed not needed ,(u'Travel','http://www.mirror.co.uk/advice/travel/rss.xml')
|
||||||
|
]
|
||||||
|
|
78
recipes/daytona_beach.recipe
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class DaytonBeachNewsJournal(BasicNewsRecipe):
|
||||||
|
title ='Daytona Beach News Journal'
|
||||||
|
__author__ = 'BRGriff'
|
||||||
|
pubisher = 'News-JournalOnline.com'
|
||||||
|
description = 'Daytona Beach, Florida, Newspaper'
|
||||||
|
category = 'News, Daytona Beach, Florida'
|
||||||
|
oldest_article = 1
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
remove_javascript = True
|
||||||
|
use_embedded_content = False
|
||||||
|
no_stylesheets = True
|
||||||
|
language = 'en'
|
||||||
|
filterDuplicates = True
|
||||||
|
remove_attributes = ['style']
|
||||||
|
|
||||||
|
keep_only_tags = [dict(name='div', attrs={'class':'page-header'}),
|
||||||
|
dict(name='div', attrs={'class':'asset-body'})
|
||||||
|
]
|
||||||
|
remove_tags = [dict(name='div', attrs={'class':['byline-section', 'asset-meta']})
|
||||||
|
]
|
||||||
|
|
||||||
|
feeds = [
|
||||||
|
#####NEWS#####
|
||||||
|
(u"News", u"http://www.news-journalonline.com/rss.xml"),
|
||||||
|
(u"Breaking News", u"http://www.news-journalonline.com/breakingnews/rss.xml"),
|
||||||
|
(u"Local - East Volusia", u"http://www.news-journalonline.com/news/local/east-volusia/rss.xml"),
|
||||||
|
(u"Local - West Volusia", u"http://www.news-journalonline.com/news/local/west-volusia/rss.xml"),
|
||||||
|
(u"Local - Southeast", u"http://www.news-journalonline.com/news/local/southeast-volusia/rss.xml"),
|
||||||
|
(u"Local - Flagler", u"http://www.news-journalonline.com/news/local/flagler/rss.xml"),
|
||||||
|
(u"Florida", u"http://www.news-journalonline.com/news/florida/rss.xml"),
|
||||||
|
(u"National/World", u"http://www.news-journalonline.com/news/nationworld/rss.xml"),
|
||||||
|
(u"Politics", u"http://www.news-journalonline.com/news/politics/rss.xml"),
|
||||||
|
(u"News of Record", u"http://www.news-journalonline.com/news/news-of-record/rss.xml"),
|
||||||
|
####BUSINESS####
|
||||||
|
(u"Business", u"http://www.news-journalonline.com/business/rss.xml"),
|
||||||
|
#(u"Jobs", u"http://www.news-journalonline.com/business/jobs/rss.xml"),
|
||||||
|
#(u"Markets", u"http://www.news-journalonline.com/business/markets/rss.xml"),
|
||||||
|
#(u"Real Estate", u"http://www.news-journalonline.com/business/real-estate/rss.xml"),
|
||||||
|
#(u"Technology", u"http://www.news-journalonline.com/business/technology/rss.xml"),
|
||||||
|
####SPORTS####
|
||||||
|
(u"Sports", u"http://www.news-journalonline.com/sports/rss.xml"),
|
||||||
|
(u"Racing", u"http://www.news-journalonline.com/racing/rss.xml"),
|
||||||
|
(u"Highschool", u"http://www.news-journalonline.com/sports/highschool/rss.xml"),
|
||||||
|
(u"College", u"http://www.news-journalonline.com/sports/college/rss.xml"),
|
||||||
|
(u"Basketball", u"http://www.news-journalonline.com/sports/basketball/rss.xml"),
|
||||||
|
(u"Football", u"http://www.news-journalonline.com/sports/football/rss.xml"),
|
||||||
|
(u"Golf", u"http://www.news-journalonline.com/sports/golf/rss.xml"),
|
||||||
|
(u"Other Sports", u"http://www.news-journalonline.com/sports/other/rss.xml"),
|
||||||
|
####LIFESTYLE####
|
||||||
|
(u"Lifestyle", u"http://www.news-journalonline.com/lifestyle/rss.xml"),
|
||||||
|
#(u"Fashion", u"http://www.news-journalonline.com/lifestyle/fashion/rss.xml"),
|
||||||
|
(u"Food", u"http://www.news-journalonline.com/lifestyle/food/rss.xml"),
|
||||||
|
#(u"Health", u"http://www.news-journalonline.com/lifestyle/health/rss.xml"),
|
||||||
|
(u"Home and Garden", u"http://www.news-journalonline.com/lifestyle/home-and-garden/rss.xml"),
|
||||||
|
(u"Living", u"http://www.news-journalonline.com/lifestyle/living/rss.xml"),
|
||||||
|
(u"Religion", u"http://www.news-journalonline.com/lifestyle/religion/rss.xml"),
|
||||||
|
#(u"Travel", u"http://www.news-journalonline.com/lifestyle/travel/rss.xml"),
|
||||||
|
####OPINION####
|
||||||
|
#(u"Opinion", u"http://www.news-journalonline.com/opinion/rss.xml"),
|
||||||
|
#(u"Letters to Editor", u"http://www.news-journalonline.com/opinion/letters-to-the-editor/rss.xml"),
|
||||||
|
#(u"Columns", u"http://www.news-journalonline.com/columns/rss.xml"),
|
||||||
|
#(u"Podcasts", u"http://www.news-journalonline.com/podcasts/rss.xml"),
|
||||||
|
####ENTERTAINMENT#### ##Weekly Feature##
|
||||||
|
(u"Entertainment", u"http://www.go386.com/rss.xml"),
|
||||||
|
(u"Go Out", u"http://www.go386.com/go/rss.xml"),
|
||||||
|
(u"Music", u"http://www.go386.com/music/rss.xml"),
|
||||||
|
(u"Movies", u"http://www.go386.com/movies/rss.xml"),
|
||||||
|
#(u"Culture", u"http://www.go386.com/culture/rss.xml"),
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
|
extra_css = '''
|
||||||
|
.page-header{font-family:Arial,Helvetica,sans-serif; font-style:bold;font-size:22pt;}
|
||||||
|
.asset-body{font-family:Helvetica,Arial,sans-serif; font-size:16pt;}
|
||||||
|
|
||||||
|
'''
|
@ -1,55 +1,71 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
__license__ = 'GPL v3'
|
|
||||||
__copyright__ = u'2011, Silviu Cotoar\u0103'
|
|
||||||
'''
|
|
||||||
dilemaveche.ro
|
|
||||||
'''
|
|
||||||
|
|
||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
class DilemaVeche(BasicNewsRecipe):
|
class DilemaVeche(BasicNewsRecipe):
|
||||||
title = u'Dilema Veche'
|
title = u'Dilema Veche' # apare vinerea, mai pe dupa-masa,depinde de Luiza cred (care se semneaza ca fiind creatorul fiecarui articol in feed-ul RSS)
|
||||||
__author__ = u'Silviu Cotoar\u0103'
|
__author__ = 'song2' # inspirat din scriptul pentru Le Monde. Inspired from the Le Monde script
|
||||||
description = u'Sunt vechi, domnule!'
|
description = '"Sint vechi, domnule!" (I.L. Caragiale)'
|
||||||
publisher = u'Dilema Veche'
|
publisher = 'Adevarul Holding'
|
||||||
oldest_article = 50
|
oldest_article = 7
|
||||||
language = 'ro'
|
max_articles_per_feed = 200
|
||||||
max_articles_per_feed = 100
|
encoding = 'utf8'
|
||||||
no_stylesheets = True
|
language = 'ro'
|
||||||
use_embedded_content = False
|
masthead_url = 'http://www.dilemaveche.ro/sites/all/themes/dilema/theme/dilema_two/layouter/dilema_two_homepage/logo.png'
|
||||||
category = 'Ziare'
|
publication_type = 'magazine'
|
||||||
encoding = 'utf-8'
|
feeds = [
|
||||||
cover_url = 'http://www.dilemaveche.ro/sites/all/themes/dilema/theme/dilema_two/layouter/dilema_two_homepage/logo.png'
|
('Editoriale si opinii - Situatiunea', 'http://www.dilemaveche.ro/taxonomy/term/37/0/feed'),
|
||||||
|
('Editoriale si opinii - Pe ce lume traim', 'http://www.dilemaveche.ro/taxonomy/term/38/0/feed'),
|
||||||
conversion_options = {
|
('Editoriale si opinii - Bordeie si obiceie', 'http://www.dilemaveche.ro/taxonomy/term/44/0/feed'),
|
||||||
'comments' : description
|
('Editoriale si opinii - Talc Show', 'http://www.dilemaveche.ro/taxonomy/term/44/0/feed'),
|
||||||
,'tags' : category
|
('Tema saptamanii', 'http://www.dilemaveche.ro/taxonomy/term/19/0/feed'),
|
||||||
,'language' : language
|
('La zi in cultura - Dilema va recomanda', 'http://www.dilemaveche.ro/taxonomy/term/58/0/feed'),
|
||||||
,'publisher' : publisher
|
('La zi in cultura - Carte', 'http://www.dilemaveche.ro/taxonomy/term/14/0/feed'),
|
||||||
}
|
('La zi in cultura - Film', 'http://www.dilemaveche.ro/taxonomy/term/13/0/feed'),
|
||||||
|
('La zi in cultura - Muzica', 'http://www.dilemaveche.ro/taxonomy/term/1341/0/feed'),
|
||||||
keep_only_tags = [
|
('La zi in cultura - Arte performative', 'http://www.dilemaveche.ro/taxonomy/term/1342/0/feed'),
|
||||||
dict(name='h1', attrs={'class':'art_title'})
|
('La zi in cultura - Arte vizuale', 'http://www.dilemaveche.ro/taxonomy/term/1512/0/feed'),
|
||||||
, dict(name='h1', attrs={'class':'art_title online'})
|
('Societate - Ieri cu vedere spre azi', 'http://www.dilemaveche.ro/taxonomy/term/15/0/feed'),
|
||||||
, dict(name='div', attrs={'class':'item'})
|
('Societate - Din polul opus', 'http://www.dilemaveche.ro/taxonomy/term/41/0/feed'),
|
||||||
, dict(name='div', attrs={'class':'art_content'})
|
('Societate - Mass comedia', 'http://www.dilemaveche.ro/taxonomy/term/43/0/feed'),
|
||||||
]
|
('Societate - La singular si la plural', 'http://www.dilemaveche.ro/taxonomy/term/42/0/feed'),
|
||||||
|
('Oameni si idei - Educatie', 'http://www.dilemaveche.ro/taxonomy/term/46/0/feed'),
|
||||||
|
('Oameni si idei - Polemici si dezbateri', 'http://www.dilemaveche.ro/taxonomy/term/48/0/feed'),
|
||||||
|
('Oameni si idei - Stiinta si tehnologie', 'http://www.dilemaveche.ro/taxonomy/term/46/0/feed'),
|
||||||
|
('Dileme on-line', 'http://www.dilemaveche.ro/taxonomy/term/005/0/feed')
|
||||||
|
]
|
||||||
|
remove_tags_before = dict(name='div',attrs={'class':'spacer_10'})
|
||||||
remove_tags = [
|
remove_tags = [
|
||||||
dict(name='div', attrs={'class':['article_details']})
|
dict(name='div', attrs={'class':'art_related_left'}),
|
||||||
, dict(name='div', attrs={'class':['controale']})
|
dict(name='div', attrs={'class':'controale'}),
|
||||||
, dict(name='div', attrs={'class':['art_related_left']})
|
dict(name='div', attrs={'class':'simple_overlay'}),
|
||||||
]
|
]
|
||||||
|
remove_tags_after = [dict(id='facebookLike')]
|
||||||
|
remove_javascript = True
|
||||||
|
no_stylesheets = True
|
||||||
|
remove_empty_feeds = True
|
||||||
|
extra_css = """
|
||||||
|
body{font-family: Georgia,Times,serif }
|
||||||
|
img{margin-bottom: 0.4em; display:block}
|
||||||
|
"""
|
||||||
|
def get_cover_url(self):
|
||||||
|
cover_url = None
|
||||||
|
soup = self.index_to_soup('http://dilemaveche.ro')
|
||||||
|
link_item = soup.find('div',attrs={'class':'box_dr_pdf_picture'})
|
||||||
|
if link_item and link_item.a:
|
||||||
|
cover_url = link_item.a['href']
|
||||||
|
br = BasicNewsRecipe.get_browser()
|
||||||
|
try:
|
||||||
|
br.open(cover_url)
|
||||||
|
except: #daca nu gaseste pdf-ul
|
||||||
|
self.log("\nPDF indisponibil")
|
||||||
|
link_item = soup.find('div',attrs={'class':'box_dr_pdf_picture'})
|
||||||
|
if link_item and link_item.img:
|
||||||
|
cover_url = link_item.img['src']
|
||||||
|
br = BasicNewsRecipe.get_browser()
|
||||||
|
try:
|
||||||
|
br.open(cover_url)
|
||||||
|
except: #daca nu gaseste nici imaginea mica mica
|
||||||
|
print('Mama lor de nenorociti! nu este nici pdf nici imagine')
|
||||||
|
cover_url ='http://www.dilemaveche.ro/sites/all/themes/dilema/theme/dilema_two/layouter/dilema_two_homepage/logo.png'
|
||||||
|
return cover_url
|
||||||
|
cover_margins = (10, 15, '#ffffff')
|
||||||
|
|
||||||
remove_tags_after = [
|
|
||||||
dict(name='div', attrs={'class':['article_details']})
|
|
||||||
]
|
|
||||||
|
|
||||||
feeds = [
|
|
||||||
(u'Feeds', u'http://www.dilemaveche.ro/rss.xml')
|
|
||||||
]
|
|
||||||
|
|
||||||
def preprocess_html(self, soup):
|
|
||||||
return self.adeify_images(soup)
|
|
||||||
|
98
recipes/dnevnik_mk.recipe
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
__author__ = 'Darko Spasovski'
|
||||||
|
__license__ = 'GPL v3'
|
||||||
|
__copyright__ = '2011, Darko Spasovski <darko.spasovski at gmail.com>'
|
||||||
|
'''
|
||||||
|
dnevnik.com.mk
|
||||||
|
'''
|
||||||
|
|
||||||
|
import re
|
||||||
|
import datetime
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
from calibre import browser
|
||||||
|
from calibre.ebooks.BeautifulSoup import BeautifulSoup
|
||||||
|
|
||||||
|
class Dnevnik(BasicNewsRecipe):
|
||||||
|
|
||||||
|
INDEX = 'http://www.dnevnik.com.mk'
|
||||||
|
__author__ = 'Darko Spasovski'
|
||||||
|
title = 'Dnevnik - mk'
|
||||||
|
description = 'Daily Macedonian newspaper'
|
||||||
|
masthead_url = 'http://www.dnevnik.com.mk/images/re-logo.gif'
|
||||||
|
language = 'mk'
|
||||||
|
publication_type = 'newspaper'
|
||||||
|
category = 'news, Macedonia'
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
remove_javascript = True
|
||||||
|
no_stylesheets = True
|
||||||
|
use_embedded_content = False
|
||||||
|
|
||||||
|
preprocess_regexps = [(re.compile(i[0], re.IGNORECASE | re.DOTALL), i[1]) for i in
|
||||||
|
[
|
||||||
|
## Remove anything before the start of the article.
|
||||||
|
(r'<body.*?<\?xml version=\"1.0\"\?><!--Article start-->', lambda match: '<body>'),
|
||||||
|
|
||||||
|
## Remove anything after the end of the article.
|
||||||
|
(r'<!--Article end.*?</body>', lambda match : '</body>'),
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
|
extra_css = """
|
||||||
|
body{font-family: Arial,Helvetica,sans-serif}
|
||||||
|
.WB_DNEVNIK_Naslov{FONT-WEIGHT: bold; FONT-SIZE: 18px; FONT-FAMILY: Arial, Verdana, Tahoma; TEXT-DECORATION: none}
|
||||||
|
"""
|
||||||
|
|
||||||
|
conversion_options = {
|
||||||
|
'comment' : description,
|
||||||
|
'tags' : category,
|
||||||
|
'language' : language,
|
||||||
|
'linearize_tables' : True
|
||||||
|
}
|
||||||
|
|
||||||
|
def parse_index(self):
|
||||||
|
datum = datetime.datetime.today().strftime('%d.%m.%Y')
|
||||||
|
soup = self.index_to_soup(self.INDEX + '/default.asp?section=arhiva&arhDatum=' + datum)
|
||||||
|
feeds = []
|
||||||
|
for section in soup.findAll('td', attrs={'class':'WB_DNEVNIK_ArhivaFormTitle'}):
|
||||||
|
sectionTitle = section.contents[0].string
|
||||||
|
if sectionTitle.lower().startswith('online'):
|
||||||
|
# Skip online articles
|
||||||
|
continue
|
||||||
|
containerTable = section.findPrevious(name='table').findNextSibling(name='table')
|
||||||
|
if containerTable==None:
|
||||||
|
print 'No container table found - page layout may have been changed.'
|
||||||
|
continue
|
||||||
|
articles = []
|
||||||
|
for article in containerTable.findAll('a', attrs={'class': 'WB_DNEVNIK_ArhivaFormText'}):
|
||||||
|
title = self.tag_to_string(article, use_alt=True).strip()
|
||||||
|
articles.append({'title': title, 'url':'http://www.dnevnik.com.mk/' + article['href'], 'description':'', 'date':''})
|
||||||
|
if articles:
|
||||||
|
feeds.append((sectionTitle, articles))
|
||||||
|
return sorted(feeds, key=lambda section: self.get_weight(section))
|
||||||
|
|
||||||
|
def get_weight(self, section):
|
||||||
|
"""
|
||||||
|
Returns 'weight' of a section.
|
||||||
|
Used for sorting the sections based on their 'natural' order in the printed edition.
|
||||||
|
"""
|
||||||
|
natural_order = { u'во фокусот': 1, u'актуелно': 2, u'економија': 3,
|
||||||
|
u'отворена': 4, u'свет': 5, u'интервју': 6, u'џубокс': 7,
|
||||||
|
u'репортажа': 8, u'наш туризам': 9, u'живот': 10,
|
||||||
|
u'автомобилизам': 11, u'спорт': 12, u'омнибус': 13 }
|
||||||
|
if section[0].string.lower() in natural_order:
|
||||||
|
return natural_order[section[0].string.lower()]
|
||||||
|
else:
|
||||||
|
return 999 # section names not on the list go to the bottom
|
||||||
|
|
||||||
|
def get_cover_url(self):
|
||||||
|
datum = datetime.datetime.today().strftime('%d.%m.%Y')
|
||||||
|
soup = self.index_to_soup(self.INDEX + '/default.asp?section=arhiva&arhDatum=' + datum)
|
||||||
|
anchor = soup.find('a', attrs={'class': 'WB_DNEVNIK_MoreLink'})
|
||||||
|
if anchor != None:
|
||||||
|
raw = browser().open_novisit(self.INDEX + '/' + anchor['href']).read()
|
||||||
|
cover_soup = BeautifulSoup(raw)
|
||||||
|
url = cover_soup.find('div', attrs={'class':'WB_DNEVNIK_Datum2'}).findNext('img')['src']
|
||||||
|
return self.INDEX + '/' + url
|
||||||
|
return ''
|
||||||
|
|
21
recipes/dobreprogamy.recipe
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
|
||||||
|
class Dobreprogramy_pl(BasicNewsRecipe):
|
||||||
|
title = 'Dobreprogramy.pl'
|
||||||
|
__author__ = 'fenuks'
|
||||||
|
__licence__ ='GPL v3'
|
||||||
|
category = 'IT'
|
||||||
|
language = 'pl'
|
||||||
|
cover_url = 'http://userlogos.org/files/logos/Karmody/dobreprogramy_01.png'
|
||||||
|
description = u'Aktualności i blogi z dobreprogramy.pl'
|
||||||
|
encoding = 'utf-8'
|
||||||
|
no_stylesheets = True
|
||||||
|
language = 'pl'
|
||||||
|
extra_css = '.title {font-size:22px;}'
|
||||||
|
oldest_article = 8
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
remove_tags = [dict(name='div', attrs={'class':['komentarze', 'block', 'portalInfo', 'menuBar', 'topBar']})]
|
||||||
|
keep_only_tags = [dict(name='div', attrs={'class':['mainBar', 'newsContent', 'postTitle title', 'postInfo', 'contentText', 'content']})]
|
||||||
|
feeds = [(u'Aktualności', 'http://feeds.feedburner.com/dobreprogramy/Aktualnosci'),
|
||||||
|
('Blogi', 'http://feeds.feedburner.com/dobreprogramy/BlogCzytelnikow')]
|
18
recipes/down_to_earth.recipe
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
from calibre.web.feeds.recipes import BasicNewsRecipe
|
||||||
|
|
||||||
|
class AdvancedUserRecipe1307834113(BasicNewsRecipe):
|
||||||
|
|
||||||
|
title = u'Down To Earth'
|
||||||
|
oldest_article = 300
|
||||||
|
__author__ = 'sexymax15'
|
||||||
|
max_articles_per_feed = 30
|
||||||
|
no_stylesheets = True
|
||||||
|
remove_javascript = True
|
||||||
|
remove_attributes = ['width','height']
|
||||||
|
use_embedded_content = False
|
||||||
|
language = 'en_IN'
|
||||||
|
remove_empty_feeds = True
|
||||||
|
remove_tags_before = dict(name='div', id='PageContent')
|
||||||
|
remove_tags_after = [dict(name='div'),{'class':'box'}]
|
||||||
|
remove_tags =[{'class':'box'}]
|
||||||
|
feeds = [(u'editor', u'http://www.downtoearth.org.in/taxonomy/term/20348/0/feed'), (u'cover story', u'http://www.downtoearth.org.in/taxonomy/term/20345/0/feed'), (u'special report', u'http://www.downtoearth.org.in/taxonomy/term/20384/0/feed'), (u'features', u'http://www.downtoearth.org.in/taxonomy/term/20350/0/feed'), (u'news', u'http://www.downtoearth.org.in/taxonomy/term/20366/0/feed'), (u'debate', u'http://www.downtoearth.org.in/taxonomy/term/20347/0/feed'), (u'natural disasters', u'http://www.downtoearth.org.in/taxonomy/term/20822/0/feed')]
|
@ -6,10 +6,10 @@ __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
|
|||||||
economist.com
|
economist.com
|
||||||
'''
|
'''
|
||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
from calibre.ebooks.BeautifulSoup import BeautifulSoup
|
|
||||||
from calibre.ebooks.BeautifulSoup import Tag, NavigableString
|
from calibre.ebooks.BeautifulSoup import Tag, NavigableString
|
||||||
|
from collections import OrderedDict
|
||||||
|
|
||||||
import string, time, re
|
import re
|
||||||
|
|
||||||
class Economist(BasicNewsRecipe):
|
class Economist(BasicNewsRecipe):
|
||||||
|
|
||||||
@ -22,97 +22,99 @@ class Economist(BasicNewsRecipe):
|
|||||||
' perspective. Best downloaded on Friday mornings (GMT)')
|
' perspective. Best downloaded on Friday mornings (GMT)')
|
||||||
extra_css = '.headline {font-size: x-large;} \n h2 { font-size: small; } \n h1 { font-size: medium; }'
|
extra_css = '.headline {font-size: x-large;} \n h2 { font-size: small; } \n h1 { font-size: medium; }'
|
||||||
oldest_article = 7.0
|
oldest_article = 7.0
|
||||||
cover_url = 'http://www.economist.com/images/covers/currentcoverus_large.jpg'
|
cover_url = 'http://media.economist.com/sites/default/files/imagecache/print-cover-thumbnail/print-covers/currentcoverus_large.jpg'
|
||||||
|
#cover_url = 'http://www.economist.com/images/covers/currentcoverus_large.jpg'
|
||||||
remove_tags = [
|
remove_tags = [
|
||||||
dict(name=['script', 'noscript', 'title', 'iframe', 'cf_floatingcontent']),
|
dict(name=['script', 'noscript', 'title', 'iframe', 'cf_floatingcontent']),
|
||||||
dict(attrs={'class':['dblClkTrk', 'ec-article-info', 'share_inline_header']}),
|
dict(attrs={'class':['dblClkTrk', 'ec-article-info',
|
||||||
|
'share_inline_header', 'related-items']}),
|
||||||
{'class': lambda x: x and 'share-links-header' in x},
|
{'class': lambda x: x and 'share-links-header' in x},
|
||||||
]
|
]
|
||||||
keep_only_tags = [dict(id='ec-article-body')]
|
keep_only_tags = [dict(id='ec-article-body')]
|
||||||
needs_subscription = False
|
|
||||||
no_stylesheets = True
|
no_stylesheets = True
|
||||||
preprocess_regexps = [(re.compile('</html>.*', re.DOTALL),
|
preprocess_regexps = [(re.compile('</html>.*', re.DOTALL),
|
||||||
lambda x:'</html>')]
|
lambda x:'</html>')]
|
||||||
|
|
||||||
|
# economist.com has started throttling after about 60% of the total has
|
||||||
|
# downloaded with connection reset by peer (104) errors.
|
||||||
|
delay = 1
|
||||||
|
|
||||||
|
needs_subscription = False
|
||||||
'''
|
'''
|
||||||
def get_browser(self):
|
def get_browser(self):
|
||||||
br = BasicNewsRecipe.get_browser()
|
br = BasicNewsRecipe.get_browser()
|
||||||
br.open('http://www.economist.com')
|
if self.username and self.password:
|
||||||
req = mechanize.Request(
|
br.open('http://www.economist.com/user/login')
|
||||||
'http://www.economist.com/members/members.cfm?act=exec_login',
|
br.select_form(nr=1)
|
||||||
headers = {
|
br['name'] = self.username
|
||||||
'Referer':'http://www.economist.com/',
|
br['pass'] = self.password
|
||||||
},
|
res = br.submit()
|
||||||
data=urllib.urlencode({
|
raw = res.read()
|
||||||
'logging_in' : 'Y',
|
if '>Log out<' not in raw:
|
||||||
'returnURL' : '/',
|
raise ValueError('Failed to login to economist.com. '
|
||||||
'email_address': self.username,
|
'Check your username and password.')
|
||||||
'fakepword' : 'Password',
|
|
||||||
'pword' : self.password,
|
|
||||||
'x' : '0',
|
|
||||||
'y' : '0',
|
|
||||||
}))
|
|
||||||
br.open(req).read()
|
|
||||||
return br
|
return br
|
||||||
'''
|
'''
|
||||||
|
|
||||||
def parse_index(self):
|
def parse_index(self):
|
||||||
try:
|
return self.economist_parse_index()
|
||||||
return self.economist_parse_index()
|
|
||||||
except:
|
|
||||||
raise
|
|
||||||
self.log.warn(
|
|
||||||
'Initial attempt to parse index failed, retrying in 30 seconds')
|
|
||||||
time.sleep(30)
|
|
||||||
return self.economist_parse_index()
|
|
||||||
|
|
||||||
def economist_parse_index(self):
|
def economist_parse_index(self):
|
||||||
soup = BeautifulSoup(self.browser.open(self.INDEX).read(),
|
soup = self.index_to_soup(self.INDEX)
|
||||||
convertEntities=BeautifulSoup.HTML_ENTITIES)
|
div = soup.find('div', attrs={'class':'issue-image'})
|
||||||
index_started = False
|
if div is not None:
|
||||||
feeds = {}
|
img = div.find('img', src=True)
|
||||||
ans = []
|
if img is not None:
|
||||||
key = None
|
self.cover_url = img['src']
|
||||||
for tag in soup.findAll(['h1', 'h2']):
|
feeds = OrderedDict()
|
||||||
text = ''.join(tag.findAll(text=True))
|
for section in soup.findAll(attrs={'class':lambda x: x and 'section' in
|
||||||
if tag.name in ('h1', 'h2') and 'Classified ads' in text:
|
x}):
|
||||||
break
|
h4 = section.find('h4')
|
||||||
if tag.name == 'h1':
|
if h4 is None:
|
||||||
if 'The world this week' in text or 'The world this year' in text:
|
continue
|
||||||
index_started = True
|
section_title = self.tag_to_string(h4).strip()
|
||||||
if not index_started:
|
if not section_title:
|
||||||
|
continue
|
||||||
|
self.log('Found section: %s'%section_title)
|
||||||
|
articles = []
|
||||||
|
for h5 in section.findAll('h5'):
|
||||||
|
article_title = self.tag_to_string(h5).strip()
|
||||||
|
if not article_title:
|
||||||
continue
|
continue
|
||||||
text = string.capwords(text)
|
data = h5.findNextSibling(attrs={'class':'article'})
|
||||||
if text not in feeds.keys():
|
if data is None: continue
|
||||||
feeds[text] = []
|
a = data.find('a', href=True)
|
||||||
if text not in ans:
|
if a is None: continue
|
||||||
ans.append(text)
|
url = a['href']
|
||||||
key = text
|
if url.startswith('/'): url = 'http://www.economist.com'+url
|
||||||
continue
|
url += '/print'
|
||||||
if key is None:
|
article_title += ': %s'%self.tag_to_string(a).strip()
|
||||||
continue
|
articles.append({'title':article_title, 'url':url,
|
||||||
a = tag.find('a', href=True)
|
'description':'', 'date':''})
|
||||||
if a is not None:
|
if not articles:
|
||||||
url=a['href']
|
# We have last or first section
|
||||||
id_ = re.search(r'story_id=(\d+)', url).group(1)
|
for art in section.findAll(attrs={'class':'article'}):
|
||||||
url = 'http://www.economist.com/node/%s/print'%id_
|
a = art.find('a', href=True)
|
||||||
if url.startswith('Printer'):
|
if a is not None:
|
||||||
url = '/'+url
|
url = a['href']
|
||||||
if url.startswith('/'):
|
if url.startswith('/'): url = 'http://www.economist.com'+url
|
||||||
url = 'http://www.economist.com' + url
|
url += '/print'
|
||||||
try:
|
title = self.tag_to_string(a)
|
||||||
subtitle = tag.previousSibling.contents[0].contents[0]
|
if title:
|
||||||
text = subtitle + ': ' + text
|
articles.append({'title':title, 'url':url,
|
||||||
except:
|
'description':'', 'date':''})
|
||||||
pass
|
|
||||||
article = dict(title=text,
|
|
||||||
url = url,
|
|
||||||
description='', content='', date='')
|
|
||||||
feeds[key].append(article)
|
|
||||||
|
|
||||||
ans = [(key, feeds[key]) for key in ans if feeds.has_key(key)]
|
if articles:
|
||||||
|
if section_title not in feeds:
|
||||||
|
feeds[section_title] = []
|
||||||
|
feeds[section_title] += articles
|
||||||
|
|
||||||
|
ans = [(key, val) for key, val in feeds.iteritems()]
|
||||||
if not ans:
|
if not ans:
|
||||||
raise Exception('Could not find any articles. Has your subscription expired?')
|
raise Exception('Could not find any articles, either the '
|
||||||
|
'economist.com server is having trouble and you should '
|
||||||
|
'try later or the website format has changed and the '
|
||||||
|
'recipe needs to be updated.')
|
||||||
return ans
|
return ans
|
||||||
|
|
||||||
def eco_find_image_tables(self, soup):
|
def eco_find_image_tables(self, soup):
|
||||||
|
@ -1,3 +1,140 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
__license__ = 'GPL v3'
|
||||||
|
__copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
|
||||||
|
'''
|
||||||
|
economist.com
|
||||||
|
'''
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
from calibre.ebooks.BeautifulSoup import Tag, NavigableString
|
||||||
|
from collections import OrderedDict
|
||||||
|
|
||||||
|
import time, re
|
||||||
|
|
||||||
|
class Economist(BasicNewsRecipe):
|
||||||
|
|
||||||
|
title = 'The Economist'
|
||||||
|
language = 'en'
|
||||||
|
|
||||||
|
__author__ = "Kovid Goyal"
|
||||||
|
INDEX = 'http://www.economist.com/printedition'
|
||||||
|
description = ('Global news and current affairs from a European'
|
||||||
|
' perspective. Best downloaded on Friday mornings (GMT)')
|
||||||
|
extra_css = '.headline {font-size: x-large;} \n h2 { font-size: small; } \n h1 { font-size: medium; }'
|
||||||
|
oldest_article = 7.0
|
||||||
|
cover_url = 'http://media.economist.com/sites/default/files/imagecache/print-cover-thumbnail/print-covers/currentcoverus_large.jpg'
|
||||||
|
#cover_url = 'http://www.economist.com/images/covers/currentcoverus_large.jpg'
|
||||||
|
remove_tags = [
|
||||||
|
dict(name=['script', 'noscript', 'title', 'iframe', 'cf_floatingcontent']),
|
||||||
|
dict(attrs={'class':['dblClkTrk', 'ec-article-info',
|
||||||
|
'share_inline_header', 'related-items']}),
|
||||||
|
{'class': lambda x: x and 'share-links-header' in x},
|
||||||
|
]
|
||||||
|
keep_only_tags = [dict(id='ec-article-body')]
|
||||||
|
needs_subscription = False
|
||||||
|
no_stylesheets = True
|
||||||
|
preprocess_regexps = [(re.compile('</html>.*', re.DOTALL),
|
||||||
|
lambda x:'</html>')]
|
||||||
|
|
||||||
|
# economist.com has started throttling after about 60% of the total has
|
||||||
|
# downloaded with connection reset by peer (104) errors.
|
||||||
|
delay = 1
|
||||||
|
|
||||||
|
|
||||||
|
def parse_index(self):
|
||||||
|
try:
|
||||||
|
return self.economist_parse_index()
|
||||||
|
except:
|
||||||
|
raise
|
||||||
|
self.log.warn(
|
||||||
|
'Initial attempt to parse index failed, retrying in 30 seconds')
|
||||||
|
time.sleep(30)
|
||||||
|
return self.economist_parse_index()
|
||||||
|
|
||||||
|
def economist_parse_index(self):
|
||||||
|
soup = self.index_to_soup(self.INDEX)
|
||||||
|
div = soup.find('div', attrs={'class':'issue-image'})
|
||||||
|
if div is not None:
|
||||||
|
img = div.find('img', src=True)
|
||||||
|
if img is not None:
|
||||||
|
self.cover_url = img['src']
|
||||||
|
feeds = OrderedDict()
|
||||||
|
for section in soup.findAll(attrs={'class':lambda x: x and 'section' in
|
||||||
|
x}):
|
||||||
|
h4 = section.find('h4')
|
||||||
|
if h4 is None:
|
||||||
|
continue
|
||||||
|
section_title = self.tag_to_string(h4).strip()
|
||||||
|
if not section_title:
|
||||||
|
continue
|
||||||
|
self.log('Found section: %s'%section_title)
|
||||||
|
articles = []
|
||||||
|
for h5 in section.findAll('h5'):
|
||||||
|
article_title = self.tag_to_string(h5).strip()
|
||||||
|
if not article_title:
|
||||||
|
continue
|
||||||
|
data = h5.findNextSibling(attrs={'class':'article'})
|
||||||
|
if data is None: continue
|
||||||
|
a = data.find('a', href=True)
|
||||||
|
if a is None: continue
|
||||||
|
url = a['href']
|
||||||
|
if url.startswith('/'): url = 'http://www.economist.com'+url
|
||||||
|
url += '/print'
|
||||||
|
article_title += ': %s'%self.tag_to_string(a).strip()
|
||||||
|
articles.append({'title':article_title, 'url':url,
|
||||||
|
'description':'', 'date':''})
|
||||||
|
if not articles:
|
||||||
|
# We have last or first section
|
||||||
|
for art in section.findAll(attrs={'class':'article'}):
|
||||||
|
a = art.find('a', href=True)
|
||||||
|
if a is not None:
|
||||||
|
url = a['href']
|
||||||
|
if url.startswith('/'): url = 'http://www.economist.com'+url
|
||||||
|
url += '/print'
|
||||||
|
title = self.tag_to_string(a)
|
||||||
|
if title:
|
||||||
|
articles.append({'title':title, 'url':url,
|
||||||
|
'description':'', 'date':''})
|
||||||
|
|
||||||
|
if articles:
|
||||||
|
if section_title not in feeds:
|
||||||
|
feeds[section_title] = []
|
||||||
|
feeds[section_title] += articles
|
||||||
|
|
||||||
|
ans = [(key, val) for key, val in feeds.iteritems()]
|
||||||
|
if not ans:
|
||||||
|
raise Exception('Could not find any articles, either the '
|
||||||
|
'economist.com server is having trouble and you should '
|
||||||
|
'try later or the website format has changed and the '
|
||||||
|
'recipe needs to be updated.')
|
||||||
|
return ans
|
||||||
|
|
||||||
|
def eco_find_image_tables(self, soup):
|
||||||
|
for x in soup.findAll('table', align=['right', 'center']):
|
||||||
|
if len(x.findAll('font')) in (1,2) and len(x.findAll('img')) == 1:
|
||||||
|
yield x
|
||||||
|
|
||||||
|
def postprocess_html(self, soup, first):
|
||||||
|
body = soup.find('body')
|
||||||
|
for name, val in body.attrs:
|
||||||
|
del body[name]
|
||||||
|
|
||||||
|
for table in list(self.eco_find_image_tables(soup)):
|
||||||
|
caption = table.find('font')
|
||||||
|
img = table.find('img')
|
||||||
|
div = Tag(soup, 'div')
|
||||||
|
div['style'] = 'text-align:left;font-size:70%'
|
||||||
|
ns = NavigableString(self.tag_to_string(caption))
|
||||||
|
div.insert(0, ns)
|
||||||
|
div.insert(1, Tag(soup, 'br'))
|
||||||
|
del img['width']
|
||||||
|
del img['height']
|
||||||
|
img.extract()
|
||||||
|
div.insert(2, img)
|
||||||
|
table.replaceWith(div)
|
||||||
|
return soup
|
||||||
|
|
||||||
|
'''
|
||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
from calibre.utils.threadpool import ThreadPool, makeRequests
|
from calibre.utils.threadpool import ThreadPool, makeRequests
|
||||||
from calibre.ebooks.BeautifulSoup import Tag, NavigableString
|
from calibre.ebooks.BeautifulSoup import Tag, NavigableString
|
||||||
@ -16,11 +153,12 @@ class Economist(BasicNewsRecipe):
|
|||||||
' Much slower than the print edition based version.')
|
' Much slower than the print edition based version.')
|
||||||
extra_css = '.headline {font-size: x-large;} \n h2 { font-size: small; } \n h1 { font-size: medium; }'
|
extra_css = '.headline {font-size: x-large;} \n h2 { font-size: small; } \n h1 { font-size: medium; }'
|
||||||
oldest_article = 7.0
|
oldest_article = 7.0
|
||||||
cover_url = 'http://www.economist.com/images/covers/currentcoverus_large.jpg'
|
cover_url = 'http://media.economist.com/sites/default/files/imagecache/print-cover-thumbnail/print-covers/currentcoverus_large.jpg'
|
||||||
|
#cover_url = 'http://www.economist.com/images/covers/currentcoverus_large.jpg'
|
||||||
remove_tags = [
|
remove_tags = [
|
||||||
dict(name=['script', 'noscript', 'title', 'iframe', 'cf_floatingcontent']),
|
dict(name=['script', 'noscript', 'title', 'iframe', 'cf_floatingcontent']),
|
||||||
dict(attrs={'class':['dblClkTrk', 'ec-article-info',
|
dict(attrs={'class':['dblClkTrk', 'ec-article-info',
|
||||||
'share_inline_header']}),
|
'share_inline_header', 'related-items']}),
|
||||||
{'class': lambda x: x and 'share-links-header' in x},
|
{'class': lambda x: x and 'share-links-header' in x},
|
||||||
]
|
]
|
||||||
keep_only_tags = [dict(id='ec-article-body')]
|
keep_only_tags = [dict(id='ec-article-body')]
|
||||||
@ -144,3 +282,5 @@ class Economist(BasicNewsRecipe):
|
|||||||
div.insert(2, img)
|
div.insert(2, img)
|
||||||
table.replaceWith(div)
|
table.replaceWith(div)
|
||||||
return soup
|
return soup
|
||||||
|
'''
|
||||||
|
|
||||||
|
58
recipes/el_colombiano.recipe
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class AdvancedUserRecipe1311790237(BasicNewsRecipe):
|
||||||
|
title = u'Periódico El Colombiano'
|
||||||
|
language = 'es_CO'
|
||||||
|
__author__ = 'BIGO-CAVA'
|
||||||
|
cover_url = 'http://www.elcolombiano.com/images/logoElColombiano348x46.gif'
|
||||||
|
remove_tags_before = dict(id='contenidoArt')
|
||||||
|
remove_tags_after = dict(id='enviaTips')
|
||||||
|
remove_tags_after = dict(id='zonaPata')
|
||||||
|
oldest_article = 1
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
remove_javascript = True
|
||||||
|
no_stylesheets = True
|
||||||
|
use_embedded_content = False
|
||||||
|
remove_empty_feeds = True
|
||||||
|
masthead_url = 'http://www.elcolombiano.com/images/logoElColombiano348x46.gif'
|
||||||
|
publication_type = 'newspaper'
|
||||||
|
|
||||||
|
extra_css = """
|
||||||
|
p{text-align: justify; font-size: 100%}
|
||||||
|
body{ text-align: left; font-size:100% }
|
||||||
|
h1{font-family: sans-serif; font-size:150%; font-weight:bold; text-align: justify; }
|
||||||
|
h3{font-family: sans-serif; font-size:100%; font-style: italic; text-align: justify; }
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
feeds = [(u'Portada', u'http://www.elcolombiano.com/rss/portada.xml'),
|
||||||
|
(u'Antioquia', u'http://www.elcolombiano.com/rss/Antioquia.xml'),
|
||||||
|
(u'Colombia', u'http://www.elcolombiano.com/rss/Colombia.xml'),
|
||||||
|
(u'Economia', u'http://www.elcolombiano.com/rss/Economia.xml'),
|
||||||
|
(u'Internacional', u'http://www.elcolombiano.com/rss/Internacional.xml'),
|
||||||
|
(u'Politica', u'http://www.elcolombiano.com/rss/Politica.xml'),
|
||||||
|
(u'Cultura', u'http://www.elcolombiano.com/rss/Cultura.xml'),
|
||||||
|
(u'Entretenimiento', u'http://www.elcolombiano.com/rss/Farandula.xml'),
|
||||||
|
(u'Tecnologia', u'http://www.elcolombiano.com/rss/Tecnologia.xml'),
|
||||||
|
(u'Television', u'http://www.elcolombiano.com/rss/Television.xml'),
|
||||||
|
(u'Vida y Sociedad', u'http://www.elcolombiano.com/rss/Vida.xml'),
|
||||||
|
(u'Turismo', u'http://www.elcolombiano.com/rss/Turismo.xm'),
|
||||||
|
(u'Salud', u'http://www.elcolombiano.com/rss/Salud.xml'),
|
||||||
|
(u'Ciencia', u'http://www.elcolombiano.com/rss/Ciencia.xml')]
|
||||||
|
|
||||||
|
remove_tags = [dict(name='div', attrs={'class':'objetosRelacionados'}),
|
||||||
|
dict(name='div', attrs={'class':'notasRelacionadas contenedor'}),
|
||||||
|
dict(name='div', attrs={'class':'comentarios'}),
|
||||||
|
dict(name='div', attrs={'class':'mapaDelSitio'}),
|
||||||
|
dict(name='div', attrs={'class':'creditos'}),
|
||||||
|
dict(name='div', attrs={'class':'votos'}),
|
||||||
|
dict(name='div', attrs={'class':'divopt2'}),
|
||||||
|
dict(name='div', attrs={'class':'comentarios'}),
|
||||||
|
dict(name='div', attrs={'class':'pestanasLateral'}),
|
||||||
|
dict(name='div', attrs={'class':'resumenSeccion'}),
|
||||||
|
dict(name='div', attrs={'class':'zonaComercial'}),
|
||||||
|
dict(name='div', attrs={'id':'zonaPata'})]
|
40
recipes/el_mostrador.recipe
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class AdvancedUserRecipe1313609361(BasicNewsRecipe):
|
||||||
|
news = True
|
||||||
|
title = u'El Mostrador'
|
||||||
|
__author__ = 'Alex Mitrani'
|
||||||
|
description = u'Chilean online newspaper'
|
||||||
|
publisher = u'La Plaza S.A.'
|
||||||
|
category = 'news, rss'
|
||||||
|
oldest_article = 7
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
summary_length = 1000
|
||||||
|
language = 'es_CL'
|
||||||
|
remove_javascript = True
|
||||||
|
no_stylesheets = True
|
||||||
|
use_embedded_content = False
|
||||||
|
remove_empty_feeds = True
|
||||||
|
masthead_url = 'http://www.elmostrador.cl/assets/img/logo-elmostrador-m.jpg'
|
||||||
|
remove_tags_before = dict(name='div', attrs={'class':'news-heading cf'})
|
||||||
|
remove_tags_after = dict(name='div', attrs={'class':'footer-actions cf'})
|
||||||
|
remove_tags = [dict(name='div', attrs={'class':'footer-actions cb cf'})
|
||||||
|
,dict(name='div', attrs={'class':'news-aside fl'})
|
||||||
|
,dict(name='div', attrs={'class':'footer-actions cf'})
|
||||||
|
,dict(name='div', attrs={'class':'user-bar','id':'top'})
|
||||||
|
,dict(name='div', attrs={'class':'indicators'})
|
||||||
|
,dict(name='div', attrs={'id':'header'})
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
feeds = [(u'Temas Destacados'
|
||||||
|
, u'http://www.elmostrador.cl/destacado/feed/')
|
||||||
|
, (u'El D\xeda', u'http://www.elmostrador.cl/dia/feed/')
|
||||||
|
, (u'Pa\xeds', u'http://www.elmostrador.cl/noticias/pais/feed/')
|
||||||
|
, (u'Mundo', u'http://www.elmostrador.cl/noticias/mundo/feed/')
|
||||||
|
, (u'Negocios', u'http://www.elmostrador.cl/noticias/negocios/feed/')
|
||||||
|
, (u'Cultura', u'http://www.elmostrador.cl/noticias/cultura/feed/')
|
||||||
|
, (u'Vida en L\xednea', u'http://www.elmostrador.cl/vida-en-linea/feed/')
|
||||||
|
, (u'Opini\xf3n & Blogs', u'http://www.elmostrador.cl/opinion/feed/')
|
||||||
|
]
|
||||||
|
|
53
recipes/el_tiempo.recipe
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class ColombiaElTiempo02(BasicNewsRecipe):
|
||||||
|
title = u'Periódico el Tiempo'
|
||||||
|
language = 'es_CO'
|
||||||
|
__author__ = 'BIGO-CAVA'
|
||||||
|
cover_url = 'http://www.eltiempo.com/media/css/images/logo_footer.png'
|
||||||
|
remove_tags_before = dict(id='fb-root')
|
||||||
|
remove_tags_after = [dict(name='div', attrs={'class':'modulo reporte'})]
|
||||||
|
keep_only_tags = [dict(name='div', id='contenidoArt')]
|
||||||
|
remove_tags = [dict(name='div', attrs={'class':'social-media'}),
|
||||||
|
dict(name='div', attrs={'class':'caja-facebook'}),
|
||||||
|
dict(name='div', attrs={'class':'caja-twitter'}),
|
||||||
|
dict(name='div', attrs={'class':'caja-buzz'}),
|
||||||
|
dict(name='div', attrs={'class':'ico-mail2'}),
|
||||||
|
dict(name='div', attrs={'id':'caja-instapaper'}),
|
||||||
|
dict(name='div', attrs={'class':'modulo herramientas'})]
|
||||||
|
oldest_article = 2
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
remove_javascript = True
|
||||||
|
no_stylesheets = True
|
||||||
|
use_embedded_content = False
|
||||||
|
remove_empty_feeds = True
|
||||||
|
masthead_url = 'http://www.eltiempo.com/media/css/images/logo_footer.png'
|
||||||
|
publication_type = 'newspaper'
|
||||||
|
|
||||||
|
extra_css = """
|
||||||
|
p{text-align: justify; font-size: 100%}
|
||||||
|
body{ text-align: left; font-size:100% }
|
||||||
|
h1{font-family: sans-serif; font-size:150%; font-weight:bold; text-align: justify; }
|
||||||
|
h3{font-family: sans-serif; font-size:100%; font-style: italic; text-align: justify; }
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
feeds = [(u'Colombia', u'http://www.eltiempo.com/colombia/rss.xml'),
|
||||||
|
(u'Medellin', u'http://www.eltiempo.com/colombia/medellin/rss.xml'),
|
||||||
|
(u'Economia', u'http://www.eltiempo.com/economia/rss.xml'),
|
||||||
|
(u'Deportes', u'http://www.eltiempo.com/deportes/rss.xml'),
|
||||||
|
(u'Mundo', u'http://www.eltiempo.com/mundo/rss.xml'),
|
||||||
|
(u'Gente', u'http://www.eltiempo.com/gente/rss.xml'),
|
||||||
|
(u'Vida de Hoy', u'http://www.eltiempo.com/vida-de-hoy/rss.xml'),
|
||||||
|
(u'EEUU', u'http://www.eltiempo.com/mundo/estados-unidos/rss.xml'),
|
||||||
|
(u'LatinoAmerica', u'http://www.eltiempo.com/mundo/latinoamerica/rss.xml'),
|
||||||
|
(u'Europa', u'http://www.eltiempo.com/mundo/europa/rss.xml'),
|
||||||
|
(u'Medio Oriente', u'http://www.eltiempo.com/mundo/medio-oriente/rss.xml'),
|
||||||
|
(u'Vive in Medellin', u'http://medellin.vive.in/medellin/rss.xml'),
|
||||||
|
(u'Don Juan', u'http://www.revistadonjuan.com/feedrss/'),
|
||||||
|
(u'Alo', u'http://www.eltiempo.com/alo/rss.xml')]
|
61
recipes/elclubdelebook.recipe
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
|
||||||
|
__license__ = 'GPL v3'
|
||||||
|
__copyright__ = '2011, Darko Miletic <darko.miletic at gmail.com>'
|
||||||
|
'''
|
||||||
|
www.clubdelebook.com
|
||||||
|
'''
|
||||||
|
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class ElClubDelEbook(BasicNewsRecipe):
|
||||||
|
title = 'El club del ebook'
|
||||||
|
__author__ = 'Darko Miletic'
|
||||||
|
description = 'El Club del eBook, es la primera fuente de informacion sobre ebooks de Argentina. Aca vas a encontrar noticias, tips, tutoriales, recursos y opiniones sobre el mundo de los libros electronicos.'
|
||||||
|
tags = 'ebook, libro electronico, e-book, ebooks, libros electronicos, e-books'
|
||||||
|
oldest_article = 7
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
language = 'es_AR'
|
||||||
|
encoding = 'utf-8'
|
||||||
|
no_stylesheets = True
|
||||||
|
use_embedded_content = True
|
||||||
|
publication_type = 'blog'
|
||||||
|
masthead_url = 'http://dl.dropbox.com/u/2845131/elclubdelebook.png'
|
||||||
|
extra_css = """
|
||||||
|
body{font-family: Arial,Helvetica,sans-serif}
|
||||||
|
img{ margin-bottom: 0.8em;
|
||||||
|
border: 1px solid #333333;
|
||||||
|
padding: 4px; display: block
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
|
conversion_options = {
|
||||||
|
'comment' : description
|
||||||
|
, 'tags' : tags
|
||||||
|
, 'publisher': title
|
||||||
|
, 'language' : language
|
||||||
|
}
|
||||||
|
|
||||||
|
remove_tags = [dict(attrs={'id':'crp_related'})]
|
||||||
|
remove_tags_after = dict(attrs={'id':'crp_related'})
|
||||||
|
|
||||||
|
feeds = [(u'Articulos', u'http://feeds.feedburner.com/ElClubDelEbook')]
|
||||||
|
|
||||||
|
def preprocess_html(self, soup):
|
||||||
|
for item in soup.findAll(style=True):
|
||||||
|
del item['style']
|
||||||
|
for item in soup.findAll('a'):
|
||||||
|
limg = item.find('img')
|
||||||
|
if item.string is not None:
|
||||||
|
str = item.string
|
||||||
|
item.replaceWith(str)
|
||||||
|
else:
|
||||||
|
if limg:
|
||||||
|
item.name = 'div'
|
||||||
|
item.attrs = []
|
||||||
|
else:
|
||||||
|
str = self.tag_to_string(item)
|
||||||
|
item.replaceWith(str)
|
||||||
|
for item in soup.findAll('img'):
|
||||||
|
if not item.has_key('alt'):
|
||||||
|
item['alt'] = 'image'
|
||||||
|
return soup
|
@ -1,72 +1,59 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
__license__ = 'GPL v3'
|
__license__ = 'GPL v3'
|
||||||
__copyright__ = '2008, Darko Miletic <darko.miletic at gmail.com>'
|
__copyright__ = '2008-2011, Darko Miletic <darko.miletic at gmail.com>'
|
||||||
'''
|
'''
|
||||||
cronista.com
|
www.cronista.com
|
||||||
'''
|
'''
|
||||||
|
|
||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
class ElCronista(BasicNewsRecipe):
|
class Pagina12(BasicNewsRecipe):
|
||||||
title = 'El Cronista'
|
title = 'El Cronista Comercial'
|
||||||
__author__ = 'Darko Miletic'
|
__author__ = 'Darko Miletic'
|
||||||
description = 'Noticias de Argentina'
|
description = 'El Cronista Comercial es el Diario economico-politico mas valorado. Es la fuente mas confiable de informacion en temas de economia, finanzas y negocios enmarcados politicamente.'
|
||||||
|
publisher = 'Cronista.com'
|
||||||
|
category = 'news, politics, economy, finances, Argentina'
|
||||||
oldest_article = 2
|
oldest_article = 2
|
||||||
language = 'es_AR'
|
max_articles_per_feed = 200
|
||||||
|
|
||||||
max_articles_per_feed = 100
|
|
||||||
no_stylesheets = True
|
no_stylesheets = True
|
||||||
|
encoding = 'utf8'
|
||||||
use_embedded_content = False
|
use_embedded_content = False
|
||||||
encoding = 'cp1252'
|
language = 'es_AR'
|
||||||
|
remove_empty_feeds = True
|
||||||
|
publication_type = 'newspaper'
|
||||||
|
masthead_url = 'http://www.cronista.com/export/sites/diarioelcronista/arte/header-logo.gif'
|
||||||
|
extra_css = """
|
||||||
|
body{font-family: Arial,Helvetica,sans-serif }
|
||||||
|
h2{font-family: Georgia,"Times New Roman",Times,serif }
|
||||||
|
img{margin-bottom: 0.4em; display:block}
|
||||||
|
.nom{font-weight: bold; vertical-align: baseline}
|
||||||
|
.autor-cfoto{border-bottom: 1px solid #D2D2D2;
|
||||||
|
border-top: 1px solid #D2D2D2;
|
||||||
|
display: inline-block;
|
||||||
|
margin: 0 10px 10px 0;
|
||||||
|
padding: 10px;
|
||||||
|
width: 210px}
|
||||||
|
.under{font-weight: bold}
|
||||||
|
.time{font-size: small}
|
||||||
|
"""
|
||||||
|
|
||||||
html2lrf_options = [
|
conversion_options = {
|
||||||
'--comment' , description
|
'comment' : description
|
||||||
, '--category' , 'news, Argentina'
|
, 'tags' : category
|
||||||
, '--publisher' , title
|
, 'publisher' : publisher
|
||||||
]
|
, 'language' : language
|
||||||
|
}
|
||||||
|
|
||||||
keep_only_tags = [
|
remove_tags = [
|
||||||
dict(name='table', attrs={'width':'100%' })
|
dict(name=['meta','link','base','iframe','object','embed'])
|
||||||
,dict(name='h1' , attrs={'class':'Arialgris16normal'})
|
,dict(attrs={'class':['user-tools','tabsmedia']})
|
||||||
]
|
]
|
||||||
|
remove_attributes = ['lang']
|
||||||
|
remove_tags_before = dict(attrs={'class':'top'})
|
||||||
|
remove_tags_after = dict(attrs={'class':'content-nota'})
|
||||||
|
feeds = [(u'Ultimas noticias', u'http://www.cronista.com/rss.html')]
|
||||||
|
|
||||||
remove_tags = [dict(name='a', attrs={'class':'Arialazul12'})]
|
|
||||||
|
|
||||||
feeds = [
|
|
||||||
(u'Economia' , u'http://www.cronista.com/adjuntos/8/rss/Economia_EI.xml' )
|
|
||||||
,(u'Negocios' , u'http://www.cronista.com/adjuntos/8/rss/negocios_EI.xml' )
|
|
||||||
,(u'Ultimo momento' , u'http://www.cronista.com/adjuntos/8/rss/ultimo_momento.xml' )
|
|
||||||
,(u'Finanzas y Mercados' , u'http://www.cronista.com/adjuntos/8/rss/Finanzas_Mercados_EI.xml' )
|
|
||||||
,(u'Financial Times' , u'http://www.cronista.com/adjuntos/8/rss/FT_EI.xml' )
|
|
||||||
,(u'Opinion edicion impresa' , u'http://www.cronista.com/adjuntos/8/rss/opinion_edicion_impresa.xml' )
|
|
||||||
,(u'Socialmente Responsables', u'http://www.cronista.com/adjuntos/8/rss/Socialmente_Responsables.xml')
|
|
||||||
,(u'Asuntos Legales' , u'http://www.cronista.com/adjuntos/8/rss/asuntoslegales.xml' )
|
|
||||||
,(u'IT Business' , u'http://www.cronista.com/adjuntos/8/rss/itbusiness.xml' )
|
|
||||||
,(u'Management y RR.HH.' , u'http://www.cronista.com/adjuntos/8/rss/management.xml' )
|
|
||||||
,(u'Inversiones Personales' , u'http://www.cronista.com/adjuntos/8/rss/inversionespersonales.xml' )
|
|
||||||
]
|
|
||||||
|
|
||||||
def print_version(self, url):
|
|
||||||
main, sep, rest = url.partition('.com/notas/')
|
|
||||||
article_id, lsep, rrest = rest.partition('-')
|
|
||||||
return 'http://www.cronista.com/interior/index.php?p=imprimir_nota&idNota=' + article_id
|
|
||||||
|
|
||||||
def preprocess_html(self, soup):
|
def preprocess_html(self, soup):
|
||||||
mtag = '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">'
|
for item in soup.findAll(style=True):
|
||||||
soup.head.insert(0,mtag)
|
del item['style']
|
||||||
soup.head.base.extract()
|
|
||||||
htext = soup.find('h1',attrs={'class':'Arialgris16normal'})
|
|
||||||
htext.name = 'p'
|
|
||||||
soup.prettify()
|
|
||||||
return soup
|
return soup
|
||||||
|
|
||||||
def get_cover_url(self):
|
|
||||||
cover_url = None
|
|
||||||
index = 'http://www.cronista.com/contenidos/'
|
|
||||||
soup = self.index_to_soup(index + 'ee.html')
|
|
||||||
link_item = soup.find('a',attrs={'href':"javascript:Close()"})
|
|
||||||
if link_item:
|
|
||||||
cover_url = index + link_item.img['src']
|
|
||||||
return cover_url
|
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ class ElMundo(BasicNewsRecipe):
|
|||||||
no_stylesheets = True
|
no_stylesheets = True
|
||||||
use_embedded_content = False
|
use_embedded_content = False
|
||||||
encoding = 'iso8859_15'
|
encoding = 'iso8859_15'
|
||||||
language = 'es_ES'
|
language = 'es'
|
||||||
masthead_url = 'http://estaticos03.elmundo.es/elmundo/iconos/v4.x/v4.01/bg_h1.png'
|
masthead_url = 'http://estaticos03.elmundo.es/elmundo/iconos/v4.x/v4.01/bg_h1.png'
|
||||||
publication_type = 'newspaper'
|
publication_type = 'newspaper'
|
||||||
extra_css = """
|
extra_css = """
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
__license__ = 'GPL v3'
|
__license__ = 'GPL v3'
|
||||||
__copyright__ = '2010, Darko Miletic <darko.miletic at gmail.com>'
|
__copyright__ = '2010-2011, Darko Miletic <darko.miletic at gmail.com>'
|
||||||
'''
|
'''
|
||||||
www.eluniversal.com
|
www.eluniversal.com
|
||||||
'''
|
'''
|
||||||
@ -15,12 +15,20 @@ class ElUniversal(BasicNewsRecipe):
|
|||||||
max_articles_per_feed = 100
|
max_articles_per_feed = 100
|
||||||
no_stylesheets = True
|
no_stylesheets = True
|
||||||
use_embedded_content = False
|
use_embedded_content = False
|
||||||
|
remove_empty_feeds = True
|
||||||
encoding = 'cp1252'
|
encoding = 'cp1252'
|
||||||
publisher = 'El Universal'
|
publisher = 'El Universal'
|
||||||
category = 'news, Caracas, Venezuela, world'
|
category = 'news, Caracas, Venezuela, world'
|
||||||
language = 'es_VE'
|
language = 'es_VE'
|
||||||
|
publication_type = 'newspaper'
|
||||||
cover_url = strftime('http://static.eluniversal.com/%Y/%m/%d/portada.jpg')
|
cover_url = strftime('http://static.eluniversal.com/%Y/%m/%d/portada.jpg')
|
||||||
|
extra_css = """
|
||||||
|
.txt60{font-family: Tahoma,Geneva,sans-serif; font-size: small}
|
||||||
|
.txt29{font-family: Tahoma,Geneva,sans-serif; font-size: small; color: gray}
|
||||||
|
.txt38{font-family: Georgia,"Times New Roman",Times,serif; font-size: xx-large}
|
||||||
|
.txt35{font-family: Georgia,"Times New Roman",Times,serif; font-size: large}
|
||||||
|
body{font-family: Verdana,Arial,Helvetica,sans-serif}
|
||||||
|
"""
|
||||||
conversion_options = {
|
conversion_options = {
|
||||||
'comments' : description
|
'comments' : description
|
||||||
,'tags' : category
|
,'tags' : category
|
||||||
@ -28,10 +36,11 @@ class ElUniversal(BasicNewsRecipe):
|
|||||||
,'publisher' : publisher
|
,'publisher' : publisher
|
||||||
}
|
}
|
||||||
|
|
||||||
keep_only_tags = [dict(name='div', attrs={'class':'Nota'})]
|
remove_tags_before=dict(attrs={'class':'header-print MB10'})
|
||||||
|
remove_tags_after= dict(attrs={'id':'SizeText'})
|
||||||
remove_tags = [
|
remove_tags = [
|
||||||
dict(name=['object','link','script','iframe'])
|
dict(name=['object','link','script','iframe','meta'])
|
||||||
,dict(name='div',attrs={'class':'Herramientas'})
|
,dict(attrs={'class':'header-print MB10'})
|
||||||
]
|
]
|
||||||
|
|
||||||
feeds = [
|
feeds = [
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
__license__ = 'GPL v3'
|
__license__ = 'GPL v3'
|
||||||
__copyright__ = '2008 - 2009, Darko Miletic <darko.miletic at gmail.com>'
|
__copyright__ = 'Copyright 2011 Starson17'
|
||||||
'''
|
'''
|
||||||
engadget.com
|
engadget.com
|
||||||
'''
|
'''
|
||||||
@ -10,13 +10,28 @@ from calibre.web.feeds.news import BasicNewsRecipe
|
|||||||
|
|
||||||
class Engadget(BasicNewsRecipe):
|
class Engadget(BasicNewsRecipe):
|
||||||
title = u'Engadget'
|
title = u'Engadget'
|
||||||
__author__ = 'Darko Miletic'
|
__author__ = 'Starson17'
|
||||||
|
__version__ = 'v1.00'
|
||||||
|
__date__ = '02, July 2011'
|
||||||
description = 'Tech news'
|
description = 'Tech news'
|
||||||
language = 'en'
|
language = 'en'
|
||||||
oldest_article = 7
|
oldest_article = 7
|
||||||
max_articles_per_feed = 100
|
max_articles_per_feed = 100
|
||||||
no_stylesheets = True
|
no_stylesheets = True
|
||||||
use_embedded_content = True
|
use_embedded_content = False
|
||||||
|
remove_javascript = True
|
||||||
|
remove_empty_feeds = True
|
||||||
|
|
||||||
feeds = [ (u'Posts', u'http://www.engadget.com/rss.xml')]
|
keep_only_tags = [dict(name='div', attrs={'class':['post_content permalink ','post_content permalink alt-post-full']})]
|
||||||
|
remove_tags = [dict(name='div', attrs={'class':['filed_under','post_footer']})]
|
||||||
|
remove_tags_after = [dict(name='div', attrs={'class':['post_footer']})]
|
||||||
|
|
||||||
|
feeds = [(u'Posts', u'http://www.engadget.com/rss.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;}
|
||||||
|
'''
|
||||||
|
|
||||||
|
28
recipes/escrevinhador.recipe
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class Escrevinhador(BasicNewsRecipe):
|
||||||
|
title = 'Blog Escrevinhador'
|
||||||
|
__author__ = 'Diniz Bortolotto'
|
||||||
|
description = 'Posts do Blog Escrevinhador'
|
||||||
|
publisher = 'Rodrigo Viana'
|
||||||
|
oldest_article = 5
|
||||||
|
max_articles_per_feed = 20
|
||||||
|
category = 'news, politics, Brazil'
|
||||||
|
language = 'pt_BR'
|
||||||
|
publication_type = 'news and politics portal'
|
||||||
|
use_embedded_content = False
|
||||||
|
no_stylesheets = True
|
||||||
|
remove_javascript = True
|
||||||
|
|
||||||
|
feeds = [(u'Blog Escrevinhador', u'http://www.rodrigovianna.com.br/feed')]
|
||||||
|
|
||||||
|
reverse_article_order = True
|
||||||
|
|
||||||
|
remove_tags_after = [dict(name='div', attrs={'class':'text'})]
|
||||||
|
|
||||||
|
remove_tags = [
|
||||||
|
dict(id='header'),
|
||||||
|
dict(name='p', attrs={'class':'tags'}),
|
||||||
|
dict(name='div', attrs={'class':'sociable'})
|
||||||
|
]
|
||||||
|
|
@ -1,5 +1,4 @@
|
|||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
class AdvancedUserRecipe1303841067(BasicNewsRecipe):
|
class AdvancedUserRecipe1303841067(BasicNewsRecipe):
|
||||||
|
|
||||||
title = u'Express.de'
|
title = u'Express.de'
|
||||||
@ -12,7 +11,6 @@ class AdvancedUserRecipe1303841067(BasicNewsRecipe):
|
|||||||
extra_css = '''
|
extra_css = '''
|
||||||
h2{font-family:Arial,Helvetica,sans-serif; font-size: x-small;}
|
h2{font-family:Arial,Helvetica,sans-serif; font-size: x-small;}
|
||||||
h1{ font-family:Arial,Helvetica,sans-serif; font-size:x-large; font-weight:bold;}
|
h1{ font-family:Arial,Helvetica,sans-serif; font-size:x-large; font-weight:bold;}
|
||||||
|
|
||||||
'''
|
'''
|
||||||
remove_javascript = True
|
remove_javascript = True
|
||||||
remove_tags_befor = [dict(name='div', attrs={'class':'Datum'})]
|
remove_tags_befor = [dict(name='div', attrs={'class':'Datum'})]
|
||||||
@ -25,6 +23,7 @@ class AdvancedUserRecipe1303841067(BasicNewsRecipe):
|
|||||||
dict(id='Logo'),
|
dict(id='Logo'),
|
||||||
dict(id='MainLinkSpacer'),
|
dict(id='MainLinkSpacer'),
|
||||||
dict(id='MainLinks'),
|
dict(id='MainLinks'),
|
||||||
|
dict(id='ContainerPfad'), #neu
|
||||||
dict(title='Diese Seite Bookmarken'),
|
dict(title='Diese Seite Bookmarken'),
|
||||||
|
|
||||||
dict(name='span'),
|
dict(name='span'),
|
||||||
@ -44,7 +43,8 @@ class AdvancedUserRecipe1303841067(BasicNewsRecipe):
|
|||||||
dict(name='div', attrs={'class':'HeaderSearch'}),
|
dict(name='div', attrs={'class':'HeaderSearch'}),
|
||||||
dict(name='div', attrs={'class':'sbutton'}),
|
dict(name='div', attrs={'class':'sbutton'}),
|
||||||
dict(name='div', attrs={'class':'active'}),
|
dict(name='div', attrs={'class':'active'}),
|
||||||
|
dict(name='div', attrs={'class':'MoreNews'}), #neu
|
||||||
|
dict(name='div', attrs={'class':'ContentBoxSubline'}) #neu
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@ -68,7 +68,5 @@ class AdvancedUserRecipe1303841067(BasicNewsRecipe):
|
|||||||
(u'Fortuna D~Dorf', u'http://www.express.de/sport/fussball/fortuna/-/3292/3292/-/view/asFeed/-/index.xml'),
|
(u'Fortuna D~Dorf', u'http://www.express.de/sport/fussball/fortuna/-/3292/3292/-/view/asFeed/-/index.xml'),
|
||||||
(u'Basketball News', u'http://www.express.de/sport/basketball/-/3190/3190/-/view/asFeed/-/index.xml'),
|
(u'Basketball News', u'http://www.express.de/sport/basketball/-/3190/3190/-/view/asFeed/-/index.xml'),
|
||||||
(u'Big Brother', u'http://www.express.de/news/promi-show/big-brother/-/2402/2402/-/view/asFeed/-/index.xml'),
|
(u'Big Brother', u'http://www.express.de/news/promi-show/big-brother/-/2402/2402/-/view/asFeed/-/index.xml'),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
]
|
|
||||||
|
113
recipes/fairbanks_daily.recipe
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class FairbanksDailyNewsminer(BasicNewsRecipe):
|
||||||
|
title = u'Fairbanks Daily News-miner'
|
||||||
|
__author__ = 'Roger'
|
||||||
|
oldest_article = 7
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
|
||||||
|
description = 'The voice of interior Alaska since 1903'
|
||||||
|
publisher = 'http://www.newsminer.com/'
|
||||||
|
category = 'news, Alaska, Fairbanks'
|
||||||
|
language = 'en'
|
||||||
|
|
||||||
|
# Make article titles, author and date bold, italic or small font.
|
||||||
|
# http://assets.matchbin.com/sites/635/stylesheets/newsminer.com.css
|
||||||
|
# (signature_line contains date, views, comments)
|
||||||
|
extra_css = '''
|
||||||
|
.story_item_headline { font-size: medium; font-weight: bold; }
|
||||||
|
.story_item_author { font-size: small; font-style:italic; }
|
||||||
|
.signature_line { font-size: small; }
|
||||||
|
'''
|
||||||
|
|
||||||
|
remove_javascript = True
|
||||||
|
use_embedded_content = False
|
||||||
|
no_stylesheets = True
|
||||||
|
language = 'en'
|
||||||
|
encoding = 'utf8'
|
||||||
|
conversion_options = {'linearize_tables':True}
|
||||||
|
|
||||||
|
# TODO: The News-miner cover image seems a bit small. Can this be enlarged by 10-30%?
|
||||||
|
masthead_url = 'http://d2uh5w9wm14i0w.cloudfront.net/sites/635/assets/top_masthead_-_menu_pic.jpg'
|
||||||
|
|
||||||
|
|
||||||
|
# In order to omit seeing number of views, number of posts and the pipe
|
||||||
|
# symbol for divider after the title and date of the article, a regex or
|
||||||
|
# manual processing is needed to get just the "story_item_date updated"
|
||||||
|
# (which contains the date). Everything else on this line is pretty much not needed.
|
||||||
|
#
|
||||||
|
# Currently, you will see the following:
|
||||||
|
# | Aug 24, 2011 | 654 views | 6 | |
|
||||||
|
# (ie. 6 comments)
|
||||||
|
#
|
||||||
|
# HTML line containing story_item_date:
|
||||||
|
# <div class="signature_line"><span title="2011-08-22T23:37:14Z" class="story_item_date updated">Aug 22, 2011</span> | 2370 views | 52 <a href="/pages/full_story/push?article-Officials+tout+new+South+Cushman+homeless+living+facility%20&id=15183753#comments_15183753"><img alt="52 comments" class="dont_touch_me" src="http://d2uh5w9wm14i0w.cloudfront.net/images/comments-icon.gif" title="52 comments" /></a> | <span id="number_recommendations_15183753" class="number_recommendations">9</span> <a href="#1" id="recommend_link_15183753" onclick="Element.remove('recommend_link_15183753'); new Ajax.Request('/community/content/recommend/15183753', {asynchronous:true, evalScripts:true}); return false;"><img alt="9 recommendations" class="dont_touch_me" src="http://d2uh5w9wm14i0w.cloudfront.net/images/thumbs-up-icon.gif" title="9 recommendations" /></a> | <a href="#1" onclick="$j.facebox({ajax: '/community/content/email_friend_pane/15183753'}); return false;"><span style="position: relative;"><img alt="email to a friend" class="dont_touch_me" src="http://d2uh5w9wm14i0w.cloudfront.net/images/email-this.gif" title="email to a friend" /></span></a> | <span><a href="/printer_friendly/15183753" target="_blank"><img alt="print" class="dont_touch_me" src="http://d2uh5w9wm14i0w.cloudfront.net/images/print_icon.gif" title="print" /></a></span><span id="email_content_message_15183753" class="signature_email_message"></span></div>
|
||||||
|
|
||||||
|
# The following was suggested, but it looks like I also need to define self & soup
|
||||||
|
# (as well as bring in extra soup depends?)
|
||||||
|
#date = self.tag_to_string(soup.find('span', attrs={'class':'story_item_date updated'}))
|
||||||
|
|
||||||
|
#preprocess_regexps = [(re.compile(r'<span[^>]*addthis_separator*>'), lambda match: '') ]
|
||||||
|
#preprocess_regexps = [(re.compile(r'span class="addthis_separator">|</span>'), lambda match: '') ]
|
||||||
|
|
||||||
|
#preprocess_regexps = [
|
||||||
|
# (re.compile(r'<start>.*?<end>', re.IGNORECASE | re.DOTALL), lambda match : ''),
|
||||||
|
# ]
|
||||||
|
|
||||||
|
#def get_browser(self):
|
||||||
|
#def preprocess_html(soup, first_fetch):
|
||||||
|
# date = self.tag_to_string(soup.find('span', attrs={'class':'story_item_date updated'}))
|
||||||
|
# return
|
||||||
|
|
||||||
|
#preprocess_regexps = [(re.compile(r' |.*?', re.DOTALL), lambda m: '')]
|
||||||
|
|
||||||
|
|
||||||
|
keep_only_tags = [
|
||||||
|
#dict(name='div', attrs={'class':'hnews hentry item'}),
|
||||||
|
dict(name='div', attrs={'class':'story_item_headline entry-title'}),
|
||||||
|
#dict(name='div', attrs={'class':'story_item_author'}),
|
||||||
|
#dict(name='span', attrs={'class':'story_item_date updated'}),
|
||||||
|
#dict(name='div', attrs={'class':'story_item_author'}),
|
||||||
|
dict(name='div', attrs={'class':'full_story'})
|
||||||
|
]
|
||||||
|
|
||||||
|
remove_tags = [
|
||||||
|
# Try getting rid of some signature_line (date line) stuff
|
||||||
|
#dict(name='img', attrs={'alt'}),
|
||||||
|
dict(name='img', attrs={'class':'dont_touch_me'}),
|
||||||
|
dict(name='span', attrs={'class':'number_recommendations'}),
|
||||||
|
#dict(name='div', attrs={'class':'signature_line'}),
|
||||||
|
|
||||||
|
# Removes div within <!-- AddThis Button BEGIN --> <!-- AddThis Button END -->
|
||||||
|
dict(name='div', attrs={'class':'addthis_toolbox addthis_default_style'}),
|
||||||
|
|
||||||
|
dict(name='div', attrs={'class':'related_content'}),
|
||||||
|
dict(name='div', attrs={'id':'comments_container'})
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
# Comment-out or uncomment any of the following RSS feeds according to your
|
||||||
|
# liking.
|
||||||
|
#
|
||||||
|
# TODO: Some random bits of text might be trailing the last page (or TOC on
|
||||||
|
# MOBI files), these are bits of public posts and comments and need to also
|
||||||
|
# be removed.
|
||||||
|
#
|
||||||
|
feeds = [
|
||||||
|
(u'Alaska News', u'http://newsminer.com/rss/rss_feeds/alaska_news?content_type=article&tags=alaska_news&page_name=rss_feeds&instance=alaska_news'),
|
||||||
|
(u'Local News', u'http://newsminer.com/rss/rss_feeds/local_news?content_type=article&tags=local_news&page_name=rss_feeds&offset=0&instance=local_news'),
|
||||||
|
(u'Business', u'http://newsminer.com/rss/rss_feeds/business_news?content_type=article&tags=business_news&page_name=rss_feeds&instance=business_news'),
|
||||||
|
(u'Politics', u'http://newsminer.com/rss/rss_feeds/politics_news?content_type=article&tags=politics_news&page_name=rss_feeds&instance=politics_news'),
|
||||||
|
(u'Sports', u'http://newsminer.com/rss/rss_feeds/sports_news?content_type=article&tags=sports_news&page_name=rss_feeds&instance=sports_news'),
|
||||||
|
(u'Latitude 65 feed', u'http://newsminer.com/rss/rss_feeds/latitude_65?content_type=article&tags=latitude_65&page_name=rss_feeds&offset=0&instance=latitude_65'),
|
||||||
|
#(u'Sundays', u'http://newsminer.com/rss/rss_feeds/Sundays?content_type=article&tags=alaska_science_forum+scott_mccrea+interior_gardening+in_the_bush+judy_ferguson+book_reviews+theresa_bakker+judith_kleinfeld+interior_scrapbook+nuggets_comics+freeze_frame&page_name=rss_feeds&tag_inclusion=or&instance=Sundays'),
|
||||||
|
(u'Outdoors', u'http://newsminer.com/rss/rss_feeds/Outdoors?content_type=article&tags=outdoors&page_name=rss_feeds&instance=Outdoors'),
|
||||||
|
#(u'Fairbanks Grizzlies', u'http://newsminer.com/rss/rss_feeds/fairbanks_grizzlies?content_type=article&tags=fairbanks_grizzlies&page_name=rss_feeds&instance=fairbanks_grizzlies'),
|
||||||
|
#(u'Newsminer', u'http://newsminer.com/rss/rss_feeds/Newsminer?content_type=article&tags=ted_stevens_bullets+ted_stevens+sports_news+business_news+fairbanks_grizzlies+dermot_cole_column+outdoors+alaska_science_forum+scott_mccrea+interior_gardening+in_the_bush+judy_ferguson+book_reviews+theresa_bakker+judith_kleinfeld+interior_scrapbook+nuggets_comics+freeze_frame&page_name=rss_feeds&tag_inclusion=or&instance=Newsminer'),
|
||||||
|
(u'Opinion', u'http://newsminer.com/rss/rss_feeds/Opinion?content_type=article&tags=editorials&page_name=rss_feeds&instance=Opinion'),
|
||||||
|
(u'Youth', u'http://newsminer.com/rss/rss_feeds/Youth?content_type=article&tags=youth&page_name=rss_feeds&instance=Youth'),
|
||||||
|
#(u'Dermot Cole Blog', u'http://newsminer.com/rss/rss_feeds/dermot_cole_blog+rss?content_type=blog+entry&sort_by=posted_on&user_ids=3015275&page_name=blogs_dermot_cole&limit=10&instance=dermot_cole_blog+rss'),
|
||||||
|
(u'Dermot Cole Column', u'http://newsminer.com/rss/rss_feeds/Dermot_Cole_column?content_type=article&tags=dermot_cole_column&page_name=rss_feeds&instance=Dermot_Cole_column'),
|
||||||
|
#(u'Sarah Palin', u'http://newsminer.com/rss/rss_feeds/sarah_palin?content_type=article&tags=palin_in_the_news+palin_on_the_issues&page_name=rss_feeds&tag_inclusion=or&instance=sarah_palin')
|
||||||
|
]
|
||||||
|
|
@ -1,38 +1,63 @@
|
|||||||
from calibre.web.feeds.recipes import BasicNewsRecipe
|
__license__ = 'GPL v3'
|
||||||
class AdvancedUserRecipe1303841067(BasicNewsRecipe):
|
__copyright__ = '2008-2011, Kovid Goyal <kovid at kovidgoyal.net>, Darko Miletic <darko at gmail.com>'
|
||||||
|
'''
|
||||||
|
Profile to download FAZ.NET
|
||||||
|
'''
|
||||||
|
|
||||||
title = u'Faz.net'
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
__author__ = 'schuster'
|
|
||||||
remove_tags = [dict(attrs={'class':['right', 'ArrowLinkRight', 'ModulVerlagsInfo', 'left', 'Head']}),
|
class FazNet(BasicNewsRecipe):
|
||||||
dict(id=['BreadCrumbs', 'tstag', 'FazFooterPrint']),
|
title = 'FAZ.NET'
|
||||||
dict(name=['script', 'noscript', 'style'])]
|
__author__ = 'Kovid Goyal, Darko Miletic'
|
||||||
oldest_article = 2
|
|
||||||
description = 'Frankfurter Allgemeine Zeitung'
|
description = 'Frankfurter Allgemeine Zeitung'
|
||||||
max_articles_per_feed = 100
|
publisher = 'Frankfurter Allgemeine Zeitung GmbH'
|
||||||
no_stylesheets = True
|
category = 'news, politics, Germany'
|
||||||
use_embedded_content = False
|
use_embedded_content = False
|
||||||
language = 'de'
|
language = 'de'
|
||||||
remove_javascript = True
|
|
||||||
cover_url = 'http://www.faz.net/f30/Images/Logos/logo.gif'
|
|
||||||
|
|
||||||
def print_version(self, url):
|
max_articles_per_feed = 30
|
||||||
return url.replace('.html', '~Afor~Eprint.html')
|
no_stylesheets = True
|
||||||
|
encoding = 'utf-8'
|
||||||
|
remove_javascript = True
|
||||||
|
|
||||||
|
html2lrf_options = [
|
||||||
|
'--comment', description
|
||||||
|
, '--category', category
|
||||||
|
, '--publisher', publisher
|
||||||
|
]
|
||||||
|
|
||||||
|
html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"'
|
||||||
|
|
||||||
feeds = [(u'Politik', u'http://www.faz.net/s/RubA24ECD630CAE40E483841DB7D16F4211/Tpl~Epartner~SRss_.xml'),
|
keep_only_tags = [dict(name='div', attrs={'class':'Article'})]
|
||||||
(u'Wirtschaft', u'http://www.faz.net/s/RubC9401175958F4DE28E143E68888825F6/Tpl~Epartner~SRss_.xml'),
|
|
||||||
(u'Feuilleton', u'http://www.faz.net/s/RubCC21B04EE95145B3AC877C874FB1B611/Tpl~Epartner~SRss_.xml'),
|
|
||||||
(u'Sport', u'http://www.faz.net/s/Rub9F27A221597D4C39A82856B0FE79F051/Tpl~Epartner~SRss_.xml'),
|
|
||||||
(u'Gesellschaft', u'http://www.faz.net/s/Rub02DBAA63F9EB43CEB421272A670A685C/Tpl~Epartner~SRss_.xml'),
|
|
||||||
(u'Finanzen', u'http://www.faz.net/s/Rub4B891837ECD14082816D9E088A2D7CB4/Tpl~Epartner~SRss_.xml'),
|
|
||||||
(u'Wissen', u'http://www.faz.net/s/Rub7F4BEE0E0C39429A8565089709B70C44/Tpl~Epartner~SRss_.xml'),
|
|
||||||
(u'Reise', u'http://www.faz.net/s/RubE2FB5CA667054BDEA70FB3BC45F8D91C/Tpl~Epartner~SRss_.xml'),
|
|
||||||
(u'Technik & Motor', u'http://www.faz.net/s/Rub01E4D53776494844A85FDF23F5707AD8/Tpl~Epartner~SRss_.xml'),
|
|
||||||
(u'Beruf & Chance', u'http://www.faz.net/s/RubB1E10A8367E8446897468EDAA6EA0504/Tpl~Epartner~SRss_.xml'),
|
|
||||||
(u'Kunstmarkt', u'http://www.faz.net/s/RubBC09F7BF72A2405A96718ECBFB68FBFE/Tpl~Epartner~SRss_.xml'),
|
|
||||||
(u'Immobilien ', u'http://www.faz.net/s/RubFED172A9E10F46B3A5F01B02098C0C8D/Tpl~Epartner~SRss_.xml'),
|
|
||||||
(u'Rhein-Main Zeitung', u'http://www.faz.net/s/RubABE881A6669742C2A5EBCB5D50D7EBEE/Tpl~Epartner~SRss_.xml'),
|
|
||||||
(u'Atomdebatte ', u'http://www.faz.net/s/Rub469C43057F8C437CACC2DE9ED41B7950/Tpl~Epartner~SRss_.xml')
|
|
||||||
]
|
|
||||||
|
|
||||||
|
remove_tags = [
|
||||||
|
dict(name=['object','link','embed','base'])
|
||||||
|
,dict(name='div',
|
||||||
|
attrs={'class':['LinkBoxModulSmall','ModulVerlagsInfo',
|
||||||
|
'ArtikelServices', 'ModulLesermeinungenFooter',
|
||||||
|
'ModulArtikelServices', 'BoxTool Aufklappen_Grau',
|
||||||
|
'SocialMediaUnten', ]}),
|
||||||
|
dict(id=['KurzLinkMenu', 'ArtikelServicesMenu']),
|
||||||
|
]
|
||||||
|
|
||||||
|
feeds = [
|
||||||
|
('FAZ.NET Aktuell', 'http://www.faz.net/s/RubF3CE08B362D244869BE7984590CB6AC1/Tpl~Epartner~SRss_.xml'),
|
||||||
|
('Politik', 'http://www.faz.net/s/RubA24ECD630CAE40E483841DB7D16F4211/Tpl~Epartner~SRss_.xml'),
|
||||||
|
('Wirtschaft', 'http://www.faz.net/s/RubC9401175958F4DE28E143E68888825F6/Tpl~Epartner~SRss_.xml'),
|
||||||
|
('Feuilleton', 'http://www.faz.net/s/RubCC21B04EE95145B3AC877C874FB1B611/Tpl~Epartner~SRss_.xml'),
|
||||||
|
('Sport', 'http://www.faz.net/s/Rub9F27A221597D4C39A82856B0FE79F051/Tpl~Epartner~SRss_.xml'),
|
||||||
|
('Gesellschaft', 'http://www.faz.net/s/Rub02DBAA63F9EB43CEB421272A670A685C/Tpl~Epartner~SRss_.xml'),
|
||||||
|
('Finanzen', 'http://www.faz.net/s/Rub4B891837ECD14082816D9E088A2D7CB4/Tpl~Epartner~SRss_.xml'),
|
||||||
|
('Wissen', 'http://www.faz.net/s/Rub7F4BEE0E0C39429A8565089709B70C44/Tpl~Epartner~SRss_.xml'),
|
||||||
|
('Reise', 'http://www.faz.net/s/RubE2FB5CA667054BDEA70FB3BC45F8D91C/Tpl~Epartner~SRss_.xml'),
|
||||||
|
('Technik & Motor', 'http://www.faz.net/s/Rub01E4D53776494844A85FDF23F5707AD8/Tpl~Epartner~SRss_.xml'),
|
||||||
|
('Beruf & Chance', 'http://www.faz.net/s/RubB1E10A8367E8446897468EDAA6EA0504/Tpl~Epartner~SRss_.xml')
|
||||||
|
]
|
||||||
|
|
||||||
|
def preprocess_html(self, soup):
|
||||||
|
mtag = '<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>'
|
||||||
|
soup.head.insert(0,mtag)
|
||||||
|
del soup.body['onload']
|
||||||
|
for item in soup.findAll(style=True):
|
||||||
|
del item['style']
|
||||||
|
return soup
|
||||||
|
40
recipes/film_web.recipe
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class Filmweb_pl(BasicNewsRecipe):
|
||||||
|
title = u'FilmWeb'
|
||||||
|
__author__ = 'fenuks'
|
||||||
|
description = 'FilmWeb - biggest polish movie site'
|
||||||
|
cover_url = 'http://userlogos.org/files/logos/crudus/filmweb.png'
|
||||||
|
category = 'movies'
|
||||||
|
language = 'pl'
|
||||||
|
oldest_article = 8
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
no_stylesheets= True
|
||||||
|
extra_css = '.hdrBig {font-size:22px;}'
|
||||||
|
remove_tags= [dict(name='div', attrs={'class':['recommendOthers']}), dict(name='ul', attrs={'class':'fontSizeSet'})]
|
||||||
|
keep_only_tags= [dict(name='h1', attrs={'class':'hdrBig'}), dict(name='div', attrs={'class':['newsInfo', 'reviewContent fontSizeCont description']})]
|
||||||
|
feeds = [(u'Wszystkie newsy', u'http://www.filmweb.pl/feed/news/latest'),
|
||||||
|
(u'News / Filmy w produkcji', 'http://www.filmweb.pl/feed/news/category/filminproduction'),
|
||||||
|
(u'News / Festiwale, nagrody i przeglądy', u'http://www.filmweb.pl/feed/news/category/festival'),
|
||||||
|
(u'News / Seriale', u'http://www.filmweb.pl/feed/news/category/serials'),
|
||||||
|
(u'News / Box office', u'http://www.filmweb.pl/feed/news/category/boxoffice'),
|
||||||
|
(u'News / Multimedia', u'http://www.filmweb.pl/feed/news/category/multimedia'),
|
||||||
|
(u'News / Dystrybucja dvd / blu-ray', u'http://www.filmweb.pl/feed/news/category/video'),
|
||||||
|
(u'News / Dystrybucja kinowa', u'http://www.filmweb.pl/feed/news/category/cinema'),
|
||||||
|
(u'News / off', u'http://www.filmweb.pl/feed/news/category/off'),
|
||||||
|
(u'News / Gry wideo', u'http://www.filmweb.pl/feed/news/category/game'),
|
||||||
|
(u'News / Organizacje branżowe', u'http://www.filmweb.pl/feed/news/category/organizations'),
|
||||||
|
(u'News / Internet', u'http://www.filmweb.pl/feed/news/category/internet'),
|
||||||
|
(u'News / Różne', u'http://www.filmweb.pl/feed/news/category/other'),
|
||||||
|
(u'News / Kino polskie', u'http://www.filmweb.pl/feed/news/category/polish.cinema'),
|
||||||
|
(u'News / Telewizja', u'http://www.filmweb.pl/feed/news/category/tv'),
|
||||||
|
(u'Recenzje redakcji', u'http://www.filmweb.pl/feed/reviews/latest'),
|
||||||
|
(u'Recenzje użytkowników', u'http://www.filmweb.pl/feed/user-reviews/latest')]
|
||||||
|
|
||||||
|
def skip_ad_pages(self, soup):
|
||||||
|
skip_tag = soup.find('a', attrs={'class':'welcomeScreenButton'})['href']
|
||||||
|
#self.log.warn(skip_tag)
|
||||||
|
if skip_tag is not None:
|
||||||
|
return self.index_to_soup(skip_tag, raw=True)
|
||||||
|
else:
|
||||||
|
None
|
@ -1,32 +1,41 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
__license__ = 'GPL v3'
|
__license__ = 'GPL v3'
|
||||||
__copyright__ = '2008, Darko Miletic <darko.miletic at gmail.com>'
|
__copyright__ = '2010-2011, Darko Miletic <darko.miletic at gmail.com>'
|
||||||
'''
|
'''
|
||||||
ft.com
|
www.ft.com
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
import datetime
|
||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
class FinancialTimes(BasicNewsRecipe):
|
class FinancialTimes_rss(BasicNewsRecipe):
|
||||||
title = u'Financial Times'
|
title = 'Financial Times'
|
||||||
__author__ = 'Darko Miletic and Sujata Raman'
|
__author__ = 'Darko Miletic'
|
||||||
description = ('Financial world news. Available after 5AM '
|
description = "The Financial Times (FT) is one of the world's leading business news and information organisations, recognised internationally for its authority, integrity and accuracy."
|
||||||
'GMT, daily.')
|
publisher = 'The Financial Times Ltd.'
|
||||||
|
category = 'news, finances, politics, World'
|
||||||
oldest_article = 2
|
oldest_article = 2
|
||||||
language = 'en'
|
language = 'en'
|
||||||
|
max_articles_per_feed = 250
|
||||||
max_articles_per_feed = 100
|
|
||||||
no_stylesheets = True
|
no_stylesheets = True
|
||||||
use_embedded_content = False
|
use_embedded_content = False
|
||||||
needs_subscription = True
|
needs_subscription = True
|
||||||
simultaneous_downloads= 1
|
encoding = 'utf8'
|
||||||
delay = 1
|
publication_type = 'newspaper'
|
||||||
|
masthead_url = 'http://im.media.ft.com/m/img/masthead_main.jpg'
|
||||||
|
LOGIN = 'https://registration.ft.com/registration/barrier/login'
|
||||||
|
INDEX = 'http://www.ft.com'
|
||||||
|
|
||||||
LOGIN = 'https://registration.ft.com/registration/barrier/login'
|
conversion_options = {
|
||||||
|
'comment' : description
|
||||||
|
, 'tags' : category
|
||||||
|
, 'publisher' : publisher
|
||||||
|
, 'language' : language
|
||||||
|
, 'linearize_tables' : True
|
||||||
|
}
|
||||||
|
|
||||||
def get_browser(self):
|
def get_browser(self):
|
||||||
br = BasicNewsRecipe.get_browser()
|
br = BasicNewsRecipe.get_browser()
|
||||||
|
br.open(self.INDEX)
|
||||||
if self.username is not None and self.password is not None:
|
if self.username is not None and self.password is not None:
|
||||||
br.open(self.LOGIN)
|
br.open(self.LOGIN)
|
||||||
br.select_form(name='loginForm')
|
br.select_form(name='loginForm')
|
||||||
@ -35,31 +44,63 @@ class FinancialTimes(BasicNewsRecipe):
|
|||||||
br.submit()
|
br.submit()
|
||||||
return br
|
return br
|
||||||
|
|
||||||
keep_only_tags = [ dict(name='div', attrs={'id':'cont'}) ]
|
keep_only_tags = [dict(name='div', attrs={'class':['fullstory fullstoryHeader','fullstory fullstoryBody','ft-story-header','ft-story-body','index-detail']})]
|
||||||
remove_tags_after = dict(name='p', attrs={'class':'copyright'})
|
|
||||||
remove_tags = [
|
remove_tags = [
|
||||||
dict(name='div', attrs={'id':'floating-con'})
|
dict(name='div', attrs={'id':'floating-con'})
|
||||||
|
,dict(name=['meta','iframe','base','object','embed','link'])
|
||||||
|
,dict(attrs={'class':['storyTools','story-package','screen-copy','story-package separator','expandable-image']})
|
||||||
]
|
]
|
||||||
|
remove_attributes = ['width','height','lang']
|
||||||
|
|
||||||
extra_css = '''
|
extra_css = """
|
||||||
body{font-family:Arial,Helvetica,sans-serif;}
|
body{font-family: Georgia,Times,"Times New Roman",serif}
|
||||||
h2(font-size:large;}
|
h2{font-size:large}
|
||||||
.ft-story-header(font-size:xx-small;}
|
.ft-story-header{font-size: x-small}
|
||||||
.ft-story-body(font-size:small;}
|
|
||||||
a{color:#003399;}
|
|
||||||
.container{font-size:x-small;}
|
.container{font-size:x-small;}
|
||||||
h3{font-size:x-small;color:#003399;}
|
h3{font-size:x-small;color:#003399;}
|
||||||
'''
|
.copyright{font-size: x-small}
|
||||||
|
img{margin-top: 0.8em; display: block}
|
||||||
|
.lastUpdated{font-family: Arial,Helvetica,sans-serif; font-size: x-small}
|
||||||
|
.byline,.ft-story-body,.ft-story-header{font-family: Arial,Helvetica,sans-serif}
|
||||||
|
"""
|
||||||
|
|
||||||
feeds = [
|
feeds = [
|
||||||
(u'UK' , u'http://www.ft.com/rss/home/uk' )
|
(u'UK' , u'http://www.ft.com/rss/home/uk' )
|
||||||
,(u'US' , u'http://www.ft.com/rss/home/us' )
|
,(u'US' , u'http://www.ft.com/rss/home/us' )
|
||||||
,(u'Europe' , u'http://www.ft.com/rss/home/europe' )
|
|
||||||
,(u'Asia' , u'http://www.ft.com/rss/home/asia' )
|
,(u'Asia' , u'http://www.ft.com/rss/home/asia' )
|
||||||
,(u'Middle East', u'http://www.ft.com/rss/home/middleeast')
|
,(u'Middle East', u'http://www.ft.com/rss/home/middleeast')
|
||||||
]
|
]
|
||||||
|
|
||||||
def preprocess_html(self, soup):
|
def preprocess_html(self, soup):
|
||||||
content_type = soup.find('meta', {'http-equiv':'Content-Type'})
|
items = ['promo-box','promo-title',
|
||||||
if content_type:
|
'promo-headline','promo-image',
|
||||||
content_type['content'] = 'text/html; charset=utf-8'
|
'promo-intro','promo-link','subhead']
|
||||||
|
for item in items:
|
||||||
|
for it in soup.findAll(item):
|
||||||
|
it.name = 'div'
|
||||||
|
it.attrs = []
|
||||||
|
for item in soup.findAll(style=True):
|
||||||
|
del item['style']
|
||||||
|
for item in soup.findAll('a'):
|
||||||
|
limg = item.find('img')
|
||||||
|
if item.string is not None:
|
||||||
|
str = item.string
|
||||||
|
item.replaceWith(str)
|
||||||
|
else:
|
||||||
|
if limg:
|
||||||
|
item.name = 'div'
|
||||||
|
item.attrs = []
|
||||||
|
else:
|
||||||
|
str = self.tag_to_string(item)
|
||||||
|
item.replaceWith(str)
|
||||||
|
for item in soup.findAll('img'):
|
||||||
|
if not item.has_key('alt'):
|
||||||
|
item['alt'] = 'image'
|
||||||
return soup
|
return soup
|
||||||
|
|
||||||
|
def get_cover_url(self):
|
||||||
|
cdate = datetime.date.today()
|
||||||
|
if cdate.isoweekday() == 7:
|
||||||
|
cdate -= datetime.timedelta(days=1)
|
||||||
|
return cdate.strftime('http://specials.ft.com/vtf_pdf/%d%m%y_FRONT1_USA.pdf')
|
||||||
|
|
||||||
|
@ -1,15 +1,20 @@
|
|||||||
__license__ = 'GPL v3'
|
__license__ = 'GPL v3'
|
||||||
__copyright__ = '2010-2011, Darko Miletic <darko.miletic at gmail.com>'
|
__copyright__ = '2010-2011, Darko Miletic <darko.miletic at gmail.com>'
|
||||||
'''
|
'''
|
||||||
ft.com
|
www.ft.com/uk-edition
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
import datetime
|
||||||
|
from calibre.ptempfile import PersistentTemporaryFile
|
||||||
from calibre import strftime
|
from calibre import strftime
|
||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
class FinancialTimes(BasicNewsRecipe):
|
class FinancialTimes(BasicNewsRecipe):
|
||||||
title = u'Financial Times - UK printed edition'
|
title = 'Financial Times - UK printed edition'
|
||||||
__author__ = 'Darko Miletic'
|
__author__ = 'Darko Miletic'
|
||||||
description = 'Financial world news'
|
description = "The Financial Times (FT) is one of the world's leading business news and information organisations, recognised internationally for its authority, integrity and accuracy."
|
||||||
|
publisher = 'The Financial Times Ltd.'
|
||||||
|
category = 'news, finances, politics, UK, World'
|
||||||
oldest_article = 2
|
oldest_article = 2
|
||||||
language = 'en_GB'
|
language = 'en_GB'
|
||||||
max_articles_per_feed = 250
|
max_articles_per_feed = 250
|
||||||
@ -17,51 +22,78 @@ class FinancialTimes(BasicNewsRecipe):
|
|||||||
use_embedded_content = False
|
use_embedded_content = False
|
||||||
needs_subscription = True
|
needs_subscription = True
|
||||||
encoding = 'utf8'
|
encoding = 'utf8'
|
||||||
simultaneous_downloads= 1
|
publication_type = 'newspaper'
|
||||||
delay = 1
|
articles_are_obfuscated = True
|
||||||
|
temp_files = []
|
||||||
|
masthead_url = 'http://im.media.ft.com/m/img/masthead_main.jpg'
|
||||||
LOGIN = 'https://registration.ft.com/registration/barrier/login'
|
LOGIN = 'https://registration.ft.com/registration/barrier/login'
|
||||||
|
LOGIN2 = 'http://media.ft.com/h/subs3.html'
|
||||||
INDEX = 'http://www.ft.com/uk-edition'
|
INDEX = 'http://www.ft.com/uk-edition'
|
||||||
PREFIX = 'http://www.ft.com'
|
PREFIX = 'http://www.ft.com'
|
||||||
|
|
||||||
|
conversion_options = {
|
||||||
|
'comment' : description
|
||||||
|
, 'tags' : category
|
||||||
|
, 'publisher' : publisher
|
||||||
|
, 'language' : language
|
||||||
|
, 'linearize_tables' : True
|
||||||
|
}
|
||||||
|
|
||||||
def get_browser(self):
|
def get_browser(self):
|
||||||
br = BasicNewsRecipe.get_browser()
|
br = BasicNewsRecipe.get_browser()
|
||||||
|
br.open(self.INDEX)
|
||||||
if self.username is not None and self.password is not None:
|
if self.username is not None and self.password is not None:
|
||||||
br.open(self.LOGIN)
|
br.open(self.LOGIN2)
|
||||||
br.select_form(name='loginForm')
|
br.select_form(name='loginForm')
|
||||||
br['username'] = self.username
|
br['username'] = self.username
|
||||||
br['password'] = self.password
|
br['password'] = self.password
|
||||||
br.submit()
|
br.submit()
|
||||||
return br
|
return br
|
||||||
|
|
||||||
keep_only_tags = [ dict(name='div', attrs={'id':'cont'}) ]
|
keep_only_tags = [
|
||||||
remove_tags_after = dict(name='p', attrs={'class':'copyright'})
|
dict(name='div', attrs={'class':['fullstory fullstoryHeader', 'ft-story-header']})
|
||||||
|
,dict(name='div', attrs={'class':'standfirst'})
|
||||||
|
,dict(name='div', attrs={'id' :'storyContent'})
|
||||||
|
,dict(name='div', attrs={'class':['ft-story-body','index-detail']})
|
||||||
|
]
|
||||||
remove_tags = [
|
remove_tags = [
|
||||||
dict(name='div', attrs={'id':'floating-con'})
|
dict(name='div', attrs={'id':'floating-con'})
|
||||||
,dict(name=['meta','iframe','base','object','embed','link'])
|
,dict(name=['meta','iframe','base','object','embed','link'])
|
||||||
|
,dict(attrs={'class':['storyTools','story-package','screen-copy','story-package separator','expandable-image']})
|
||||||
]
|
]
|
||||||
remove_attributes = ['width','height','lang']
|
remove_attributes = ['width','height','lang']
|
||||||
|
|
||||||
extra_css = """
|
extra_css = """
|
||||||
body{font-family:Arial,Helvetica,sans-serif;}
|
body{font-family: Georgia,Times,"Times New Roman",serif}
|
||||||
h2{font-size:large;}
|
h2{font-size:large}
|
||||||
.ft-story-header{font-size:xx-small;}
|
.ft-story-header{font-size: x-small}
|
||||||
.ft-story-body{font-size:small;}
|
|
||||||
a{color:#003399;}
|
|
||||||
.container{font-size:x-small;}
|
.container{font-size:x-small;}
|
||||||
h3{font-size:x-small;color:#003399;}
|
h3{font-size:x-small;color:#003399;}
|
||||||
.copyright{font-size: x-small}
|
.copyright{font-size: x-small}
|
||||||
|
img{margin-top: 0.8em; display: block}
|
||||||
|
.lastUpdated{font-family: Arial,Helvetica,sans-serif; font-size: x-small}
|
||||||
|
.byline,.ft-story-body,.ft-story-header{font-family: Arial,Helvetica,sans-serif}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def get_artlinks(self, elem):
|
def get_artlinks(self, elem):
|
||||||
articles = []
|
articles = []
|
||||||
|
count = 0
|
||||||
for item in elem.findAll('a',href=True):
|
for item in elem.findAll('a',href=True):
|
||||||
url = self.PREFIX + item['href']
|
count = count + 1
|
||||||
|
if self.test and count > 2:
|
||||||
|
return articles
|
||||||
|
rawlink = item['href']
|
||||||
|
if rawlink.startswith('http://'):
|
||||||
|
url = rawlink
|
||||||
|
else:
|
||||||
|
url = self.PREFIX + rawlink
|
||||||
|
urlverified = self.browser.open_novisit(url).geturl() # resolve redirect.
|
||||||
title = self.tag_to_string(item)
|
title = self.tag_to_string(item)
|
||||||
date = strftime(self.timefmt)
|
date = strftime(self.timefmt)
|
||||||
articles.append({
|
articles.append({
|
||||||
'title' :title
|
'title' :title
|
||||||
,'date' :date
|
,'date' :date
|
||||||
,'url' :url
|
,'url' :urlverified
|
||||||
,'description':''
|
,'description':''
|
||||||
})
|
})
|
||||||
return articles
|
return articles
|
||||||
@ -78,7 +110,11 @@ class FinancialTimes(BasicNewsRecipe):
|
|||||||
st = wide.find('h4',attrs={'class':'section-no-arrow'})
|
st = wide.find('h4',attrs={'class':'section-no-arrow'})
|
||||||
if st:
|
if st:
|
||||||
strest.insert(0,st)
|
strest.insert(0,st)
|
||||||
|
count = 0
|
||||||
for item in strest:
|
for item in strest:
|
||||||
|
count = count + 1
|
||||||
|
if self.test and count > 2:
|
||||||
|
return feeds
|
||||||
ftitle = self.tag_to_string(item)
|
ftitle = self.tag_to_string(item)
|
||||||
self.report_progress(0, _('Fetching feed')+' %s...'%(ftitle))
|
self.report_progress(0, _('Fetching feed')+' %s...'%(ftitle))
|
||||||
feedarts = self.get_artlinks(item.parent.ul)
|
feedarts = self.get_artlinks(item.parent.ul)
|
||||||
@ -86,5 +122,50 @@ class FinancialTimes(BasicNewsRecipe):
|
|||||||
return feeds
|
return feeds
|
||||||
|
|
||||||
def preprocess_html(self, soup):
|
def preprocess_html(self, soup):
|
||||||
return self.adeify_images(soup)
|
items = ['promo-box','promo-title',
|
||||||
|
'promo-headline','promo-image',
|
||||||
|
'promo-intro','promo-link','subhead']
|
||||||
|
for item in items:
|
||||||
|
for it in soup.findAll(item):
|
||||||
|
it.name = 'div'
|
||||||
|
it.attrs = []
|
||||||
|
for item in soup.findAll(style=True):
|
||||||
|
del item['style']
|
||||||
|
for item in soup.findAll('a'):
|
||||||
|
limg = item.find('img')
|
||||||
|
if item.string is not None:
|
||||||
|
str = item.string
|
||||||
|
item.replaceWith(str)
|
||||||
|
else:
|
||||||
|
if limg:
|
||||||
|
item.name = 'div'
|
||||||
|
item.attrs = []
|
||||||
|
else:
|
||||||
|
str = self.tag_to_string(item)
|
||||||
|
item.replaceWith(str)
|
||||||
|
for item in soup.findAll('img'):
|
||||||
|
if not item.has_key('alt'):
|
||||||
|
item['alt'] = 'image'
|
||||||
|
return soup
|
||||||
|
|
||||||
|
def get_cover_url(self):
|
||||||
|
cdate = datetime.date.today()
|
||||||
|
if cdate.isoweekday() == 7:
|
||||||
|
cdate -= datetime.timedelta(days=1)
|
||||||
|
return cdate.strftime('http://specials.ft.com/vtf_pdf/%d%m%y_FRONT1_LON.pdf')
|
||||||
|
|
||||||
|
def get_obfuscated_article(self, url):
|
||||||
|
count = 0
|
||||||
|
while (count < 10):
|
||||||
|
try:
|
||||||
|
response = self.browser.open(url)
|
||||||
|
html = response.read()
|
||||||
|
count = 10
|
||||||
|
except:
|
||||||
|
print "Retrying download..."
|
||||||
|
count += 1
|
||||||
|
self.temp_files.append(PersistentTemporaryFile('_fa.html'))
|
||||||
|
self.temp_files[-1].write(html)
|
||||||
|
self.temp_files[-1].close()
|
||||||
|
return self.temp_files[-1].name
|
||||||
|
|
39
recipes/fluter_de.recipe
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
__license__ = 'GPL v3'
|
||||||
|
__copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
|
||||||
|
|
||||||
|
'''
|
||||||
|
Fetch fluter.de
|
||||||
|
'''
|
||||||
|
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class AdvancedUserRecipe1313693926(BasicNewsRecipe):
|
||||||
|
|
||||||
|
title = u'Fluter'
|
||||||
|
description = 'fluter.de Magazin der Bundeszentrale für politische Bildung/bpb'
|
||||||
|
language = 'de'
|
||||||
|
encoding = 'UTF-8'
|
||||||
|
|
||||||
|
__author__ = 'Armin Geller' # 2011-08-19
|
||||||
|
|
||||||
|
oldest_article = 7
|
||||||
|
max_articles_per_feed = 50
|
||||||
|
|
||||||
|
|
||||||
|
remove_tags = [
|
||||||
|
dict(name='div', attrs={'id':["comments"]}),
|
||||||
|
dict(attrs={'class':['commentlink']}),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
keep_only_tags = [
|
||||||
|
dict(name='div', attrs={'class':["grid_8 articleText"]}),
|
||||||
|
dict(name='div', attrs={'class':["articleTextInnerText"]}),
|
||||||
|
]
|
||||||
|
|
||||||
|
feeds = [
|
||||||
|
(u'Inhalt:', u'http://www.fluter.de/de/?tpl=907'),
|
||||||
|
]
|
||||||
|
|
||||||
|
extra_css = '.cs_img {margin-right: 10pt;}'
|
||||||
|
|
@ -1,3 +1,4 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
from calibre.ebooks.BeautifulSoup import Tag,BeautifulSoup
|
from calibre.ebooks.BeautifulSoup import Tag,BeautifulSoup
|
||||||
@ -16,7 +17,7 @@ class FolhaOnline(BasicNewsRecipe):
|
|||||||
news = True
|
news = True
|
||||||
|
|
||||||
title = u'Folha de S\xE3o Paulo'
|
title = u'Folha de S\xE3o Paulo'
|
||||||
__author__ = 'Euler Alves'
|
__author__ = 'Euler Alves and Alex Mitrani'
|
||||||
description = u'Brazilian news from Folha de S\xE3o Paulo'
|
description = u'Brazilian news from Folha de S\xE3o Paulo'
|
||||||
publisher = u'Folha de S\xE3o Paulo'
|
publisher = u'Folha de S\xE3o Paulo'
|
||||||
category = 'news, rss'
|
category = 'news, rss'
|
||||||
@ -62,37 +63,50 @@ class FolhaOnline(BasicNewsRecipe):
|
|||||||
,dict(name='div',
|
,dict(name='div',
|
||||||
attrs={'class':[
|
attrs={'class':[
|
||||||
'openBox adslibraryArticle'
|
'openBox adslibraryArticle'
|
||||||
|
,'toolbar'
|
||||||
]})
|
]})
|
||||||
|
|
||||||
,dict(name='a')
|
,dict(name='a')
|
||||||
,dict(name='iframe')
|
,dict(name='iframe')
|
||||||
,dict(name='link')
|
,dict(name='link')
|
||||||
,dict(name='script')
|
,dict(name='script')
|
||||||
|
,dict(name='li')
|
||||||
]
|
]
|
||||||
|
remove_tags_after = dict(name='div',attrs={'id':'articleEnd'})
|
||||||
|
|
||||||
feeds = [
|
feeds = [
|
||||||
(u'Em cima da hora', u'http://feeds.folha.uol.com.br/emcimadahora/rss091.xml')
|
(u'Em cima da hora', u'http://feeds.folha.uol.com.br/emcimadahora/rss091.xml')
|
||||||
|
,(u'Cotidiano', u'http://feeds.folha.uol.com.br/folha/cotidiano/rss091.xml')
|
||||||
|
,(u'Brasil', u'http://feeds.folha.uol.com.br/folha/brasil/rss091.xml')
|
||||||
|
,(u'Mundo', u'http://feeds.folha.uol.com.br/mundo/rss091.xml')
|
||||||
|
,(u'Poder', u'http://feeds.folha.uol.com.br/poder/rss091.xml')
|
||||||
|
,(u'Mercado', u'http://feeds.folha.uol.com.br/folha/dinheiro/rss091.xml')
|
||||||
|
,(u'Saber', u'http://feeds.folha.uol.com.br/folha/educacao/rss091.xml')
|
||||||
|
,(u'Tec', u'http://feeds.folha.uol.com.br/folha/informatica/rss091.xml')
|
||||||
|
,(u'Ilustrada', u'http://feeds.folha.uol.com.br/folha/ilustrada/rss091.xml')
|
||||||
,(u'Ambiente', u'http://feeds.folha.uol.com.br/ambiente/rss091.xml')
|
,(u'Ambiente', u'http://feeds.folha.uol.com.br/ambiente/rss091.xml')
|
||||||
,(u'Bichos', u'http://feeds.folha.uol.com.br/bichos/rss091.xml')
|
,(u'Bichos', u'http://feeds.folha.uol.com.br/bichos/rss091.xml')
|
||||||
,(u'Ci\xEAncia', u'http://feeds.folha.uol.com.br/ciencia/rss091.xml')
|
,(u'Ci\xEAncia', u'http://feeds.folha.uol.com.br/ciencia/rss091.xml')
|
||||||
,(u'Poder', u'http://feeds.folha.uol.com.br/poder/rss091.xml')
|
|
||||||
,(u'Equil\xEDbrio e Sa\xFAde', u'http://feeds.folha.uol.com.br/equilibrioesaude/rss091.xml')
|
,(u'Equil\xEDbrio e Sa\xFAde', u'http://feeds.folha.uol.com.br/equilibrioesaude/rss091.xml')
|
||||||
,(u'Turismo', u'http://feeds.folha.uol.com.br/folha/turismo/rss091.xml')
|
,(u'Turismo', u'http://feeds.folha.uol.com.br/folha/turismo/rss091.xml')
|
||||||
,(u'Mundo', u'http://feeds.folha.uol.com.br/mundo/rss091.xml')
|
,(u'Esporte', u'http://feeds.folha.uol.com.br/folha/esporte/rss091.xml')
|
||||||
,(u'Pelo Mundo', u'http://feeds.folha.uol.com.br/pelomundo.folha.rssblog.uol.com.br/')
|
,(u'Zapping', u'http://feeds.folha.uol.com.br/colunas/zapping/rss091.xml')
|
||||||
,(u'Circuito integrado', u'http://feeds.folha.uol.com.br/circuitointegrado.folha.rssblog.uol.com.br/')
|
,(u'Cida Santos', u'http://feeds.folha.uol.com.br/colunas/cidasantos/rss091.xml')
|
||||||
,(u'Blog do Fred', u'http://feeds.folha.uol.com.br/blogdofred.folha.rssblog.uol.com.br/')
|
,(u'Clóvis Rossi', u'http://feeds.folha.uol.com.br/colunas/clovisrossi/rss091.xml')
|
||||||
,(u'Maria In\xEAs Dolci', u'http://feeds.folha.uol.com.br/mariainesdolci.folha.blog.uol.com.br/')
|
,(u'Eliane Cantanhêde', u'http://feeds.folha.uol.com.br/colunas/elianecantanhede/rss091.xml')
|
||||||
,(u'Eduardo Ohata', u'http://feeds.folha.uol.com.br/folha/pensata/eduardoohata/rss091.xml')
|
,(u'Fernando Canzian', u'http://feeds.folha.uol.com.br/colunas/fernandocanzian/rss091.xml')
|
||||||
,(u'Kennedy Alencar', u'http://feeds.folha.uol.com.br/folha/pensata/kennedyalencar/rss091.xml')
|
,(u'Gilberto Dimenstein', u'http://feeds.folha.uol.com.br/colunas/gilbertodimenstein/rss091.xml')
|
||||||
,(u'Eliane Catanh\xEAde', u'http://feeds.folha.uol.com.br/folha/pensata/elianecantanhede/rss091.xml')
|
,(u'Hélio Schwartsman', u'http://feeds.folha.uol.com.br/colunas/helioschwartsman/rss091.xml')
|
||||||
,(u'Fernado Canzian', u'http://feeds.folha.uol.com.br/folha/pensata/fernandocanzian/rss091.xml')
|
,(u'Humberto Luiz Peron', u'http://feeds.folha.uol.com.br/colunas/futebolnarede/rss091.xml')
|
||||||
,(u'Gilberto Dimenstein', u'http://feeds.folha.uol.com.br/folha/pensata/gilbertodimenstein/rss091.xml')
|
,(u'João Pereira Coutinho', u'http://feeds.folha.uol.com.br/colunas/joaopereiracoutinho/rss091.xml')
|
||||||
,(u'H\xE9lio Schwartsman', u'http://feeds.folha.uol.com.br/folha/pensata/helioschwartsman/rss091.xml')
|
,(u'José Antonio Ramalho', u'http://feeds.folha.uol.com.br/colunas/canalaberto/rss091.xml')
|
||||||
,(u'Jo\xE3o Pereira Coutinho', u'http://http://feeds.folha.uol.com.br/folha/pensata/joaopereiracoutinho/rss091.xml')
|
,(u'Kennedy Alencar', u'http://feeds.folha.uol.com.br/colunas/kennedyalencar/rss091.xml')
|
||||||
,(u'Luiz Caversan', u'http://http://feeds.folha.uol.com.br/folha/pensata/luizcaversan/rss091.xml')
|
,(u'Luiz Caversan', u'http://feeds.folha.uol.com.br/colunas/luizcaversan/rss091.xml')
|
||||||
,(u'S\xE9rgio Malbergier', u'http://http://feeds.folha.uol.com.br/folha/pensata/sergiomalbergier/rss091.xml')
|
,(u'Luiz Rivoiro', u'http://feeds.folha.uol.com.br/colunas/paiepai/rss091.xml')
|
||||||
,(u'Valdo Cruz', u'http://http://feeds.folha.uol.com.br/folha/pensata/valdocruz/rss091.xml')
|
,(u'Marcelo Leite', u'http://feeds.folha.uol.com.br/colunas/marceloleite/rss091.xml')
|
||||||
|
,(u'Sérgio Malbergier', u'http://feeds.folha.uol.com.br/colunas/sergiomalbergier/rss091.xml')
|
||||||
|
,(u'Sylvia Colombo', u'http://feeds.folha.uol.com.br/colunas/sylviacolombo/rss091.xml')
|
||||||
|
,(u'Valdo Cruz', u'http://feeds.folha.uol.com.br/colunas/valdocruz/rss091.xml')
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
35
recipes/frankfurter_rundschau.recipe
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
from calibre.web.feeds.recipes import BasicNewsRecipe
|
||||||
|
class AdvancedUserRecipe(BasicNewsRecipe):
|
||||||
|
|
||||||
|
title = u'Frankfurter Rundschau'
|
||||||
|
__author__ = 'schuster'
|
||||||
|
oldest_article = 1
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
no_stylesheets = True
|
||||||
|
use_embedded_content = False
|
||||||
|
language = 'de'
|
||||||
|
remove_javascript = True
|
||||||
|
cover_url = 'http://www.fr-online.de/image/view/-/1474018/data/823538/-/logo.png'
|
||||||
|
extra_css = '''
|
||||||
|
h1{font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:large;}
|
||||||
|
h4{font-family:Arial,Helvetica,sans-serif; font-weight:normal;font-size:small;}
|
||||||
|
img {min-width:300px; max-width:600px; min-height:300px; max-height:800px}
|
||||||
|
p{font-family:Arial,Helvetica,sans-serif;font-size:small;}
|
||||||
|
body{font-family:Helvetica,Arial,sans-serif;font-size:small;}
|
||||||
|
'''
|
||||||
|
|
||||||
|
feeds = [(u'Startseite', u'http://www.fr-online.de/home/-/1472778/1472778/-/view/asFeed/-/index.xml'),
|
||||||
|
(u'Politik', u'http://www.fr-online.de/politik/-/1472596/1472596/-/view/asFeed/-/index.xml'),
|
||||||
|
(u'Meinungen', u'http://www.fr-online.de/politik/meinung/-/1472602/1472602/-/view/asFeed/-/index.xml'),
|
||||||
|
(u'Wirtschaft', u'http://www.fr-online.de/wirtschaft/-/1472780/1472780/-/view/asFeed/-/index.xml'),
|
||||||
|
(u'Sport', u'http://www.fr-online.de/sport/-/1472784/1472784/-/view/asFeed/-/index.xml'),
|
||||||
|
(u'Kultur', u'http://www.fr-online.de/kultur/-/1472786/1472786/-/view/asFeed/-/index.xml'),
|
||||||
|
(u'Panorama', u'http://www.fr-online.de/panorama/-/1472782/1472782/-/view/asFeed/-/index.xml'),
|
||||||
|
(u'Digital', u'http://www.fr-online.de/digital/-/1472406/1472406/-/view/asFeed/-/index.xml'),
|
||||||
|
(u'Wissenschaft', u'http://www.fr-online.de/wissenschaft/-/1472788/1472788/-/view/asFeed/-/index.xml')
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
def print_version(self, url):
|
||||||
|
return url.replace('index.html', 'view/printVersion/-/index.html')
|
||||||
|
|
@ -1,25 +1,29 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
__license__ = 'GPL v3'
|
__license__ = 'GPL v3'
|
||||||
__copyright__ = '2009, Kovid Goyal kovid@kovidgoyal.net'
|
__copyright__ = '2011, Starson17'
|
||||||
__docformat__ = 'restructuredtext en'
|
__docformat__ = 'restructuredtext en'
|
||||||
|
|
||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
class Freakonomics(BasicNewsRecipe):
|
class Freakonomics(BasicNewsRecipe):
|
||||||
|
|
||||||
title = 'Freakonomics Blog'
|
title = 'Freakonomics Blog'
|
||||||
description = 'The Hidden side of everything'
|
description = 'The Hidden side of everything'
|
||||||
__author__ = 'Starson17'
|
__author__ = 'Starson17'
|
||||||
|
__version__ = '1.02'
|
||||||
|
__date__ = '11 July 2011'
|
||||||
language = 'en'
|
language = 'en'
|
||||||
cover_url = 'http://ilkerugur.files.wordpress.com/2009/04/freakonomics.jpg'
|
cover_url = 'http://ilkerugur.files.wordpress.com/2009/04/freakonomics.jpg'
|
||||||
|
use_embedded_content= False
|
||||||
|
no_stylesheets = True
|
||||||
|
oldest_article = 30
|
||||||
|
remove_javascript = True
|
||||||
|
remove_empty_feeds = True
|
||||||
|
max_articles_per_feed = 50
|
||||||
|
|
||||||
feeds = [('Blog', 'http://feeds.feedburner.com/freakonomicsblog')]
|
feeds = [(u'Freakonomics Blog', u'http://www.freakonomics.com/feed/')]
|
||||||
|
keep_only_tags = [dict(name='div', attrs={'id':['content']})]
|
||||||
keep_only_tags = [dict(name='div', attrs={'id':'header'}),
|
remove_tags_after = [dict(name='div', attrs={'class':['simple_socialmedia']})]
|
||||||
dict(name='h1'),
|
remove_tags = [dict(name='div', attrs={'class':['simple_socialmedia','single-fb-share','wp-polls']})]
|
||||||
dict(name='h2'),
|
|
||||||
dict(name='div', attrs={'class':'entry-content'}),
|
|
||||||
]
|
|
||||||
extra_css = '''
|
extra_css = '''
|
||||||
h1{font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:large;}
|
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;}
|
h2{font-family:Arial,Helvetica,sans-serif; font-weight:normal;font-size:small;}
|
||||||
|
81
recipes/frontlineonnet.recipe
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
__license__ = 'GPL v3'
|
||||||
|
__copyright__ = '2011, Darko Miletic <darko.miletic at gmail.com>'
|
||||||
|
'''
|
||||||
|
frontlineonnet.com
|
||||||
|
'''
|
||||||
|
|
||||||
|
import re
|
||||||
|
from calibre import strftime
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class Frontlineonnet(BasicNewsRecipe):
|
||||||
|
title = 'Frontline'
|
||||||
|
__author__ = 'Darko Miletic'
|
||||||
|
description = "India's national magazine"
|
||||||
|
publisher = 'Frontline'
|
||||||
|
category = 'news, politics, India'
|
||||||
|
no_stylesheets = True
|
||||||
|
delay = 1
|
||||||
|
INDEX = 'http://frontlineonnet.com/'
|
||||||
|
use_embedded_content = False
|
||||||
|
encoding = 'cp1252'
|
||||||
|
language = 'en_IN'
|
||||||
|
publication_type = 'magazine'
|
||||||
|
masthead_url = 'http://frontlineonnet.com/images/newfline.jpg'
|
||||||
|
extra_css = """
|
||||||
|
body{font-family: Verdana,Arial,Helvetica,sans-serif}
|
||||||
|
img{margin-top:0.5em; margin-bottom: 0.7em; display: block}
|
||||||
|
"""
|
||||||
|
|
||||||
|
conversion_options = {
|
||||||
|
'comment' : description
|
||||||
|
, 'tags' : category
|
||||||
|
, 'publisher' : publisher
|
||||||
|
, 'language' : language
|
||||||
|
, 'linearize_tables' : True
|
||||||
|
}
|
||||||
|
|
||||||
|
preprocess_regexps = [
|
||||||
|
(re.compile(r'.*?<base', re.DOTALL|re.IGNORECASE),lambda match: '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html dir="ltr" xml:lang="en-IN"><head><title>title</title><base')
|
||||||
|
,(re.compile(r'<base .*?>', re.DOTALL|re.IGNORECASE),lambda match: '</head><body>')
|
||||||
|
,(re.compile(r'<byline>', re.DOTALL|re.IGNORECASE),lambda match: '<div class="byline">')
|
||||||
|
,(re.compile(r'</byline>', re.DOTALL|re.IGNORECASE),lambda match: '</div>')
|
||||||
|
,(re.compile(r'<center>', re.DOTALL|re.IGNORECASE),lambda match: '<div class="ctr">')
|
||||||
|
,(re.compile(r'</center>', re.DOTALL|re.IGNORECASE),lambda match: '</div>')
|
||||||
|
]
|
||||||
|
|
||||||
|
keep_only_tags= [
|
||||||
|
dict(name='font', attrs={'class':'storyhead'})
|
||||||
|
,dict(attrs={'class':'byline'})
|
||||||
|
]
|
||||||
|
remove_attributes=['size','noshade','border']
|
||||||
|
|
||||||
|
def preprocess_html(self, soup):
|
||||||
|
for item in soup.findAll(style=True):
|
||||||
|
del item['style']
|
||||||
|
for item in soup.findAll('img'):
|
||||||
|
if not item.has_key('alt'):
|
||||||
|
item['alt'] = 'image'
|
||||||
|
return soup
|
||||||
|
|
||||||
|
def parse_index(self):
|
||||||
|
articles = []
|
||||||
|
soup = self.index_to_soup(self.INDEX)
|
||||||
|
for feed_link in soup.findAll('a',href=True):
|
||||||
|
if feed_link['href'].startswith('stories/'):
|
||||||
|
url = self.INDEX + feed_link['href']
|
||||||
|
title = self.tag_to_string(feed_link)
|
||||||
|
date = strftime(self.timefmt)
|
||||||
|
articles.append({
|
||||||
|
'title' :title
|
||||||
|
,'date' :date
|
||||||
|
,'url' :url
|
||||||
|
,'description':''
|
||||||
|
})
|
||||||
|
return [('Frontline', articles)]
|
||||||
|
|
||||||
|
def print_version(self, url):
|
||||||
|
return "http://www.hinduonnet.com/thehindu/thscrip/print.pl?prd=fline&file=" + url.rpartition('/')[2]
|
||||||
|
|
||||||
|
def image_url_processor(self, baseurl, url):
|
||||||
|
return url.replace('../images/', self.INDEX + 'images/').strip()
|
47
recipes/galicia_confidential.recipe
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
from calibre.web.feeds import Feed
|
||||||
|
|
||||||
|
class GC_gl(BasicNewsRecipe):
|
||||||
|
title = u'Galicia Confidencial (RSS)'
|
||||||
|
__author__ = u'Susana Sotelo Docío'
|
||||||
|
description = u'Unha fiestra de información aberta a todos'
|
||||||
|
publisher = u'Galicia Confidencial'
|
||||||
|
category = u'news, society, politics, Galicia'
|
||||||
|
encoding = 'utf-8'
|
||||||
|
language = 'gl'
|
||||||
|
direction = 'ltr'
|
||||||
|
cover_url = 'http://galiciaconfidencial.com/imagenes/header/logo_gc.gif'
|
||||||
|
oldest_article = 5
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
center_navbar = False
|
||||||
|
|
||||||
|
feeds = [(u'Novas no RSS', u'http://galiciaconfidencial.com/rss2/xeral.rss')]
|
||||||
|
|
||||||
|
extra_css = u' p{text-align:left} '
|
||||||
|
|
||||||
|
def print_version(self, url):
|
||||||
|
return url.replace('http://galiciaconfidencial.com/nova/', 'http://galiciaconfidencial.com/imprimir/')
|
||||||
|
|
||||||
|
def parse_index(self):
|
||||||
|
feeds = []
|
||||||
|
self.gc_parse_feeds(feeds)
|
||||||
|
return feeds
|
||||||
|
|
||||||
|
def gc_parse_feeds(self, feeds):
|
||||||
|
rssFeeds = Feed()
|
||||||
|
rssFeeds = BasicNewsRecipe.parse_feeds(self)
|
||||||
|
self.feed_to_index_append(rssFeeds[:], feeds)
|
||||||
|
|
||||||
|
|
||||||
|
def feed_to_index_append(self, feedObject, masterFeed):
|
||||||
|
for feed in feedObject:
|
||||||
|
newArticles = []
|
||||||
|
for article in feed.articles:
|
||||||
|
newArt = {
|
||||||
|
'title' : article.title,
|
||||||
|
'url' : article.url,
|
||||||
|
'date' : article.date
|
||||||
|
}
|
||||||
|
newArticles.append(newArt)
|
||||||
|
masterFeed.append((feed.title,newArticles))
|
35
recipes/geek_poke.recipe
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
import re
|
||||||
|
|
||||||
|
class AdvancedUserRecipe1307556816(BasicNewsRecipe):
|
||||||
|
title = u'Geek and Poke'
|
||||||
|
__author__ = u'DrMerry'
|
||||||
|
description = u'Geek and Poke Cartoons'
|
||||||
|
oldest_article = 31
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
language = u'en'
|
||||||
|
simultaneous_downloads = 5
|
||||||
|
#delay = 1
|
||||||
|
timefmt = ' [%A, %d %B, %Y]'
|
||||||
|
summary_length = -1
|
||||||
|
no_stylesheets = True
|
||||||
|
cover_url = 'http://geekandpoke.typepad.com/aboutcoders.jpeg'
|
||||||
|
remove_javascript = True
|
||||||
|
remove_empty_feeds = True
|
||||||
|
publication_type = 'blog'
|
||||||
|
|
||||||
|
preprocess_regexps = [ (re.compile(r'(<p> </p>|<iframe.*</iframe>|<a[^>]*>Tweet</a>|<a[^>]*>|</a>)', re.DOTALL|re.IGNORECASE),lambda match: ''),
|
||||||
|
(re.compile(r'( | )', re.DOTALL|re.IGNORECASE),lambda match: ' '),
|
||||||
|
(re.compile(r'<br( /)?>(<br( /)?>)+', re.DOTALL|re.IGNORECASE),lambda match: '<br>')
|
||||||
|
]
|
||||||
|
|
||||||
|
extra_css = 'body, h3, p, h2, h1, div, span{margin:0px} h2.date-header {font-size: 0.7em; color:#eee;} h3.entry-header{font-size: 1.0em} div.entry-body{font-size: 0.9em}'
|
||||||
|
|
||||||
|
|
||||||
|
remove_tags_before = dict(name='h2', attrs={'class':'date-header'})
|
||||||
|
remove_tags_after = dict(name='div', attrs={'class':'entry-body'})
|
||||||
|
|
||||||
|
|
||||||
|
feeds = [(u'Geek and Poke', u'http://feeds.feedburner.com/GeekAndPoke?format=xml')]
|
@ -11,8 +11,8 @@ import mechanize, re
|
|||||||
class GoComics(BasicNewsRecipe):
|
class GoComics(BasicNewsRecipe):
|
||||||
title = 'GoComics'
|
title = 'GoComics'
|
||||||
__author__ = 'Starson17'
|
__author__ = 'Starson17'
|
||||||
__version__ = '1.05'
|
__version__ = '1.06'
|
||||||
__date__ = '19 may 2011'
|
__date__ = '07 June 2011'
|
||||||
description = u'200+ Comics - Customize for more days/comics: Defaults to 7 days, 25 comics - 20 general, 5 editorial.'
|
description = u'200+ Comics - Customize for more days/comics: Defaults to 7 days, 25 comics - 20 general, 5 editorial.'
|
||||||
category = 'news, comics'
|
category = 'news, comics'
|
||||||
language = 'en'
|
language = 'en'
|
||||||
@ -56,225 +56,318 @@ class GoComics(BasicNewsRecipe):
|
|||||||
def parse_index(self):
|
def parse_index(self):
|
||||||
feeds = []
|
feeds = []
|
||||||
for title, url in [
|
for title, url in [
|
||||||
######## COMICS - GENERAL ########
|
(u"2 Cows and a Chicken", u"http://www.gocomics.com/2cowsandachicken"),
|
||||||
(u"2 Cows and a Chicken", u"http://www.gocomics.com/2cowsandachicken"),
|
#(u"9 Chickweed Lane", u"http://www.gocomics.com/9chickweedlane"),
|
||||||
# (u"9 to 5", u"http://www.gocomics.com/9to5"),
|
(u"9 to 5", u"http://www.gocomics.com/9to5"),
|
||||||
# (u"The Academia Waltz", u"http://www.gocomics.com/academiawaltz"),
|
#(u"Adam At Home", u"http://www.gocomics.com/adamathome"),
|
||||||
# (u"Adam@Home", u"http://www.gocomics.com/adamathome"),
|
(u"Agnes", u"http://www.gocomics.com/agnes"),
|
||||||
# (u"Agnes", u"http://www.gocomics.com/agnes"),
|
#(u"Alley Oop", u"http://www.gocomics.com/alleyoop"),
|
||||||
# (u"Andy Capp", u"http://www.gocomics.com/andycapp"),
|
#(u"Andy Capp", u"http://www.gocomics.com/andycapp"),
|
||||||
# (u"Animal Crackers", u"http://www.gocomics.com/animalcrackers"),
|
#(u"Animal Crackers", u"http://www.gocomics.com/animalcrackers"),
|
||||||
# (u"Annie", u"http://www.gocomics.com/annie"),
|
#(u"Annie", u"http://www.gocomics.com/annie"),
|
||||||
(u"The Argyle Sweater", u"http://www.gocomics.com/theargylesweater"),
|
#(u"Arlo & Janis", u"http://www.gocomics.com/arloandjanis"),
|
||||||
# (u"Ask Shagg", u"http://www.gocomics.com/askshagg"),
|
#(u"Ask Shagg", u"http://www.gocomics.com/askshagg"),
|
||||||
(u"B.C.", u"http://www.gocomics.com/bc"),
|
(u"B.C.", u"http://www.gocomics.com/bc"),
|
||||||
# (u"Back in the Day", u"http://www.gocomics.com/backintheday"),
|
#(u"Back in the Day", u"http://www.gocomics.com/backintheday"),
|
||||||
# (u"Bad Reporter", u"http://www.gocomics.com/badreporter"),
|
#(u"Bad Reporter", u"http://www.gocomics.com/badreporter"),
|
||||||
# (u"Baldo", u"http://www.gocomics.com/baldo"),
|
#(u"Baldo", u"http://www.gocomics.com/baldo"),
|
||||||
# (u"Ballard Street", u"http://www.gocomics.com/ballardstreet"),
|
#(u"Ballard Street", u"http://www.gocomics.com/ballardstreet"),
|
||||||
# (u"Barkeater Lake", u"http://www.gocomics.com/barkeaterlake"),
|
#(u"Barkeater Lake", u"http://www.gocomics.com/barkeaterlake"),
|
||||||
# (u"The Barn", u"http://www.gocomics.com/thebarn"),
|
#(u"Basic Instructions", u"http://www.gocomics.com/basicinstructions"),
|
||||||
# (u"Basic Instructions", u"http://www.gocomics.com/basicinstructions"),
|
#(u"Ben", u"http://www.gocomics.com/ben"),
|
||||||
# (u"Bewley", u"http://www.gocomics.com/bewley"),
|
#(u"Betty", u"http://www.gocomics.com/betty"),
|
||||||
# (u"Big Top", u"http://www.gocomics.com/bigtop"),
|
#(u"Bewley", u"http://www.gocomics.com/bewley"),
|
||||||
# (u"Biographic", u"http://www.gocomics.com/biographic"),
|
#(u"Big Nate", u"http://www.gocomics.com/bignate"),
|
||||||
(u"Birdbrains", u"http://www.gocomics.com/birdbrains"),
|
#(u"Big Top", u"http://www.gocomics.com/bigtop"),
|
||||||
# (u"Bleeker: The Rechargeable Dog", u"http://www.gocomics.com/bleeker"),
|
#(u"Biographic", u"http://www.gocomics.com/biographic"),
|
||||||
# (u"Bliss", u"http://www.gocomics.com/bliss"),
|
#(u"Birdbrains", u"http://www.gocomics.com/birdbrains"),
|
||||||
(u"Bloom County", u"http://www.gocomics.com/bloomcounty"),
|
#(u"Bleeker: The Rechargeable Dog", u"http://www.gocomics.com/bleeker"),
|
||||||
# (u"Bo Nanas", u"http://www.gocomics.com/bonanas"),
|
#(u"Bliss", u"http://www.gocomics.com/bliss"),
|
||||||
# (u"Bob the Squirrel", u"http://www.gocomics.com/bobthesquirrel"),
|
(u"Bloom County", u"http://www.gocomics.com/bloomcounty"),
|
||||||
# (u"The Boiling Point", u"http://www.gocomics.com/theboilingpoint"),
|
#(u"Bo Nanas", u"http://www.gocomics.com/bonanas"),
|
||||||
# (u"Boomerangs", u"http://www.gocomics.com/boomerangs"),
|
#(u"Bob the Squirrel", u"http://www.gocomics.com/bobthesquirrel"),
|
||||||
# (u"The Boondocks", u"http://www.gocomics.com/boondocks"),
|
#(u"Boomerangs", u"http://www.gocomics.com/boomerangs"),
|
||||||
# (u"Bottomliners", u"http://www.gocomics.com/bottomliners"),
|
#(u"Bottomliners", u"http://www.gocomics.com/bottomliners"),
|
||||||
# (u"Bound and Gagged", u"http://www.gocomics.com/boundandgagged"),
|
#(u"Bound and Gagged", u"http://www.gocomics.com/boundandgagged"),
|
||||||
# (u"Brainwaves", u"http://www.gocomics.com/brainwaves"),
|
#(u"Brainwaves", u"http://www.gocomics.com/brainwaves"),
|
||||||
# (u"Brenda Starr", u"http://www.gocomics.com/brendastarr"),
|
#(u"Brenda Starr", u"http://www.gocomics.com/brendastarr"),
|
||||||
# (u"Brewster Rockit", u"http://www.gocomics.com/brewsterrockit"),
|
#(u"Brevity", u"http://www.gocomics.com/brevity"),
|
||||||
# (u"Broom Hilda", u"http://www.gocomics.com/broomhilda"),
|
#(u"Brewster Rockit", u"http://www.gocomics.com/brewsterrockit"),
|
||||||
(u"Calvin and Hobbes", u"http://www.gocomics.com/calvinandhobbes"),
|
#(u"Broom Hilda", u"http://www.gocomics.com/broomhilda"),
|
||||||
# (u"Candorville", u"http://www.gocomics.com/candorville"),
|
(u"Calvin and Hobbes", u"http://www.gocomics.com/calvinandhobbes"),
|
||||||
# (u"Cathy", u"http://www.gocomics.com/cathy"),
|
#(u"Candorville", u"http://www.gocomics.com/candorville"),
|
||||||
# (u"C'est la Vie", u"http://www.gocomics.com/cestlavie"),
|
#(u"Cathy", u"http://www.gocomics.com/cathy"),
|
||||||
# (u"Chuckle Bros", u"http://www.gocomics.com/chucklebros"),
|
#(u"C'est la Vie", u"http://www.gocomics.com/cestlavie"),
|
||||||
# (u"Citizen Dog", u"http://www.gocomics.com/citizendog"),
|
#(u"Cheap Thrills", u"http://www.gocomics.com/cheapthrills"),
|
||||||
# (u"The City", u"http://www.gocomics.com/thecity"),
|
#(u"Chuckle Bros", u"http://www.gocomics.com/chucklebros"),
|
||||||
# (u"Cleats", u"http://www.gocomics.com/cleats"),
|
#(u"Citizen Dog", u"http://www.gocomics.com/citizendog"),
|
||||||
# (u"Close to Home", u"http://www.gocomics.com/closetohome"),
|
#(u"Cleats", u"http://www.gocomics.com/cleats"),
|
||||||
# (u"Compu-toon", u"http://www.gocomics.com/compu-toon"),
|
#(u"Close to Home", u"http://www.gocomics.com/closetohome"),
|
||||||
# (u"Cornered", u"http://www.gocomics.com/cornered"),
|
#(u"Committed", u"http://www.gocomics.com/committed"),
|
||||||
(u"Cul de Sac", u"http://www.gocomics.com/culdesac"),
|
#(u"Compu-toon", u"http://www.gocomics.com/compu-toon"),
|
||||||
# (u"Daddy's Home", u"http://www.gocomics.com/daddyshome"),
|
#(u"Cornered", u"http://www.gocomics.com/cornered"),
|
||||||
# (u"Deep Cover", u"http://www.gocomics.com/deepcover"),
|
#(u"Cow & Boy", u"http://www.gocomics.com/cow&boy"),
|
||||||
# (u"Dick Tracy", u"http://www.gocomics.com/dicktracy"),
|
#(u"Cul de Sac", u"http://www.gocomics.com/culdesac"),
|
||||||
# (u"The Dinette Set", u"http://www.gocomics.com/dinetteset"),
|
#(u"Daddy's Home", u"http://www.gocomics.com/daddyshome"),
|
||||||
# (u"Dog Eat Doug", u"http://www.gocomics.com/dogeatdoug"),
|
#(u"Deep Cover", u"http://www.gocomics.com/deepcover"),
|
||||||
# (u"Domestic Abuse", u"http://www.gocomics.com/domesticabuse"),
|
#(u"Dick Tracy", u"http://www.gocomics.com/dicktracy"),
|
||||||
# (u"Doodles", u"http://www.gocomics.com/doodles"),
|
(u"Dog Eat Doug", u"http://www.gocomics.com/dogeatdoug"),
|
||||||
(u"Doonesbury", u"http://www.gocomics.com/doonesbury"),
|
#(u"Domestic Abuse", u"http://www.gocomics.com/domesticabuse"),
|
||||||
# (u"The Doozies", u"http://www.gocomics.com/thedoozies"),
|
(u"Doodles", u"http://www.gocomics.com/doodles"),
|
||||||
# (u"The Duplex", u"http://www.gocomics.com/duplex"),
|
(u"Doonesbury", u"http://www.gocomics.com/doonesbury"),
|
||||||
# (u"Eek!", u"http://www.gocomics.com/eek"),
|
#(u"Drabble", u"http://www.gocomics.com/drabble"),
|
||||||
# (u"The Elderberries", u"http://www.gocomics.com/theelderberries"),
|
#(u"Eek!", u"http://www.gocomics.com/eek"),
|
||||||
# (u"Flight Deck", u"http://www.gocomics.com/flightdeck"),
|
#(u"F Minus", u"http://www.gocomics.com/fminus"),
|
||||||
# (u"Flo and Friends", u"http://www.gocomics.com/floandfriends"),
|
#(u"Family Tree", u"http://www.gocomics.com/familytree"),
|
||||||
# (u"The Flying McCoys", u"http://www.gocomics.com/theflyingmccoys"),
|
#(u"Farcus", u"http://www.gocomics.com/farcus"),
|
||||||
(u"For Better or For Worse", u"http://www.gocomics.com/forbetterorforworse"),
|
(u"Fat Cats Classics", u"http://www.gocomics.com/fatcatsclassics"),
|
||||||
# (u"For Heaven's Sake", u"http://www.gocomics.com/forheavenssake"),
|
#(u"Ferd'nand", u"http://www.gocomics.com/ferdnand"),
|
||||||
# (u"Fort Knox", u"http://www.gocomics.com/fortknox"),
|
#(u"Flight Deck", u"http://www.gocomics.com/flightdeck"),
|
||||||
# (u"FoxTrot", u"http://www.gocomics.com/foxtrot"),
|
(u"Flo and Friends", u"http://www.gocomics.com/floandfriends"),
|
||||||
(u"FoxTrot Classics", u"http://www.gocomics.com/foxtrotclassics"),
|
#(u"For Better or For Worse", u"http://www.gocomics.com/forbetterorforworse"),
|
||||||
# (u"Frank & Ernest", u"http://www.gocomics.com/frankandernest"),
|
#(u"For Heaven's Sake", u"http://www.gocomics.com/forheavenssake"),
|
||||||
# (u"Fred Basset", u"http://www.gocomics.com/fredbasset"),
|
#(u"Fort Knox", u"http://www.gocomics.com/fortknox"),
|
||||||
# (u"Free Range", u"http://www.gocomics.com/freerange"),
|
#(u"FoxTrot Classics", u"http://www.gocomics.com/foxtrotclassics"),
|
||||||
# (u"Frog Applause", u"http://www.gocomics.com/frogapplause"),
|
(u"FoxTrot", u"http://www.gocomics.com/foxtrot"),
|
||||||
# (u"The Fusco Brothers", u"http://www.gocomics.com/thefuscobrothers"),
|
#(u"Frank & Ernest", u"http://www.gocomics.com/frankandernest"),
|
||||||
(u"Garfield", u"http://www.gocomics.com/garfield"),
|
#(u"Frazz", u"http://www.gocomics.com/frazz"),
|
||||||
# (u"Garfield Minus Garfield", u"http://www.gocomics.com/garfieldminusgarfield"),
|
#(u"Fred Basset", u"http://www.gocomics.com/fredbasset"),
|
||||||
# (u"Gasoline Alley", u"http://www.gocomics.com/gasolinealley"),
|
#(u"Free Range", u"http://www.gocomics.com/freerange"),
|
||||||
# (u"Gil Thorp", u"http://www.gocomics.com/gilthorp"),
|
#(u"Frog Applause", u"http://www.gocomics.com/frogapplause"),
|
||||||
# (u"Ginger Meggs", u"http://www.gocomics.com/gingermeggs"),
|
#(u"Garfield Minus Garfield", u"http://www.gocomics.com/garfieldminusgarfield"),
|
||||||
# (u"Girls & Sports", u"http://www.gocomics.com/girlsandsports"),
|
(u"Garfield", u"http://www.gocomics.com/garfield"),
|
||||||
# (u"Haiku Ewe", u"http://www.gocomics.com/haikuewe"),
|
#(u"Gasoline Alley", u"http://www.gocomics.com/gasolinealley"),
|
||||||
# (u"Heart of the City", u"http://www.gocomics.com/heartofthecity"),
|
#(u"Geech Classics", u"http://www.gocomics.com/geechclassics"),
|
||||||
# (u"Heathcliff", u"http://www.gocomics.com/heathcliff"),
|
#(u"Get Fuzzy", u"http://www.gocomics.com/getfuzzy"),
|
||||||
# (u"Herb and Jamaal", u"http://www.gocomics.com/herbandjamaal"),
|
#(u"Gil Thorp", u"http://www.gocomics.com/gilthorp"),
|
||||||
# (u"Home and Away", u"http://www.gocomics.com/homeandaway"),
|
#(u"Ginger Meggs", u"http://www.gocomics.com/gingermeggs"),
|
||||||
# (u"Housebroken", u"http://www.gocomics.com/housebroken"),
|
#(u"Girls & Sports", u"http://www.gocomics.com/girlsandsports"),
|
||||||
# (u"Hubert and Abby", u"http://www.gocomics.com/hubertandabby"),
|
#(u"Graffiti", u"http://www.gocomics.com/graffiti"),
|
||||||
# (u"Imagine This", u"http://www.gocomics.com/imaginethis"),
|
#(u"Grand Avenue", u"http://www.gocomics.com/grandavenue"),
|
||||||
# (u"In the Bleachers", u"http://www.gocomics.com/inthebleachers"),
|
#(u"Haiku Ewe", u"http://www.gocomics.com/haikuewe"),
|
||||||
# (u"In the Sticks", u"http://www.gocomics.com/inthesticks"),
|
#(u"Heart of the City", u"http://www.gocomics.com/heartofthecity"),
|
||||||
# (u"Ink Pen", u"http://www.gocomics.com/inkpen"),
|
(u"Heathcliff", u"http://www.gocomics.com/heathcliff"),
|
||||||
# (u"It's All About You", u"http://www.gocomics.com/itsallaboutyou"),
|
#(u"Herb and Jamaal", u"http://www.gocomics.com/herbandjamaal"),
|
||||||
# (u"Joe Vanilla", u"http://www.gocomics.com/joevanilla"),
|
#(u"Herman", u"http://www.gocomics.com/herman"),
|
||||||
# (u"La Cucaracha", u"http://www.gocomics.com/lacucaracha"),
|
#(u"Home and Away", u"http://www.gocomics.com/homeandaway"),
|
||||||
# (u"Last Kiss", u"http://www.gocomics.com/lastkiss"),
|
#(u"Housebroken", u"http://www.gocomics.com/housebroken"),
|
||||||
# (u"Legend of Bill", u"http://www.gocomics.com/legendofbill"),
|
#(u"Hubert and Abby", u"http://www.gocomics.com/hubertandabby"),
|
||||||
# (u"Liberty Meadows", u"http://www.gocomics.com/libertymeadows"),
|
#(u"Imagine This", u"http://www.gocomics.com/imaginethis"),
|
||||||
(u"Lio", u"http://www.gocomics.com/lio"),
|
#(u"In the Bleachers", u"http://www.gocomics.com/inthebleachers"),
|
||||||
# (u"Little Dog Lost", u"http://www.gocomics.com/littledoglost"),
|
#(u"In the Sticks", u"http://www.gocomics.com/inthesticks"),
|
||||||
# (u"Little Otto", u"http://www.gocomics.com/littleotto"),
|
#(u"Ink Pen", u"http://www.gocomics.com/inkpen"),
|
||||||
# (u"Loose Parts", u"http://www.gocomics.com/looseparts"),
|
#(u"It's All About You", u"http://www.gocomics.com/itsallaboutyou"),
|
||||||
# (u"Love Is...", u"http://www.gocomics.com/loveis"),
|
#(u"Jane's World", u"http://www.gocomics.com/janesworld"),
|
||||||
# (u"Maintaining", u"http://www.gocomics.com/maintaining"),
|
#(u"Joe Vanilla", u"http://www.gocomics.com/joevanilla"),
|
||||||
# (u"The Meaning of Lila", u"http://www.gocomics.com/meaningoflila"),
|
#(u"Jump Start", u"http://www.gocomics.com/jumpstart"),
|
||||||
# (u"Middle-Aged White Guy", u"http://www.gocomics.com/middleagedwhiteguy"),
|
#(u"Kit 'N' Carlyle", u"http://www.gocomics.com/kitandcarlyle"),
|
||||||
# (u"The Middletons", u"http://www.gocomics.com/themiddletons"),
|
#(u"La Cucaracha", u"http://www.gocomics.com/lacucaracha"),
|
||||||
# (u"Momma", u"http://www.gocomics.com/momma"),
|
#(u"Last Kiss", u"http://www.gocomics.com/lastkiss"),
|
||||||
# (u"Mutt & Jeff", u"http://www.gocomics.com/muttandjeff"),
|
#(u"Legend of Bill", u"http://www.gocomics.com/legendofbill"),
|
||||||
# (u"Mythtickle", u"http://www.gocomics.com/mythtickle"),
|
#(u"Liberty Meadows", u"http://www.gocomics.com/libertymeadows"),
|
||||||
# (u"Nest Heads", u"http://www.gocomics.com/nestheads"),
|
#(u"Li'l Abner Classics", u"http://www.gocomics.com/lilabnerclassics"),
|
||||||
# (u"NEUROTICA", u"http://www.gocomics.com/neurotica"),
|
#(u"Lio", u"http://www.gocomics.com/lio"),
|
||||||
(u"New Adventures of Queen Victoria", u"http://www.gocomics.com/thenewadventuresofqueenvictoria"),
|
#(u"Little Dog Lost", u"http://www.gocomics.com/littledoglost"),
|
||||||
(u"Non Sequitur", u"http://www.gocomics.com/nonsequitur"),
|
#(u"Little Otto", u"http://www.gocomics.com/littleotto"),
|
||||||
# (u"The Norm", u"http://www.gocomics.com/thenorm"),
|
#(u"Lola", u"http://www.gocomics.com/lola"),
|
||||||
# (u"On A Claire Day", u"http://www.gocomics.com/onaclaireday"),
|
#(u"Loose Parts", u"http://www.gocomics.com/looseparts"),
|
||||||
# (u"One Big Happy", u"http://www.gocomics.com/onebighappy"),
|
#(u"Love Is...", u"http://www.gocomics.com/loveis"),
|
||||||
# (u"The Other Coast", u"http://www.gocomics.com/theothercoast"),
|
#(u"Luann", u"http://www.gocomics.com/luann"),
|
||||||
# (u"Out of the Gene Pool Re-Runs", u"http://www.gocomics.com/outofthegenepool"),
|
#(u"Maintaining", u"http://www.gocomics.com/maintaining"),
|
||||||
# (u"Overboard", u"http://www.gocomics.com/overboard"),
|
(u"Marmaduke", u"http://www.gocomics.com/marmaduke"),
|
||||||
# (u"Pibgorn", u"http://www.gocomics.com/pibgorn"),
|
#(u"Meg! Classics", u"http://www.gocomics.com/megclassics"),
|
||||||
# (u"Pibgorn Sketches", u"http://www.gocomics.com/pibgornsketches"),
|
#(u"Middle-Aged White Guy", u"http://www.gocomics.com/middleagedwhiteguy"),
|
||||||
(u"Pickles", u"http://www.gocomics.com/pickles"),
|
#(u"Minimum Security", u"http://www.gocomics.com/minimumsecurity"),
|
||||||
# (u"Pinkerton", u"http://www.gocomics.com/pinkerton"),
|
#(u"Moderately Confused", u"http://www.gocomics.com/moderatelyconfused"),
|
||||||
# (u"Pluggers", u"http://www.gocomics.com/pluggers"),
|
(u"Momma", u"http://www.gocomics.com/momma"),
|
||||||
(u"Pooch Cafe", u"http://www.gocomics.com/poochcafe"),
|
#(u"Monty", u"http://www.gocomics.com/monty"),
|
||||||
# (u"PreTeena", u"http://www.gocomics.com/preteena"),
|
#(u"Motley Classics", u"http://www.gocomics.com/motleyclassics"),
|
||||||
# (u"The Quigmans", u"http://www.gocomics.com/thequigmans"),
|
(u"Mutt & Jeff", u"http://www.gocomics.com/muttandjeff"),
|
||||||
# (u"Rabbits Against Magic", u"http://www.gocomics.com/rabbitsagainstmagic"),
|
#(u"Mythtickle", u"http://www.gocomics.com/mythtickle"),
|
||||||
(u"Real Life Adventures", u"http://www.gocomics.com/reallifeadventures"),
|
#(u"Nancy", u"http://www.gocomics.com/nancy"),
|
||||||
# (u"Red and Rover", u"http://www.gocomics.com/redandrover"),
|
#(u"Natural Selection", u"http://www.gocomics.com/naturalselection"),
|
||||||
# (u"Red Meat", u"http://www.gocomics.com/redmeat"),
|
#(u"Nest Heads", u"http://www.gocomics.com/nestheads"),
|
||||||
# (u"Reynolds Unwrapped", u"http://www.gocomics.com/reynoldsunwrapped"),
|
#(u"NEUROTICA", u"http://www.gocomics.com/neurotica"),
|
||||||
# (u"Ronaldinho Gaucho", u"http://www.gocomics.com/ronaldinhogaucho"),
|
#(u"New Adventures of Queen Victoria", u"http://www.gocomics.com/thenewadventuresofqueenvictoria"),
|
||||||
# (u"Rubes", u"http://www.gocomics.com/rubes"),
|
#(u"Non Sequitur", u"http://www.gocomics.com/nonsequitur"),
|
||||||
# (u"Scary Gary", u"http://www.gocomics.com/scarygary"),
|
#(u"Off The Mark", u"http://www.gocomics.com/offthemark"),
|
||||||
(u"Shoe", u"http://www.gocomics.com/shoe"),
|
#(u"On A Claire Day", u"http://www.gocomics.com/onaclaireday"),
|
||||||
# (u"Shoecabbage", u"http://www.gocomics.com/shoecabbage"),
|
#(u"One Big Happy Classics", u"http://www.gocomics.com/onebighappyclassics"),
|
||||||
# (u"Skin Horse", u"http://www.gocomics.com/skinhorse"),
|
#(u"One Big Happy", u"http://www.gocomics.com/onebighappy"),
|
||||||
# (u"Slowpoke", u"http://www.gocomics.com/slowpoke"),
|
#(u"Out of the Gene Pool Re-Runs", u"http://www.gocomics.com/outofthegenepool"),
|
||||||
# (u"Speed Bump", u"http://www.gocomics.com/speedbump"),
|
#(u"Over the Hedge", u"http://www.gocomics.com/overthehedge"),
|
||||||
# (u"State of the Union", u"http://www.gocomics.com/stateoftheunion"),
|
#(u"Overboard", u"http://www.gocomics.com/overboard"),
|
||||||
(u"Stone Soup", u"http://www.gocomics.com/stonesoup"),
|
#(u"PC and Pixel", u"http://www.gocomics.com/pcandpixel"),
|
||||||
# (u"Strange Brew", u"http://www.gocomics.com/strangebrew"),
|
(u"Peanuts", u"http://www.gocomics.com/peanuts"),
|
||||||
# (u"Sylvia", u"http://www.gocomics.com/sylvia"),
|
#(u"Pearls Before Swine", u"http://www.gocomics.com/pearlsbeforeswine"),
|
||||||
# (u"Tank McNamara", u"http://www.gocomics.com/tankmcnamara"),
|
#(u"Pibgorn Sketches", u"http://www.gocomics.com/pibgornsketches"),
|
||||||
# (u"Tiny Sepuku", u"http://www.gocomics.com/tinysepuku"),
|
#(u"Pibgorn", u"http://www.gocomics.com/pibgorn"),
|
||||||
# (u"TOBY", u"http://www.gocomics.com/toby"),
|
(u"Pickles", u"http://www.gocomics.com/pickles"),
|
||||||
# (u"Tom the Dancing Bug", u"http://www.gocomics.com/tomthedancingbug"),
|
#(u"Pinkerton", u"http://www.gocomics.com/pinkerton"),
|
||||||
# (u"Too Much Coffee Man", u"http://www.gocomics.com/toomuchcoffeeman"),
|
#(u"Pluggers", u"http://www.gocomics.com/pluggers"),
|
||||||
# (u"W.T. Duck", u"http://www.gocomics.com/wtduck"),
|
#(u"Pooch Cafe", u"http://www.gocomics.com/poochcafe"),
|
||||||
# (u"Watch Your Head", u"http://www.gocomics.com/watchyourhead"),
|
#(u"PreTeena", u"http://www.gocomics.com/preteena"),
|
||||||
# (u"Wee Pals", u"http://www.gocomics.com/weepals"),
|
#(u"Prickly City", u"http://www.gocomics.com/pricklycity"),
|
||||||
# (u"Winnie the Pooh", u"http://www.gocomics.com/winniethepooh"),
|
#(u"Rabbits Against Magic", u"http://www.gocomics.com/rabbitsagainstmagic"),
|
||||||
(u"Wizard of Id", u"http://www.gocomics.com/wizardofid"),
|
#(u"Raising Duncan Classics", u"http://www.gocomics.com/raisingduncanclassics"),
|
||||||
# (u"Working It Out", u"http://www.gocomics.com/workingitout"),
|
#(u"Real Life Adventures", u"http://www.gocomics.com/reallifeadventures"),
|
||||||
# (u"Yenny", u"http://www.gocomics.com/yenny"),
|
#(u"Reality Check", u"http://www.gocomics.com/realitycheck"),
|
||||||
# (u"Zack Hill", u"http://www.gocomics.com/zackhill"),
|
#(u"Red and Rover", u"http://www.gocomics.com/redandrover"),
|
||||||
(u"Ziggy", u"http://www.gocomics.com/ziggy"),
|
#(u"Red Meat", u"http://www.gocomics.com/redmeat"),
|
||||||
######## COMICS - EDITORIAL ########
|
#(u"Reynolds Unwrapped", u"http://www.gocomics.com/reynoldsunwrapped"),
|
||||||
("Lalo Alcaraz","http://www.gocomics.com/laloalcaraz"),
|
#(u"Rip Haywire", u"http://www.gocomics.com/riphaywire"),
|
||||||
("Nick Anderson","http://www.gocomics.com/nickanderson"),
|
#(u"Ripley's Believe It or Not!", u"http://www.gocomics.com/ripleysbelieveitornot"),
|
||||||
("Chuck Asay","http://www.gocomics.com/chuckasay"),
|
#(u"Ronaldinho Gaucho", u"http://www.gocomics.com/ronaldinhogaucho"),
|
||||||
("Tony Auth","http://www.gocomics.com/tonyauth"),
|
#(u"Rose Is Rose", u"http://www.gocomics.com/roseisrose"),
|
||||||
("Donna Barstow","http://www.gocomics.com/donnabarstow"),
|
#(u"Rubes", u"http://www.gocomics.com/rubes"),
|
||||||
# ("Bruce Beattie","http://www.gocomics.com/brucebeattie"),
|
#(u"Rudy Park", u"http://www.gocomics.com/rudypark"),
|
||||||
# ("Clay Bennett","http://www.gocomics.com/claybennett"),
|
#(u"Scary Gary", u"http://www.gocomics.com/scarygary"),
|
||||||
# ("Lisa Benson","http://www.gocomics.com/lisabenson"),
|
#(u"Shirley and Son Classics", u"http://www.gocomics.com/shirleyandsonclassics"),
|
||||||
# ("Steve Benson","http://www.gocomics.com/stevebenson"),
|
#(u"Shoe", u"http://www.gocomics.com/shoe"),
|
||||||
# ("Chip Bok","http://www.gocomics.com/chipbok"),
|
#(u"Shoecabbage", u"http://www.gocomics.com/shoecabbage"),
|
||||||
# ("Steve Breen","http://www.gocomics.com/stevebreen"),
|
#(u"Skin Horse", u"http://www.gocomics.com/skinhorse"),
|
||||||
# ("Chris Britt","http://www.gocomics.com/chrisbritt"),
|
#(u"Slowpoke", u"http://www.gocomics.com/slowpoke"),
|
||||||
# ("Stuart Carlson","http://www.gocomics.com/stuartcarlson"),
|
#(u"Soup To Nutz", u"http://www.gocomics.com/souptonutz"),
|
||||||
# ("Ken Catalino","http://www.gocomics.com/kencatalino"),
|
#(u"Speed Bump", u"http://www.gocomics.com/speedbump"),
|
||||||
# ("Paul Conrad","http://www.gocomics.com/paulconrad"),
|
#(u"Spot The Frog", u"http://www.gocomics.com/spotthefrog"),
|
||||||
# ("Jeff Danziger","http://www.gocomics.com/jeffdanziger"),
|
#(u"State of the Union", u"http://www.gocomics.com/stateoftheunion"),
|
||||||
# ("Matt Davies","http://www.gocomics.com/mattdavies"),
|
#(u"Stone Soup", u"http://www.gocomics.com/stonesoup"),
|
||||||
# ("John Deering","http://www.gocomics.com/johndeering"),
|
#(u"Strange Brew", u"http://www.gocomics.com/strangebrew"),
|
||||||
# ("Bob Gorrell","http://www.gocomics.com/bobgorrell"),
|
#(u"Sylvia", u"http://www.gocomics.com/sylvia"),
|
||||||
# ("Walt Handelsman","http://www.gocomics.com/walthandelsman"),
|
#(u"Tank McNamara", u"http://www.gocomics.com/tankmcnamara"),
|
||||||
# ("Clay Jones","http://www.gocomics.com/clayjones"),
|
#(u"Tarzan Classics", u"http://www.gocomics.com/tarzanclassics"),
|
||||||
# ("Kevin Kallaugher","http://www.gocomics.com/kevinkallaugher"),
|
#(u"That's Life", u"http://www.gocomics.com/thatslife"),
|
||||||
# ("Steve Kelley","http://www.gocomics.com/stevekelley"),
|
#(u"The Academia Waltz", u"http://www.gocomics.com/academiawaltz"),
|
||||||
# ("Dick Locher","http://www.gocomics.com/dicklocher"),
|
#(u"The Argyle Sweater", u"http://www.gocomics.com/theargylesweater"),
|
||||||
# ("Chan Lowe","http://www.gocomics.com/chanlowe"),
|
#(u"The Barn", u"http://www.gocomics.com/thebarn"),
|
||||||
# ("Mike Luckovich","http://www.gocomics.com/mikeluckovich"),
|
#(u"The Boiling Point", u"http://www.gocomics.com/theboilingpoint"),
|
||||||
# ("Gary Markstein","http://www.gocomics.com/garymarkstein"),
|
#(u"The Boondocks", u"http://www.gocomics.com/boondocks"),
|
||||||
# ("Glenn McCoy","http://www.gocomics.com/glennmccoy"),
|
#(u"The Born Loser", u"http://www.gocomics.com/thebornloser"),
|
||||||
# ("Jim Morin","http://www.gocomics.com/jimmorin"),
|
#(u"The Buckets", u"http://www.gocomics.com/thebuckets"),
|
||||||
# ("Jack Ohman","http://www.gocomics.com/jackohman"),
|
#(u"The City", u"http://www.gocomics.com/thecity"),
|
||||||
# ("Pat Oliphant","http://www.gocomics.com/patoliphant"),
|
#(u"The Dinette Set", u"http://www.gocomics.com/dinetteset"),
|
||||||
# ("Joel Pett","http://www.gocomics.com/joelpett"),
|
#(u"The Doozies", u"http://www.gocomics.com/thedoozies"),
|
||||||
# ("Ted Rall","http://www.gocomics.com/tedrall"),
|
#(u"The Duplex", u"http://www.gocomics.com/duplex"),
|
||||||
# ("Michael Ramirez","http://www.gocomics.com/michaelramirez"),
|
#(u"The Elderberries", u"http://www.gocomics.com/theelderberries"),
|
||||||
# ("Marshall Ramsey","http://www.gocomics.com/marshallramsey"),
|
#(u"The Flying McCoys", u"http://www.gocomics.com/theflyingmccoys"),
|
||||||
# ("Steve Sack","http://www.gocomics.com/stevesack"),
|
#(u"The Fusco Brothers", u"http://www.gocomics.com/thefuscobrothers"),
|
||||||
# ("Ben Sargent","http://www.gocomics.com/bensargent"),
|
#(u"The Grizzwells", u"http://www.gocomics.com/thegrizzwells"),
|
||||||
# ("Drew Sheneman","http://www.gocomics.com/drewsheneman"),
|
#(u"The Humble Stumble", u"http://www.gocomics.com/thehumblestumble"),
|
||||||
# ("John Sherffius","http://www.gocomics.com/johnsherffius"),
|
#(u"The Knight Life", u"http://www.gocomics.com/theknightlife"),
|
||||||
# ("Small World","http://www.gocomics.com/smallworld"),
|
#(u"The Meaning of Lila", u"http://www.gocomics.com/meaningoflila"),
|
||||||
# ("Scott Stantis","http://www.gocomics.com/scottstantis"),
|
#(u"The Middletons", u"http://www.gocomics.com/themiddletons"),
|
||||||
# ("Wayne Stayskal","http://www.gocomics.com/waynestayskal"),
|
#(u"The Norm", u"http://www.gocomics.com/thenorm"),
|
||||||
# ("Dana Summers","http://www.gocomics.com/danasummers"),
|
#(u"The Other Coast", u"http://www.gocomics.com/theothercoast"),
|
||||||
# ("Paul Szep","http://www.gocomics.com/paulszep"),
|
#(u"The Quigmans", u"http://www.gocomics.com/thequigmans"),
|
||||||
# ("Mike Thompson","http://www.gocomics.com/mikethompson"),
|
#(u"The Sunshine Club", u"http://www.gocomics.com/thesunshineclub"),
|
||||||
# ("Tom Toles","http://www.gocomics.com/tomtoles"),
|
#(u"Tiny Sepuk", u"http://www.gocomics.com/tinysepuk"),
|
||||||
# ("Gary Varvel","http://www.gocomics.com/garyvarvel"),
|
#(u"TOBY", u"http://www.gocomics.com/toby"),
|
||||||
# ("ViewsAfrica","http://www.gocomics.com/viewsafrica"),
|
#(u"Tom the Dancing Bug", u"http://www.gocomics.com/tomthedancingbug"),
|
||||||
# ("ViewsAmerica","http://www.gocomics.com/viewsamerica"),
|
#(u"Too Much Coffee Man", u"http://www.gocomics.com/toomuchcoffeeman"),
|
||||||
# ("ViewsAsia","http://www.gocomics.com/viewsasia"),
|
#(u"Unstrange Phenomena", u"http://www.gocomics.com/unstrangephenomena"),
|
||||||
# ("ViewsBusiness","http://www.gocomics.com/viewsbusiness"),
|
#(u"W.T. Duck", u"http://www.gocomics.com/wtduck"),
|
||||||
# ("ViewsEurope","http://www.gocomics.com/viewseurope"),
|
#(u"Watch Your Head", u"http://www.gocomics.com/watchyourhead"),
|
||||||
# ("ViewsLatinAmerica","http://www.gocomics.com/viewslatinamerica"),
|
#(u"Wee Pals", u"http://www.gocomics.com/weepals"),
|
||||||
# ("ViewsMidEast","http://www.gocomics.com/viewsmideast"),
|
#(u"Winnie the Pooh", u"http://www.gocomics.com/winniethepooh"),
|
||||||
# ("Views of the World","http://www.gocomics.com/viewsoftheworld"),
|
#(u"Wizard of Id", u"http://www.gocomics.com/wizardofid"),
|
||||||
# ("Kerry Waghorn","http://www.gocomics.com/facesinthenews"),
|
#(u"Working Daze", u"http://www.gocomics.com/workingdaze"),
|
||||||
# ("Dan Wasserman","http://www.gocomics.com/danwasserman"),
|
#(u"Working It Out", u"http://www.gocomics.com/workingitout"),
|
||||||
# ("Signe Wilkinson","http://www.gocomics.com/signewilkinson"),
|
#(u"Yenny", u"http://www.gocomics.com/yenny"),
|
||||||
# ("Wit of the World","http://www.gocomics.com/witoftheworld"),
|
#(u"Zack Hill", u"http://www.gocomics.com/zackhill"),
|
||||||
# ("Don Wright","http://www.gocomics.com/donwright"),
|
(u"Ziggy", u"http://www.gocomics.com/ziggy"),
|
||||||
|
#
|
||||||
|
######## EDITORIAL CARTOONS #####################
|
||||||
|
(u"Adam Zyglis", u"http://www.gocomics.com/adamzyglis"),
|
||||||
|
#(u"Andy Singer", u"http://www.gocomics.com/andysinger"),
|
||||||
|
#(u"Ben Sargent",u"http://www.gocomics.com/bensargent"),
|
||||||
|
#(u"Bill Day", u"http://www.gocomics.com/billday"),
|
||||||
|
#(u"Bill Schorr", u"http://www.gocomics.com/billschorr"),
|
||||||
|
#(u"Bob Englehart", u"http://www.gocomics.com/bobenglehart"),
|
||||||
|
(u"Bob Gorrell",u"http://www.gocomics.com/bobgorrell"),
|
||||||
|
#(u"Brian Fairrington", u"http://www.gocomics.com/brianfairrington"),
|
||||||
|
#(u"Bruce Beattie", u"http://www.gocomics.com/brucebeattie"),
|
||||||
|
#(u"Cam Cardow", u"http://www.gocomics.com/camcardow"),
|
||||||
|
#(u"Chan Lowe",u"http://www.gocomics.com/chanlowe"),
|
||||||
|
#(u"Chip Bok",u"http://www.gocomics.com/chipbok"),
|
||||||
|
#(u"Chris Britt",u"http://www.gocomics.com/chrisbritt"),
|
||||||
|
#(u"Chuck Asay",u"http://www.gocomics.com/chuckasay"),
|
||||||
|
#(u"Clay Bennett",u"http://www.gocomics.com/claybennett"),
|
||||||
|
#(u"Clay Jones",u"http://www.gocomics.com/clayjones"),
|
||||||
|
#(u"Dan Wasserman",u"http://www.gocomics.com/danwasserman"),
|
||||||
|
#(u"Dana Summers",u"http://www.gocomics.com/danasummers"),
|
||||||
|
#(u"Daryl Cagle", u"http://www.gocomics.com/darylcagle"),
|
||||||
|
#(u"David Fitzsimmons", u"http://www.gocomics.com/davidfitzsimmons"),
|
||||||
|
(u"Dick Locher",u"http://www.gocomics.com/dicklocher"),
|
||||||
|
#(u"Don Wright",u"http://www.gocomics.com/donwright"),
|
||||||
|
#(u"Donna Barstow",u"http://www.gocomics.com/donnabarstow"),
|
||||||
|
#(u"Drew Litton", u"http://www.gocomics.com/drewlitton"),
|
||||||
|
#(u"Drew Sheneman",u"http://www.gocomics.com/drewsheneman"),
|
||||||
|
#(u"Ed Stein", u"http://www.gocomics.com/edstein"),
|
||||||
|
#(u"Eric Allie", u"http://www.gocomics.com/ericallie"),
|
||||||
|
#(u"Gary Markstein", u"http://www.gocomics.com/garymarkstein"),
|
||||||
|
#(u"Gary McCoy", u"http://www.gocomics.com/garymccoy"),
|
||||||
|
#(u"Gary Varvel", u"http://www.gocomics.com/garyvarvel"),
|
||||||
|
#(u"Glenn McCoy",u"http://www.gocomics.com/glennmccoy"),
|
||||||
|
#(u"Henry Payne", u"http://www.gocomics.com/henrypayne"),
|
||||||
|
#(u"Jack Ohman",u"http://www.gocomics.com/jackohman"),
|
||||||
|
#(u"JD Crowe", u"http://www.gocomics.com/jdcrowe"),
|
||||||
|
#(u"Jeff Danziger",u"http://www.gocomics.com/jeffdanziger"),
|
||||||
|
#(u"Jeff Parker", u"http://www.gocomics.com/jeffparker"),
|
||||||
|
#(u"Jeff Stahler", u"http://www.gocomics.com/jeffstahler"),
|
||||||
|
#(u"Jerry Holbert", u"http://www.gocomics.com/jerryholbert"),
|
||||||
|
#(u"Jim Morin",u"http://www.gocomics.com/jimmorin"),
|
||||||
|
#(u"Joel Pett",u"http://www.gocomics.com/joelpett"),
|
||||||
|
#(u"John Cole", u"http://www.gocomics.com/johncole"),
|
||||||
|
#(u"John Darkow", u"http://www.gocomics.com/johndarkow"),
|
||||||
|
#(u"John Deering",u"http://www.gocomics.com/johndeering"),
|
||||||
|
#(u"John Sherffius", u"http://www.gocomics.com/johnsherffius"),
|
||||||
|
#(u"Ken Catalino",u"http://www.gocomics.com/kencatalino"),
|
||||||
|
#(u"Kerry Waghorn",u"http://www.gocomics.com/facesinthenews"),
|
||||||
|
#(u"Kevin Kallaugher",u"http://www.gocomics.com/kevinkallaugher"),
|
||||||
|
#(u"Lalo Alcaraz",u"http://www.gocomics.com/laloalcaraz"),
|
||||||
|
#(u"Larry Wright", u"http://www.gocomics.com/larrywright"),
|
||||||
|
#(u"Lisa Benson", u"http://www.gocomics.com/lisabenson"),
|
||||||
|
#(u"Marshall Ramsey", u"http://www.gocomics.com/marshallramsey"),
|
||||||
|
#(u"Matt Bors", u"http://www.gocomics.com/mattbors"),
|
||||||
|
#(u"Matt Davies",u"http://www.gocomics.com/mattdavies"),
|
||||||
|
#(u"Michael Ramirez", u"http://www.gocomics.com/michaelramirez"),
|
||||||
|
#(u"Mike Keefe", u"http://www.gocomics.com/mikekeefe"),
|
||||||
|
#(u"Mike Luckovich", u"http://www.gocomics.com/mikeluckovich"),
|
||||||
|
#(u"MIke Thompson", u"http://www.gocomics.com/mikethompson"),
|
||||||
|
#(u"Monte Wolverton", u"http://www.gocomics.com/montewolverton"),
|
||||||
|
#(u"Mr. Fish", u"http://www.gocomics.com/mrfish"),
|
||||||
|
#(u"Nate Beeler", u"http://www.gocomics.com/natebeeler"),
|
||||||
|
#(u"Nick Anderson", u"http://www.gocomics.com/nickanderson"),
|
||||||
|
#(u"Pat Bagley", u"http://www.gocomics.com/patbagley"),
|
||||||
|
#(u"Pat Oliphant",u"http://www.gocomics.com/patoliphant"),
|
||||||
|
#(u"Paul Conrad",u"http://www.gocomics.com/paulconrad"),
|
||||||
|
#(u"Paul Szep", u"http://www.gocomics.com/paulszep"),
|
||||||
|
#(u"RJ Matson", u"http://www.gocomics.com/rjmatson"),
|
||||||
|
#(u"Rob Rogers", u"http://www.gocomics.com/robrogers"),
|
||||||
|
#(u"Robert Ariail", u"http://www.gocomics.com/robertariail"),
|
||||||
|
#(u"Scott Stantis", u"http://www.gocomics.com/scottstantis"),
|
||||||
|
#(u"Signe Wilkinson", u"http://www.gocomics.com/signewilkinson"),
|
||||||
|
#(u"Small World",u"http://www.gocomics.com/smallworld"),
|
||||||
|
#(u"Steve Benson", u"http://www.gocomics.com/stevebenson"),
|
||||||
|
#(u"Steve Breen", u"http://www.gocomics.com/stevebreen"),
|
||||||
|
#(u"Steve Kelley", u"http://www.gocomics.com/stevekelley"),
|
||||||
|
#(u"Steve Sack", u"http://www.gocomics.com/stevesack"),
|
||||||
|
#(u"Stuart Carlson",u"http://www.gocomics.com/stuartcarlson"),
|
||||||
|
#(u"Ted Rall",u"http://www.gocomics.com/tedrall"),
|
||||||
|
#(u"(Th)ink", u"http://www.gocomics.com/think"),
|
||||||
|
#(u"Tom Toles",u"http://www.gocomics.com/tomtoles"),
|
||||||
|
(u"Tony Auth",u"http://www.gocomics.com/tonyauth"),
|
||||||
|
#(u"Views of the World",u"http://www.gocomics.com/viewsoftheworld"),
|
||||||
|
#(u"ViewsAfrica",u"http://www.gocomics.com/viewsafrica"),
|
||||||
|
#(u"ViewsAmerica",u"http://www.gocomics.com/viewsamerica"),
|
||||||
|
#(u"ViewsAsia",u"http://www.gocomics.com/viewsasia"),
|
||||||
|
#(u"ViewsBusiness",u"http://www.gocomics.com/viewsbusiness"),
|
||||||
|
#(u"ViewsEurope",u"http://www.gocomics.com/viewseurope"),
|
||||||
|
#(u"ViewsLatinAmerica",u"http://www.gocomics.com/viewslatinamerica"),
|
||||||
|
#(u"ViewsMidEast",u"http://www.gocomics.com/viewsmideast"),
|
||||||
|
(u"Walt Handelsman",u"http://www.gocomics.com/walthandelsman"),
|
||||||
|
#(u"Wayne Stayskal",u"http://www.gocomics.com/waynestayskal"),
|
||||||
|
#(u"Wit of the World",u"http://www.gocomics.com/witoftheworld"),
|
||||||
]:
|
]:
|
||||||
print 'Working on: ', title
|
print 'Working on: ', title
|
||||||
articles = self.make_links(url)
|
articles = self.make_links(url)
|
||||||
@ -352,3 +445,4 @@ class GoComics(BasicNewsRecipe):
|
|||||||
p{font-family:Arial,Helvetica,sans-serif;font-size:small;}
|
p{font-family:Arial,Helvetica,sans-serif;font-size:small;}
|
||||||
body{font-family:Helvetica,Arial,sans-serif;font-size:small;}
|
body{font-family:Helvetica,Arial,sans-serif;font-size:small;}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
16
recipes/gram_pl.recipe
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class Gram_pl(BasicNewsRecipe):
|
||||||
|
title = u'Gram.pl'
|
||||||
|
__author__ = 'fenuks'
|
||||||
|
description = 'Gram.pl - site about computer games'
|
||||||
|
category = 'games'
|
||||||
|
language = 'pl'
|
||||||
|
oldest_article = 8
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
no_stylesheets= True
|
||||||
|
cover_url=u'http://www.gram.pl/www/01/img/grampl_zima.png'
|
||||||
|
remove_tags= [dict(name='p', attrs={'class':['extraText', 'must-log-in']}), dict(attrs={'class':['el', 'headline', 'post-info']}), dict(name='div', attrs={'class':['twojaOcena', 'comment-body', 'comment-author vcard', 'comment-meta commentmetadata', 'tw_button']}), dict(id=['igit_rpwt_css', 'comments', 'reply-title', 'igit_title'])]
|
||||||
|
keep_only_tags= [dict(name='div', attrs={'class':['main', 'arkh-postmetadataheader', 'arkh-postcontent', 'post', 'content', 'news_header', 'news_subheader', 'news_text']}), dict(attrs={'class':['contentheading', 'contentpaneopen']})]
|
||||||
|
feeds = [(u'gram.pl - informacje', u'http://www.gram.pl/feed_news.asp'),
|
||||||
|
(u'gram.pl - publikacje', u'http://www.gram.pl/feed_news.asp?type=articles')]
|
@ -12,7 +12,7 @@ from datetime import date
|
|||||||
|
|
||||||
class Guardian(BasicNewsRecipe):
|
class Guardian(BasicNewsRecipe):
|
||||||
|
|
||||||
title = u'The Guardian / The Observer'
|
title = u'The Guardian and The Observer'
|
||||||
if date.today().weekday() == 6:
|
if date.today().weekday() == 6:
|
||||||
base_url = "http://www.guardian.co.uk/theobserver"
|
base_url = "http://www.guardian.co.uk/theobserver"
|
||||||
else:
|
else:
|
||||||
@ -87,7 +87,13 @@ class Guardian(BasicNewsRecipe):
|
|||||||
idx = soup.find('div', id='book-index')
|
idx = soup.find('div', id='book-index')
|
||||||
for s in idx.findAll('strong', attrs={'class':'book'}):
|
for s in idx.findAll('strong', attrs={'class':'book'}):
|
||||||
a = s.find('a', href=True)
|
a = s.find('a', href=True)
|
||||||
yield (self.tag_to_string(a), a['href'])
|
section_title = self.tag_to_string(a)
|
||||||
|
if not section_title in self.ignore_sections:
|
||||||
|
prefix = ''
|
||||||
|
if section_title != 'Main section':
|
||||||
|
prefix = section_title + ': '
|
||||||
|
for subsection in s.parent.findAll('a', attrs={'class':'book-section'}):
|
||||||
|
yield (prefix + self.tag_to_string(subsection), subsection['href'])
|
||||||
|
|
||||||
def find_articles(self, url):
|
def find_articles(self, url):
|
||||||
soup = self.index_to_soup(url)
|
soup = self.index_to_soup(url)
|
||||||
@ -114,10 +120,7 @@ class Guardian(BasicNewsRecipe):
|
|||||||
try:
|
try:
|
||||||
feeds = []
|
feeds = []
|
||||||
for title, href in self.find_sections():
|
for title, href in self.find_sections():
|
||||||
if not title in self.ignore_sections:
|
feeds.append((title, list(self.find_articles(href))))
|
||||||
feeds.append((title, list(self.find_articles(href))))
|
|
||||||
return feeds
|
return feeds
|
||||||
except:
|
except:
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
|
|
||||||
|
86
recipes/hackernews.recipe
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
__license__ = 'GPL v3'
|
||||||
|
'''
|
||||||
|
Hacker News
|
||||||
|
'''
|
||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
from calibre.ptempfile import PersistentTemporaryFile
|
||||||
|
from urlparse import urlparse
|
||||||
|
|
||||||
|
class HackerNews(BasicNewsRecipe):
|
||||||
|
title = 'Hacker News'
|
||||||
|
__author__ = 'Tom Scholl'
|
||||||
|
description = u'Hacker News, run by Y Combinator. Anything that good hackers would find interesting, with a focus on programming and startups.'
|
||||||
|
publisher = 'Y Combinator'
|
||||||
|
category = 'news, programming, it, technology'
|
||||||
|
masthead_url = 'http://i55.tinypic.com/2u6io76.png'
|
||||||
|
cover_url = 'http://i55.tinypic.com/2u6io76.png'
|
||||||
|
delay = 1
|
||||||
|
max_articles_per_feed = 30
|
||||||
|
use_embedded_content = False
|
||||||
|
no_stylesheets = True
|
||||||
|
encoding = 'utf-8'
|
||||||
|
language = 'en'
|
||||||
|
requires_version = (0,8,16)
|
||||||
|
|
||||||
|
feeds = [
|
||||||
|
(u'Hacker News', 'http://news.ycombinator.com/rss')
|
||||||
|
]
|
||||||
|
|
||||||
|
temp_files = []
|
||||||
|
articles_are_obfuscated = True
|
||||||
|
|
||||||
|
def get_readable_content(self, url):
|
||||||
|
self.log('get_readable_content(' + url + ')')
|
||||||
|
br = self.get_browser()
|
||||||
|
f = br.open(url)
|
||||||
|
html = f.read()
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
return self.extract_readable_article(html, url)
|
||||||
|
|
||||||
|
def get_hn_content(self, url):
|
||||||
|
self.log('get_hn_content(' + url + ')')
|
||||||
|
# this could be improved
|
||||||
|
br = self.get_browser()
|
||||||
|
f = br.open(url)
|
||||||
|
html = f.read()
|
||||||
|
f.close()
|
||||||
|
return html
|
||||||
|
|
||||||
|
def get_obfuscated_article(self, url):
|
||||||
|
if url.startswith('http://news.ycombinator.com'):
|
||||||
|
content = self.get_hn_content(url)
|
||||||
|
else:
|
||||||
|
# TODO: use content-type header instead of url
|
||||||
|
is_image = False
|
||||||
|
for ext in ['.jpg', '.png', '.svg', '.gif', '.jpeg', '.tiff', '.bmp',]:
|
||||||
|
if url.endswith(ext):
|
||||||
|
is_image = True
|
||||||
|
break
|
||||||
|
|
||||||
|
if is_image:
|
||||||
|
self.log('using image_content (' + url + ')')
|
||||||
|
content = u'<html><body><img src="' + url + u'"></body></html>'
|
||||||
|
else:
|
||||||
|
content = self.get_readable_content(url)
|
||||||
|
|
||||||
|
self.temp_files.append(PersistentTemporaryFile('_fa.html'))
|
||||||
|
self.temp_files[-1].write(content)
|
||||||
|
self.temp_files[-1].close()
|
||||||
|
return self.temp_files[-1].name
|
||||||
|
|
||||||
|
def is_link_wanted(self, url, tag):
|
||||||
|
if url.endswith('.pdf'):
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
def prettyify_url(self, url):
|
||||||
|
return urlparse(url).hostname
|
||||||
|
|
||||||
|
def populate_article_metadata(self, article, soup, first):
|
||||||
|
article.text_summary = self.prettyify_url(article.url)
|
||||||
|
article.summary = article.text_summary
|
||||||
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
|||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
import re
|
import re
|
||||||
|
from datetime import date, timedelta
|
||||||
|
|
||||||
class HBR(BasicNewsRecipe):
|
class HBR(BasicNewsRecipe):
|
||||||
|
|
||||||
@ -12,13 +13,16 @@ class HBR(BasicNewsRecipe):
|
|||||||
no_stylesheets = True
|
no_stylesheets = True
|
||||||
|
|
||||||
LOGIN_URL = 'http://hbr.org/login?request_url=/'
|
LOGIN_URL = 'http://hbr.org/login?request_url=/'
|
||||||
INDEX = 'http://hbr.org/current'
|
LOGOUT_URL = 'http://hbr.org/logout?request_url=/'
|
||||||
|
|
||||||
|
INDEX = 'http://hbr.org/archive-toc/BR'
|
||||||
|
|
||||||
keep_only_tags = [dict(name='div', id='pageContainer')]
|
keep_only_tags = [dict(name='div', id='pageContainer')]
|
||||||
remove_tags = [dict(id=['mastheadContainer', 'magazineHeadline',
|
remove_tags = [dict(id=['mastheadContainer', 'magazineHeadline',
|
||||||
'articleToolbarTopRD', 'pageRightSubColumn', 'pageRightColumn',
|
'articleToolbarTopRD', 'pageRightSubColumn', 'pageRightColumn',
|
||||||
'todayOnHBRListWidget', 'mostWidget', 'keepUpWithHBR',
|
'todayOnHBRListWidget', 'mostWidget', 'keepUpWithHBR',
|
||||||
'mailingListTout', 'partnerCenter', 'pageFooter',
|
'mailingListTout', 'partnerCenter', 'pageFooter',
|
||||||
|
'superNavHeadContainer', 'hbrDisqus',
|
||||||
'articleToolbarTop', 'articleToolbarBottom', 'articleToolbarRD']),
|
'articleToolbarTop', 'articleToolbarBottom', 'articleToolbarRD']),
|
||||||
dict(name='iframe')]
|
dict(name='iframe')]
|
||||||
extra_css = '''
|
extra_css = '''
|
||||||
@ -32,6 +36,9 @@ class HBR(BasicNewsRecipe):
|
|||||||
|
|
||||||
def get_browser(self):
|
def get_browser(self):
|
||||||
br = BasicNewsRecipe.get_browser(self)
|
br = BasicNewsRecipe.get_browser(self)
|
||||||
|
self.logout_url = None
|
||||||
|
|
||||||
|
#'''
|
||||||
br.open(self.LOGIN_URL)
|
br.open(self.LOGIN_URL)
|
||||||
br.select_form(name='signin-form')
|
br.select_form(name='signin-form')
|
||||||
br['signin-form:username'] = self.username
|
br['signin-form:username'] = self.username
|
||||||
@ -39,10 +46,13 @@ class HBR(BasicNewsRecipe):
|
|||||||
raw = br.submit().read()
|
raw = br.submit().read()
|
||||||
if 'My Account' not in raw:
|
if 'My Account' not in raw:
|
||||||
raise Exception('Failed to login, are you sure your username and password are correct?')
|
raise Exception('Failed to login, are you sure your username and password are correct?')
|
||||||
self.logout_url = None
|
try:
|
||||||
link = br.find_link(text='Sign out')
|
link = br.find_link(text='Sign out')
|
||||||
if link:
|
if link:
|
||||||
self.logout_url = link.absolute_url
|
self.logout_url = link.absolute_url
|
||||||
|
except:
|
||||||
|
self.logout_url = self.LOGOUT_URL
|
||||||
|
#'''
|
||||||
return br
|
return br
|
||||||
|
|
||||||
def cleanup(self):
|
def cleanup(self):
|
||||||
@ -55,57 +65,54 @@ class HBR(BasicNewsRecipe):
|
|||||||
|
|
||||||
|
|
||||||
def hbr_get_toc(self):
|
def hbr_get_toc(self):
|
||||||
soup = self.index_to_soup(self.INDEX)
|
#return self.index_to_soup(open('/t/hbr.html').read())
|
||||||
url = soup.find('a', text=lambda t:'Full Table of Contents' in t).parent.get('href')
|
|
||||||
return self.index_to_soup('http://hbr.org'+url)
|
|
||||||
|
|
||||||
def hbr_parse_section(self, container, feeds):
|
|
||||||
current_section = None
|
|
||||||
current_articles = []
|
|
||||||
for x in container.findAll(name=['li', 'h3', 'h4']):
|
|
||||||
if x.name in ['h3', 'h4'] and not x.findAll(True):
|
|
||||||
if current_section and current_articles:
|
|
||||||
feeds.append((current_section, current_articles))
|
|
||||||
current_section = self.tag_to_string(x)
|
|
||||||
current_articles = []
|
|
||||||
self.log('\tFound section:', current_section)
|
|
||||||
if x.name == 'li':
|
|
||||||
a = x.find('a', href=True)
|
|
||||||
if a is not None:
|
|
||||||
title = self.tag_to_string(a)
|
|
||||||
url = a.get('href')
|
|
||||||
if '/ar/' not in url:
|
|
||||||
continue
|
|
||||||
if url.startswith('/'):
|
|
||||||
url = 'http://hbr.org'+url
|
|
||||||
url = self.map_url(url)
|
|
||||||
p = x.find('p')
|
|
||||||
desc = ''
|
|
||||||
if p is not None:
|
|
||||||
desc = self.tag_to_string(p)
|
|
||||||
if not title or not url:
|
|
||||||
continue
|
|
||||||
self.log('\t\tFound article:', title)
|
|
||||||
self.log('\t\t\t', url)
|
|
||||||
self.log('\t\t\t', desc)
|
|
||||||
current_articles.append({'title':title, 'url':url,
|
|
||||||
'description':desc, 'date':''})
|
|
||||||
if current_section and current_articles:
|
|
||||||
feeds.append((current_section, current_articles))
|
|
||||||
|
|
||||||
|
|
||||||
|
today = date.today()
|
||||||
|
future = today + timedelta(days=30)
|
||||||
|
for x in [x.strftime('%y%m') for x in (future, today)]:
|
||||||
|
url = self.INDEX + x
|
||||||
|
soup = self.index_to_soup(url)
|
||||||
|
if not soup.find(text='Issue Not Found'):
|
||||||
|
return soup
|
||||||
|
raise Exception('Could not find current issue')
|
||||||
|
|
||||||
def hbr_parse_toc(self, soup):
|
def hbr_parse_toc(self, soup):
|
||||||
feeds = []
|
feeds = []
|
||||||
features = soup.find(id='issueFeaturesContent')
|
current_section = None
|
||||||
self.hbr_parse_section(features, feeds)
|
articles = []
|
||||||
departments = soup.find(id='issueDepartments')
|
for x in soup.find(id='archiveToc').findAll(['h3', 'h4']):
|
||||||
self.hbr_parse_section(departments, feeds)
|
if x.name == 'h3':
|
||||||
|
if current_section is not None and articles:
|
||||||
|
feeds.append((current_section, articles))
|
||||||
|
current_section = self.tag_to_string(x).capitalize()
|
||||||
|
articles = []
|
||||||
|
self.log('\tFound section:', current_section)
|
||||||
|
else:
|
||||||
|
a = x.find('a', href=True)
|
||||||
|
if a is None: continue
|
||||||
|
title = self.tag_to_string(a)
|
||||||
|
url = a['href']
|
||||||
|
if '/ar/' not in url:
|
||||||
|
continue
|
||||||
|
if url.startswith('/'):
|
||||||
|
url = 'http://hbr.org' + url
|
||||||
|
url = self.map_url(url)
|
||||||
|
p = x.parent.find('p')
|
||||||
|
desc = ''
|
||||||
|
if p is not None:
|
||||||
|
desc = self.tag_to_string(p)
|
||||||
|
self.log('\t\tFound article:', title)
|
||||||
|
self.log('\t\t\t', url)
|
||||||
|
self.log('\t\t\t', desc)
|
||||||
|
|
||||||
|
articles.append({'title':title, 'url':url, 'description':desc,
|
||||||
|
'date':''})
|
||||||
return feeds
|
return feeds
|
||||||
|
|
||||||
|
|
||||||
def parse_index(self):
|
def parse_index(self):
|
||||||
soup = self.hbr_get_toc()
|
soup = self.hbr_get_toc()
|
||||||
|
#open('/t/hbr.html', 'wb').write(unicode(soup).encode('utf-8'))
|
||||||
feeds = self.hbr_parse_toc(soup)
|
feeds = self.hbr_parse_toc(soup)
|
||||||
return feeds
|
return feeds
|
||||||
|
|
||||||
|
@ -6,33 +6,21 @@ class HBR(BasicNewsRecipe):
|
|||||||
title = 'Harvard Business Review Blogs'
|
title = 'Harvard Business Review Blogs'
|
||||||
description = 'To subscribe go to http://hbr.harvardbusiness.org'
|
description = 'To subscribe go to http://hbr.harvardbusiness.org'
|
||||||
needs_subscription = True
|
needs_subscription = True
|
||||||
__author__ = 'Kovid Goyal and Sujata Raman, enhanced by BrianG'
|
__author__ = 'Kovid Goyal'
|
||||||
language = 'en'
|
language = 'en'
|
||||||
no_stylesheets = True
|
no_stylesheets = True
|
||||||
|
|
||||||
LOGIN_URL = 'http://hbr.org/login?request_url=/'
|
LOGIN_URL = 'http://hbr.org/login?request_url=/'
|
||||||
|
LOGOUT_URL = 'http://hbr.org/logout?request_url=/'
|
||||||
|
|
||||||
INDEX = 'http://hbr.org/current'
|
INDEX = 'http://hbr.org/current'
|
||||||
|
|
||||||
#
|
remove_tags_after = dict(id='articleBody')
|
||||||
# Blog Stuff
|
remove_tags_before = dict(id='pageFeature')
|
||||||
#
|
feeds = [('Blog','http://feeds.harvardbusiness.org/harvardbusiness')]
|
||||||
|
oldest_article = 30
|
||||||
|
max_articles_per_feed = 100
|
||||||
INCLUDE_BLOGS = True
|
use_embedded_content = False
|
||||||
INCLUDE_ARTICLES = False
|
|
||||||
|
|
||||||
# option-specific settings.
|
|
||||||
|
|
||||||
if INCLUDE_BLOGS == True:
|
|
||||||
remove_tags_after = dict(id='articleBody')
|
|
||||||
remove_tags_before = dict(id='pageFeature')
|
|
||||||
feeds = [('Blog','http://feeds.harvardbusiness.org/harvardbusiness')]
|
|
||||||
oldest_article = 30
|
|
||||||
max_articles_per_feed = 100
|
|
||||||
use_embedded_content = False
|
|
||||||
else:
|
|
||||||
timefmt = ' [%B %Y]'
|
|
||||||
|
|
||||||
|
|
||||||
keep_only_tags = [ dict(name='div', id='pageContainer')
|
keep_only_tags = [ dict(name='div', id='pageContainer')
|
||||||
]
|
]
|
||||||
@ -41,21 +29,15 @@ class HBR(BasicNewsRecipe):
|
|||||||
'articleToolbarTopRD', 'pageRightSubColumn', 'pageRightColumn',
|
'articleToolbarTopRD', 'pageRightSubColumn', 'pageRightColumn',
|
||||||
'todayOnHBRListWidget', 'mostWidget', 'keepUpWithHBR',
|
'todayOnHBRListWidget', 'mostWidget', 'keepUpWithHBR',
|
||||||
'articleToolbarTop','articleToolbarBottom', 'articleToolbarRD',
|
'articleToolbarTop','articleToolbarBottom', 'articleToolbarRD',
|
||||||
'mailingListTout', 'partnerCenter', 'pageFooter']),
|
'mailingListTout', 'partnerCenter', 'pageFooter', 'shareWidgetTop']),
|
||||||
dict(name='iframe')]
|
dict(name=['iframe', 'style'])]
|
||||||
|
|
||||||
extra_css = '''
|
|
||||||
a {font-family:Georgia,"Times New Roman",Times,serif; font-style:italic; color:#000000; }
|
|
||||||
.article{font-family:Georgia,"Times New Roman",Times,serif; font-size: xx-small;}
|
|
||||||
h2{font-family:Georgia,"Times New Roman",Times,serif; font-weight:bold; font-size:large; }
|
|
||||||
h4{font-family:Georgia,"Times New Roman",Times,serif; font-weight:bold; font-size:small; }
|
|
||||||
#articleBody{font-family:Georgia,"Times New Roman",Times,serif; font-style:italic; color:#000000;font-size:x-small;}
|
|
||||||
#summaryText{font-family:Georgia,"Times New Roman",Times,serif; font-weight:bold; font-size:x-small;}
|
|
||||||
'''
|
|
||||||
#-------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
def get_browser(self):
|
def get_browser(self):
|
||||||
br = BasicNewsRecipe.get_browser(self)
|
br = BasicNewsRecipe.get_browser(self)
|
||||||
|
self.logout_url = None
|
||||||
|
|
||||||
|
#'''
|
||||||
br.open(self.LOGIN_URL)
|
br.open(self.LOGIN_URL)
|
||||||
br.select_form(name='signin-form')
|
br.select_form(name='signin-form')
|
||||||
br['signin-form:username'] = self.username
|
br['signin-form:username'] = self.username
|
||||||
@ -63,11 +45,15 @@ class HBR(BasicNewsRecipe):
|
|||||||
raw = br.submit().read()
|
raw = br.submit().read()
|
||||||
if 'My Account' not in raw:
|
if 'My Account' not in raw:
|
||||||
raise Exception('Failed to login, are you sure your username and password are correct?')
|
raise Exception('Failed to login, are you sure your username and password are correct?')
|
||||||
self.logout_url = None
|
try:
|
||||||
link = br.find_link(text='Sign out')
|
link = br.find_link(text='Sign out')
|
||||||
if link:
|
if link:
|
||||||
self.logout_url = link.absolute_url
|
self.logout_url = link.absolute_url
|
||||||
|
except:
|
||||||
|
self.logout_url = self.LOGOUT_URL
|
||||||
|
#'''
|
||||||
return br
|
return br
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------------------------
|
||||||
def cleanup(self):
|
def cleanup(self):
|
||||||
if self.logout_url is not None:
|
if self.logout_url is not None:
|
||||||
@ -76,99 +62,7 @@ class HBR(BasicNewsRecipe):
|
|||||||
def map_url(self, url):
|
def map_url(self, url):
|
||||||
if url.endswith('/ar/1'):
|
if url.endswith('/ar/1'):
|
||||||
return url[:-1]+'pr'
|
return url[:-1]+'pr'
|
||||||
#-------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
def hbr_get_toc(self):
|
|
||||||
soup = self.index_to_soup(self.INDEX)
|
|
||||||
url = soup.find('a', text=lambda t:'Full Table of Contents' in t).parent.get('href')
|
|
||||||
return self.index_to_soup('http://hbr.org'+url)
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
def hbr_parse_section(self, container, feeds):
|
|
||||||
current_section = None
|
|
||||||
current_articles = []
|
|
||||||
for x in container.findAll(name=['li', 'h3', 'h4']):
|
|
||||||
if x.name in ['h3', 'h4'] and not x.findAll(True):
|
|
||||||
if current_section and current_articles:
|
|
||||||
feeds.append((current_section, current_articles))
|
|
||||||
current_section = self.tag_to_string(x)
|
|
||||||
current_articles = []
|
|
||||||
self.log('\tFound section:', current_section)
|
|
||||||
if x.name == 'li':
|
|
||||||
a = x.find('a', href=True)
|
|
||||||
if a is not None:
|
|
||||||
title = self.tag_to_string(a)
|
|
||||||
url = a.get('href')
|
|
||||||
if '/ar/' not in url:
|
|
||||||
continue
|
|
||||||
if url.startswith('/'):
|
|
||||||
url = 'http://hbr.org'+url
|
|
||||||
url = self.map_url(url)
|
|
||||||
p = x.find('p')
|
|
||||||
desc = ''
|
|
||||||
if p is not None:
|
|
||||||
desc = self.tag_to_string(p)
|
|
||||||
if not title or not url:
|
|
||||||
continue
|
|
||||||
self.log('\t\tFound article:', title)
|
|
||||||
self.log('\t\t\t', url)
|
|
||||||
self.log('\t\t\t', desc)
|
|
||||||
current_articles.append({'title':title, 'url':url,
|
|
||||||
'description':desc, 'date':''})
|
|
||||||
if current_section and current_articles:
|
|
||||||
feeds.append((current_section, current_articles))
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
def hbr_parse_toc(self, soup):
|
|
||||||
feeds = []
|
|
||||||
features = soup.find(id='issueFeaturesContent')
|
|
||||||
self.hbr_parse_section(features, feeds)
|
|
||||||
departments = soup.find(id='issueDepartments')
|
|
||||||
self.hbr_parse_section(departments, feeds)
|
|
||||||
return feeds
|
|
||||||
#-------------------------------------------------------------------------------------------------
|
|
||||||
def feed_to_index_append(self, feedObject, masterFeed):
|
|
||||||
# Loop thru the feed object and build the correct type of article list
|
|
||||||
for feed in feedObject:
|
|
||||||
# build the correct structure from the feed object
|
|
||||||
newArticles = []
|
|
||||||
for article in feed.articles:
|
|
||||||
newArt = {
|
|
||||||
'title' : article.title,
|
|
||||||
'url' : article.url,
|
|
||||||
'date' : article.date,
|
|
||||||
'description' : article.text_summary
|
|
||||||
}
|
|
||||||
newArticles.append(newArt)
|
|
||||||
|
|
||||||
# Append the earliest/latest dates of the feed to the feed title
|
|
||||||
startDate, endDate = self.get_feed_dates(feed, '%d-%b')
|
|
||||||
newFeedTitle = feed.title + ' (' + startDate + ' thru ' + endDate + ')'
|
|
||||||
|
|
||||||
# append the newly-built list object to the index object passed in
|
|
||||||
# as masterFeed.
|
|
||||||
masterFeed.append( (newFeedTitle,newArticles) )
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------------------------
|
|
||||||
def get_feed_dates(self, feedObject, dateMask):
|
|
||||||
startDate = feedObject.articles[len(feedObject.articles)-1].localtime.strftime(dateMask)
|
|
||||||
endDate = feedObject.articles[0].localtime.strftime(dateMask)
|
|
||||||
|
|
||||||
return startDate, endDate
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
def parse_index(self):
|
|
||||||
if self.INCLUDE_ARTICLES == True:
|
|
||||||
soup = self.hbr_get_toc()
|
|
||||||
feeds = self.hbr_parse_toc(soup)
|
|
||||||
else:
|
|
||||||
return BasicNewsRecipe.parse_index(self)
|
|
||||||
|
|
||||||
return feeds
|
|
||||||
#-------------------------------------------------------------------------------------------------
|
|
||||||
def get_cover_url(self):
|
def get_cover_url(self):
|
||||||
cover_url = None
|
cover_url = None
|
||||||
index = 'http://hbr.org/current'
|
index = 'http://hbr.org/current'
|
||||||
|
52
recipes/heise_online.recipe
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
class AdvancedUserRecipe(BasicNewsRecipe):
|
||||||
|
|
||||||
|
title = 'Heise-online'
|
||||||
|
description = 'News vom Heise-Verlag'
|
||||||
|
__author__ = 'schuster'
|
||||||
|
use_embedded_content = False
|
||||||
|
language = 'de'
|
||||||
|
oldest_article = 2
|
||||||
|
max_articles_per_feed = 35
|
||||||
|
rescale_images = True
|
||||||
|
remove_empty_feeds = True
|
||||||
|
timeout = 5
|
||||||
|
no_stylesheets = True
|
||||||
|
|
||||||
|
|
||||||
|
remove_tags_after = dict(name ='p', attrs={'class':'editor'})
|
||||||
|
remove_tags = [dict(id='navi_top_container'),
|
||||||
|
dict(id='navi_bottom'),
|
||||||
|
dict(id='mitte_rechts'),
|
||||||
|
dict(id='navigation'),
|
||||||
|
dict(id='subnavi'),
|
||||||
|
dict(id='social_bookmarks'),
|
||||||
|
dict(id='permalink'),
|
||||||
|
dict(id='content_foren'),
|
||||||
|
dict(id='seiten_navi'),
|
||||||
|
dict(id='adbottom'),
|
||||||
|
dict(id='sitemap')]
|
||||||
|
|
||||||
|
feeds = [
|
||||||
|
('Newsticker', 'http://www.heise.de/newsticker/heise.rdf'),
|
||||||
|
('Auto', 'http://www.heise.de/autos/rss/news.rdf'),
|
||||||
|
('Foto ', 'http://www.heise.de/foto/rss/news-atom.xml'),
|
||||||
|
('Mac&i', 'http://www.heise.de/mac-and-i/news.rdf'),
|
||||||
|
('Mobile ', 'http://www.heise.de/mobil/newsticker/heise-atom.xml'),
|
||||||
|
('Netz ', 'http://www.heise.de/netze/rss/netze-atom.xml'),
|
||||||
|
('Open ', 'http://www.heise.de/open/news/news-atom.xml'),
|
||||||
|
('Resale ', 'http://www.heise.de/resale/rss/resale.rdf'),
|
||||||
|
('Security ', 'http://www.heise.de/security/news/news-atom.xml'),
|
||||||
|
('C`t', 'http://www.heise.de/ct/rss/artikel-atom.xml'),
|
||||||
|
('iX', 'http://www.heise.de/ix/news/news.rdf'),
|
||||||
|
('Mach-flott', 'http://www.heise.de/mach-flott/rss/mach-flott-atom.xml'),
|
||||||
|
('Blog: Babel-Bulletin', 'http://www.heise.de/developer/rss/babel-bulletin/blog.rdf'),
|
||||||
|
('Blog: Der Dotnet-Doktor', 'http://www.heise.de/developer/rss/dotnet-doktor/blog.rdf'),
|
||||||
|
('Blog: Bernds Management-Welt', 'http://www.heise.de/developer/rss/bernds-management-welt/blog.rdf'),
|
||||||
|
('Blog: IT conversation', 'http://www.heise.de/developer/rss/world-of-it/blog.rdf'),
|
||||||
|
('Blog: Kais bewegtes Web', 'http://www.heise.de/developer/rss/kais-bewegtes-web/blog.rdf')
|
||||||
|
]
|
||||||
|
|
||||||
|
def print_version(self, url):
|
||||||
|
return url + '?view=print'
|
||||||
|
|
@ -1,8 +1,6 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
|
# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
|
||||||
|
|
||||||
import string, pprint
|
|
||||||
|
|
||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
class HoustonChronicle(BasicNewsRecipe):
|
class HoustonChronicle(BasicNewsRecipe):
|
||||||
@ -13,53 +11,28 @@ class HoustonChronicle(BasicNewsRecipe):
|
|||||||
language = 'en'
|
language = 'en'
|
||||||
timefmt = ' [%a, %d %b, %Y]'
|
timefmt = ' [%a, %d %b, %Y]'
|
||||||
no_stylesheets = True
|
no_stylesheets = True
|
||||||
|
use_embedded_content = False
|
||||||
|
remove_attributes = ['style']
|
||||||
|
|
||||||
keep_only_tags = [
|
oldest_article = 2.0
|
||||||
dict(id=['story-head', 'story'])
|
|
||||||
]
|
|
||||||
|
|
||||||
remove_tags = [
|
|
||||||
dict(id=['share-module', 'resource-box',
|
|
||||||
'resource-box-header'])
|
|
||||||
]
|
|
||||||
|
|
||||||
extra_css = '''
|
|
||||||
h1{font-family :Arial,Helvetica,sans-serif; font-size:large;}
|
|
||||||
h2{font-family :Arial,Helvetica,sans-serif; font-size:medium; color:#666666;}
|
|
||||||
h3{font-family :Arial,Helvetica,sans-serif; font-size:medium; color:#000000;}
|
|
||||||
h4{font-family :Arial,Helvetica,sans-serif; font-size: x-small;}
|
|
||||||
p{font-family :Arial,Helvetica,sans-serif; font-size:x-small;}
|
|
||||||
#story-head h1{font-family :Arial,Helvetica,sans-serif; font-size: xx-large;}
|
|
||||||
#story-head h2{font-family :Arial,Helvetica,sans-serif; font-size: small; color:#000000;}
|
|
||||||
#story-head h3{font-family :Arial,Helvetica,sans-serif; font-size: xx-small;}
|
|
||||||
#story-head h4{font-family :Arial,Helvetica,sans-serif; font-size: xx-small;}
|
|
||||||
#story{font-family :Arial,Helvetica,sans-serif; font-size:xx-small;}
|
|
||||||
#Text-TextSubhed BoldCond PoynterAgateZero h3{color:#444444;font-family :Arial,Helvetica,sans-serif; font-size:small;}
|
|
||||||
.p260x p{font-family :Arial,Helvetica,serif; font-size:x-small;font-style:italic;}
|
|
||||||
.p260x h6{color:#777777;font-family :Arial,Helvetica,sans-serif; font-size:xx-small;}
|
|
||||||
'''
|
|
||||||
|
|
||||||
|
|
||||||
def parse_index(self):
|
|
||||||
categories = ['news', 'sports', 'business', 'entertainment', 'life',
|
|
||||||
'travel']
|
|
||||||
feeds = []
|
|
||||||
for cat in categories:
|
|
||||||
articles = []
|
|
||||||
soup = self.index_to_soup('http://www.chron.com/%s/'%cat)
|
|
||||||
for elem in soup.findAll(comptype='story', storyid=True):
|
|
||||||
a = elem.find('a', href=True)
|
|
||||||
if a is None: continue
|
|
||||||
url = a['href']
|
|
||||||
if not url.startswith('http://'):
|
|
||||||
url = 'http://www.chron.com'+url
|
|
||||||
articles.append({'title':self.tag_to_string(a), 'url':url,
|
|
||||||
'description':'', 'date':''})
|
|
||||||
pprint.pprint(articles[-1])
|
|
||||||
if articles:
|
|
||||||
feeds.append((string.capwords(cat), articles))
|
|
||||||
return feeds
|
|
||||||
|
|
||||||
|
keep_only_tags = {'class':lambda x: x and ('hst-articletitle' in x or
|
||||||
|
'hst-articletext' in x or 'hst-galleryitem' in x)}
|
||||||
|
|
||||||
|
feeds = [
|
||||||
|
('News', "http://www.chron.com/rss/feed/News-270.php"),
|
||||||
|
('Sports',
|
||||||
|
'http://www.chron.com/sports/headlines/collectionRss/Sports-Headlines-Staff-Stories-10767.php'),
|
||||||
|
('Neighborhood',
|
||||||
|
'http://www.chron.com/rss/feed/Neighborhood-305.php'),
|
||||||
|
('Business', 'http://www.chron.com/rss/feed/Business-287.php'),
|
||||||
|
('Entertainment',
|
||||||
|
'http://www.chron.com/rss/feed/Entertainment-293.php'),
|
||||||
|
('Editorials',
|
||||||
|
'http://www.chron.com/opinion/editorials/collectionRss/Opinion-Editorials-Headline-List-10567.php'),
|
||||||
|
('Life', 'http://www.chron.com/rss/feed/Life-297.php'),
|
||||||
|
('Science & Tech',
|
||||||
|
'http://www.chron.com/rss/feed/AP-Technology-and-Science-266.php'),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
BIN
recipes/icons/ambito_financiero.png
Normal file
After Width: | Height: | Size: 508 B |
BIN
recipes/icons/android_com_pl.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
recipes/icons/athens_news.png
Normal file
After Width: | Height: | Size: 514 B |
BIN
recipes/icons/bash_org_pl.png
Normal file
After Width: | Height: | Size: 391 B |
BIN
recipes/icons/buenosaireseconomico.png
Normal file
After Width: | Height: | Size: 400 B |
BIN
recipes/icons/cd_action.png
Normal file
After Width: | Height: | Size: 972 B |
BIN
recipes/icons/dobreprogamy.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
recipes/icons/elclubdelebook.png
Normal file
After Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 770 B After Width: | Height: | Size: 1.1 KiB |
BIN
recipes/icons/film_web.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
recipes/icons/financial_times.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
recipes/icons/financial_times_uk.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
recipes/icons/gram_pl.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
recipes/icons/independent.png
Normal file
After Width: | Height: | Size: 343 B |
BIN
recipes/icons/losandes.png
Normal file
After Width: | Height: | Size: 285 B |
BIN
recipes/icons/national_geographic_pl.png
Normal file
After Width: | Height: | Size: 894 B |
BIN
recipes/icons/niebezpiecznik.png
Normal file
After Width: | Height: | Size: 795 B |
BIN
recipes/icons/observatorul_cultural.png
Normal file
After Width: | Height: | Size: 1.1 KiB |