mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Replace use of pickle when repairing db on windows
This commit is contained in:
parent
52c371e8b5
commit
046f43446e
@ -174,9 +174,10 @@ def repair_library(library_path):
|
||||
|
||||
def windows_repair(library_path=None):
|
||||
from binascii import hexlify, unhexlify
|
||||
import cPickle, subprocess
|
||||
import subprocess
|
||||
from calibre.utils.serialize import json_dumps, json_loads
|
||||
if library_path:
|
||||
library_path = hexlify(cPickle.dumps(library_path, -1))
|
||||
library_path = hexlify(json_dumps(library_path))
|
||||
winutil.prepare_for_restart()
|
||||
os.environ['CALIBRE_REPAIR_CORRUPTED_DB'] = library_path
|
||||
subprocess.Popen([sys.executable])
|
||||
@ -184,7 +185,7 @@ def windows_repair(library_path=None):
|
||||
try:
|
||||
app = Application([])
|
||||
from calibre.gui2.dialogs.restore_library import repair_library_at
|
||||
library_path = cPickle.loads(unhexlify(os.environ.pop('CALIBRE_REPAIR_CORRUPTED_DB')))
|
||||
library_path = json_loads(unhexlify(os.environ.pop('CALIBRE_REPAIR_CORRUPTED_DB')))
|
||||
done = repair_library_at(library_path, wait_time=4)
|
||||
except Exception:
|
||||
done = False
|
||||
|
Loading…
x
Reference in New Issue
Block a user