mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-07 18:24:30 -04:00
SONY drivers: Fix regression that broke collection ordering by series when sending to device
This commit is contained in:
parent
e94a44b1a3
commit
67b0c32f64
@ -5,7 +5,7 @@
|
|||||||
# Also, each release can have new and improved recipes.
|
# Also, each release can have new and improved recipes.
|
||||||
|
|
||||||
- version: 0.6.52
|
- version: 0.6.52
|
||||||
date: 2010-07-30
|
date: 2010-05-07
|
||||||
|
|
||||||
new features:
|
new features:
|
||||||
- title: "Support for the Kobo Reader and the HTC Desire"
|
- title: "Support for the Kobo Reader and the HTC Desire"
|
||||||
|
@ -390,9 +390,9 @@ class BookList(_BookList):
|
|||||||
continue
|
continue
|
||||||
db_ids = [i.getAttribute('id') for i in pl.childNodes if hasattr(i, 'getAttribute')]
|
db_ids = [i.getAttribute('id') for i in pl.childNodes if hasattr(i, 'getAttribute')]
|
||||||
pl_book_ids = [getattr(self.book_by_id(i), 'db_id', None) for i in db_ids]
|
pl_book_ids = [getattr(self.book_by_id(i), 'db_id', None) for i in db_ids]
|
||||||
map = {}
|
imap = {}
|
||||||
for i, j in zip(pl_book_ids, db_ids):
|
for i, j in zip(pl_book_ids, db_ids):
|
||||||
map[i] = j
|
imap[i] = j
|
||||||
pl_book_ids = [i for i in pl_book_ids if i is not None]
|
pl_book_ids = [i for i in pl_book_ids if i is not None]
|
||||||
ordered_ids = [i for i in self.tag_order[title] if i in pl_book_ids]
|
ordered_ids = [i for i in self.tag_order[title] if i in pl_book_ids]
|
||||||
|
|
||||||
@ -404,7 +404,7 @@ class BookList(_BookList):
|
|||||||
child.unlink()
|
child.unlink()
|
||||||
for id in ordered_ids:
|
for id in ordered_ids:
|
||||||
item = self.document.createElement(self.prefix+'item')
|
item = self.document.createElement(self.prefix+'item')
|
||||||
item.setAttribute('id', str(map[id]))
|
item.setAttribute('id', str(imap[id]))
|
||||||
pl.appendChild(item)
|
pl.appendChild(item)
|
||||||
|
|
||||||
def fix_ids(main, carda, cardb):
|
def fix_ids(main, carda, cardb):
|
||||||
|
@ -121,6 +121,14 @@ class PRS505(CLI, Device):
|
|||||||
self.report_progress(1.0, _('Getting list of books on device...'))
|
self.report_progress(1.0, _('Getting list of books on device...'))
|
||||||
return bl
|
return bl
|
||||||
|
|
||||||
|
def filename_callback(self, fname, mi):
|
||||||
|
if getattr(mi, 'application_id', None) is not None:
|
||||||
|
base = fname.rpartition('.')[0]
|
||||||
|
suffix = '_%s'%mi.application_id
|
||||||
|
if not base.endswith(suffix):
|
||||||
|
fname = base + suffix + '.' + fname.rpartition('.')[-1]
|
||||||
|
return fname
|
||||||
|
|
||||||
def upload_books(self, files, names, on_card=None, end_session=True,
|
def upload_books(self, files, names, on_card=None, end_session=True,
|
||||||
metadata=None):
|
metadata=None):
|
||||||
|
|
||||||
|
@ -825,7 +825,10 @@ class Device(DeviceConfig, DevicePlugin):
|
|||||||
from calibre.library.save_to_disk import get_components
|
from calibre.library.save_to_disk import get_components
|
||||||
if not isinstance(template, unicode):
|
if not isinstance(template, unicode):
|
||||||
template = template.decode('utf-8')
|
template = template.decode('utf-8')
|
||||||
extra_components = get_components(template, mdata, fname)
|
app_id = str(getattr(mdata, 'application_id', ''))
|
||||||
|
# The SONY readers need to have the db id in the created filename
|
||||||
|
extra_components = get_components(template, mdata, fname,
|
||||||
|
length=250-len(app_id)-1)
|
||||||
if not extra_components:
|
if not extra_components:
|
||||||
extra_components.append(sanitize(self.filename_callback(fname,
|
extra_components.append(sanitize(self.filename_callback(fname,
|
||||||
mdata)))
|
mdata)))
|
||||||
|
@ -26,3 +26,8 @@ def server_config(defaults=None):
|
|||||||
help=_('The maximum number of matches to return per OPDS query. '
|
help=_('The maximum number of matches to return per OPDS query. '
|
||||||
'This affects Stanza, WordPlayer, etc. integration.'))
|
'This affects Stanza, WordPlayer, etc. integration.'))
|
||||||
return c
|
return c
|
||||||
|
|
||||||
|
def db():
|
||||||
|
from calibre.library.database2 import LibraryDatabase2
|
||||||
|
from calibre.utils.config import prefs
|
||||||
|
return LibraryDatabase2(prefs['library_path'])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user