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__ = "DeDRM_plugin"
+__package__ = "calibre_plugins.dedrm"
#@@CALIBRE_COMPAT_CODE_END@@
-from utilities import SafeUnbuffered
-from argv_utils import unicode_argv
+from .utilities import SafeUnbuffered
+from .argv_utils import unicode_argv
try:
from __init__ import PLUGIN_NAME, PLUGIN_VERSION
from __version import RESOURCE_NAME as help_file_name
-from utilities import uStrCmp
+from .utilities import uStrCmp
import prefs
import androidkindlekey
import zlib
import zipfile
import xml.etree.ElementTree as etree
-from argv_utils import unicode_argv
+from .argv_utils import unicode_argv
NSMAP = {'adept': 'http://ns.adobe.com/adept',
'enc': 'http://www.w3.org/2001/04/xmlenc#'}
-from utilities import SafeUnbuffered
+from .utilities import SafeUnbuffered
_FILENAME_LEN_OFFSET = 26
#@@CALIBRE_COMPAT_CODE@@
-try:
- from utilities import SafeUnbuffered
- from argv_utils import unicode_argv
-except:
- from . import utilities, argv_utils
+from .utilities import SafeUnbuffered
+from .argv_utils import unicode_argv
iswindows = sys.platform.startswith('win')
isosx = sys.platform.startswith('darwin')
except ImportError:
from Crypto.Cipher import AES
-from utilities import SafeUnbuffered
+from .utilities import SafeUnbuffered
-from argv_utils import unicode_argv
+from .argv_utils import unicode_argv
class IGNOBLEError(Exception):
pass
import getopt
import re
-from utilities import SafeUnbuffered
+from .utilities import SafeUnbuffered
try:
from calibre.constants import iswindows
except:
iswindows = sys.platform.startswith('win')
-from argv_utils import unicode_argv
+from .argv_utils import unicode_argv
class DrmException(Exception):
pass
return data[:-pad_len]
-from utilities import SafeUnbuffered
-
-from argv_utils import unicode_argv
+from .utilities import SafeUnbuffered
+from .argv_utils import unicode_argv
class ADEPTError(Exception):
return data[:-pad_len]
-from utilities import SafeUnbuffered
+from .utilities import SafeUnbuffered
iswindows = sys.platform.startswith('win')
isosx = sys.platform.startswith('darwin')
-from argv_utils import unicode_argv
+from .argv_utils import unicode_argv
class ADEPTError(Exception):
pass
import androidkindlekey
import kfxdedrm
-from utilities import SafeUnbuffered
+from .utilities import SafeUnbuffered
-from argv_utils import unicode_argv
+from .argv_utils import unicode_argv
# cleanup unicode filenames
# Routines common to Mac and PC
-try:
- from utilities import SafeUnbuffered
- from argv_utils import unicode_argv
-except:
- from . import utilities, argv_utils
+from .utilities import SafeUnbuffered
+from .argv_utils import unicode_argv
try:
import sys
import binascii
-from utilities import SafeUnbuffered
+from .utilities import SafeUnbuffered
-from argv_utils import unicode_argv
+from .argv_utils import unicode_argv
-letters = 'ABCDEFGHIJKLMNPQRSTUVWXYZ123456789'
+letters = b'ABCDEFGHIJKLMNPQRSTUVWXYZ123456789'
def crc32(s):
return (~binascii.crc32(s,-1))&0xFFFFFFFF
def checksumPid(s):
- crc = crc32(s.encode('ascii'))
+ crc = crc32(s)
crc = crc ^ (crc >> 16)
res = s
l = len(letters)
import os
import struct
import binascii
-from alfcrypto import Pukall_Cipher
-from utilities import SafeUnbuffered
-from argv_utils import unicode_argv
+#@@CALIBRE_COMPAT_CODE@@
+
+
+from .alfcrypto import Pukall_Cipher
+from .utilities import SafeUnbuffered
+from .argv_utils import unicode_argv
class DrmException(Exception):
except:
raise
-# accepts unicode returns unicode
+letters = b'ABCDEFGHIJKLMNPQRSTUVWXYZ123456789'
+
+def crc32(s):
+ return (~binascii.crc32(s,-1))&0xFFFFFFFF
+
def checksumPid(s):
- letters = 'ABCDEFGHIJKLMNPQRSTUVWXYZ123456789'
- crc = (~binascii.crc32(s.encode('utf-8'),-1))&0xFFFFFFFF
+
+ s = s.encode()
+
+
+ crc = crc32(s)
crc = crc ^ (crc >> 16)
res = s
l = len(letters)
pos = (b // l) ^ (b % l)
res += bytes(bytearray([letters[pos%l]]))
crc >>= 8
- return res
+ return res.decode()
# expects bytearray
def getSizeOfTrailingDataEntries(ptr, size, flags):
from struct import pack
from struct import unpack
-from alfcrypto import Topaz_Cipher
-from utilities import SafeUnbuffered
+from .alfcrypto import Topaz_Cipher
+from .utilities import SafeUnbuffered
-from argv_utils import unicode_argv
+from .argv_utils import unicode_argv
#global switch