mirror of
https://github.com/noDRM/DeDRM_tools.git
synced 2024-11-05 13:36:10 +06:00
586609bb2c
There were a couple specific DRM removal plugins before the DeDRM plugin was created. These are obsolete since a long time, there's no need to still have the code to import their config. If people are still using these ancient plugins, they'll have to update to an older version of DeDRM first, and then update to the current one.
96 lines
3.5 KiB
Python
Executable File
96 lines
3.5 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
|
|
|
|
__license__ = 'GPL v3'
|
|
|
|
# Standard Python modules.
|
|
import os
|
|
import traceback
|
|
|
|
from calibre.utils.config import JSONConfig
|
|
|
|
try:
|
|
from calibre_plugins.dedrm.__init__ import PLUGIN_NAME
|
|
except:
|
|
PLUGIN_NAME = "DeDRM"
|
|
|
|
class DeDRM_Prefs():
|
|
def __init__(self):
|
|
JSON_PATH = os.path.join("plugins", PLUGIN_NAME.strip().lower().replace(' ', '_') + '.json')
|
|
self.dedrmprefs = JSONConfig(JSON_PATH)
|
|
|
|
self.dedrmprefs.defaults['configured'] = False
|
|
self.dedrmprefs.defaults['deobfuscate_fonts'] = True
|
|
self.dedrmprefs.defaults['remove_watermarks'] = False
|
|
self.dedrmprefs.defaults['bandnkeys'] = {}
|
|
self.dedrmprefs.defaults['adeptkeys'] = {}
|
|
self.dedrmprefs.defaults['ereaderkeys'] = {}
|
|
self.dedrmprefs.defaults['kindlekeys'] = {}
|
|
self.dedrmprefs.defaults['androidkeys'] = {}
|
|
self.dedrmprefs.defaults['pids'] = []
|
|
self.dedrmprefs.defaults['serials'] = []
|
|
self.dedrmprefs.defaults['lcp_passphrases'] = []
|
|
self.dedrmprefs.defaults['adobewineprefix'] = ""
|
|
self.dedrmprefs.defaults['kindlewineprefix'] = ""
|
|
|
|
# initialise
|
|
# we must actually set the prefs that are dictionaries and lists
|
|
# to empty dictionaries and lists, otherwise we are unable to add to them
|
|
# as then it just adds to the (memory only) dedrmprefs.defaults versions!
|
|
if self.dedrmprefs['bandnkeys'] == {}:
|
|
self.dedrmprefs['bandnkeys'] = {}
|
|
if self.dedrmprefs['adeptkeys'] == {}:
|
|
self.dedrmprefs['adeptkeys'] = {}
|
|
if self.dedrmprefs['ereaderkeys'] == {}:
|
|
self.dedrmprefs['ereaderkeys'] = {}
|
|
if self.dedrmprefs['kindlekeys'] == {}:
|
|
self.dedrmprefs['kindlekeys'] = {}
|
|
if self.dedrmprefs['androidkeys'] == {}:
|
|
self.dedrmprefs['androidkeys'] = {}
|
|
if self.dedrmprefs['pids'] == []:
|
|
self.dedrmprefs['pids'] = []
|
|
if self.dedrmprefs['serials'] == []:
|
|
self.dedrmprefs['serials'] = []
|
|
if self.dedrmprefs['lcp_passphrases'] == []:
|
|
self.dedrmprefs['lcp_passphrases'] = []
|
|
|
|
def __getitem__(self,kind = None):
|
|
if kind is not None:
|
|
return self.dedrmprefs[kind]
|
|
return self.dedrmprefs
|
|
|
|
def set(self, kind, value):
|
|
self.dedrmprefs[kind] = value
|
|
|
|
def writeprefs(self,value = True):
|
|
self.dedrmprefs['configured'] = value
|
|
|
|
def addnamedvaluetoprefs(self, prefkind, keyname, keyvalue):
|
|
try:
|
|
if keyvalue not in self.dedrmprefs[prefkind].values():
|
|
# ensure that the keyname is unique
|
|
# by adding a number (starting with 2) to the name if it is not
|
|
namecount = 1
|
|
newname = keyname
|
|
while newname in self.dedrmprefs[prefkind]:
|
|
namecount += 1
|
|
newname = "{0:s}_{1:d}".format(keyname,namecount)
|
|
# add to the preferences
|
|
self.dedrmprefs[prefkind][newname] = keyvalue
|
|
return (True, newname)
|
|
except:
|
|
traceback.print_exc()
|
|
pass
|
|
return (False, keyname)
|
|
|
|
def addvaluetoprefs(self, prefkind, prefsvalue):
|
|
# ensure the keyvalue isn't already in the preferences
|
|
try:
|
|
if prefsvalue not in self.dedrmprefs[prefkind]:
|
|
self.dedrmprefs[prefkind].append(prefsvalue)
|
|
return True
|
|
except:
|
|
traceback.print_exc()
|
|
return False
|