From 7f758566d36f2cc09882a7978f35c4792a00f325 Mon Sep 17 00:00:00 2001 From: HdV Date: Wed, 30 Sep 2020 13:25:32 +0100 Subject: [PATCH] Changes to make obok work on win _winreg renamed to winreg in python 3 os.popen3() replaced by subprocess.Popen() --- DeDRM_plugin/adobekey.py | 12 +++++++----- Obok_plugin/obok/obok.py | 6 +++--- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/DeDRM_plugin/adobekey.py b/DeDRM_plugin/adobekey.py index e462d3d..a0c5ebd 100644 --- a/DeDRM_plugin/adobekey.py +++ b/DeDRM_plugin/adobekey.py @@ -409,12 +409,12 @@ elif isosx: cmdline = cmdline.encode(sys.getfilesystemencoding()) p2 = subprocess.Popen(cmdline, shell=True, stdin=None, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=False) out1, out2 = p2.communicate() - reslst = out1.split('\n') + reslst = out1.split(b'\n') cnt = len(reslst) - ActDatPath = "activation.dat" + ActDatPath = b"activation.dat" for j in range(cnt): resline = reslst[j] - pp = resline.find('activation.dat') + pp = resline.find(b'activation.dat') if pp >= 0: ActDatPath = resline break @@ -474,7 +474,7 @@ def cli_main(): sys.stderr=SafeUnbuffered(sys.stderr) argv=unicode_argv() progname = os.path.basename(argv[0]) - print("{0} v{1}\nCopyright © 2009-2013 i♥cabbages and Apprentice Alf".format(progname,__version__)) + print("{0} v{1}\nCopyright © 2009-2020 i♥cabbages, Apprentice Harper et al.".format(progname,__version__)) try: opts, args = getopt.getopt(argv[1:], "h") @@ -494,7 +494,9 @@ def cli_main(): if len(args) == 1: # save to the specified file or directory - outpath = os.path.abspath(args[0]) + outpath = args[0] + if not os.path.isabs(outpath): + outpath = os.path.abspath(outpath) else: # save to the same directory as the script outpath = os.path.dirname(argv[0]) diff --git a/Obok_plugin/obok/obok.py b/Obok_plugin/obok/obok.py index d20f6dc..ac0689b 100644 --- a/Obok_plugin/obok/obok.py +++ b/Obok_plugin/obok/obok.py @@ -353,7 +353,7 @@ class KoboLibrary(object): if (self.kobodir == u""): if sys.platform.startswith('win'): - import _winreg as winreg + import winreg if sys.getwindowsversion().major > 5: if 'LOCALAPPDATA' in os.environ.keys(): # Python 2.x does not return unicode env. Use Python 3.x @@ -444,8 +444,8 @@ class KoboLibrary(object): macaddrs = [] if sys.platform.startswith('win'): c = re.compile('\s(' + '[0-9a-f]{2}-' * 5 + '[0-9a-f]{2})(\s|$)', re.IGNORECASE) - (p_in, p_out, p_err) = os.popen3('ipconfig /all') - for line in p_out: + output = subprocess.Popen('ipconfig /all', shell=True, stdout=subprocess.PIPE, text=True).stdout + for line in output: m = c.search(line) if m: macaddrs.append(re.sub("-", ":", m.group(1)).upper())