mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
"0.8.28+"
This commit is contained in:
commit
d06529d19a
35
recipes/gazeta_pl_szczecin.recipe
Normal file
35
recipes/gazeta_pl_szczecin.recipe
Normal file
@ -0,0 +1,35 @@
|
||||
# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
|
||||
|
||||
import re
|
||||
import string
|
||||
from calibre.web.feeds.news import BasicNewsRecipe
|
||||
|
||||
class GazetaPlSzczecin(BasicNewsRecipe):
|
||||
title = u'Gazeta.pl Szczecin'
|
||||
description = u'Wiadomości ze Szczecina na portalu Gazeta.pl.'
|
||||
__author__ = u'Michał Szkutnik'
|
||||
__license__ = u'GPL v3'
|
||||
language = 'pl'
|
||||
publisher = 'Agora S.A.'
|
||||
category = 'news, szczecin'
|
||||
oldest_article = 2
|
||||
max_articles_per_feed = 100
|
||||
auto_cleanup = True
|
||||
remove_tags = [ { "name" : "a", "attrs" : { "href" : "http://szczecin.gazeta.pl/szczecin/www.gazeta.pl" }}]
|
||||
cover_url = "http://bi.gazeta.pl/i/hp/hp2009/logo.gif"
|
||||
feeds = [(u'Wszystkie', u'http://rss.feedsportal.com/c/32739/f/530434/index.rss')]
|
||||
|
||||
def get_article_url(self, article):
|
||||
s = re.search("""/0L(szczecin.*)/story01.htm""", article.link)
|
||||
s = s.group(1)
|
||||
replacements = { "0B" : ".", "0C" : "/", "0H" : ",", "0I" : "_"}
|
||||
for (a, b) in replacements.iteritems():
|
||||
s = string.replace(s, a, b)
|
||||
s = string.replace(s, "0A", "0")
|
||||
return "http://"+s
|
||||
|
||||
def print_version(self, url):
|
||||
s = re.search("""/(\d*),(\d*),(\d*),.*\.html""", url)
|
||||
no1 = s.group(2)
|
||||
no2 = s.group(3)
|
||||
return """http://szczecin.gazeta.pl/szczecin/2029020,%s,%s.html""" % (no1, no2)
|
43
recipes/gs24_pl.recipe
Normal file
43
recipes/gs24_pl.recipe
Normal file
@ -0,0 +1,43 @@
|
||||
# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
|
||||
|
||||
import re
|
||||
import string
|
||||
from calibre.web.feeds.news import BasicNewsRecipe
|
||||
|
||||
class AdvancedUserRecipe1322322819(BasicNewsRecipe):
|
||||
title = u'GS24.pl (Głos Szczeciński)'
|
||||
description = u'Internetowy serwis Głosu Szczecińskiego'
|
||||
__author__ = u'Michał Szkutnik'
|
||||
__license__ = u'GPL v3'
|
||||
language = 'pl'
|
||||
publisher = 'Media Regionalne sp. z o.o.'
|
||||
category = 'news, szczecin'
|
||||
oldest_article = 2
|
||||
max_articles_per_feed = 100
|
||||
auto_cleanup = True
|
||||
cover_url = "http://www.gs24.pl/images/top_logo.png"
|
||||
|
||||
feeds = [
|
||||
# (u'Wszystko', u'http://www.gs24.pl/rss.xml'),
|
||||
(u'Szczecin', u'http://www.gs24.pl/szczecin.xml'),
|
||||
(u'Stargard', u'http://www.gs24.pl/stargard.xml'),
|
||||
(u'Świnoujście', u'http://www.gs24.pl/swinoujscie.xml'),
|
||||
(u'Goleniów', u'http://www.gs24.pl/goleniow.xml'),
|
||||
(u'Gryfice', u'http://www.gs24.pl/gryfice.xml'),
|
||||
(u'Kamień Pomorski', u'http://www.gs24.pl/kamienpomorski.xml'),
|
||||
(u'Police', u'http://www.gs24.pl/police.xml'),
|
||||
(u'Region', u'http://www.gs24.pl/region.xml'),
|
||||
(u'Sport', u'http://www.gs24.pl/sport.xml'),
|
||||
]
|
||||
|
||||
def get_article_url(self, article):
|
||||
s = re.search("""/0L0S(gs24.*)/story01.htm""", article.link)
|
||||
s = s.group(1)
|
||||
replacements = { "0B" : ".", "0C" : "/", "0H" : ",", "0I" : "_", "0D" : "?", "0F" : "="}
|
||||
for (a, b) in replacements.iteritems():
|
||||
s = string.replace(s, a, b)
|
||||
s = string.replace(s, "0A", "0")
|
||||
return "http://"+s
|
||||
|
||||
def print_version(self, url):
|
||||
return url + "&Template=printpicart"
|
@ -545,7 +545,7 @@ from calibre.customize.profiles import input_profiles, output_profiles
|
||||
|
||||
from calibre.devices.apple.driver import ITUNES
|
||||
from calibre.devices.hanlin.driver import HANLINV3, HANLINV5, BOOX, SPECTRA
|
||||
from calibre.devices.blackberry.driver import BLACKBERRY
|
||||
from calibre.devices.blackberry.driver import BLACKBERRY, PLAYBOOK
|
||||
from calibre.devices.cybook.driver import CYBOOK, ORIZON
|
||||
from calibre.devices.eb600.driver import (EB600, COOL_ER, SHINEBOOK,
|
||||
POCKETBOOK360, GER2, ITALICA, ECLICTO, DBOOK, INVESBOOK,
|
||||
@ -646,7 +646,7 @@ plugins += [
|
||||
plugins += [
|
||||
HANLINV3,
|
||||
HANLINV5,
|
||||
BLACKBERRY,
|
||||
BLACKBERRY, PLAYBOOK,
|
||||
CYBOOK,
|
||||
ORIZON,
|
||||
ILIAD,
|
||||
|
@ -28,3 +28,26 @@ class BLACKBERRY(USBMS):
|
||||
|
||||
EBOOK_DIR_MAIN = 'eBooks'
|
||||
SUPPORTS_SUB_DIRS = True
|
||||
|
||||
class PLAYBOOK(USBMS):
|
||||
|
||||
name = 'Blackberry Playbook Interface'
|
||||
gui_name = 'Playbook'
|
||||
description = _('Communicate with the Blackberry playbook.')
|
||||
author = _('Kovid Goyal')
|
||||
supported_platforms = ['windows', 'linux', 'osx']
|
||||
|
||||
# Ordered list of supported formats
|
||||
FORMATS = ['epub']
|
||||
|
||||
VENDOR_ID = [0x0fca]
|
||||
PRODUCT_ID = [0x8010]
|
||||
BCD = [0x1]
|
||||
|
||||
VENDOR_NAME = 'GENERIC-'
|
||||
WINDOWS_MAIN_MEM = 'MULTI-CARD'
|
||||
|
||||
MAIN_MEMORY_VOLUME_LABEL = 'Blackberry'
|
||||
|
||||
EBOOK_DIR_MAIN = 'media/books'
|
||||
SUPPORTS_SUB_DIRS = True
|
||||
|
@ -741,6 +741,14 @@ if __name__ == '__main__': # tests {{{
|
||||
isbn_test, title_test, authors_test)
|
||||
com_tests = [ # {{{
|
||||
|
||||
( # # in title
|
||||
{'title':'Expert C# 2008 Business Objects',
|
||||
'authors':['Lhotka']},
|
||||
[title_test('Expert C# 2008 Business Objects', exact=True),
|
||||
authors_test(['Rockford Lhotka'])
|
||||
]
|
||||
),
|
||||
|
||||
( # Description has links
|
||||
{'identifiers':{'isbn': '9780671578275'}},
|
||||
[title_test('A Civil Campaign: A Comedy of Biology and Manners',
|
||||
|
@ -344,7 +344,7 @@ class Source(Plugin):
|
||||
# Remove single quotes not followed by 's'
|
||||
(r"'(?!s)", ''),
|
||||
# Replace other special chars with a space
|
||||
(r'''[:,;+!@#$%^&*(){}.`~"\s\[\]/]''', ' ')
|
||||
(r'''[:,;+!@$%^&*(){}.`~"\s\[\]/]''', ' '),
|
||||
]]
|
||||
|
||||
for pat, repl in title_patterns:
|
||||
|
@ -743,6 +743,8 @@ class MetadataBulkDialog(ResizableDialog, Ui_MetadataBulkDialog):
|
||||
else:
|
||||
flags = re.I
|
||||
|
||||
flags |= re.UNICODE
|
||||
|
||||
try:
|
||||
if self.search_mode.currentIndex() == 0:
|
||||
self.s_r_obj = re.compile(re.escape(unicode(self.search_for.text())), flags)
|
||||
|
@ -374,6 +374,8 @@ any |app| developers will ever feel motivated enough to support it. There is how
|
||||
that allows you to create collections on your Kindle from the |app| metadata. It is available
|
||||
`from here <http://www.mobileread.com/forums/showthread.php?t=118635>`_.
|
||||
|
||||
.. note:: Amazon have removed the ability to manipulate collections completely in their newer models, like the Kindle Touch and Kindle Fire, making even the above plugin useless. If you really want the ability to manage collections on your Kindle via a USB connection, we encourage you to complain to Amazon about it, or get a reader where this is supported, like the SONY Readers.
|
||||
|
||||
Library Management
|
||||
------------------
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user