Pull from trunk

This commit is contained in:
Kovid Goyal 2010-09-23 08:46:09 -06:00
commit 82f577452b
5 changed files with 57 additions and 28 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 652 B

View File

@ -0,0 +1,43 @@
from calibre.web.feeds.news import BasicNewsRecipe
class AdvancedUserRecipe1282101454(BasicNewsRecipe):
title = 'Nealz Nuze'
language = 'en'
__author__ = 'TonytheBookworm'
description = 'Neal Boortz Show Radio Notes'
publisher = 'Neal Boortz'
category = 'news, politics, USA, talkshow'
oldest_article = 1
max_articles_per_feed = 100
linearize_tables = True
no_stylesheets = True
remove_javascript = True
masthead_url = 'http://boortz.com/images/nuze_logo.gif'
keep_only_tags = [
dict(name='div', attrs={'id':['SiteContent']})
#,dict(attrs={'id':['cxArticleText']})
]
remove_tags = [
dict(name='a', attrs={'class':['blogPermalink']}),
dict(name='span', attrs={'class':['blogBylineSeparator']}),
dict(name='td', attrs={'id':['nealztitle']}),
]
remove_tags_after = [dict(name='div', attrs={'class':'blogEntryBody'}),]
feeds = [
('NUZE', 'http://boortz.com/nealz_nuze_rss/rss.xml')
]

View File

@ -19,6 +19,10 @@ class Book(Book_):
self.authors = [''] self.authors = ['']
else: else:
self.authors = [authors] self.authors = [authors]
if not title:
self.title = _('Unknown')
self.mime = mime self.mime = mime
self.size = size # will be set later if None self.size = size # will be set later if None

View File

@ -1696,11 +1696,12 @@ class MobiWriter(object):
header.write(pack('>I', 1)) header.write(pack('>I', 1))
# 0x1c - 0x1f : Text encoding ? # 0x1c - 0x1f : Text encoding ?
# GR: Language encoding for NCX entries (latin_1) # header.write(pack('>I', 650001))
header.write(pack('>I', 0x4e4)) # GR: This needs to be either 0xFDE9 or 0x4E4
header.write(pack('>I', 0xFDE9))
# 0x20 - 0x23 : Mimicking kindleGen # 0x20 - 0x23 : Language code?
header.write(pack('>I', 0xFFFFFFFF)) header.write(iana2mobi(str(self._oeb.metadata.language[0])))
# 0x24 - 0x27 : Number of TOC entries in INDX1 # 0x24 - 0x27 : Number of TOC entries in INDX1
header.write(pack('>I', indxt_count + 1)) header.write(pack('>I', indxt_count + 1))
@ -1800,7 +1801,7 @@ class MobiWriter(object):
text = text.strip() text = text.strip()
if not isinstance(text, unicode): if not isinstance(text, unicode):
text = text.decode('utf-8', 'replace') text = text.decode('utf-8', 'replace')
text = text.encode('cp1252','replace') text = text.encode('ascii','replace')
return text return text
def _add_to_ctoc(self, ctoc_str, record_offset): def _add_to_ctoc(self, ctoc_str, record_offset):
@ -2150,26 +2151,6 @@ class MobiWriter(object):
indxt.write(decint(self._ctoc_map[index]['titleOffset'], DECINT_FORWARD)) # vwi title offset in CNCX indxt.write(decint(self._ctoc_map[index]['titleOffset'], DECINT_FORWARD)) # vwi title offset in CNCX
indxt.write(decint(0, DECINT_FORWARD)) # unknown byte indxt.write(decint(0, DECINT_FORWARD)) # unknown byte
def _write_subchapter_node(self, indxt, indices, index, offset, length, count):
# This style works without a parent chapter, mimicking what KindleGen does,
# using a value of 0x0B for parentIndex
# Writes an INDX1 NCXEntry of entryType 0x1F - subchapter
if self.opts.verbose > 2:
# *** GR: Turn this off while I'm developing my code
#self._oeb.log.debug('Writing TOC node to IDXT:', node.title, 'href:', node.href)
pass
pos = 0xc0 + indxt.tell()
indices.write(pack('>H', pos)) # Save the offset for IDXTIndices
name = "%04X"%count
indxt.write(chr(len(name)) + name) # Write the name
indxt.write(INDXT['subchapter']) # entryType [0x0F | 0xDF | 0xFF | 0x3F]
indxt.write(decint(offset, DECINT_FORWARD)) # offset
indxt.write(decint(length, DECINT_FORWARD)) # length
indxt.write(decint(self._ctoc_map[index]['titleOffset'], DECINT_FORWARD)) # vwi title offset in CNCX
indxt.write(decint(0, DECINT_FORWARD)) # unknown byte
indxt.write(decint(0xb, DECINT_FORWARD)) # parentIndex - null
def _compute_offset_length(self, i, node, entries) : def _compute_offset_length(self, i, node, entries) :
h = node.href h = node.href
if h not in self._id_offsets: if h not in self._id_offsets:

View File

@ -363,10 +363,10 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
return row[self.FIELD_MAP['path']].replace('/', os.sep) return row[self.FIELD_MAP['path']].replace('/', os.sep)
def abspath(self, index, index_is_id=False): def abspath(self, index, index_is_id=False, create_dirs=True):
'Return the absolute path to the directory containing this books files as a unicode string.' 'Return the absolute path to the directory containing this books files as a unicode string.'
path = os.path.join(self.library_path, self.path(index, index_is_id=index_is_id)) path = os.path.join(self.library_path, self.path(index, index_is_id=index_is_id))
if not os.path.exists(path): if create_dirs and not os.path.exists(path):
os.makedirs(path) os.makedirs(path)
return path return path
@ -657,7 +657,8 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
def has_cover(self, index, index_is_id=False): def has_cover(self, index, index_is_id=False):
id = index if index_is_id else self.id(index) id = index if index_is_id else self.id(index)
try: try:
path = os.path.join(self.abspath(id, index_is_id=True), 'cover.jpg') path = os.path.join(self.abspath(id, index_is_id=True,
create_dirs=False), 'cover.jpg')
except: except:
# Can happen if path has not yet been set # Can happen if path has not yet been set
return False return False