This commit is contained in:
Kovid Goyal 2023-04-22 11:01:56 +05:30
parent 679877607d
commit dba94e1b5b
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
6 changed files with 24 additions and 15 deletions

View File

@ -60,6 +60,7 @@ COVER_FILE_NAME = 'cover.jpg'
METADATA_FILE_NAME = 'metadata.opf'
DEFAULT_TRASH_EXPIRY_TIME_SECONDS = 14 * 86400
TRASH_DIR_NAME = '.caltrash'
DATA_DIR_NAME = 'data'
BOOK_ID_PATH_TEMPLATE = ' ({})'
CUSTOM_DATA_TYPES = frozenset(('rating', 'text', 'comments', 'datetime',
'int', 'float', 'bool', 'series', 'composite', 'enumeration'))

View File

@ -5,18 +5,21 @@ __license__ = 'GPL v3'
__copyright__ = '2014, Kovid Goyal <kovid at kovidgoyal.net>'
import os
from functools import partial
from contextlib import suppress
from functools import partial
from calibre import prepare_string_for_xml, force_unicode
from calibre.ebooks.metadata import fmt_sidx, rating_to_stars
from calibre.ebooks.metadata.search_internet import name_for, url_for_author_search, url_for_book_search, qquote, DEFAULT_AUTHOR_SOURCE
from calibre.ebooks.metadata.sources.identify import urls_from_identifiers
from calibre import force_unicode, prepare_string_for_xml
from calibre.constants import filesystem_encoding
from calibre.db.backend import DATA_DIR_NAME
from calibre.ebooks.metadata import fmt_sidx, rating_to_stars
from calibre.ebooks.metadata.search_internet import (
DEFAULT_AUTHOR_SOURCE, name_for, qquote, url_for_author_search, url_for_book_search,
)
from calibre.ebooks.metadata.sources.identify import urls_from_identifiers
from calibre.library.comments import comments_to_html, markdown
from calibre.utils.icu import sort_key
from calibre.utils.date import format_date, is_date_undefined
from calibre.utils.formatter import EvalFormatter
from calibre.utils.date import is_date_undefined, format_date
from calibre.utils.icu import sort_key
from calibre.utils.localization import calibre_langcode_to_name
from calibre.utils.serialize import json_dumps
from polyglot.binary import as_hex_unicode
@ -213,7 +216,7 @@ def mi_to_html(
link = '<a href="{}" title="{}">{}</a>{}'.format(action(scheme, book_id=book_id, loc=loc),
prepare_string_for_xml(path, True), _('Click to open'), extra)
if not isdevice:
data_path = os.path.join(path, 'data')
data_path = os.path.join(path, DATA_DIR_NAME)
with suppress(OSError):
if os.listdir(data_path):
link += ' \xa0 <a href="{}" title="{}">{}</a>'.format(

View File

@ -9,12 +9,13 @@ import json
import os
import time
from functools import partial
from qt.core import QAction, QIcon, pyqtSignal, QDialog
from qt.core import QAction, QDialog, QIcon, pyqtSignal
from calibre.constants import ismacos, iswindows
from calibre.db.backend import DATA_DIR_NAME
from calibre.gui2 import (
Dispatcher, config, elided_text, error_dialog, info_dialog, open_local_file,
question_dialog
question_dialog,
)
from calibre.gui2.actions import InterfaceAction
from calibre.gui2.dialogs.choose_format import ChooseFormatDialog
@ -283,7 +284,7 @@ class ViewAction(InterfaceAction):
def view_data_folder_for_id(self, id_):
path = self.gui.library_view.model().db.abspath(id_, index_is_id=True)
open_local_file(os.path.join(path, 'data'))
open_local_file(os.path.join(path, DATA_DIR_NAME))
def view_book(self, triggered):
rows = self.gui.current_view().selectionModel().selectedRows()

View File

@ -15,6 +15,7 @@ from qt.core import (
from calibre import fit_image, sanitize_file_name
from calibre.constants import config_dir, iswindows
from calibre.db.backend import DATA_DIR_NAME
from calibre.ebooks import BOOK_EXTENSIONS
from calibre.ebooks.metadata.book.base import Metadata, field_metadata
from calibre.ebooks.metadata.book.render import mi_to_html
@ -476,7 +477,7 @@ def create_copy_links(menu, data=None):
link(_('Link to show book in calibre'), f'calibre://show-book/{library_id}/{book_id}')
link(_('Link to show book details in a popup window'), f'calibre://book-details/{library_id}/{book_id}')
mi = db.new_api.get_proxy_metadata(book_id)
data_path = os.path.join(db.backend.library_path, mi.path, 'data')
data_path = os.path.join(db.backend.library_path, mi.path, DATA_DIR_NAME)
with suppress(OSError):
if os.listdir(data_path):
if iswindows:

View File

@ -19,6 +19,7 @@ from qt.core import (
)
from calibre import xml_replace_entities
from calibre.db.backend import DATA_DIR_NAME
from calibre.ebooks.chardet import xml_to_unicode
from calibre.gui2 import (
NO_URL_FORMATTING, choose_dir, choose_files, error_dialog, gprefs, is_dark_theme,
@ -707,7 +708,7 @@ class EditorWidget(QTextEdit, LineEditECM): # {{{
d.bb = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok|QDialogButtonBox.StandardButton.Cancel)
d.br = b = QPushButton(_('&File'))
base = os.path.dirname(self.base_url.toLocalFile()) if self.base_url else os.getcwd()
data_path = os.path.join(base, 'data')
data_path = os.path.join(base, DATA_DIR_NAME)
if self.base_url:
os.makedirs(data_path, exist_ok=True)

View File

@ -12,13 +12,15 @@ import traceback
from calibre import isbytestring
from calibre.constants import filesystem_encoding
from calibre.db.backend import COVER_FILE_NAME, METADATA_FILE_NAME, TRASH_DIR_NAME
from calibre.db.backend import (
COVER_FILE_NAME, DATA_DIR_NAME, METADATA_FILE_NAME, TRASH_DIR_NAME,
)
from calibre.ebooks import BOOK_EXTENSIONS
from calibre.utils.localization import _
from polyglot.builtins import iteritems
EBOOK_EXTENSIONS = frozenset(BOOK_EXTENSIONS)
NORMALS = frozenset({METADATA_FILE_NAME, COVER_FILE_NAME, 'data'})
NORMALS = frozenset({METADATA_FILE_NAME, COVER_FILE_NAME, DATA_DIR_NAME})
IGNORE_AT_TOP_LEVEL = frozenset({'metadata.db', 'metadata_db_prefs_backup.json', 'metadata_pre_restore.db', 'full-text-search.db', TRASH_DIR_NAME})
'''