Bugfixes in standalone code for Calibre < 5 / Python 2

This commit is contained in:
NoDRM
2021-12-29 11:36:59 +01:00
parent dbf4b54026
commit b11aadcca6
17 changed files with 100 additions and 43 deletions

View File

@@ -0,0 +1,14 @@
#@@CALIBRE_COMPAT_CODE_START@@
import sys, os
# Explicitly allow importing the parent folder
if os.path.dirname(os.path.dirname(os.path.abspath(__file__))) not in sys.path:
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
# Bugfix for Calibre < 5:
if "calibre" in sys.modules and sys.version_info[0] == 2:
from calibre.utils.config import config_dir
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"))
#@@CALIBRE_COMPAT_CODE_END@@

View File

@@ -1,6 +1,8 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from __future__ import print_function
# __init__.py for DeDRM_plugin
# Copyright © 2008-2020 Apprentice Harper et al.
# Copyright © 2021 NoDRM
@@ -97,9 +99,7 @@ import sys, os
import time
import traceback
# Calibre stuff - so we can import from our ZIP without absolute module name
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
#@@CALIBRE_COMPAT_CODE@@
class DeDRMError(Exception):
pass
@@ -162,7 +162,7 @@ class DeDRM(FileTypePlugin):
def cli_main(self, data):
from standalone import main
from .standalone import main
main(data)
def initialize(self):

View File

@@ -16,8 +16,8 @@ from PyQt5.Qt import (Qt, QWidget, QHBoxLayout, QVBoxLayout, QLabel, QLineEdit,
from PyQt5 import Qt as QtGui
from zipfile import ZipFile
# Calibre stuff - so we can import from our ZIP without absolute module name
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
#@@CALIBRE_COMPAT_CODE@@
# calibre modules and constants.

View File

@@ -71,9 +71,7 @@ __version__='1.00'
import sys, re
import struct, binascii, getopt, zlib, os, os.path, urllib, tempfile, traceback
# Calibre stuff - so we can import from our ZIP without absolute module name
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
#@@CALIBRE_COMPAT_CODE@@
# Wrap a stream so that output gets flushed immediately
# and also make sure that any unicode strings get

View File

@@ -35,8 +35,7 @@ import getopt
from struct import pack
from struct import unpack
# Calibre stuff - so we can import from our ZIP without absolute module name
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
#@@CALIBRE_COMPAT_CODE@@
class TpzDRMError(Exception):

View File

@@ -72,8 +72,7 @@ import time
import html.entities
import json
# Calibre stuff - so we can import from our ZIP without absolute module name
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
#@@CALIBRE_COMPAT_CODE@@
class DrmException(Exception):

View File

@@ -15,8 +15,9 @@ import zipfile
from io import BytesIO
# Calibre stuff - so we can import from our ZIP without absolute module name
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
#@@CALIBRE_COMPAT_CODE@@
from ion import DrmIon, DrmIonVoucher

View File

@@ -8,8 +8,8 @@ __license__ = 'GPL v3'
import os, sys
import traceback
# Calibre stuff - so we can import from our ZIP without absolute module name
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
#@@CALIBRE_COMPAT_CODE@@
from calibre.utils.config import JSONConfig

View File

@@ -6,8 +6,8 @@
import sys
import os
# Calibre stuff - so we can import from our ZIP without absolute module name
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
#@@CALIBRE_COMPAT_CODE@@
import re

View File

@@ -3,6 +3,8 @@
# CLI interface for the DeDRM plugin (useable without Calibre, too)
from __future__ import absolute_import, print_function
# Copyright © 2021 NoDRM
OPT_SHORT_TO_LONG = [
@@ -16,15 +18,11 @@ OPT_SHORT_TO_LONG = [
["f", "force"]
]
import sys, os
IS_CALIBRE = False
if "calibre" in sys.modules:
IS_CALIBRE = True
#@@CALIBRE_COMPAT_CODE@@
# Explicitly allow importing the parent folder
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
# Explicitly set the package identifier so we are allowed to import stuff ...
__package__ = "DeDRM_plugin"
import os, sys
global _additional_data
@@ -46,7 +44,7 @@ def print_help():
print("Based on DeDRM Calibre plugin by Apprentice Harper, Apprentice Alf and others.")
print("See https://github.com/noDRM/DeDRM_tools for more information.")
print()
if IS_CALIBRE:
if "calibre" in sys.modules:
print("This plugin can be run through Calibre - like you are doing right now - ")
print("but it can also be executed with a standalone Python interpreter.")
else:
@@ -81,11 +79,11 @@ def handle_single_argument(arg, next):
if arg == "--help":
print_help()
exit(0)
sys.exit(0)
elif arg == "--credits":
print_credits()
exit(0)
sys.exit(0)
elif arg in ["--username", "--password"]:
used_up = 1
@@ -93,7 +91,7 @@ def handle_single_argument(arg, next):
if next is None:
print_err_header()
print("Missing parameter for argument " + arg)
exit(1)
sys.exit(1)
else:
_additional_params.append(next[0])
@@ -104,7 +102,7 @@ def handle_single_argument(arg, next):
else:
print_err_header()
print("Unknown argument: " + arg)
exit(1)
sys.exit(1)
# Used up 0 additional arguments
@@ -132,7 +130,7 @@ def main(argv):
skip_opts = False
# First element is always the ZIP name, remove that.
if not arguments[0].lower().endswith(".zip") and not IS_CALIBRE:
if not arguments[0].lower().endswith(".zip") and not "calibre" in sys.modules:
print("Warning: File name does not end in .zip ...")
print(arguments)
arguments.pop(0)

View File

@@ -14,8 +14,8 @@ __version__ = '6.0'
import sys
import os, csv, getopt
# Calibre stuff - so we can import from our ZIP without absolute module name
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
#@@CALIBRE_COMPAT_CODE@@
import zlib, zipfile, tempfile, shutil
import traceback

View File

@@ -1,10 +1,7 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys, os
# Calibre stuff - so we can import from our ZIP without absolute module name
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
#@@CALIBRE_COMPAT_CODE@@
from ignoblekeyGenPassHash import generate_key

View File

@@ -5,7 +5,10 @@ __license__ = 'GPL v3'
# Standard Python modules.
import os, sys, re, hashlib, traceback
from calibre_plugins.dedrm.__init__ import PLUGIN_NAME, PLUGIN_VERSION
#@@CALIBRE_COMPAT_CODE@@
from __init__ import PLUGIN_NAME, PLUGIN_VERSION
class NoWinePython3Exception(Exception):

View File

@@ -22,8 +22,7 @@ __version__ = "1.1"
import sys, os
# Calibre stuff - so we can import from our ZIP without absolute module name
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
#@@CALIBRE_COMPAT_CODE@@
import zlib
import zipfilerugged