mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Put @classmethods back in. I don't understand why the decoration is there, so I hesitate to take it out. Far as I can see, there is no reason for it, but ...
This commit is contained in:
parent
72fbd67c17
commit
96079a712c
@ -27,14 +27,17 @@ class USBMS(CLI, Device):
|
||||
author = _('John Schember')
|
||||
supported_platforms = ['windows', 'osx', 'linux']
|
||||
|
||||
booklist_class = BookList
|
||||
book_class = Book
|
||||
|
||||
FORMATS = []
|
||||
CAN_SET_METADATA = True
|
||||
METADATA_CACHE = 'metadata.calibre'
|
||||
|
||||
def initialize(self):
|
||||
Device.initialize(self)
|
||||
self.booklist_class = BookList
|
||||
self.book_class = Book
|
||||
# self.booklist_class = BookList
|
||||
# self.book_class = Book
|
||||
|
||||
def get_device_information(self, end_session=True):
|
||||
self.report_progress(1.0, _('Get device information...'))
|
||||
@ -234,14 +237,15 @@ class USBMS(CLI, Device):
|
||||
|
||||
self.report_progress(1.0, _('Sending metadata to device...'))
|
||||
|
||||
def parse_metadata_cache(self, prefix, name, bl):
|
||||
@classmethod
|
||||
def parse_metadata_cache(cls, prefix, name, bl):
|
||||
js = []
|
||||
need_sync = False
|
||||
try:
|
||||
with open(os.path.join(prefix, name), 'rb') as f:
|
||||
js = json.load(f, encoding='utf-8')
|
||||
for item in js:
|
||||
book = self.book_class(prefix, item.get('lpath', None))
|
||||
book = cls.book_class(prefix, item.get('lpath', None))
|
||||
for key in item.keys():
|
||||
setattr(book, key, item[key])
|
||||
bl.append(book)
|
||||
@ -252,30 +256,34 @@ class USBMS(CLI, Device):
|
||||
need_sync = True
|
||||
return bl, need_sync
|
||||
|
||||
def update_metadata_item(self, item):
|
||||
@classmethod
|
||||
def update_metadata_item(cls, item):
|
||||
changed = False
|
||||
size = os.stat(item.path).st_size
|
||||
if size != item.size:
|
||||
changed = True
|
||||
mi = self.metadata_from_path(item.path)
|
||||
mi = cls.metadata_from_path(item.path)
|
||||
item.smart_update(mi)
|
||||
item.size = size
|
||||
return item, changed
|
||||
|
||||
def metadata_from_path(self, path):
|
||||
return self.metadata_from_formats([path])
|
||||
@classmethod
|
||||
def metadata_from_path(cls, path):
|
||||
return cls.metadata_from_formats([path])
|
||||
|
||||
def metadata_from_formats(self, fmts):
|
||||
@classmethod
|
||||
def metadata_from_formats(cls, fmts):
|
||||
from calibre.ebooks.metadata.meta import metadata_from_formats
|
||||
from calibre.customize.ui import quick_metadata
|
||||
with quick_metadata:
|
||||
return metadata_from_formats(fmts)
|
||||
|
||||
def book_from_path(self, prefix, path):
|
||||
@classmethod
|
||||
def book_from_path(cls, prefix, path):
|
||||
from calibre.ebooks.metadata import MetaInformation
|
||||
|
||||
if self.settings().read_metadata or self.MUST_READ_METADATA:
|
||||
mi = self.metadata_from_path(os.path.join(prefix, path))
|
||||
if cls.settings().read_metadata or cls.MUST_READ_METADATA:
|
||||
mi = cls.metadata_from_path(os.path.join(prefix, path))
|
||||
else:
|
||||
from calibre.ebooks.metadata.meta import metadata_from_filename
|
||||
mi = metadata_from_filename(os.path.basename(path),
|
||||
@ -285,5 +293,5 @@ class USBMS(CLI, Device):
|
||||
mi = MetaInformation(os.path.splitext(os.path.basename(path))[0],
|
||||
[_('Unknown')])
|
||||
mi.size = os.stat(os.path.join(prefix, path)).st_size
|
||||
book = self.book_class(prefix, path, other=mi)
|
||||
book = cls.book_class(prefix, path, other=mi)
|
||||
return book
|
||||
|
@ -1022,11 +1022,11 @@ class DeviceGUI(object):
|
||||
book_authors = authors_to_string(book.authors).lower()
|
||||
book_authors = re.sub('(?u)\W|[_]', '', book_authors)
|
||||
self.book_db_title_cache[i][book_title]['authors'].add(book_authors)
|
||||
id = getattr(book, 'application_id', None)
|
||||
if id is None:
|
||||
id = book.db_id
|
||||
if id is not None:
|
||||
self.book_db_title_cache[i][book_title]['db_ids'].add(id)
|
||||
db_id = getattr(book, 'application_id', None)
|
||||
if db_id is None:
|
||||
db_id = book.db_id
|
||||
if db_id is not None:
|
||||
self.book_db_title_cache[i][book_title]['db_ids'].add(db_id)
|
||||
uuid = getattr(book, 'uuid', None)
|
||||
if uuid is not None:
|
||||
self.book_db_uuid_cache[i].add(uuid)
|
||||
|
Loading…
x
Reference in New Issue
Block a user