From aee791c4a07f1e1e1fa4b74a3ebdd4c7c66fd9ae Mon Sep 17 00:00:00 2001
From: Kovid Goyal
Date: Wed, 2 Mar 2011 09:09:44 -0700
Subject: [PATCH 1/9] Thai Post Daily by Chotechai. Fixes #9239 (Thai Post
Daily Newspaper recipe)
---
resources/recipes/thai_post_daily.recipe | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
create mode 100644 resources/recipes/thai_post_daily.recipe
diff --git a/resources/recipes/thai_post_daily.recipe b/resources/recipes/thai_post_daily.recipe
new file mode 100644
index 0000000000..9cd943e593
--- /dev/null
+++ b/resources/recipes/thai_post_daily.recipe
@@ -0,0 +1,18 @@
+from calibre.web.feeds.news import BasicNewsRecipe
+
+class AdvancedUserRecipe1299054026(BasicNewsRecipe):
+ title = u'Thai Post Daily'
+ __author__ = 'Chotechai P.'
+ language = 'th'
+ oldest_article = 7
+ max_articles_per_feed = 100
+
+ feeds = [(u'\u0e02\u0e48\u0e32\u0e27\u0e2b\u0e19\u0e49\u0e32\u0e2b\u0e19\u0e36\u0e48\u0e07', u'http://thaipost.net/taxonomy/term/1/all/feed'), (u'\u0e1a\u0e17\u0e1a\u0e23\u0e23\u0e13\u0e32\u0e18\u0e34\u0e01\u0e32\u0e23', u'http://thaipost.net/taxonomy/term/11/all/feed'), (u'\u0e40\u0e1b\u0e25\u0e27 \u0e2a\u0e35\u0e40\u0e07\u0e34\u0e19', u'http://thaipost.net/taxonomy/term/2/all/feed'), (u'\u0e2a\u0e20\u0e32\u0e1b\u0e23\u0e30\u0e0a\u0e32\u0e0a\u0e19', u'http://thaipost.net/taxonomy/term/3/all/feed'), (u'\u0e16\u0e39\u0e01\u0e17\u0e38\u0e01\u0e02\u0e49\u0e2d', u'http://thaipost.net/taxonomy/term/4/all/feed'), (u'\u0e01\u0e32\u0e23\u0e40\u0e21\u0e37\u0e2d\u0e07', u'http://thaipost.net/taxonomy/term/5/all/feed'), (u'\u0e17\u0e48\u0e32\u0e19\u0e02\u0e38\u0e19\u0e19\u0e49\u0e2d\u0e22', u'http://thaipost.net/taxonomy/term/12/all/feed'), (u'\u0e1a\u0e17\u0e04\u0e27\u0e32\u0e21\u0e1e\u0e34\u0e40\u0e28\u0e29', u'http://thaipost.net/taxonomy/term/66/all/feed'), (u'\u0e23\u0e32\u0e22\u0e07\u0e32\u0e19\u0e1e\u0e34\u0e40\u0e28\u0e29', u'http://thaipost.net/taxonomy/term/67/all/feed'), (u'\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01\u0e2b\u0e19\u0e49\u0e32 4', u'http://thaipost.net/taxonomy/term/13/all/feed'), (u'\u0e40\u0e2a\u0e35\u0e22\u0e1a\u0e0b\u0e36\u0e48\u0e07\u0e2b\u0e19\u0e49\u0e32', u'http://thaipost.net/taxonomy/term/64/all/feed'), (u'\u0e04\u0e31\u0e19\u0e1b\u0e32\u0e01\u0e2d\u0e22\u0e32\u0e01\u0e40\u0e25\u0e48\u0e32', u'http://thaipost.net/taxonomy/term/65/all/feed'), (u'\u0e40\u0e28\u0e23\u0e29\u0e10\u0e01\u0e34\u0e08', u'http://thaipost.net/taxonomy/term/6/all/feed'), (u'\u0e01\u0e23\u0e30\u0e08\u0e01\u0e44\u0e23\u0e49\u0e40\u0e07\u0e32', u'http://thaipost.net/taxonomy/term/14/all/feed'), (u'\u0e01\u0e23\u0e30\u0e08\u0e01\u0e2b\u0e31\u0e01\u0e21\u0e38\u0e21', u'http://thaipost.net/taxonomy/term/71/all/feed'), (u'\u0e04\u0e34\u0e14\u0e40\u0e2b\u0e19\u0e37\u0e2d\u0e01\u0e23\u0e30\u0e41\u0e2a', u'http://thaipost.net/taxonomy/term/69/all/feed'), (u'\u0e23\u0e32\u0e22\u0e07\u0e32\u0e19', u'http://thaipost.net/taxonomy/term/68/all/feed'), (u'\u0e2d\u0e34\u0e42\u0e04\u0e42\u0e1f\u0e01\u0e31\u0e2a', u'http://thaipost.net/taxonomy/term/10/all/feed'), (u'\u0e01\u0e32\u0e23\u0e28\u0e36\u0e01\u0e29\u0e32-\u0e2a\u0e32\u0e18\u0e32\u0e23\u0e13\u0e2a\u0e38\u0e02', u'http://thaipost.net/taxonomy/term/7/all/feed'), (u'\u0e15\u0e48\u0e32\u0e07\u0e1b\u0e23\u0e30\u0e40\u0e17\u0e28', u'http://thaipost.net/taxonomy/term/8/all/feed'), (u'\u0e01\u0e35\u0e2c\u0e32', u'http://thaipost.net/taxonomy/term/9/all/feed')]
+
+ def print_version(self, url):
+ return url.replace(url, 'http://www.thaipost.net/print/' + url [32:])
+
+ remove_tags = []
+ remove_tags.append(dict(name = 'div', attrs = {'class' : 'print-logo'}))
+ remove_tags.append(dict(name = 'div', attrs = {'class' : 'print-site_name'}))
+ remove_tags.append(dict(name = 'div', attrs = {'class' : 'print-breadcrumb'}))
From 95da860ee2b668c66e35746d5fe94abdae53adf6 Mon Sep 17 00:00:00 2001
From: Kovid Goyal
Date: Wed, 2 Mar 2011 09:16:04 -0700
Subject: [PATCH 2/9] Post Today by Chotechai. Fixes #9240 (Post Today
newspaper recipe)
---
resources/recipes/post_today.recipe | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
create mode 100644 resources/recipes/post_today.recipe
diff --git a/resources/recipes/post_today.recipe b/resources/recipes/post_today.recipe
new file mode 100644
index 0000000000..dc86e68191
--- /dev/null
+++ b/resources/recipes/post_today.recipe
@@ -0,0 +1,21 @@
+from calibre.web.feeds.news import BasicNewsRecipe
+
+class AdvancedUserRecipe1299061355(BasicNewsRecipe):
+ title = u'Post Today'
+ language = 'th'
+ __author__ = "Chotechai"
+ oldest_article = 7
+ max_articles_per_feed = 100
+ cover_url = 'http://upload.wikimedia.org/wikipedia/th/2/2e/Posttoday_Logo.png'
+ feeds = [(u'Breaking News', u'http://www.posttoday.com/rss/src/breakingnews.xml'), (u'\u0e02\u0e48\u0e32\u0e27', u'http://www.posttoday.com/rss/src/news.xml'), (u'\u0e27\u0e34\u0e40\u0e04\u0e23\u0e32\u0e30\u0e2b\u0e4c', u'http://www.posttoday.com/rss/src/analyse.xml'), (u'\u0e40\u0e21\u0e32\u0e17\u0e4c\u0e01\u0e31\u0e19\u0e43\u0e2b\u0e49 z', u'http://www.posttoday.com/rss/src/mouth.xml'), (u'\u0e44\u0e17\u0e22\u0e42\u0e0b\u0e44\u0e0b\u0e15\u0e35\u0e49', u'http://www.posttoday.com/rss/src/thaisociety.xml'), (u'\u0e44\u0e25\u0e1f\u0e4c\u0e2a\u0e44\u0e15\u0e25\u0e4c', u'http://www.posttoday.com/rss/src/lifestyle.xml'), (u'\u0e0a\u0e35\u0e49\u0e0a\u0e48\u0e2d\u0e07\u0e23\u0e27\u0e22', u'http://www.posttoday.com/rss/src/moneyguide.xml'), (u'\u0e1a\u0e49\u0e32\u0e19-\u0e04\u0e2d\u0e19\u0e42\u0e14', u'http://www.posttoday.com/rss/src/homecondo.xml'), (u'\u0e22\u0e32\u0e19\u0e22\u0e19\u0e15\u0e4c', u'http://www.posttoday.com/rss/src/motor.xml'), (u'\u0e14\u0e34\u0e08\u0e34\u0e15\u0e2d\u0e25\u0e44\u0e25\u0e1f\u0e4c', u'http://www.posttoday.com/rss/src/digitallife.xml'), (u'\u0e01\u0e35\u0e2c\u0e32', u'http://www.posttoday.com/rss/src/sport.xml'), (u'\u0e23\u0e2d\u0e1a\u0e42\u0e25\u0e01', u'http://www.posttoday.com/rss/src/world.xml'), (u'\u0e01\u0e34\u0e19-\u0e40\u0e17\u0e35\u0e48\u0e22\u0e27', u'http://www.posttoday.com/rss/src/eattravel.xml'), (u'Mind & Soul', u'http://www.posttoday.com/rss/src/mindsoul.xml'), (u'\u0e1a\u0e25\u0e47\u0e2d\u0e01 \u0e1a\u0e01.', u'http://www.posttoday.com/rss/src/blogs.xml')]
+ keep_only_tags = []
+ keep_only_tags.append(dict(name = 'div', attrs = {'class' :
+'articleContents'}))
+
+ remove_tags = []
+ remove_tags.append(dict(name = 'label'))
+ remove_tags.append(dict(name = 'span'))
+ remove_tags.append(dict(name = 'div', attrs = {'class' :
+'socialBookmark'}))
+ remove_tags.append(dict(name = 'div', attrs = {'class' :
+'misc'}))
From 36fba3beac60f4edfde0a89de5988814d0099513 Mon Sep 17 00:00:00 2001
From: Kovid Goyal
Date: Wed, 2 Mar 2011 09:35:36 -0700
Subject: [PATCH 3/9] RBC.ru by Chewi
---
resources/recipes/rbc_ru.recipe | 49 +++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
create mode 100644 resources/recipes/rbc_ru.recipe
diff --git a/resources/recipes/rbc_ru.recipe b/resources/recipes/rbc_ru.recipe
new file mode 100644
index 0000000000..4c377a334b
--- /dev/null
+++ b/resources/recipes/rbc_ru.recipe
@@ -0,0 +1,49 @@
+from calibre.web.feeds.news import BasicNewsRecipe
+
+class AdvancedUserRecipe1286819935(BasicNewsRecipe):
+ title = u'RBC.ru'
+ __author__ = 'A. Chewi'
+ oldest_article = 7
+ max_articles_per_feed = 100
+ no_stylesheets = True
+ use_embedded_content = False
+ conversion_options = {'linearize_tables' : True}
+ remove_attributes = ['style']
+ language = 'ru'
+ timefmt = ' [%a, %d %b, %Y]'
+
+ keep_only_tags = [dict(name='h2', attrs={}),
+ dict(name='div', attrs={'class': 'box _ga1_on_'}),
+ dict(name='h1', attrs={'class': 'news_section'}),
+ dict(name='div', attrs={'class': 'news_body dotted_border_bottom'}),
+ dict(name='table', attrs={'class': 'newsBody'}),
+ dict(name='h2', attrs={'class': 'black'})]
+
+ feeds = [(u'Главные новости', u'http://static.feed.rbc.ru/rbc/internal/rss.rbc.ru/rbc.ru/mainnews.rss'),
+ (u'Политика', u'http://static.feed.rbc.ru/rbc/internal/rss.rbc.ru/rbc.ru/politics.rss'),
+ (u'Экономика', u'http://static.feed.rbc.ru/rbc/internal/rss.rbc.ru/rbc.ru/economics.rss'),
+ (u'Общество', u'http://static.feed.rbc.ru/rbc/internal/rss.rbc.ru/rbc.ru/society.rss'),
+ (u'Происшествия', u'http://static.feed.rbc.ru/rbc/internal/rss.rbc.ru/rbc.ru/incidents.rss'),
+ (u'Финансовые новости Quote.rbc.ru', u'http://static.feed.rbc.ru/rbc/internal/rss.rbc.ru/quote.ru/mainnews.rss')]
+
+
+ remove_tags = [dict(name='div', attrs={'class': "video-frame"}),
+ dict(name='div', attrs={'class': "photo-container videoContainer videoSWFLinks videoPreviewSlideContainer notes"}),
+ dict(name='div', attrs={'class': "notes"}),
+ dict(name='div', attrs={'class': "publinks"}),
+ dict(name='a', attrs={'class': "print"}),
+ dict(name='div', attrs={'class': "photo-report_new notes newslider"}),
+ dict(name='div', attrs={'class': "videoContainer"}),
+ dict(name='div', attrs={'class': "videoPreviewSlideContainer"}),
+ dict(name='a', attrs={'class': "videoPreviewContainer"}),
+ dict(name='a', attrs={'class': "red"}),]
+
+ def preprocess_html(self, soup):
+ for alink in soup.findAll('a'):
+ if alink.string is not None:
+ tstr = alink.string
+ alink.replaceWith(tstr)
+ return soup
+
+ def print_version(self, url):
+ return url + '?print=true'
From 0a05ba617a58b17369d534f5ecb79e0b782e79f9 Mon Sep 17 00:00:00 2001
From: Kovid Goyal
Date: Wed, 2 Mar 2011 10:51:58 -0700
Subject: [PATCH 4/9] Fix bug that caused preferences->behavior to not show the
output format set by the welcome wizard, and instead default to showing epub
---
src/calibre/gui2/wizard/__init__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/calibre/gui2/wizard/__init__.py b/src/calibre/gui2/wizard/__init__.py
index 5f9f1828fa..c629b10b5d 100644
--- a/src/calibre/gui2/wizard/__init__.py
+++ b/src/calibre/gui2/wizard/__init__.py
@@ -51,7 +51,7 @@ class Device(object):
@classmethod
def set_output_format(cls):
if cls.output_format:
- prefs.set('output_format', cls.output_format)
+ prefs.set('output_format', cls.output_format.lower())
@classmethod
def commit(cls):
From a4fe0095dfc50ab7c60ef3bba602b08eeeb56f2b Mon Sep 17 00:00:00 2001
From: Kovid Goyal
Date: Wed, 2 Mar 2011 10:57:58 -0700
Subject: [PATCH 5/9] Update Credit Slips
---
resources/images/news/credit_slips.png | Bin 0 -> 4847 bytes
resources/recipes/credit_slips.recipe | 47 +++++++++++++++----------
2 files changed, 28 insertions(+), 19 deletions(-)
create mode 100644 resources/images/news/credit_slips.png
diff --git a/resources/images/news/credit_slips.png b/resources/images/news/credit_slips.png
new file mode 100644
index 0000000000000000000000000000000000000000..50ac1dc02ec55eff5c2be056e01f15ce70014ad0
GIT binary patch
literal 4847
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 by ' + article.author + '
')
From 5611a96148e1fdf959b665ddd60059c33698a1c9 Mon Sep 17 00:00:00 2001
From: Kovid Goyal
Date: Wed, 2 Mar 2011 11:05:13 -0700
Subject: [PATCH 6/9] ...
---
src/calibre/gui2/preferences/__init__.py | 7 +++++--
src/calibre/gui2/preferences/behavior.py | 8 ++++++--
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/src/calibre/gui2/preferences/__init__.py b/src/calibre/gui2/preferences/__init__.py
index 7267716ea8..54eb2f713c 100644
--- a/src/calibre/gui2/preferences/__init__.py
+++ b/src/calibre/gui2/preferences/__init__.py
@@ -8,7 +8,7 @@ __docformat__ = 'restructuredtext en'
import textwrap
from PyQt4.Qt import QWidget, pyqtSignal, QCheckBox, QAbstractSpinBox, \
- QLineEdit, QComboBox, QVariant
+ QLineEdit, QComboBox, QVariant, Qt
from calibre.customize.ui import preferences_plugins
from calibre.utils.config import ConfigProxy
@@ -82,6 +82,8 @@ class ConfigWidgetInterface(object):
class Setting(object):
+ CHOICES_SEARCH_FLAGS = Qt.MatchExactly | Qt.MatchCaseSensitive
+
def __init__(self, name, config_obj, widget, gui_name=None,
empty_string_is_None=True, choices=None, restart_required=False):
self.name, self.gui_name = name, gui_name
@@ -168,7 +170,8 @@ class Setting(object):
elif self.datatype == 'string':
self.gui_obj.setText(val if val else '')
elif self.datatype == 'choice':
- idx = self.gui_obj.findData(QVariant(val))
+ idx = self.gui_obj.findData(QVariant(val), role=Qt.UserRole,
+ flags=self.CHOICES_SEARCH_FLAGS)
if idx == -1:
idx = 0
self.gui_obj.setCurrentIndex(idx)
diff --git a/src/calibre/gui2/preferences/behavior.py b/src/calibre/gui2/preferences/behavior.py
index aeee6e5064..45a63ce529 100644
--- a/src/calibre/gui2/preferences/behavior.py
+++ b/src/calibre/gui2/preferences/behavior.py
@@ -9,7 +9,7 @@ import re
from PyQt4.Qt import Qt, QVariant, QListWidgetItem
-from calibre.gui2.preferences import ConfigWidgetBase, test_widget
+from calibre.gui2.preferences import ConfigWidgetBase, test_widget, Setting
from calibre.gui2.preferences.behavior_ui import Ui_Form
from calibre.gui2 import config, info_dialog, dynamic
from calibre.utils.config import prefs
@@ -20,6 +20,10 @@ from calibre.ebooks.oeb.iterator import is_supported
from calibre.constants import iswindows
from calibre.utils.icu import sort_key
+class OutputFormatSetting(Setting):
+
+ CHOICES_SEARCH_FLAGS = Qt.MatchFixedString
+
class ConfigWidget(ConfigWidgetBase, Ui_Form):
def genesis(self, gui):
@@ -43,7 +47,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
output_formats = list(sorted(available_output_formats()))
output_formats.remove('oeb')
choices = [(x.upper(), x) for x in output_formats]
- r('output_format', prefs, choices=choices)
+ r('output_format', prefs, choices=choices, setting=OutputFormatSetting)
restrictions = sorted(saved_searches().names(), key=sort_key)
choices = [('', '')] + [(x, x) for x in restrictions]
From f0ef93ead559804814029317ee6a135c314e8c1f Mon Sep 17 00:00:00 2001
From: Kovid Goyal
Date: Wed, 2 Mar 2011 12:16:19 -0700
Subject: [PATCH 7/9] ...
---
src/calibre/gui2/dialogs/metadata_bulk.ui | 2 +-
src/calibre/gui2/dialogs/metadata_single.ui | 2 +-
src/calibre/gui2/metadata/basic_widgets.py | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/calibre/gui2/dialogs/metadata_bulk.ui b/src/calibre/gui2/dialogs/metadata_bulk.ui
index ae3445998b..1654ff8261 100644
--- a/src/calibre/gui2/dialogs/metadata_bulk.ui
+++ b/src/calibre/gui2/dialogs/metadata_bulk.ui
@@ -341,7 +341,7 @@ from the value in the box
1
- 990000
+ 99000000
1
diff --git a/src/calibre/gui2/dialogs/metadata_single.ui b/src/calibre/gui2/dialogs/metadata_single.ui
index 5bcf268aaa..ced5030f94 100644
--- a/src/calibre/gui2/dialogs/metadata_single.ui
+++ b/src/calibre/gui2/dialogs/metadata_single.ui
@@ -419,7 +419,7 @@ If the box is colored green, then text matches the individual author's sort stri
Book
- 9999.989999999999782
+ 99999999.989999994635582
diff --git a/src/calibre/gui2/metadata/basic_widgets.py b/src/calibre/gui2/metadata/basic_widgets.py
index a135176daf..d5a8de7b67 100644
--- a/src/calibre/gui2/metadata/basic_widgets.py
+++ b/src/calibre/gui2/metadata/basic_widgets.py
@@ -351,7 +351,7 @@ class SeriesIndexEdit(QDoubleSpinBox):
QDoubleSpinBox.__init__(self, parent)
self.dialog = parent
self.db = self.original_series_name = None
- self.setMaximum(1000000)
+ self.setMaximum(10000000)
self.series_edit = series_edit
series_edit.currentIndexChanged.connect(self.enable)
series_edit.editTextChanged.connect(self.enable)
From 46bcddc10f87bd4a688f1538f3981079d477cb5d Mon Sep 17 00:00:00 2001
From: Kovid Goyal
Date: Wed, 2 Mar 2011 12:47:36 -0700
Subject: [PATCH 8/9] Fix regression that caused memory leak in Tag Browser.
This would show up as the memory usage of calibre increasing when switching
libraries. Fixes #9246 (Memory allocation while changing library)
---
src/calibre/gui2/actions/choose_library.py | 1 +
src/calibre/gui2/tag_view.py | 8 ++++++++
2 files changed, 9 insertions(+)
diff --git a/src/calibre/gui2/actions/choose_library.py b/src/calibre/gui2/actions/choose_library.py
index f3a7f1742d..6f4ca624cb 100644
--- a/src/calibre/gui2/actions/choose_library.py
+++ b/src/calibre/gui2/actions/choose_library.py
@@ -355,6 +355,7 @@ class ChooseLibraryAction(InterfaceAction):
print
print 'before:', self.before_mem
print 'after:', memory()/1024**2
+ print
self.dbref = self.before_mem = None
diff --git a/src/calibre/gui2/tag_view.py b/src/calibre/gui2/tag_view.py
index b310ce55fb..d03a4f4cca 100644
--- a/src/calibre/gui2/tag_view.py
+++ b/src/calibre/gui2/tag_view.py
@@ -572,6 +572,13 @@ class TagTreeItem(object): # {{{
else:
self.tooltip = ''
+ def break_cycles(self):
+ for x in self.children:
+ if hasattr(x, 'break_cycles'):
+ x.break_cycles()
+ self.parent = self.icon_state_map = self.bold_font = self.tag = \
+ self.icon = self.children = None
+
def __str__(self):
if self.type == self.ROOT:
return 'ROOT'
@@ -780,6 +787,7 @@ class TagsModel(QAbstractItemModel): # {{{
self.refresh(data=data)
def break_cycles(self):
+ self.root_item.break_cycles()
self.db = self.root_item = None
def mimeTypes(self):
From 18f048fdb22ea60334d78f88d72c0338f05849c6 Mon Sep 17 00:00:00 2001
From: Kovid Goyal
Date: Wed, 2 Mar 2011 13:02:33 -0700
Subject: [PATCH 9/9] ...
---
src/calibre/devices/misc.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/calibre/devices/misc.py b/src/calibre/devices/misc.py
index 8cf0fb5a06..07b381d11a 100644
--- a/src/calibre/devices/misc.py
+++ b/src/calibre/devices/misc.py
@@ -272,6 +272,7 @@ class NEXTBOOK(USBMS):
VENDOR_NAME = 'NEXT2'
WINDOWS_MAIN_MEM = WINDOWS_CARD_A_MEM = '1.0.14'
SUPPORTS_SUB_DIRS = True
+ THUMBNAIL_HEIGHT = 120
'''
def upload_cover(self, path, filename, metadata, filepath):