mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Work on removing use of _ from builtins
This commit is contained in:
parent
36ff53ca30
commit
8b71e251c4
@ -7,7 +7,7 @@ from operator import itemgetter
|
|||||||
from qt.core import (
|
from qt.core import (
|
||||||
QAbstractItemView, QAction, QComboBox, QGridLayout, QHBoxLayout, QIcon,
|
QAbstractItemView, QAction, QComboBox, QGridLayout, QHBoxLayout, QIcon,
|
||||||
QInputDialog, QItemSelectionModel, QLabel, QListWidget, QListWidgetItem,
|
QInputDialog, QItemSelectionModel, QLabel, QListWidget, QListWidgetItem,
|
||||||
QPushButton, Qt, QWidget, pyqtSignal
|
QPushButton, Qt, QWidget, pyqtSignal,
|
||||||
)
|
)
|
||||||
|
|
||||||
from calibre.gui2 import choose_files, choose_save_file
|
from calibre.gui2 import choose_files, choose_save_file
|
||||||
@ -17,6 +17,7 @@ from calibre.gui2.viewer.shortcuts import get_shortcut_for
|
|||||||
from calibre.gui2.viewer.web_view import vprefs
|
from calibre.gui2.viewer.web_view import vprefs
|
||||||
from calibre.utils.date import EPOCH, utcnow
|
from calibre.utils.date import EPOCH, utcnow
|
||||||
from calibre.utils.icu import primary_sort_key
|
from calibre.utils.icu import primary_sort_key
|
||||||
|
from calibre.utils.localization import _
|
||||||
|
|
||||||
|
|
||||||
class BookmarksList(QListWidget):
|
class BookmarksList(QListWidget):
|
||||||
|
@ -28,7 +28,7 @@ from calibre.gui2.viewer.config import vprefs
|
|||||||
from calibre.gui2.viewer.search import SearchInput
|
from calibre.gui2.viewer.search import SearchInput
|
||||||
from calibre.gui2.viewer.shortcuts import get_shortcut_for, index_to_key_sequence
|
from calibre.gui2.viewer.shortcuts import get_shortcut_for, index_to_key_sequence
|
||||||
from calibre.gui2.widgets2 import Dialog
|
from calibre.gui2.widgets2 import Dialog
|
||||||
from calibre.utils.localization import ngettext
|
from calibre.utils.localization import _, ngettext
|
||||||
from calibre_extensions.progress_indicator import set_no_activate_on_click
|
from calibre_extensions.progress_indicator import set_no_activate_on_click
|
||||||
|
|
||||||
decoration_cache = {}
|
decoration_cache = {}
|
||||||
|
@ -18,7 +18,7 @@ from calibre import prints, random_user_agent
|
|||||||
from calibre.gui2 import error_dialog
|
from calibre.gui2 import error_dialog
|
||||||
from calibre.gui2.viewer.web_view import apply_font_settings, vprefs
|
from calibre.gui2.viewer.web_view import apply_font_settings, vprefs
|
||||||
from calibre.gui2.widgets2 import Dialog
|
from calibre.gui2.widgets2 import Dialog
|
||||||
from calibre.utils.localization import canonicalize_lang, get_lang, lang_as_iso639_1
|
from calibre.utils.localization import _, canonicalize_lang, get_lang, lang_as_iso639_1
|
||||||
from calibre.utils.resources import get_path as P
|
from calibre.utils.resources import get_path as P
|
||||||
from calibre.utils.webengine import (
|
from calibre.utils.webengine import (
|
||||||
create_script, insert_scripts, secure_webengine, setup_profile,
|
create_script, insert_scripts, secure_webengine, setup_profile,
|
||||||
|
@ -16,6 +16,7 @@ from calibre.gui2.viewer.ui import EbookViewer, is_float
|
|||||||
from calibre.ptempfile import reset_base_dir
|
from calibre.ptempfile import reset_base_dir
|
||||||
from calibre.utils.config import JSONConfig
|
from calibre.utils.config import JSONConfig
|
||||||
from calibre.utils.ipc import viewer_socket_address
|
from calibre.utils.ipc import viewer_socket_address
|
||||||
|
from calibre.utils.localization import _
|
||||||
|
|
||||||
singleinstance_name = 'calibre_viewer'
|
singleinstance_name = 'calibre_viewer'
|
||||||
|
|
||||||
@ -168,6 +169,7 @@ def run_gui(app, opts, args, internal_book_data, listener=None):
|
|||||||
|
|
||||||
def main(args=sys.argv):
|
def main(args=sys.argv):
|
||||||
from calibre.utils.webengine import setup_fake_protocol
|
from calibre.utils.webengine import setup_fake_protocol
|
||||||
|
|
||||||
# Ensure viewer can continue to function if GUI is closed
|
# Ensure viewer can continue to function if GUI is closed
|
||||||
os.environ.pop('CALIBRE_WORKER_TEMP_DIR', None)
|
os.environ.pop('CALIBRE_WORKER_TEMP_DIR', None)
|
||||||
reset_base_dir()
|
reset_base_dir()
|
||||||
|
@ -5,18 +5,16 @@
|
|||||||
import os
|
import os
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
from threading import Thread
|
|
||||||
|
|
||||||
from qt.core import (
|
from qt.core import (
|
||||||
QCheckBox, QDoubleSpinBox, QFormLayout, QHBoxLayout, QIcon, QLabel, QDialog,
|
QCheckBox, QDialog, QDoubleSpinBox, QFormLayout, QHBoxLayout, QIcon, QLabel,
|
||||||
QLineEdit, QPageSize, QProgressDialog, QTimer, QToolButton, QVBoxLayout
|
QLineEdit, QPageSize, QProgressDialog, QTimer, QToolButton, QVBoxLayout,
|
||||||
)
|
)
|
||||||
|
from threading import Thread
|
||||||
|
|
||||||
from calibre import sanitize_file_name
|
from calibre import sanitize_file_name
|
||||||
from calibre.ebooks.conversion.plugins.pdf_output import PAPER_SIZES
|
from calibre.ebooks.conversion.plugins.pdf_output import PAPER_SIZES
|
||||||
from calibre.gui2 import (
|
from calibre.gui2 import (
|
||||||
Application, choose_save_file, dynamic, elided_text, error_dialog,
|
Application, choose_save_file, dynamic, elided_text, error_dialog, open_local_file,
|
||||||
open_local_file
|
|
||||||
)
|
)
|
||||||
from calibre.gui2.widgets import PaperSizes
|
from calibre.gui2.widgets import PaperSizes
|
||||||
from calibre.gui2.widgets2 import Dialog
|
from calibre.gui2.widgets2 import Dialog
|
||||||
@ -24,9 +22,9 @@ from calibre.ptempfile import PersistentTemporaryFile
|
|||||||
from calibre.utils.config import JSONConfig
|
from calibre.utils.config import JSONConfig
|
||||||
from calibre.utils.filenames import expanduser
|
from calibre.utils.filenames import expanduser
|
||||||
from calibre.utils.ipc.simple_worker import start_pipe_worker
|
from calibre.utils.ipc.simple_worker import start_pipe_worker
|
||||||
|
from calibre.utils.localization import _
|
||||||
from calibre.utils.serialize import msgpack_dumps, msgpack_loads
|
from calibre.utils.serialize import msgpack_dumps, msgpack_loads
|
||||||
|
|
||||||
|
|
||||||
vprefs = JSONConfig('viewer')
|
vprefs = JSONConfig('viewer')
|
||||||
|
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ from calibre.gui2.viewer.config import vprefs
|
|||||||
from calibre.gui2.viewer.web_view import get_data, get_manifest
|
from calibre.gui2.viewer.web_view import get_data, get_manifest
|
||||||
from calibre.gui2.viewer.widgets import ResultsDelegate, SearchBox
|
from calibre.gui2.viewer.widgets import ResultsDelegate, SearchBox
|
||||||
from calibre.utils.icu import primary_collator_without_punctuation
|
from calibre.utils.icu import primary_collator_without_punctuation
|
||||||
from calibre.utils.localization import ngettext
|
from calibre.utils.localization import _, ngettext
|
||||||
from polyglot.builtins import iteritems
|
from polyglot.builtins import iteritems
|
||||||
from polyglot.functools import lru_cache
|
from polyglot.functools import lru_cache
|
||||||
from polyglot.queue import Queue
|
from polyglot.queue import Queue
|
||||||
|
@ -6,14 +6,15 @@ import re
|
|||||||
from functools import partial
|
from functools import partial
|
||||||
from qt.core import (
|
from qt.core import (
|
||||||
QAbstractItemView, QApplication, QEvent, QFont, QHBoxLayout, QIcon, QMenu,
|
QAbstractItemView, QApplication, QEvent, QFont, QHBoxLayout, QIcon, QMenu,
|
||||||
QModelIndex, QStandardItem, QStandardItemModel, QStyledItemDelegate,
|
QModelIndex, QStandardItem, QStandardItemModel, QStyledItemDelegate, Qt,
|
||||||
Qt, QToolButton, QToolTip, QTreeView, QWidget, pyqtSignal
|
QToolButton, QToolTip, QTreeView, QWidget, pyqtSignal,
|
||||||
)
|
)
|
||||||
|
|
||||||
from calibre.gui2 import error_dialog
|
from calibre.gui2 import error_dialog
|
||||||
from calibre.gui2.search_box import SearchBox2
|
|
||||||
from calibre.gui2.gestures import GestureManager
|
from calibre.gui2.gestures import GestureManager
|
||||||
|
from calibre.gui2.search_box import SearchBox2
|
||||||
from calibre.utils.icu import primary_contains
|
from calibre.utils.icu import primary_contains
|
||||||
|
from calibre.utils.localization import _
|
||||||
|
|
||||||
|
|
||||||
class Delegate(QStyledItemDelegate):
|
class Delegate(QStyledItemDelegate):
|
||||||
|
@ -19,6 +19,7 @@ from calibre.gui2.viewer.web_view import set_book_path, vprefs
|
|||||||
from calibre.gui2.widgets2 import Dialog
|
from calibre.gui2.widgets2 import Dialog
|
||||||
from calibre.startup import connect_lambda
|
from calibre.startup import connect_lambda
|
||||||
from calibre.utils.icu import primary_sort_key
|
from calibre.utils.icu import primary_sort_key
|
||||||
|
from calibre.utils.localization import _
|
||||||
|
|
||||||
|
|
||||||
class Action:
|
class Action:
|
||||||
|
@ -6,6 +6,7 @@ from qt.core import QDialog, QDialogButtonBox, QObject, QVBoxLayout, pyqtSignal
|
|||||||
from calibre.gui2 import error_dialog
|
from calibre.gui2 import error_dialog
|
||||||
from calibre.gui2.viewer.config import get_pref_group, vprefs
|
from calibre.gui2.viewer.config import get_pref_group, vprefs
|
||||||
from calibre.gui2.widgets2 import Dialog
|
from calibre.gui2.widgets2 import Dialog
|
||||||
|
from calibre.utils.localization import _
|
||||||
|
|
||||||
|
|
||||||
def set_sync_override(allowed):
|
def set_sync_override(allowed):
|
||||||
|
@ -48,6 +48,7 @@ from calibre.startup import connect_lambda
|
|||||||
from calibre.utils.date import utcnow
|
from calibre.utils.date import utcnow
|
||||||
from calibre.utils.img import image_from_path
|
from calibre.utils.img import image_from_path
|
||||||
from calibre.utils.ipc.simple_worker import WorkerError
|
from calibre.utils.ipc.simple_worker import WorkerError
|
||||||
|
from calibre.utils.localization import _
|
||||||
from polyglot.builtins import as_bytes, as_unicode, iteritems, itervalues
|
from polyglot.builtins import as_bytes, as_unicode, iteritems, itervalues
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# License: GPL v3 Copyright: 2018, Kovid Goyal <kovid at kovidgoyal.net>
|
# License: GPL v3 Copyright: 2018, Kovid Goyal <kovid at kovidgoyal.net>
|
||||||
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
import sys
|
import sys
|
||||||
@ -28,7 +27,7 @@ from calibre.gui2.viewer.config import viewer_config_dir, vprefs
|
|||||||
from calibre.gui2.viewer.tts import TTS
|
from calibre.gui2.viewer.tts import TTS
|
||||||
from calibre.gui2.webengine import RestartingWebEngineView
|
from calibre.gui2.webengine import RestartingWebEngineView
|
||||||
from calibre.srv.code import get_translations_data
|
from calibre.srv.code import get_translations_data
|
||||||
from calibre.utils.localization import localize_user_manual_link
|
from calibre.utils.localization import _, localize_user_manual_link
|
||||||
from calibre.utils.resources import get_path as P
|
from calibre.utils.resources import get_path as P
|
||||||
from calibre.utils.serialize import json_loads
|
from calibre.utils.serialize import json_loads
|
||||||
from calibre.utils.shared_file import share_open
|
from calibre.utils.shared_file import share_open
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
# License: GPL v3 Copyright: 2020, Kovid Goyal <kovid at kovidgoyal.net>
|
# License: GPL v3 Copyright: 2020, Kovid Goyal <kovid at kovidgoyal.net>
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from qt.core import (
|
from qt.core import (
|
||||||
QAction, QFont, QFontMetrics, QStyle, QStyledItemDelegate, Qt, pyqtSignal, QPalette
|
QAction, QFont, QFontMetrics, QPalette, QStyle, QStyledItemDelegate, Qt, pyqtSignal,
|
||||||
)
|
)
|
||||||
|
|
||||||
from calibre.gui2 import QT_HIDDEN_CLEAR_ACTION
|
from calibre.gui2 import QT_HIDDEN_CLEAR_ACTION
|
||||||
from calibre.gui2.widgets2 import HistoryComboBox
|
from calibre.gui2.widgets2 import HistoryComboBox
|
||||||
|
from calibre.utils.localization import _
|
||||||
|
|
||||||
|
|
||||||
class ResultsDelegate(QStyledItemDelegate): # {{{
|
class ResultsDelegate(QStyledItemDelegate): # {{{
|
||||||
|
@ -25,7 +25,7 @@ from calibre.gui2.filename_pattern_ui import Ui_Form
|
|||||||
from calibre.gui2.progress_indicator import ProgressIndicator as _ProgressIndicator
|
from calibre.gui2.progress_indicator import ProgressIndicator as _ProgressIndicator
|
||||||
from calibre.startup import connect_lambda
|
from calibre.startup import connect_lambda
|
||||||
from calibre.utils.config import XMLConfig, prefs
|
from calibre.utils.config import XMLConfig, prefs
|
||||||
from calibre.utils.localization import localize_user_manual_link
|
from calibre.utils.localization import _, localize_user_manual_link
|
||||||
from polyglot.builtins import native_string_type
|
from polyglot.builtins import native_string_type
|
||||||
|
|
||||||
history = XMLConfig('history')
|
history = XMLConfig('history')
|
||||||
|
@ -4,13 +4,13 @@
|
|||||||
|
|
||||||
import weakref
|
import weakref
|
||||||
from qt.core import (
|
from qt.core import (
|
||||||
QApplication, QBrush, QByteArray, QCalendarWidget, QCheckBox, QColor,
|
QApplication, QBrush, QByteArray, QCalendarWidget, QCheckBox, QColor, QColorDialog,
|
||||||
QColorDialog, QComboBox, QDate, QDateTime, QDateTimeEdit, QDialog,
|
QComboBox, QDate, QDateTime, QDateTimeEdit, QDialog, QDialogButtonBox, QFont,
|
||||||
QDialogButtonBox, QFont, QFontInfo, QFontMetrics, QFrame, QIcon, QKeySequence,
|
QFontInfo, QFontMetrics, QFrame, QIcon, QKeySequence, QLabel, QLayout, QMenu,
|
||||||
QLabel, QLayout, QMenu, QMimeData, QPainter, QPalette, QPixmap, QPoint,
|
QMimeData, QPainter, QPalette, QPixmap, QPoint, QPushButton, QRect, QScrollArea,
|
||||||
QPushButton, QRect, QScrollArea, QSize, QSizePolicy, QStyle, QStyledItemDelegate,
|
QSize, QSizePolicy, QStyle, QStyledItemDelegate, QStyleOptionToolButton,
|
||||||
QStyleOptionToolButton, QStylePainter, Qt, QTabWidget, QTextBrowser, QTextCursor,
|
QStylePainter, Qt, QTabWidget, QTextBrowser, QTextCursor, QToolButton, QUndoCommand,
|
||||||
QToolButton, QUndoCommand, QUndoStack, QUrl, QWidget, pyqtSignal
|
QUndoStack, QUrl, QWidget, pyqtSignal,
|
||||||
)
|
)
|
||||||
|
|
||||||
from calibre.ebooks.metadata import rating_to_stars
|
from calibre.ebooks.metadata import rating_to_stars
|
||||||
@ -19,6 +19,7 @@ from calibre.gui2.complete2 import EditWithComplete, LineEdit
|
|||||||
from calibre.gui2.widgets import history
|
from calibre.gui2.widgets import history
|
||||||
from calibre.utils.config_base import tweaks
|
from calibre.utils.config_base import tweaks
|
||||||
from calibre.utils.date import UNDEFINED_DATE
|
from calibre.utils.date import UNDEFINED_DATE
|
||||||
|
from calibre.utils.localization import _
|
||||||
from polyglot.functools import lru_cache
|
from polyglot.functools import lru_cache
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,11 +6,11 @@ import os
|
|||||||
import struct
|
import struct
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
from contextlib import suppress
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
from contextlib import suppress
|
|
||||||
|
|
||||||
|
|
||||||
|
from calibre.utils.localization import _
|
||||||
from polyglot.builtins import string_or_bytes
|
from polyglot.builtins import string_or_bytes
|
||||||
|
|
||||||
base = sys.extensions_location if hasattr(sys, 'new_app_layout') else os.path.dirname(sys.executable)
|
base = sys.extensions_location if hasattr(sys, 'new_app_layout') else os.path.dirname(sys.executable)
|
||||||
|
@ -10,8 +10,8 @@ import re
|
|||||||
import traceback
|
import traceback
|
||||||
from contextlib import closing, suppress
|
from contextlib import closing, suppress
|
||||||
from qt.core import (
|
from qt.core import (
|
||||||
QAbstractListModel, QDir, QIcon, QItemSelection, QItemSelectionModel, Qt,
|
QAbstractListModel, QDir, QIcon, QItemSelection, QItemSelectionModel, Qt, QWizard,
|
||||||
QWizard, QWizardPage, pyqtSignal
|
QWizardPage, pyqtSignal,
|
||||||
)
|
)
|
||||||
|
|
||||||
from calibre import __appname__
|
from calibre import __appname__
|
||||||
@ -24,7 +24,7 @@ from calibre.gui2.wizard.library_ui import Ui_WizardPage as LibraryUI
|
|||||||
from calibre.gui2.wizard.send_email import smtp_prefs
|
from calibre.gui2.wizard.send_email import smtp_prefs
|
||||||
from calibre.gui2.wizard.stanza_ui import Ui_WizardPage as StanzaUI
|
from calibre.gui2.wizard.stanza_ui import Ui_WizardPage as StanzaUI
|
||||||
from calibre.utils.config import dynamic, prefs
|
from calibre.utils.config import dynamic, prefs
|
||||||
from calibre.utils.localization import localize_user_manual_link
|
from calibre.utils.localization import _, localize_user_manual_link
|
||||||
from polyglot.builtins import iteritems
|
from polyglot.builtins import iteritems
|
||||||
|
|
||||||
# Devices {{{
|
# Devices {{{
|
||||||
@ -717,7 +717,7 @@ class LibraryPage(QWizardPage, LibraryUI):
|
|||||||
self.language.blockSignals(True)
|
self.language.blockSignals(True)
|
||||||
self.language.clear()
|
self.language.clear()
|
||||||
from calibre.utils.localization import (
|
from calibre.utils.localization import (
|
||||||
available_translations, get_lang, get_language, get_lc_messages_path
|
available_translations, get_lang, get_language, get_lc_messages_path,
|
||||||
)
|
)
|
||||||
lang = get_lang()
|
lang = get_lang()
|
||||||
lang = get_lc_messages_path(lang) if lang else lang
|
lang = get_lc_messages_path(lang) if lang else lang
|
||||||
|
@ -7,17 +7,17 @@ __docformat__ = 'restructuredtext en'
|
|||||||
|
|
||||||
import sys
|
import sys
|
||||||
from functools import partial
|
from functools import partial
|
||||||
|
from qt.core import (
|
||||||
|
QCheckBox, QDialog, QDialogButtonBox, QGridLayout, QHBoxLayout, QIcon, QLabel,
|
||||||
|
QLineEdit, QPlainTextEdit, QPushButton, Qt, QVBoxLayout, QWidget, pyqtSignal,
|
||||||
|
)
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
|
|
||||||
from qt.core import (
|
|
||||||
QWidget, pyqtSignal, QDialog, Qt, QLabel, QLineEdit, QDialogButtonBox,
|
|
||||||
QGridLayout, QCheckBox, QIcon, QVBoxLayout, QPushButton, QPlainTextEdit,
|
|
||||||
QHBoxLayout)
|
|
||||||
|
|
||||||
from calibre import prints
|
from calibre import prints
|
||||||
from calibre.gui2.wizard.send_email_ui import Ui_Form
|
|
||||||
from calibre.utils.smtp import config as smtp_prefs
|
|
||||||
from calibre.gui2 import error_dialog, question_dialog
|
from calibre.gui2 import error_dialog, question_dialog
|
||||||
|
from calibre.gui2.wizard.send_email_ui import Ui_Form
|
||||||
|
from calibre.utils.localization import _
|
||||||
|
from calibre.utils.smtp import config as smtp_prefs
|
||||||
from polyglot.binary import as_hex_unicode, from_hex_unicode
|
from polyglot.binary import as_hex_unicode, from_hex_unicode
|
||||||
from polyglot.io import PolyglotStringIO
|
from polyglot.io import PolyglotStringIO
|
||||||
|
|
||||||
@ -211,7 +211,7 @@ class SendEmail(QWidget, Ui_Form):
|
|||||||
|
|
||||||
def test_email_settings(self, to):
|
def test_email_settings(self, to):
|
||||||
opts = smtp_prefs().parse()
|
opts = smtp_prefs().parse()
|
||||||
from calibre.utils.smtp import sendmail, create_mail
|
from calibre.utils.smtp import create_mail, sendmail
|
||||||
buf = PolyglotStringIO()
|
buf = PolyglotStringIO()
|
||||||
debug_out = partial(prints, file=buf)
|
debug_out = partial(prints, file=buf)
|
||||||
oout, oerr = sys.stdout, sys.stderr
|
oout, oerr = sys.stdout, sys.stderr
|
||||||
|
@ -85,6 +85,7 @@ def is_possible_media_pack_error(e):
|
|||||||
def show_media_pack_error():
|
def show_media_pack_error():
|
||||||
import traceback
|
import traceback
|
||||||
from calibre.gui2 import error_dialog, Application
|
from calibre.gui2 import error_dialog, Application
|
||||||
|
from calibre.utils.localization import _
|
||||||
app = Application([])
|
app = Application([])
|
||||||
error_dialog(None, _('Required component missing'), '<p>' + _(
|
error_dialog(None, _('Required component missing'), '<p>' + _(
|
||||||
'This computer is missing the Windows MediaPack, which is needed for calibre. Instructions'
|
'This computer is missing the Windows MediaPack, which is needed for calibre. Instructions'
|
||||||
|
@ -20,7 +20,7 @@ from calibre.ebooks.metadata.opf2 import metadata_to_opf
|
|||||||
from calibre.utils.config import prefs, tweaks
|
from calibre.utils.config import prefs, tweaks
|
||||||
from calibre.utils.date import UNDEFINED_DATE, clean_date_for_sort, now, parse_date
|
from calibre.utils.date import UNDEFINED_DATE, clean_date_for_sort, now, parse_date
|
||||||
from calibre.utils.icu import lower as icu_lower
|
from calibre.utils.icu import lower as icu_lower
|
||||||
from calibre.utils.localization import canonicalize_lang, get_udc, lang_map
|
from calibre.utils.localization import _, canonicalize_lang, get_udc, lang_map
|
||||||
from calibre.utils.search_query_parser import ParseException, SearchQueryParser
|
from calibre.utils.search_query_parser import ParseException, SearchQueryParser
|
||||||
from polyglot.builtins import cmp, iteritems, itervalues, string_or_bytes
|
from polyglot.builtins import cmp, iteritems, itervalues, string_or_bytes
|
||||||
|
|
||||||
|
@ -16,6 +16,7 @@ from calibre.customize import CatalogPlugin
|
|||||||
from calibre.customize.conversion import DummyReporter
|
from calibre.customize.conversion import DummyReporter
|
||||||
from calibre.ebooks.metadata import format_isbn
|
from calibre.ebooks.metadata import format_isbn
|
||||||
from calibre.library.catalogs import FIELDS, TEMPLATE_ALLOWED_FIELDS
|
from calibre.library.catalogs import FIELDS, TEMPLATE_ALLOWED_FIELDS
|
||||||
|
from calibre.utils.localization import _
|
||||||
from polyglot.builtins import string_or_bytes
|
from polyglot.builtins import string_or_bytes
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,12 +5,15 @@ __license__ = 'GPL v3'
|
|||||||
__copyright__ = '2012, Kovid Goyal <kovid@kovidgoyal.net>'
|
__copyright__ = '2012, Kovid Goyal <kovid@kovidgoyal.net>'
|
||||||
__docformat__ = 'restructuredtext en'
|
__docformat__ = 'restructuredtext en'
|
||||||
|
|
||||||
import re, codecs, os
|
import codecs
|
||||||
|
import os
|
||||||
|
import re
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
from calibre.customize import CatalogPlugin
|
from calibre.customize import CatalogPlugin
|
||||||
from calibre.library.catalogs import FIELDS
|
|
||||||
from calibre.customize.conversion import DummyReporter
|
from calibre.customize.conversion import DummyReporter
|
||||||
|
from calibre.library.catalogs import FIELDS
|
||||||
|
from calibre.utils.localization import _
|
||||||
|
|
||||||
|
|
||||||
class CSV_XML(CatalogPlugin):
|
class CSV_XML(CatalogPlugin):
|
||||||
@ -50,12 +53,13 @@ class CSV_XML(CatalogPlugin):
|
|||||||
"Applies to: CSV, XML output formats"))]
|
"Applies to: CSV, XML output formats"))]
|
||||||
|
|
||||||
def run(self, path_to_output, opts, db, notification=DummyReporter()):
|
def run(self, path_to_output, opts, db, notification=DummyReporter()):
|
||||||
|
from lxml import etree
|
||||||
|
|
||||||
|
from calibre.ebooks.metadata import authors_to_string
|
||||||
from calibre.library import current_library_name
|
from calibre.library import current_library_name
|
||||||
from calibre.utils.date import isoformat
|
from calibre.utils.date import isoformat
|
||||||
from calibre.utils.html2text import html2text
|
from calibre.utils.html2text import html2text
|
||||||
from calibre.utils.logging import default_log as log
|
from calibre.utils.logging import default_log as log
|
||||||
from lxml import etree
|
|
||||||
from calibre.ebooks.metadata import authors_to_string
|
|
||||||
|
|
||||||
self.fmt = path_to_output.rpartition('.')[2]
|
self.fmt = path_to_output.rpartition('.')[2]
|
||||||
self.notification = notification
|
self.notification = notification
|
||||||
|
@ -5,16 +5,20 @@ __license__ = 'GPL v3'
|
|||||||
__copyright__ = '2012, Kovid Goyal <kovid@kovidgoyal.net>'
|
__copyright__ = '2012, Kovid Goyal <kovid@kovidgoyal.net>'
|
||||||
__docformat__ = 'restructuredtext en'
|
__docformat__ = 'restructuredtext en'
|
||||||
|
|
||||||
import datetime, os, time
|
import datetime
|
||||||
|
import os
|
||||||
|
import time
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
from calibre import strftime
|
from calibre import strftime
|
||||||
from calibre.customize import CatalogPlugin
|
from calibre.customize import CatalogPlugin
|
||||||
from calibre.customize.conversion import OptionRecommendation, DummyReporter
|
from calibre.customize.conversion import DummyReporter, OptionRecommendation
|
||||||
from calibre.library import current_library_name
|
from calibre.library import current_library_name
|
||||||
from calibre.library.catalogs import AuthorSortMismatchException, EmptyCatalogException
|
from calibre.library.catalogs import AuthorSortMismatchException, EmptyCatalogException
|
||||||
from calibre.ptempfile import PersistentTemporaryFile
|
from calibre.ptempfile import PersistentTemporaryFile
|
||||||
from calibre.utils.localization import calibre_langcode_to_name, canonicalize_lang, get_lang
|
from calibre.utils.localization import (
|
||||||
|
_, calibre_langcode_to_name, canonicalize_lang, get_lang,
|
||||||
|
)
|
||||||
|
|
||||||
Option = namedtuple('Option', 'option, default, dest, action, help')
|
Option = namedtuple('Option', 'option, default, dest, action, help')
|
||||||
|
|
||||||
@ -190,8 +194,8 @@ class EPUB_MOBI(CatalogPlugin):
|
|||||||
|
|
||||||
def run(self, path_to_output, opts, db, notification=DummyReporter()):
|
def run(self, path_to_output, opts, db, notification=DummyReporter()):
|
||||||
from calibre.library.catalogs.epub_mobi_builder import CatalogBuilder
|
from calibre.library.catalogs.epub_mobi_builder import CatalogBuilder
|
||||||
from calibre.utils.logging import default_log as log
|
|
||||||
from calibre.utils.config import JSONConfig
|
from calibre.utils.config import JSONConfig
|
||||||
|
from calibre.utils.logging import default_log as log
|
||||||
|
|
||||||
# If preset specified from the cli, insert stored options from JSON file
|
# If preset specified from the cli, insert stored options from JSON file
|
||||||
if hasattr(opts, 'preset') and opts.preset:
|
if hasattr(opts, 'preset') and opts.preset:
|
||||||
|
@ -38,7 +38,7 @@ from calibre.utils.formatter import TemplateFormatter
|
|||||||
from calibre.utils.icu import (
|
from calibre.utils.icu import (
|
||||||
capitalize, collation_order, sort_key, title_case as icu_title, upper as icu_upper,
|
capitalize, collation_order, sort_key, title_case as icu_title, upper as icu_upper,
|
||||||
)
|
)
|
||||||
from calibre.utils.localization import get_lang, lang_as_iso639_1, ngettext
|
from calibre.utils.localization import _, get_lang, lang_as_iso639_1, ngettext
|
||||||
from calibre.utils.resources import get_image_path as I, get_path as P
|
from calibre.utils.resources import get_image_path as I, get_path as P
|
||||||
from calibre.utils.xml_parse import safe_xml_fromstring
|
from calibre.utils.xml_parse import safe_xml_fromstring
|
||||||
from calibre.utils.zipfile import ZipFile
|
from calibre.utils.zipfile import ZipFile
|
||||||
|
@ -5,11 +5,15 @@ __license__ = 'GPL v3'
|
|||||||
__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>'
|
__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>'
|
||||||
__docformat__ = 'restructuredtext en'
|
__docformat__ = 'restructuredtext en'
|
||||||
|
|
||||||
import re, os, traceback, fnmatch
|
import fnmatch
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import traceback
|
||||||
|
|
||||||
from calibre import isbytestring
|
from calibre import isbytestring
|
||||||
from calibre.constants import filesystem_encoding
|
from calibre.constants import filesystem_encoding
|
||||||
from calibre.ebooks import BOOK_EXTENSIONS
|
from calibre.ebooks import BOOK_EXTENSIONS
|
||||||
|
from calibre.utils.localization import _
|
||||||
from polyglot.builtins import iteritems
|
from polyglot.builtins import iteritems
|
||||||
|
|
||||||
EBOOK_EXTENSIONS = frozenset(BOOK_EXTENSIONS)
|
EBOOK_EXTENSIONS = frozenset(BOOK_EXTENSIONS)
|
||||||
|
@ -6,6 +6,7 @@ import json
|
|||||||
import re
|
import re
|
||||||
from textwrap import dedent
|
from textwrap import dedent
|
||||||
|
|
||||||
|
from calibre.utils.localization import _
|
||||||
from polyglot.binary import as_hex_unicode, from_hex_bytes
|
from polyglot.binary import as_hex_unicode, from_hex_bytes
|
||||||
|
|
||||||
color_row_key = '*row'
|
color_row_key = '*row'
|
||||||
|
@ -5,14 +5,17 @@ __license__ = 'GPL v3'
|
|||||||
__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>'
|
__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>'
|
||||||
__docformat__ = 'restructuredtext en'
|
__docformat__ = 'restructuredtext en'
|
||||||
|
|
||||||
import json, re, numbers
|
import json
|
||||||
|
import numbers
|
||||||
|
import re
|
||||||
from functools import partial
|
from functools import partial
|
||||||
|
|
||||||
from calibre import prints, force_unicode
|
from calibre import force_unicode, prints
|
||||||
from calibre.constants import preferred_encoding
|
from calibre.constants import preferred_encoding
|
||||||
from calibre.library.field_metadata import FieldMetadata
|
from calibre.library.field_metadata import FieldMetadata
|
||||||
from calibre.utils.date import parse_date
|
|
||||||
from calibre.utils.config import tweaks
|
from calibre.utils.config import tweaks
|
||||||
|
from calibre.utils.date import parse_date
|
||||||
|
from calibre.utils.localization import _
|
||||||
from polyglot.builtins import string_or_bytes
|
from polyglot.builtins import string_or_bytes
|
||||||
|
|
||||||
|
|
||||||
@ -217,7 +220,7 @@ class CustomColumns:
|
|||||||
if data['display'].get('sort_alpha', False):
|
if data['display'].get('sort_alpha', False):
|
||||||
ans.sort(key=lambda x:x.lower())
|
ans.sort(key=lambda x:x.lower())
|
||||||
if data['datatype'] == 'datetime' and isinstance(ans, string_or_bytes):
|
if data['datatype'] == 'datetime' and isinstance(ans, string_or_bytes):
|
||||||
from calibre.db.tables import c_parse, UNDEFINED_DATE
|
from calibre.db.tables import UNDEFINED_DATE, c_parse
|
||||||
ans = c_parse(ans)
|
ans = c_parse(ans)
|
||||||
if ans is UNDEFINED_DATE:
|
if ans is UNDEFINED_DATE:
|
||||||
ans = None
|
ans = None
|
||||||
@ -249,7 +252,7 @@ class CustomColumns:
|
|||||||
if data['display'].get('sort_alpha', False):
|
if data['display'].get('sort_alpha', False):
|
||||||
ans.sort(key=lambda x: x.lower())
|
ans.sort(key=lambda x: x.lower())
|
||||||
if data['datatype'] == 'datetime' and isinstance(ans, string_or_bytes):
|
if data['datatype'] == 'datetime' and isinstance(ans, string_or_bytes):
|
||||||
from calibre.db.tables import c_parse, UNDEFINED_DATE
|
from calibre.db.tables import UNDEFINED_DATE, c_parse
|
||||||
ans = c_parse(ans)
|
ans = c_parse(ans)
|
||||||
if ans is UNDEFINED_DATE:
|
if ans is UNDEFINED_DATE:
|
||||||
ans = None
|
ans = None
|
||||||
|
@ -5,14 +5,16 @@ __copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
|
|||||||
Backend that implements storage of ebooks in an sqlite database.
|
Backend that implements storage of ebooks in an sqlite database.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
import datetime
|
||||||
|
import re
|
||||||
import sqlite3 as sqlite
|
import sqlite3 as sqlite
|
||||||
import datetime, re, sre_constants
|
import sre_constants
|
||||||
from zlib import compress, decompress
|
from zlib import compress, decompress
|
||||||
|
|
||||||
from calibre.ebooks.metadata import MetaInformation
|
|
||||||
from calibre.ebooks.metadata import string_to_authors
|
|
||||||
from calibre.utils.serialize import pickle_loads, pickle_dumps
|
|
||||||
from calibre import isbytestring
|
from calibre import isbytestring
|
||||||
|
from calibre.ebooks.metadata import MetaInformation, string_to_authors
|
||||||
|
from calibre.utils.localization import _
|
||||||
|
from calibre.utils.serialize import pickle_dumps, pickle_loads
|
||||||
|
|
||||||
|
|
||||||
class Concatenate:
|
class Concatenate:
|
||||||
@ -980,7 +982,7 @@ ALTER TABLE books ADD COLUMN isbn TEXT DEFAULT "" COLLATE NOCASE;
|
|||||||
data = self.conn.get('SELECT data FROM covers WHERE book=?', (id,), all=False)
|
data = self.conn.get('SELECT data FROM covers WHERE book=?', (id,), all=False)
|
||||||
if not data:
|
if not data:
|
||||||
return None
|
return None
|
||||||
return(decompress(data))
|
return decompress(data)
|
||||||
|
|
||||||
def tags(self, index, index_is_id=False):
|
def tags(self, index, index_is_id=False):
|
||||||
'''tags as a comma separated list or None'''
|
'''tags as a comma separated list or None'''
|
||||||
|
@ -60,7 +60,7 @@ from calibre.utils.filenames import (
|
|||||||
from calibre.utils.formatter_functions import load_user_template_functions
|
from calibre.utils.formatter_functions import load_user_template_functions
|
||||||
from calibre.utils.icu import lower, lower as icu_lower, sort_key, strcmp
|
from calibre.utils.icu import lower, lower as icu_lower, sort_key, strcmp
|
||||||
from calibre.utils.img import save_cover_data_to
|
from calibre.utils.img import save_cover_data_to
|
||||||
from calibre.utils.localization import calibre_langcode_to_name, canonicalize_lang
|
from calibre.utils.localization import _, calibre_langcode_to_name, canonicalize_lang
|
||||||
from calibre.utils.recycle_bin import delete_file, delete_tree
|
from calibre.utils.recycle_bin import delete_file, delete_tree
|
||||||
from calibre.utils.resources import get_path as P
|
from calibre.utils.resources import get_path as P
|
||||||
from calibre.utils.search_query_parser import saved_searches, set_saved_searches
|
from calibre.utils.search_query_parser import saved_searches, set_saved_searches
|
||||||
|
@ -9,7 +9,7 @@ from collections import OrderedDict
|
|||||||
|
|
||||||
from calibre.utils.config_base import tweaks
|
from calibre.utils.config_base import tweaks
|
||||||
from calibre.utils.icu import lower as icu_lower
|
from calibre.utils.icu import lower as icu_lower
|
||||||
from calibre.utils.localization import ngettext
|
from calibre.utils.localization import _, ngettext
|
||||||
from polyglot.builtins import iteritems, itervalues
|
from polyglot.builtins import iteritems, itervalues
|
||||||
|
|
||||||
category_icon_map = {
|
category_icon_map = {
|
||||||
|
@ -5,17 +5,21 @@ __license__ = 'GPL v3'
|
|||||||
__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>'
|
__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>'
|
||||||
__docformat__ = 'restructuredtext en'
|
__docformat__ = 'restructuredtext en'
|
||||||
|
|
||||||
import re, os, traceback, shutil
|
import os
|
||||||
from threading import Thread
|
import re
|
||||||
|
import shutil
|
||||||
|
import traceback
|
||||||
from operator import itemgetter
|
from operator import itemgetter
|
||||||
|
from threading import Thread
|
||||||
|
|
||||||
from calibre.ptempfile import TemporaryDirectory
|
from calibre import isbytestring
|
||||||
|
from calibre.constants import filesystem_encoding
|
||||||
from calibre.ebooks.metadata.opf2 import OPF
|
from calibre.ebooks.metadata.opf2 import OPF
|
||||||
from calibre.library.database2 import LibraryDatabase2
|
from calibre.library.database2 import LibraryDatabase2
|
||||||
from calibre.library.prefs import DBPrefs
|
from calibre.library.prefs import DBPrefs
|
||||||
from calibre.constants import filesystem_encoding
|
from calibre.ptempfile import TemporaryDirectory
|
||||||
from calibre.utils.date import utcfromtimestamp
|
from calibre.utils.date import utcfromtimestamp
|
||||||
from calibre import isbytestring
|
from calibre.utils.localization import _
|
||||||
from polyglot.builtins import iteritems
|
from polyglot.builtins import iteritems
|
||||||
|
|
||||||
NON_EBOOK_EXTENSIONS = frozenset([
|
NON_EBOOK_EXTENSIONS = frozenset([
|
||||||
|
@ -5,19 +5,21 @@ __license__ = 'GPL v3'
|
|||||||
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
|
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
|
||||||
__docformat__ = 'restructuredtext en'
|
__docformat__ = 'restructuredtext en'
|
||||||
|
|
||||||
import os, traceback, re, errno
|
import errno
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import traceback
|
||||||
|
|
||||||
from calibre.constants import DEBUG
|
from calibre import prints, sanitize_file_name, strftime
|
||||||
|
from calibre.constants import DEBUG, preferred_encoding
|
||||||
from calibre.db.errors import NoSuchFormat
|
from calibre.db.errors import NoSuchFormat
|
||||||
from calibre.utils.config import Config, StringConfig, tweaks
|
|
||||||
from calibre.utils.formatter import TemplateFormatter
|
|
||||||
from calibre.utils.filenames import shorten_components_to, ascii_filename
|
|
||||||
from calibre.constants import preferred_encoding
|
|
||||||
from calibre.ebooks.metadata import fmt_sidx
|
|
||||||
from calibre.ebooks.metadata import title_sort
|
|
||||||
from calibre.utils.date import as_local_time
|
|
||||||
from calibre import strftime, prints, sanitize_file_name
|
|
||||||
from calibre.db.lazy import FormatsList
|
from calibre.db.lazy import FormatsList
|
||||||
|
from calibre.ebooks.metadata import fmt_sidx, title_sort
|
||||||
|
from calibre.utils.config import Config, StringConfig, tweaks
|
||||||
|
from calibre.utils.date import as_local_time
|
||||||
|
from calibre.utils.filenames import ascii_filename, shorten_components_to
|
||||||
|
from calibre.utils.formatter import TemplateFormatter
|
||||||
|
from calibre.utils.localization import _
|
||||||
|
|
||||||
plugboard_any_device_value = 'any device'
|
plugboard_any_device_value = 'any device'
|
||||||
plugboard_any_format_value = 'any format'
|
plugboard_any_format_value = 'any format'
|
||||||
|
@ -15,6 +15,7 @@ from calibre import CurrentDir, __appname__, guess_type, prints
|
|||||||
from calibre.constants import isbsd, islinux
|
from calibre.constants import isbsd, islinux
|
||||||
from calibre.customize.ui import all_input_formats
|
from calibre.customize.ui import all_input_formats
|
||||||
from calibre.ptempfile import TemporaryDirectory
|
from calibre.ptempfile import TemporaryDirectory
|
||||||
|
from calibre.utils.localization import _
|
||||||
from calibre.utils.resources import get_image_path as I, get_path as P
|
from calibre.utils.resources import get_image_path as I, get_path as P
|
||||||
from polyglot.builtins import iteritems
|
from polyglot.builtins import iteritems
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ from calibre.constants import config_dir, filesystem_encoding, iswindows
|
|||||||
from calibre.spell import parse_lang_code
|
from calibre.spell import parse_lang_code
|
||||||
from calibre.utils.config import JSONConfig
|
from calibre.utils.config import JSONConfig
|
||||||
from calibre.utils.icu import capitalize
|
from calibre.utils.icu import capitalize
|
||||||
from calibre.utils.localization import get_lang, get_system_locale
|
from calibre.utils.localization import _, get_lang, get_system_locale
|
||||||
from calibre.utils.resources import get_path as P
|
from calibre.utils.resources import get_path as P
|
||||||
from polyglot.builtins import iteritems, itervalues
|
from polyglot.builtins import iteritems, itervalues
|
||||||
|
|
||||||
|
@ -5,21 +5,24 @@ __license__ = 'GPL v3'
|
|||||||
__copyright__ = '2015, Kovid Goyal <kovid at kovidgoyal.net>'
|
__copyright__ = '2015, Kovid Goyal <kovid at kovidgoyal.net>'
|
||||||
|
|
||||||
from functools import partial
|
from functools import partial
|
||||||
from polyglot.builtins import iteritems, itervalues, string_or_bytes
|
|
||||||
from itertools import cycle
|
from itertools import cycle
|
||||||
|
|
||||||
from calibre import force_unicode
|
from calibre import force_unicode
|
||||||
from calibre.library.field_metadata import category_icon_map
|
|
||||||
from calibre.db.view import sanitize_sort_field_name
|
from calibre.db.view import sanitize_sort_field_name
|
||||||
from calibre.ebooks.metadata import title_sort
|
from calibre.ebooks.metadata import title_sort
|
||||||
from calibre.ebooks.metadata.book.json_codec import JsonCodec
|
from calibre.ebooks.metadata.book.json_codec import JsonCodec
|
||||||
from calibre.srv.errors import HTTPNotFound, BookNotFound
|
from calibre.library.field_metadata import category_icon_map
|
||||||
from calibre.srv.routes import endpoint, json
|
|
||||||
from calibre.srv.content import get as get_content, icon as get_icon
|
from calibre.srv.content import get as get_content, icon as get_icon
|
||||||
from calibre.srv.utils import http_date, custom_fields_to_display, encode_name, decode_name, get_db
|
from calibre.srv.errors import BookNotFound, HTTPNotFound
|
||||||
|
from calibre.srv.routes import endpoint, json
|
||||||
|
from calibre.srv.utils import (
|
||||||
|
custom_fields_to_display, decode_name, encode_name, get_db, http_date,
|
||||||
|
)
|
||||||
from calibre.utils.config import prefs, tweaks
|
from calibre.utils.config import prefs, tweaks
|
||||||
from calibre.utils.date import isoformat, timestampfromdt
|
from calibre.utils.date import isoformat, timestampfromdt
|
||||||
from calibre.utils.icu import numeric_sort_key as sort_key
|
from calibre.utils.icu import numeric_sort_key as sort_key
|
||||||
|
from calibre.utils.localization import _
|
||||||
|
from polyglot.builtins import iteritems, itervalues, string_or_bytes
|
||||||
|
|
||||||
|
|
||||||
def ensure_val(x, *allowed):
|
def ensure_val(x, *allowed):
|
||||||
@ -126,9 +129,10 @@ def book_to_json(ctx, rd, db, book_id,
|
|||||||
data['_series_sort_'] = series
|
data['_series_sort_'] = series
|
||||||
if device_for_template:
|
if device_for_template:
|
||||||
import posixpath
|
import posixpath
|
||||||
|
|
||||||
|
from calibre.customize.ui import device_plugins
|
||||||
from calibre.devices.utils import create_upload_path
|
from calibre.devices.utils import create_upload_path
|
||||||
from calibre.utils.filenames import ascii_filename as sanitize
|
from calibre.utils.filenames import ascii_filename as sanitize
|
||||||
from calibre.customize.ui import device_plugins
|
|
||||||
|
|
||||||
for device_class in device_plugins():
|
for device_class in device_plugins():
|
||||||
if device_class.__class__.__name__ == device_for_template:
|
if device_class.__class__.__name__ == device_for_template:
|
||||||
|
@ -21,6 +21,7 @@ from calibre.srv.render_book import RENDER_VERSION
|
|||||||
from calibre.srv.routes import endpoint, json
|
from calibre.srv.routes import endpoint, json
|
||||||
from calibre.srv.utils import get_db, get_library_data
|
from calibre.srv.utils import get_db, get_library_data
|
||||||
from calibre.utils.filenames import rmtree
|
from calibre.utils.filenames import rmtree
|
||||||
|
from calibre.utils.localization import _
|
||||||
from calibre.utils.resources import get_path as P
|
from calibre.utils.resources import get_path as P
|
||||||
from calibre.utils.serialize import json_dumps
|
from calibre.utils.serialize import json_dumps
|
||||||
from polyglot.builtins import as_unicode, itervalues
|
from polyglot.builtins import as_unicode, itervalues
|
||||||
|
@ -27,7 +27,7 @@ from calibre.srv.utils import get_library_data, get_use_roman
|
|||||||
from calibre.utils.config import prefs, tweaks
|
from calibre.utils.config import prefs, tweaks
|
||||||
from calibre.utils.icu import numeric_sort_key, sort_key
|
from calibre.utils.icu import numeric_sort_key, sort_key
|
||||||
from calibre.utils.localization import (
|
from calibre.utils.localization import (
|
||||||
get_lang, lang_code_for_user_manual, lang_map_for_ui, localize_website_link,
|
_, get_lang, lang_code_for_user_manual, lang_map_for_ui, localize_website_link,
|
||||||
)
|
)
|
||||||
from calibre.utils.resources import get_path as P
|
from calibre.utils.resources import get_path as P
|
||||||
from calibre.utils.search_query_parser import ParseException
|
from calibre.utils.search_query_parser import ParseException
|
||||||
|
@ -28,6 +28,7 @@ from calibre.utils.config_base import tweaks
|
|||||||
from calibre.utils.date import timestampfromdt
|
from calibre.utils.date import timestampfromdt
|
||||||
from calibre.utils.filenames import ascii_filename, atomic_rename
|
from calibre.utils.filenames import ascii_filename, atomic_rename
|
||||||
from calibre.utils.img import image_from_data, scale_image
|
from calibre.utils.img import image_from_data, scale_image
|
||||||
|
from calibre.utils.localization import _
|
||||||
from calibre.utils.resources import get_image_path as I, get_path as P
|
from calibre.utils.resources import get_image_path as I, get_path as P
|
||||||
from calibre.utils.shared_file import share_open
|
from calibre.utils.shared_file import share_open
|
||||||
from polyglot.binary import as_hex_unicode
|
from polyglot.binary import as_hex_unicode
|
||||||
|
@ -13,6 +13,7 @@ from calibre.srv.changes import formats_added
|
|||||||
from calibre.srv.errors import BookNotFound, HTTPNotFound
|
from calibre.srv.errors import BookNotFound, HTTPNotFound
|
||||||
from calibre.srv.routes import endpoint, json
|
from calibre.srv.routes import endpoint, json
|
||||||
from calibre.srv.utils import get_library_data
|
from calibre.srv.utils import get_library_data
|
||||||
|
from calibre.utils.localization import _
|
||||||
from calibre.utils.monotonic import monotonic
|
from calibre.utils.monotonic import monotonic
|
||||||
from calibre.utils.shared_file import share_open
|
from calibre.utils.shared_file import share_open
|
||||||
from polyglot.builtins import iteritems
|
from polyglot.builtins import iteritems
|
||||||
@ -120,9 +121,9 @@ def convert_book(path_to_ebook, opf_path, cover_path, output_fmt, recs):
|
|||||||
|
|
||||||
|
|
||||||
def queue_job(ctx, rd, library_id, db, fmt, book_id, conversion_data):
|
def queue_job(ctx, rd, library_id, db, fmt, book_id, conversion_data):
|
||||||
from calibre.ebooks.metadata.opf2 import metadata_to_opf
|
|
||||||
from calibre.ebooks.conversion.config import GuiRecommendations, save_specifics
|
|
||||||
from calibre.customize.conversion import OptionRecommendation
|
from calibre.customize.conversion import OptionRecommendation
|
||||||
|
from calibre.ebooks.conversion.config import GuiRecommendations, save_specifics
|
||||||
|
from calibre.ebooks.metadata.opf2 import metadata_to_opf
|
||||||
tdir = tempfile.mkdtemp(dir=rd.tdir)
|
tdir = tempfile.mkdtemp(dir=rd.tdir)
|
||||||
with tempfile.NamedTemporaryFile(prefix='', suffix=('.' + fmt.lower()), dir=tdir, delete=False) as src_file:
|
with tempfile.NamedTemporaryFile(prefix='', suffix=('.' + fmt.lower()), dir=tdir, delete=False) as src_file:
|
||||||
db.copy_format_to(book_id, fmt, src_file)
|
db.copy_format_to(book_id, fmt, src_file)
|
||||||
@ -202,10 +203,12 @@ def conversion_status(ctx, rd, job_id):
|
|||||||
|
|
||||||
|
|
||||||
def get_conversion_options(input_fmt, output_fmt, book_id, db):
|
def get_conversion_options(input_fmt, output_fmt, book_id, db):
|
||||||
from calibre.ebooks.conversion.plumber import create_dummy_plumber
|
|
||||||
from calibre.ebooks.conversion.config import (
|
|
||||||
load_specifics, load_defaults, OPTIONS, options_for_input_fmt, options_for_output_fmt)
|
|
||||||
from calibre.customize.conversion import OptionRecommendation
|
from calibre.customize.conversion import OptionRecommendation
|
||||||
|
from calibre.ebooks.conversion.config import (
|
||||||
|
OPTIONS, load_defaults, load_specifics, options_for_input_fmt,
|
||||||
|
options_for_output_fmt,
|
||||||
|
)
|
||||||
|
from calibre.ebooks.conversion.plumber import create_dummy_plumber
|
||||||
plumber = create_dummy_plumber(input_fmt, output_fmt)
|
plumber = create_dummy_plumber(input_fmt, output_fmt)
|
||||||
specifics = load_specifics(db, book_id)
|
specifics = load_specifics(db, book_id)
|
||||||
ans = {'options': {}, 'disabled': set(), 'defaults': {}, 'help': {}}
|
ans = {'options': {}, 'disabled': set(), 'defaults': {}, 'help': {}}
|
||||||
@ -265,7 +268,8 @@ def profiles():
|
|||||||
@endpoint('/conversion/book-data/{book_id}', postprocess=json, types={'book_id': int})
|
@endpoint('/conversion/book-data/{book_id}', postprocess=json, types={'book_id': int})
|
||||||
def conversion_data(ctx, rd, book_id):
|
def conversion_data(ctx, rd, book_id):
|
||||||
from calibre.ebooks.conversion.config import (
|
from calibre.ebooks.conversion.config import (
|
||||||
NoSupportedInputFormats, get_input_format_for_book, get_sorted_output_formats)
|
NoSupportedInputFormats, get_input_format_for_book, get_sorted_output_formats,
|
||||||
|
)
|
||||||
db = get_library_data(ctx, rd)[0]
|
db = get_library_data(ctx, rd)[0]
|
||||||
if not ctx.has_id(rd, db, book_id):
|
if not ctx.has_id(rd, db, book_id):
|
||||||
raise BookNotFound(book_id, db)
|
raise BookNotFound(book_id, db)
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
|
|
||||||
from functools import partial
|
from functools import partial
|
||||||
|
|
||||||
from lxml.html import tostring
|
from lxml.html import tostring
|
||||||
from lxml.html.builder import E as E_
|
from lxml.html.builder import E as E_
|
||||||
|
|
||||||
@ -17,7 +16,8 @@ from calibre.srv.routes import endpoint
|
|||||||
from calibre.srv.utils import get_library_data, http_date
|
from calibre.srv.utils import get_library_data, http_date
|
||||||
from calibre.utils.cleantext import clean_xml_chars
|
from calibre.utils.cleantext import clean_xml_chars
|
||||||
from calibre.utils.date import dt_as_local, is_date_undefined, timestampfromdt
|
from calibre.utils.date import dt_as_local, is_date_undefined, timestampfromdt
|
||||||
from polyglot.builtins import iteritems, string_or_bytes, as_bytes
|
from calibre.utils.localization import _
|
||||||
|
from polyglot.builtins import as_bytes, iteritems, string_or_bytes
|
||||||
from polyglot.urllib import urlencode
|
from polyglot.urllib import urlencode
|
||||||
|
|
||||||
# /mobile {{{
|
# /mobile {{{
|
||||||
|
@ -11,7 +11,7 @@ import socket
|
|||||||
import ssl
|
import ssl
|
||||||
import traceback
|
import traceback
|
||||||
from contextlib import suppress
|
from contextlib import suppress
|
||||||
from functools import partial, lru_cache
|
from functools import lru_cache, partial
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
|
|
||||||
from calibre import as_unicode
|
from calibre import as_unicode
|
||||||
@ -23,8 +23,9 @@ from calibre.srv.opts import Options
|
|||||||
from calibre.srv.pool import PluginPool, ThreadPool
|
from calibre.srv.pool import PluginPool, ThreadPool
|
||||||
from calibre.srv.utils import (
|
from calibre.srv.utils import (
|
||||||
DESIRED_SEND_BUFFER_SIZE, HandleInterrupt, create_sock_pair, socket_errors_eintr,
|
DESIRED_SEND_BUFFER_SIZE, HandleInterrupt, create_sock_pair, socket_errors_eintr,
|
||||||
socket_errors_nonblocking, socket_errors_socket_closed, start_cork, stop_cork
|
socket_errors_nonblocking, socket_errors_socket_closed, start_cork, stop_cork,
|
||||||
)
|
)
|
||||||
|
from calibre.utils.localization import _
|
||||||
from calibre.utils.logging import ThreadSafeLog
|
from calibre.utils.logging import ThreadSafeLog
|
||||||
from calibre.utils.mdns import get_external_ip
|
from calibre.utils.mdns import get_external_ip
|
||||||
from calibre.utils.monotonic import monotonic
|
from calibre.utils.monotonic import monotonic
|
||||||
|
@ -7,7 +7,7 @@ from functools import partial
|
|||||||
from calibre import prints
|
from calibre import prints
|
||||||
from calibre.constants import iswindows, preferred_encoding
|
from calibre.constants import iswindows, preferred_encoding
|
||||||
from calibre.utils.config import OptionParser
|
from calibre.utils.config import OptionParser
|
||||||
from calibre.utils.localization import ngettext
|
from calibre.utils.localization import _, ngettext
|
||||||
from polyglot.builtins import iteritems
|
from polyglot.builtins import iteritems
|
||||||
|
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ from calibre.utils.date import UNDEFINED_DATE, isoformat, local_tz
|
|||||||
from calibre.utils.file_type_icons import EXT_MAP
|
from calibre.utils.file_type_icons import EXT_MAP
|
||||||
from calibre.utils.formatter import EvalFormatter
|
from calibre.utils.formatter import EvalFormatter
|
||||||
from calibre.utils.icu import collation_order_for_partitioning, upper as icu_upper
|
from calibre.utils.icu import collation_order_for_partitioning, upper as icu_upper
|
||||||
from calibre.utils.localization import calibre_langcode_to_name
|
from calibre.utils.localization import _, calibre_langcode_to_name
|
||||||
from polyglot.builtins import iteritems, itervalues
|
from polyglot.builtins import iteritems, itervalues
|
||||||
from polyglot.urllib import quote
|
from polyglot.urllib import quote
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ from calibre.srv.utils import Offsets, get_library_data, http_date
|
|||||||
from calibre.utils.config import prefs
|
from calibre.utils.config import prefs
|
||||||
from calibre.utils.date import as_utc, is_date_undefined, timestampfromdt
|
from calibre.utils.date import as_utc, is_date_undefined, timestampfromdt
|
||||||
from calibre.utils.icu import sort_key
|
from calibre.utils.icu import sort_key
|
||||||
from calibre.utils.localization import ngettext
|
from calibre.utils.localization import _, ngettext
|
||||||
from calibre.utils.search_query_parser import ParseException
|
from calibre.utils.search_query_parser import ParseException
|
||||||
from calibre.utils.xml_parse import safe_xml_fromstring
|
from calibre.utils.xml_parse import safe_xml_fromstring
|
||||||
from polyglot.binary import as_hex_unicode, from_hex_unicode
|
from polyglot.binary import as_hex_unicode, from_hex_unicode
|
||||||
|
@ -21,10 +21,10 @@ from calibre.srv.opts import opts_to_parser
|
|||||||
from calibre.srv.users import connect
|
from calibre.srv.users import connect
|
||||||
from calibre.srv.utils import HandleInterrupt, RotatingLog
|
from calibre.srv.utils import HandleInterrupt, RotatingLog
|
||||||
from calibre.utils.config import prefs
|
from calibre.utils.config import prefs
|
||||||
from calibre.utils.localization import localize_user_manual_link
|
from calibre.utils.localization import _, localize_user_manual_link
|
||||||
from calibre.utils.lock import singleinstance
|
from calibre.utils.lock import singleinstance
|
||||||
from polyglot.builtins import error_message
|
|
||||||
from calibre_extensions import speedup
|
from calibre_extensions import speedup
|
||||||
|
from polyglot.builtins import error_message
|
||||||
|
|
||||||
|
|
||||||
def daemonize(): # {{{
|
def daemonize(): # {{{
|
||||||
|
@ -12,6 +12,7 @@ from io import BytesIO
|
|||||||
|
|
||||||
from calibre.ebooks.metadata.meta import get_metadata
|
from calibre.ebooks.metadata.meta import get_metadata
|
||||||
from calibre.srv.tests.base import LibraryBaseTest
|
from calibre.srv.tests.base import LibraryBaseTest
|
||||||
|
from calibre.utils.localization import _
|
||||||
from polyglot.binary import as_base64_bytes
|
from polyglot.binary import as_base64_bytes
|
||||||
from polyglot.http_client import FORBIDDEN, NOT_FOUND, OK
|
from polyglot.http_client import FORBIDDEN, NOT_FOUND, OK
|
||||||
from polyglot.urllib import quote, urlencode
|
from polyglot.urllib import quote, urlencode
|
||||||
|
@ -12,6 +12,7 @@ from threading import RLock
|
|||||||
from calibre import as_unicode
|
from calibre import as_unicode
|
||||||
from calibre.constants import config_dir
|
from calibre.constants import config_dir
|
||||||
from calibre.utils.config import from_json, to_json
|
from calibre.utils.config import from_json, to_json
|
||||||
|
from calibre.utils.localization import _
|
||||||
from polyglot.builtins import iteritems
|
from polyglot.builtins import iteritems
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@ from calibre import as_unicode
|
|||||||
from calibre.srv.errors import HTTPBadRequest, HTTPForbidden
|
from calibre.srv.errors import HTTPBadRequest, HTTPForbidden
|
||||||
from calibre.srv.routes import endpoint
|
from calibre.srv.routes import endpoint
|
||||||
from calibre.srv.users import validate_password
|
from calibre.srv.users import validate_password
|
||||||
|
from calibre.utils.localization import _
|
||||||
|
|
||||||
|
|
||||||
@endpoint('/users/change-pw', methods={'POST'})
|
@endpoint('/users/change-pw', methods={'POST'})
|
||||||
|
@ -11,13 +11,14 @@ import os
|
|||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
|
|
||||||
from calibre.constants import (
|
from calibre.constants import (
|
||||||
CONFIG_DIR_MODE, __appname__, __author__, config_dir, get_version, iswindows
|
CONFIG_DIR_MODE, __appname__, __author__, config_dir, get_version, iswindows,
|
||||||
)
|
)
|
||||||
from calibre.utils.config_base import (
|
from calibre.utils.config_base import (
|
||||||
Config, ConfigInterface, ConfigProxy, Option, OptionSet, OptionValues,
|
Config, ConfigInterface, ConfigProxy, Option, OptionSet, OptionValues, StringConfig,
|
||||||
StringConfig, commit_data, from_json, json_dumps, json_loads, make_config_dir,
|
commit_data, from_json, json_dumps, json_loads, make_config_dir, plugin_dir, prefs,
|
||||||
plugin_dir, prefs, read_data, to_json, tweaks
|
read_data, to_json, tweaks,
|
||||||
)
|
)
|
||||||
|
from calibre.utils.localization import _
|
||||||
from polyglot.builtins import native_string_type, string_or_bytes
|
from polyglot.builtins import native_string_type, string_or_bytes
|
||||||
|
|
||||||
# optparse uses gettext.gettext instead of _ from builtins, so we
|
# optparse uses gettext.gettext instead of _ from builtins, so we
|
||||||
|
@ -17,6 +17,7 @@ from calibre.constants import (
|
|||||||
CONFIG_DIR_MODE, config_dir, filesystem_encoding, get_umask, iswindows,
|
CONFIG_DIR_MODE, config_dir, filesystem_encoding, get_umask, iswindows,
|
||||||
preferred_encoding,
|
preferred_encoding,
|
||||||
)
|
)
|
||||||
|
from calibre.utils.localization import _
|
||||||
from calibre.utils.resources import get_path as P
|
from calibre.utils.resources import get_path as P
|
||||||
from polyglot.builtins import iteritems
|
from polyglot.builtins import iteritems
|
||||||
|
|
||||||
|
@ -2,20 +2,30 @@
|
|||||||
# License: GPLv3 Copyright: 2015, Kovid Goyal <kovid at kovidgoyal.net>
|
# License: GPLv3 Copyright: 2015, Kovid Goyal <kovid at kovidgoyal.net>
|
||||||
|
|
||||||
|
|
||||||
import os, json, struct, hashlib, sys, errno, tempfile, time, shutil, uuid
|
import errno
|
||||||
|
import hashlib
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
import shutil
|
||||||
|
import struct
|
||||||
|
import sys
|
||||||
|
import tempfile
|
||||||
|
import time
|
||||||
|
import uuid
|
||||||
from collections import Counter
|
from collections import Counter
|
||||||
|
|
||||||
from calibre import prints
|
from calibre import prints
|
||||||
from calibre.constants import config_dir, iswindows, filesystem_encoding
|
from calibre.constants import config_dir, filesystem_encoding, iswindows
|
||||||
from calibre.utils.config_base import prefs, StringConfig, create_global_prefs
|
|
||||||
from calibre.utils.config import JSONConfig
|
from calibre.utils.config import JSONConfig
|
||||||
|
from calibre.utils.config_base import StringConfig, create_global_prefs, prefs
|
||||||
from calibre.utils.filenames import samefile
|
from calibre.utils.filenames import samefile
|
||||||
from polyglot.builtins import iteritems, error_message
|
from calibre.utils.localization import _
|
||||||
from polyglot.binary import as_hex_unicode
|
from polyglot.binary import as_hex_unicode
|
||||||
|
from polyglot.builtins import error_message, iteritems
|
||||||
|
|
||||||
# Export {{{
|
# Export {{{
|
||||||
|
|
||||||
|
|
||||||
def send_file(from_obj, to_obj, chunksize=1<<20):
|
def send_file(from_obj, to_obj, chunksize=1<<20):
|
||||||
m = hashlib.sha1()
|
m = hashlib.sha1()
|
||||||
while True:
|
while True:
|
||||||
@ -169,8 +179,8 @@ def all_known_libraries():
|
|||||||
|
|
||||||
|
|
||||||
def export(destdir, library_paths=None, dbmap=None, progress1=None, progress2=None, abort=None):
|
def export(destdir, library_paths=None, dbmap=None, progress1=None, progress2=None, abort=None):
|
||||||
from calibre.db.cache import Cache
|
|
||||||
from calibre.db.backend import DB
|
from calibre.db.backend import DB
|
||||||
|
from calibre.db.cache import Cache
|
||||||
if library_paths is None:
|
if library_paths is None:
|
||||||
library_paths = all_known_libraries()
|
library_paths = all_known_libraries()
|
||||||
dbmap = dbmap or {}
|
dbmap = dbmap or {}
|
||||||
|
@ -7,14 +7,14 @@ import errno
|
|||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
import time
|
import time
|
||||||
|
from contextlib import closing, suppress
|
||||||
from math import ceil
|
from math import ceil
|
||||||
from contextlib import suppress, closing
|
|
||||||
|
|
||||||
from calibre import force_unicode, isbytestring, prints, sanitize_file_name
|
from calibre import force_unicode, isbytestring, prints, sanitize_file_name
|
||||||
from calibre.constants import (
|
from calibre.constants import (
|
||||||
filesystem_encoding, iswindows, preferred_encoding, ismacos
|
filesystem_encoding, ismacos, iswindows, preferred_encoding,
|
||||||
)
|
)
|
||||||
from calibre.utils.localization import get_udc
|
from calibre.utils.localization import _, get_udc
|
||||||
from polyglot.builtins import iteritems, itervalues
|
from polyglot.builtins import iteritems, itervalues
|
||||||
|
|
||||||
|
|
||||||
@ -331,6 +331,7 @@ class WindowsAtomicFolderMove:
|
|||||||
|
|
||||||
def __init__(self, path):
|
def __init__(self, path):
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
|
|
||||||
from calibre_extensions import winutil
|
from calibre_extensions import winutil
|
||||||
self.handle_map = {}
|
self.handle_map = {}
|
||||||
|
|
||||||
|
@ -2,6 +2,9 @@
|
|||||||
# License: GPLv3 Copyright: 2019, Kovid Goyal <kovid at kovidgoyal.net>
|
# License: GPLv3 Copyright: 2019, Kovid Goyal <kovid at kovidgoyal.net>
|
||||||
|
|
||||||
|
|
||||||
|
from calibre.utils.localization import _
|
||||||
|
|
||||||
|
|
||||||
def html2text(html, single_line_break=True):
|
def html2text(html, single_line_break=True):
|
||||||
from html2text import HTML2Text
|
from html2text import HTML2Text
|
||||||
import re
|
import re
|
||||||
|
@ -6,14 +6,15 @@ __copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
|
|||||||
__docformat__ = 'restructuredtext en'
|
__docformat__ = 'restructuredtext en'
|
||||||
|
|
||||||
|
|
||||||
import time, io
|
import io
|
||||||
|
import time
|
||||||
from itertools import count
|
from itertools import count
|
||||||
|
|
||||||
from calibre import prints
|
from calibre import prints
|
||||||
from calibre.constants import DEBUG
|
from calibre.constants import DEBUG
|
||||||
from polyglot.queue import Queue, Empty
|
from calibre.utils.localization import _
|
||||||
from polyglot.builtins import cmp
|
from polyglot.builtins import cmp
|
||||||
|
from polyglot.queue import Empty, Queue
|
||||||
|
|
||||||
job_counter = count()
|
job_counter = count()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user