From ecc7db09a9e3bda6da79b52bc7a07d5d217fd0ce Mon Sep 17 00:00:00 2001 From: journeyman88 <36702557+journeyman88@users.noreply.github.com> Date: Mon, 1 Mar 2021 21:15:20 +0100 Subject: [PATCH] Fix in keyfetch for obok on win10 According to calibre debug the ipconfig command returned some invalid utf-8 characters (I think is maybe an issue due to the Python2 switch-off as the 4.x version worked fine). To solve this I've changed the external call and modified the regex to match both the output of "ipconfig" and that of "wmic". --- Obok_plugin/obok/obok.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Obok_plugin/obok/obok.py b/Obok_plugin/obok/obok.py index 6c43089..a00003b 100644 --- a/Obok_plugin/obok/obok.py +++ b/Obok_plugin/obok/obok.py @@ -470,8 +470,8 @@ class KoboLibrary(object): """The list of all MAC addresses on this machine.""" macaddrs = [] if sys.platform.startswith('win'): - c = re.compile('\s(' + '[0-9a-f]{2}-' * 5 + '[0-9a-f]{2})(\s|$)', re.IGNORECASE) - output = subprocess.Popen('ipconfig /all', shell=True, stdout=subprocess.PIPE, text=True).stdout + c = re.compile('\s?(' + '[0-9a-f]{2}[:\-]' * 5 + '[0-9a-f]{2})(\s|$)', re.IGNORECASE) + output = subprocess.Popen('wmic nic where PhysicalAdapter=True get MACAddress', shell=True, stdout=subprocess.PIPE, text=True).stdout for line in output: m = c.search(line) if m: