detab gui2.ui

This commit is contained in:
GRiker 2010-03-05 12:46:23 -08:00
commit e266737928
30 changed files with 29137 additions and 10903 deletions

View File

@ -4,6 +4,85 @@
# for important features/bug fixes. # for important features/bug fixes.
# Also, each release can have new and improved recipes. # Also, each release can have new and improved recipes.
- version: 0.6.44
date: 2010-03-05
new features:
- title: "Experimental support for conversion of CHM files"
type: major
description : >
"Conversion and reading of metadata from CHM files is now supported. This feature is
still experimental, with more testing needed. Building from source on linux now
requires chmlib."
- title: "Experimental support for fetching annotations from the Kindles"
type: major
description: >
"calibre can now fetch annotations from your kindle and put them into the
comments field. To fetch annotations, click the arrow next to the
'send to device' button and select 'Fetch Annotations', with your Kindle
connected."
- title: "Support FreeBSD out of the box (except USB)"
type: major
tickets: [4715]
- title: "News download scheduler: Don't try to download news when no active internet connection is present (linux/windows only)"
- title: "EPUB to WPUB conversion: Preserve font encryption"
- title: "calibre-server: Add --pidfile and --daemonize (unix only) options"
- title: "Plugins: When loading a plugin zip file extract to temp dir and add to sys.path, if the zip file contains binay code (pyd/dll/so/dylib), instead of just adding the zip file to the path, as python cannot load compiled code from a zip file"
bug fixes:
- title: "Ebook-viewer: Handle non-ascii CSS files when doing font substitutions"
- title: "Conversion pipline: Ignore non-integral play orders when parsing NCX files"
- title: "When decoding NCX toc files, if no encoding is declared and detection has less that 100% confidence, assume UTF-8."
tickets: [5039]
- title: "PML chapter definitions missing from toc.ncx"
tickets: [4990]
- title: "Unicode string for cover causes calibredb --output-format stanza to fail"
ticket: [5035]
- title: "Search cover:False fails, cover:True succeeds"
tickets: [5034]
- title: "Plugins: correctly use context"
- title: "MOBI Input: Don't lose cover if it is also referred to in main text"
ticket: [5020]
- title: "RTF Output: Don't choke on PNG images"
new recipes:
- title: Journal of Hospital Medicine, San Francisco Bay Guardian, Smithsonian Magazine
author: Krittika Goyal
- title: Astronomy Pick of the Day, Epicurious
author: Starson17
- title: Diario Vasco, Various Chilean newspapers
author: Darko Miletic
- title: Kukuburi
author: Mori
improved recipes:
- Ars Technica
- Fudzilla
- The Atlantic
- The Economist
- Huffington Post
- version: 0.6.43 - version: 0.6.43
date: 2010-02-26 date: 2010-02-26

View File

@ -12,7 +12,7 @@ from calibre.web.feeds.news import BasicNewsRecipe
class al(BasicNewsRecipe): class al(BasicNewsRecipe):
author = 'Lorenzo Vigentini' author = 'Lorenzo Vigentini'
description = 'the Escapist Magazine' description = 'The Escapist Magazine'
cover_url = 'http://cdn.themis-media.com/themes/escapistmagazine/default/images/logo.png' cover_url = 'http://cdn.themis-media.com/themes/escapistmagazine/default/images/logo.png'
title = u'the Escapist Magazine' title = u'the Escapist Magazine'

View File

@ -2,7 +2,7 @@ __license__ = 'GPL v3'
__copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' __copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net'
__docformat__ = 'restructuredtext en' __docformat__ = 'restructuredtext en'
__appname__ = 'calibre' __appname__ = 'calibre'
__version__ = '0.6.43' __version__ = '0.6.44'
__author__ = "Kovid Goyal <kovid@kovidgoyal.net>" __author__ = "Kovid Goyal <kovid@kovidgoyal.net>"
import re import re

View File

