diff --git a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Info.plist b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Info.plist
index 94ad26c..0edfc81 100644
--- a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Info.plist
+++ b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Info.plist
@@ -24,7 +24,7 @@
CFBundleExecutable
droplet
CFBundleGetInfoString
- DeDRM AppleScript 6.4.0 Written 2010–2016 by Apprentice Alf et al.
+ DeDRM AppleScript 6.4.1 Written 2010–2016 by Apprentice Alf et al.
CFBundleIconFile
DeDRM
CFBundleIdentifier
@@ -36,7 +36,7 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 6.4.0
+ 6.4.1
CFBundleSignature
dplt
LSRequiresCarbon
diff --git a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/__init__.py b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/__init__.py
index 880d9fe..ddba7a4 100644
--- a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/__init__.py
+++ b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/__init__.py
@@ -9,8 +9,6 @@ __docformat__ = 'restructuredtext en'
# Released under the terms of the GNU General Public Licence, version 3
#
#
-# Requires Calibre version 0.7.55 or higher.
-#
# All credit given to i♥cabbages and The Dark Reverser for the original standalone scripts.
# We had the much easier job of converting them to a calibre plugin.
#
@@ -49,6 +47,7 @@ __docformat__ = 'restructuredtext en'
# 6.3.5 - Fixes for Linux, and Kobo 3.19 and more logging
# 6.3.6 - Fixes for ADE ePub and PDF introduced in 6.3.5
# 6.4.0 - Updated for new Kindle for PC encryption
+# 6.4.1 - Fix for some new tags in Topaz ebooks.
"""
@@ -56,7 +55,7 @@ Decrypt DRMed ebooks.
"""
PLUGIN_NAME = u"DeDRM"
-PLUGIN_VERSION_TUPLE = (6, 4, 0)
+PLUGIN_VERSION_TUPLE = (6, 4, 1)
PLUGIN_VERSION = u".".join([unicode(str(x)) for x in PLUGIN_VERSION_TUPLE])
# Include an html helpfile in the plugin's zipfile with the following name.
RESOURCE_NAME = PLUGIN_NAME + '_Help.htm'
diff --git a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/convert2xml.py b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/convert2xml.py
index 101c45a..bbb7b04 100644
--- a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/convert2xml.py
+++ b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/convert2xml.py
@@ -164,6 +164,7 @@ class PageParser(object):
self.id = os.path.basename(filename).replace('.dat','')
self.dict = dict
self.debug = debug
+ self.first_unknown = True
self.flat_xml = flat_xml
self.tagpath = []
self.doc = []
@@ -262,6 +263,9 @@ class PageParser(object):
'img.w' : (1, 'scalar_number', 0, 0),
'img.src' : (1, 'scalar_number', 0, 0),
'img.color_src' : (1, 'scalar_number', 0, 0),
+ 'img.gridSize' : (1, 'scalar_number', 0, 0),
+ 'img.gridBottomCenter' : (1, 'scalar_number', 0, 0),
+ 'img.gridTopCenter' : (1, 'scalar_number', 0, 0),
'img.gridBeginCenter' : (1, 'scalar_number', 0, 0),
'img.gridEndCenter' : (1, 'scalar_number', 0, 0),
'img.image_type' : (1, 'scalar_number', 0, 0),
@@ -506,8 +510,9 @@ class PageParser(object):
# or an out of sync condition
else:
result = []
- if (self.debug):
+ if (self.debug or self.first_unknown):
print 'Unknown Token:', token
+ self.first_unknown = False
self.tag_pop()
return result
diff --git a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/kindlekey.py b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/kindlekey.py
index 0b14988..c5159cc 100644
--- a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/kindlekey.py
+++ b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/kindlekey.py
@@ -4,7 +4,7 @@
from __future__ import with_statement
# kindlekey.py
-# Copyright © 2010-2016 by some_updates, Apprentice Alf and Apprentice Harper
+# Copyright © 2010-2015 by some_updates, Apprentice Alf and Apprentice Harper
# Revision history:
# 1.0 - Kindle info file decryption, extracted from k4mobidedrm, etc.
@@ -19,7 +19,6 @@ from __future__ import with_statement
# 1.8 - Fixes for Kindle for Mac, and non-ascii in Windows user names
# 1.9 - Fixes for Unicode in Windows user names
# 2.0 - Added comments and extra fix for non-ascii Windows user names
-# 2.1 - Fixed Kindle for PC encryption changes March 2016
"""
@@ -27,7 +26,7 @@ Retrieve Kindle for PC/Mac user key.
"""
__license__ = 'GPL v3'
-__version__ = '2.1'
+__version__ = '1.9'
import sys, os, re
from struct import pack, unpack, unpack_from
@@ -1813,7 +1812,7 @@ elif isosx:
pass
if len(DB)>4:
# store values used in decryption
- print u"Decrypted key file using IDString '{0:s}' and UserName '{1:s}'".format(IDString, GetUserName().encode('hex'))
+ print u"Decrypted key file using IDString '{0:s}' and UserName '{1:s}'".format(IDString, GetUserName())
DB['IDString'] = IDString
DB['UserName'] = GetUserName()
else:
@@ -1875,7 +1874,7 @@ def cli_main():
sys.stderr=SafeUnbuffered(sys.stderr)
argv=unicode_argv()
progname = os.path.basename(argv[0])
- print u"{0} v{1}\nCopyright © 2010-2016 by some_updates, Apprentice Alf and Apprentice Harper".format(progname,__version__)
+ print u"{0} v{1}\nCopyright © 2010-2013 some_updates and Apprentice Alf".format(progname,__version__)
try:
opts, args = getopt.getopt(argv[1:], "hk:")
@@ -1905,7 +1904,7 @@ def cli_main():
# save to the same directory as the script
outpath = os.path.dirname(argv[0])
- # make sure the outpath is canonical
+ # make sure the outpath is the
outpath = os.path.realpath(os.path.normpath(outpath))
if not getkey(outpath, files):
diff --git a/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/DeDRM_App.pyw b/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/DeDRM_App.pyw
index 4eda87f..6a2e6c8 100644
--- a/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/DeDRM_App.pyw
+++ b/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/DeDRM_App.pyw
@@ -22,8 +22,9 @@
# 6.3.5 - Version bump to match plugin
# 6.3.6 - Version bump to match plugin
# 6.4.0 - Fix for Kindle for PC encryption change
+# 6.4.1 - Fix for new tags in Topaz ebooks
-__version__ = '6.4.0'
+__version__ = '6.4.1'
import sys
import os, os.path
diff --git a/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/__init__.py b/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/__init__.py
index 880d9fe..ddba7a4 100644
--- a/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/__init__.py
+++ b/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/__init__.py
@@ -9,8 +9,6 @@ __docformat__ = 'restructuredtext en'
# Released under the terms of the GNU General Public Licence, version 3
#
#
-# Requires Calibre version 0.7.55 or higher.
-#
# All credit given to i♥cabbages and The Dark Reverser for the original standalone scripts.
# We had the much easier job of converting them to a calibre plugin.
#
@@ -49,6 +47,7 @@ __docformat__ = 'restructuredtext en'
# 6.3.5 - Fixes for Linux, and Kobo 3.19 and more logging
# 6.3.6 - Fixes for ADE ePub and PDF introduced in 6.3.5
# 6.4.0 - Updated for new Kindle for PC encryption
+# 6.4.1 - Fix for some new tags in Topaz ebooks.
"""
@@ -56,7 +55,7 @@ Decrypt DRMed ebooks.
"""
PLUGIN_NAME = u"DeDRM"
-PLUGIN_VERSION_TUPLE = (6, 4, 0)
+PLUGIN_VERSION_TUPLE = (6, 4, 1)
PLUGIN_VERSION = u".".join([unicode(str(x)) for x in PLUGIN_VERSION_TUPLE])
# Include an html helpfile in the plugin's zipfile with the following name.
RESOURCE_NAME = PLUGIN_NAME + '_Help.htm'
diff --git a/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/convert2xml.py b/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/convert2xml.py
index 101c45a..bbb7b04 100644
--- a/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/convert2xml.py
+++ b/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/convert2xml.py
@@ -164,6 +164,7 @@ class PageParser(object):
self.id = os.path.basename(filename).replace('.dat','')
self.dict = dict
self.debug = debug
+ self.first_unknown = True
self.flat_xml = flat_xml
self.tagpath = []
self.doc = []
@@ -262,6 +263,9 @@ class PageParser(object):
'img.w' : (1, 'scalar_number', 0, 0),
'img.src' : (1, 'scalar_number', 0, 0),
'img.color_src' : (1, 'scalar_number', 0, 0),
+ 'img.gridSize' : (1, 'scalar_number', 0, 0),
+ 'img.gridBottomCenter' : (1, 'scalar_number', 0, 0),
+ 'img.gridTopCenter' : (1, 'scalar_number', 0, 0),
'img.gridBeginCenter' : (1, 'scalar_number', 0, 0),
'img.gridEndCenter' : (1, 'scalar_number', 0, 0),
'img.image_type' : (1, 'scalar_number', 0, 0),
@@ -506,8 +510,9 @@ class PageParser(object):
# or an out of sync condition
else:
result = []
- if (self.debug):
+ if (self.debug or self.first_unknown):
print 'Unknown Token:', token
+ self.first_unknown = False
self.tag_pop()
return result
diff --git a/DeDRM_calibre_plugin/DeDRM_plugin.zip b/DeDRM_calibre_plugin/DeDRM_plugin.zip
index 5ad702b..de165c1 100644
Binary files a/DeDRM_calibre_plugin/DeDRM_plugin.zip and b/DeDRM_calibre_plugin/DeDRM_plugin.zip differ
diff --git a/DeDRM_calibre_plugin/DeDRM_plugin/__init__.py b/DeDRM_calibre_plugin/DeDRM_plugin/__init__.py
index 880d9fe..ddba7a4 100644
--- a/DeDRM_calibre_plugin/DeDRM_plugin/__init__.py
+++ b/DeDRM_calibre_plugin/DeDRM_plugin/__init__.py
@@ -9,8 +9,6 @@ __docformat__ = 'restructuredtext en'
# Released under the terms of the GNU General Public Licence, version 3
#
#
-# Requires Calibre version 0.7.55 or higher.
-#
# All credit given to i♥cabbages and The Dark Reverser for the original standalone scripts.
# We had the much easier job of converting them to a calibre plugin.
#
@@ -49,6 +47,7 @@ __docformat__ = 'restructuredtext en'
# 6.3.5 - Fixes for Linux, and Kobo 3.19 and more logging
# 6.3.6 - Fixes for ADE ePub and PDF introduced in 6.3.5
# 6.4.0 - Updated for new Kindle for PC encryption
+# 6.4.1 - Fix for some new tags in Topaz ebooks.
"""
@@ -56,7 +55,7 @@ Decrypt DRMed ebooks.
"""
PLUGIN_NAME = u"DeDRM"
-PLUGIN_VERSION_TUPLE = (6, 4, 0)
+PLUGIN_VERSION_TUPLE = (6, 4, 1)
PLUGIN_VERSION = u".".join([unicode(str(x)) for x in PLUGIN_VERSION_TUPLE])
# Include an html helpfile in the plugin's zipfile with the following name.
RESOURCE_NAME = PLUGIN_NAME + '_Help.htm'
diff --git a/DeDRM_calibre_plugin/DeDRM_plugin/convert2xml.py b/DeDRM_calibre_plugin/DeDRM_plugin/convert2xml.py
index 101c45a..bbb7b04 100644
--- a/DeDRM_calibre_plugin/DeDRM_plugin/convert2xml.py
+++ b/DeDRM_calibre_plugin/DeDRM_plugin/convert2xml.py
@@ -164,6 +164,7 @@ class PageParser(object):
self.id = os.path.basename(filename).replace('.dat','')
self.dict = dict
self.debug = debug
+ self.first_unknown = True
self.flat_xml = flat_xml
self.tagpath = []
self.doc = []
@@ -262,6 +263,9 @@ class PageParser(object):
'img.w' : (1, 'scalar_number', 0, 0),
'img.src' : (1, 'scalar_number', 0, 0),
'img.color_src' : (1, 'scalar_number', 0, 0),
+ 'img.gridSize' : (1, 'scalar_number', 0, 0),
+ 'img.gridBottomCenter' : (1, 'scalar_number', 0, 0),
+ 'img.gridTopCenter' : (1, 'scalar_number', 0, 0),
'img.gridBeginCenter' : (1, 'scalar_number', 0, 0),
'img.gridEndCenter' : (1, 'scalar_number', 0, 0),
'img.image_type' : (1, 'scalar_number', 0, 0),
@@ -506,8 +510,9 @@ class PageParser(object):
# or an out of sync condition
else:
result = []
- if (self.debug):
+ if (self.debug or self.first_unknown):
print 'Unknown Token:', token
+ self.first_unknown = False
self.tag_pop()
return result