mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 02:34:06 -04:00
Add mtime to ListEntry
This commit is contained in:
parent
9ab99b34c2
commit
fe4e0aa6b7
@ -5,6 +5,7 @@ __license__ = 'GPL v3'
|
|||||||
__copyright__ = '2012, Kovid Goyal <kovid at kovidgoyal.net>'
|
__copyright__ = '2012, Kovid Goyal <kovid at kovidgoyal.net>'
|
||||||
__docformat__ = 'restructuredtext en'
|
__docformat__ = 'restructuredtext en'
|
||||||
|
|
||||||
|
import datetime
|
||||||
import importlib
|
import importlib
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
@ -19,7 +20,7 @@ from calibre.constants import iswindows, numeric_version
|
|||||||
from calibre.devices.errors import PathError
|
from calibre.devices.errors import PathError
|
||||||
from calibre.devices.mtp.base import debug
|
from calibre.devices.mtp.base import debug
|
||||||
from calibre.devices.mtp.defaults import DeviceDefaults
|
from calibre.devices.mtp.defaults import DeviceDefaults
|
||||||
from calibre.devices.mtp.filesystem_cache import FileOrFolder
|
from calibre.devices.mtp.filesystem_cache import FileOrFolder, convert_timestamp
|
||||||
from calibre.ptempfile import PersistentTemporaryDirectory, SpooledTemporaryFile
|
from calibre.ptempfile import PersistentTemporaryDirectory, SpooledTemporaryFile
|
||||||
from calibre.utils.filenames import shorten_components_to
|
from calibre.utils.filenames import shorten_components_to
|
||||||
from calibre.utils.icu import lower as icu_lower
|
from calibre.utils.icu import lower as icu_lower
|
||||||
@ -41,6 +42,7 @@ class ListEntry(NamedTuple):
|
|||||||
name: str
|
name: str
|
||||||
is_folder: bool
|
is_folder: bool
|
||||||
size: int
|
size: int
|
||||||
|
mtime: datetime.datetime
|
||||||
|
|
||||||
|
|
||||||
class MTP_DEVICE(BASE):
|
class MTP_DEVICE(BASE):
|
||||||
@ -389,7 +391,7 @@ class MTP_DEVICE(BASE):
|
|||||||
|
|
||||||
def list_folder_by_name(self, parent, *names):
|
def list_folder_by_name(self, parent, *names):
|
||||||
' List the contents of the folder parent/ + "/".join(names). Works with folders not cached in FilesystemCache. '
|
' List the contents of the folder parent/ + "/".join(names). Works with folders not cached in FilesystemCache. '
|
||||||
return tuple(ListEntry(x['name'], x['is_folder'], x['size']) for x in self.list_mtp_folder_by_name(parent, *names))
|
return tuple(ListEntry(x['name'], x['is_folder'], x['size'], convert_timestamp(x['modified'])) for x in self.list_mtp_folder_by_name(parent, *names))
|
||||||
|
|
||||||
def prepare_addable_books(self, paths):
|
def prepare_addable_books(self, paths):
|
||||||
tdir = PersistentTemporaryDirectory('_prepare_mtp')
|
tdir = PersistentTemporaryDirectory('_prepare_mtp')
|
||||||
|
@ -23,6 +23,15 @@ from calibre.utils.icu import lower, sort_key
|
|||||||
|
|
||||||
bexts = frozenset(BOOK_EXTENSIONS) - {'mbp', 'tan', 'rar', 'zip', 'xml'}
|
bexts = frozenset(BOOK_EXTENSIONS) - {'mbp', 'tan', 'rar', 'zip', 'xml'}
|
||||||
|
|
||||||
|
def convert_timestamp(md):
|
||||||
|
try:
|
||||||
|
if isinstance(md, tuple):
|
||||||
|
return datetime(*(list(md)+[local_tz]))
|
||||||
|
else:
|
||||||
|
return datetime.fromtimestamp(md, local_tz)
|
||||||
|
except Exception:
|
||||||
|
return datetime.fromtimestamp(0, local_tz)
|
||||||
|
|
||||||
|
|
||||||
class ListEntry:
|
class ListEntry:
|
||||||
|
|
||||||
@ -55,13 +64,7 @@ class FileOrFolder:
|
|||||||
self.name = force_unicode(n, 'utf-8')
|
self.name = force_unicode(n, 'utf-8')
|
||||||
self.size = entry.get('size', 0)
|
self.size = entry.get('size', 0)
|
||||||
md = entry.get('modified', 0)
|
md = entry.get('modified', 0)
|
||||||
try:
|
self.last_modified = convert_timestamp(md)
|
||||||
if isinstance(md, tuple):
|
|
||||||
self.last_modified = datetime(*(list(md)+[local_tz]))
|
|
||||||
else:
|
|
||||||
self.last_modified = datetime.fromtimestamp(md, local_tz)
|
|
||||||
except Exception:
|
|
||||||
self.last_modified = datetime.fromtimestamp(0, local_tz)
|
|
||||||
self.last_mod_string = self.last_modified.strftime('%Y/%m/%d %H:%M')
|
self.last_mod_string = self.last_modified.strftime('%Y/%m/%d %H:%M')
|
||||||
self.last_modified = as_utc(self.last_modified)
|
self.last_modified = as_utc(self.last_modified)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user