@ -190,11 +190,11 @@ class Stylizer(object):
selector = CSSSelector(ntext) selector = CSSSelector(ntext)
matches = selector(tree) matches = selector(tree)
if not matches and class_sel_pat.match(text): if not matches and class_sel_pat.match(text) and text.lower() != text:
found = False found = False
ltext = text.lower()
for x in tree.xpath('//*[@class]'): for x in tree.xpath('//*[@class]'):
if text.lower().endswith('.'+x.get('class').lower()) and \ if ltext.endswith('.'+x.get('class').lower()):
text.lower() != text:
matches.append(x) matches.append(x)
found = True found = True
if found: if found:

View File

@ -14,6 +14,7 @@ from calibre.customize.conversion import OptionRecommendation, DummyReporter
from calibre.ebooks.BeautifulSoup import BeautifulSoup, BeautifulStoneSoup, Tag, NavigableString from calibre.ebooks.BeautifulSoup import BeautifulSoup, BeautifulStoneSoup, Tag, NavigableString
from calibre.ptempfile import PersistentTemporaryDirectory from calibre.ptempfile import PersistentTemporaryDirectory
from calibre.utils.date import isoformat, now as nowf from calibre.utils.date import isoformat, now as nowf
from calibre.utils.logging import default_log as log
FIELDS = ['all', 'author_sort', 'authors', 'comments', FIELDS = ['all', 'author_sort', 'authors', 'comments',
'cover', 'formats', 'id', 'isbn', 'pubdate', 'publisher', 'rating', 'cover', 'formats', 'id', 'isbn', 'pubdate', 'publisher', 'rating',
@ -53,7 +54,6 @@ class CSV_XML(CatalogPlugin):
"Applies to: CSV, XML output formats"))] "Applies to: CSV, XML output formats"))]
def run(self, path_to_output, opts, db, notification=DummyReporter()): def run(self, path_to_output, opts, db, notification=DummyReporter()):
log = Log()
self.fmt = path_to_output.rpartition('.')[2] self.fmt = path_to_output.rpartition('.')[2]
self.notification = notification self.notification = notification
@ -348,7 +348,7 @@ class EPUB_MOBI(CatalogPlugin):
self.number_as_float = 0.0 self.number_as_float = 0.0
self.text = '' self.text = ''
self.verbose = verbose self.verbose = verbose
self.log = Log() self.log = log
self.numberTranslate() self.numberTranslate()
def stringFromInt(self, intToTranslate): def stringFromInt(self, intToTranslate):
@ -3852,6 +3852,8 @@ class EPUB_MOBI(CatalogPlugin):
lost_cr.group(2), lost_cr.group(2),
lost_cr.group(3))) lost_cr.group(3)))
# Extract pre-built elements - annotations, etc. # Extract pre-built elements - annotations, etc.
if not isinstance(comments, unicode):
comments = comments.decode('utf-8', 'replace')
soup = BeautifulSoup(comments) soup = BeautifulSoup(comments)
elems = soup.findAll('div') elems = soup.findAll('div')
for elem in elems: for elem in elems:
@ -3859,11 +3861,13 @@ class EPUB_MOBI(CatalogPlugin):
# Reconstruct comments w/o <div>s # Reconstruct comments w/o <div>s
comments = soup.renderContents() comments = soup.renderContents()
if not isinstance(comments, unicode):
comments = comments.decode('utf-8', 'replace')
# Convert \n\n to <p>s # Convert \n\n to <p>s
if re.search('\n\n', comments): if re.search('\n\n', comments):
soup = BeautifulSoup() soup = BeautifulSoup()
split_ps = comments.split('\n\n') split_ps = comments.split(u'\n\n')
tsc = 0 tsc = 0
for p in split_ps: for p in split_ps:
pTag = Tag(soup,'p') pTag = Tag(soup,'p')
@ -3966,7 +3970,7 @@ class EPUB_MOBI(CatalogPlugin):
self.opts.log.info('%s not implemented' % self.error) self.opts.log.info('%s not implemented' % self.error)
def run(self, path_to_output, opts, db, notification=DummyReporter()): def run(self, path_to_output, opts, db, notification=DummyReporter()):
opts.log = log = Log() opts.log = log
opts.fmt = self.fmt = path_to_output.rpartition('.')[2] opts.fmt = self.fmt = path_to_output.rpartition('.')[2]
# Add local options # Add local options

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff