if os.path.join(config_dir, "plugins", "DeDRM.zip") not in sys.path:
sys.path.insert(0, os.path.join(config_dir, "plugins", "DeDRM.zip"))
-# Explicitly set the package identifier so we are allowed to import stuff ...
-__package__ = "calibre_plugins.dedrm"
+if "calibre" in sys.modules:
+ # Explicitly set the package identifier so we are allowed to import stuff ...
+ __package__ = "calibre_plugins.dedrm"
#@@CALIBRE_COMPAT_CODE_END@@
# (CLI interface without Calibre)
# Copyright © 2021 NoDRM
+"""
+
+NOTE: This code is not functional (yet). I started working on it a while ago
+to make a standalone version of the plugins that could work without Calibre,
+too, but for now there's only a rough code structure and no working code yet.
+
+Currently, to use these plugins, you will need to use Calibre. Hopwfully that'll
+change in the future.
+
+"""
+
__license__ = 'GPL v3'
__docformat__ = 'restructuredtext en'
-# For revision history see __init__.py
+# For revision history see CHANGELOG.md
"""
Run DeDRM plugin without Calibre.
# For use with Topaz Scripts Version 2.6
# Python 3, September 2020
-from utilities import SafeUnbuffered
+
+#@@CALIBRE_COMPAT_CODE@@
+
+from .utilities import SafeUnbuffered
import sys
import csv
__version__ = '2.0'
+#@@CALIBRE_COMPAT_CODE@@
+
import sys, struct, os, traceback
import zlib
import zipfile
# Python 3 for calibre 5.0
from __future__ import print_function
-from utilities import SafeUnbuffered
+#@@CALIBRE_COMPAT_CODE@@
+
+from .utilities import SafeUnbuffered
import sys
import csv
import hashlib
import base64
+#@@CALIBRE_COMPAT_CODE@@
+
try:
from Cryptodome.Cipher import AES
except ImportError:
import getopt
import re
+#@@CALIBRE_COMPAT_CODE@@
+
from .utilities import SafeUnbuffered
try:
return data[:-pad_len]
+#@@CALIBRE_COMPAT_CODE@@
+
from .utilities import SafeUnbuffered
from .argv_utils import unicode_argv
return data[:-pad_len]
+#@@CALIBRE_COMPAT_CODE@@
from .utilities import SafeUnbuffered
+from .argv_utils import unicode_argv
iswindows = sys.platform.startswith('win')
isosx = sys.platform.startswith('darwin')
-from .argv_utils import unicode_argv
class ADEPTError(Exception):
pass
from io import BytesIO
+#@@CALIBRE_COMPAT_CODE@@
+
+
try:
from Cryptodome.Cipher import AES
from Cryptodome.Util.py3compat import bchr
# Windows-friendly choice: pylzma wheels
import pylzma as lzma
-from kfxtables import *
+from .kfxtables import *
TID_NULL = 0
TID_BOOLEAN = 1
# Routines common to Mac and PC
+#@@CALIBRE_COMPAT_CODE@@
+
from .utilities import SafeUnbuffered
from .argv_utils import unicode_argv
import sys
import binascii
-from .utilities import SafeUnbuffered
+#@@CALIBRE_COMPAT_CODE@@
+from .utilities import SafeUnbuffered
from .argv_utils import unicode_argv
letters = b'ABCDEFGHIJKLMNPQRSTUVWXYZ123456789'