diff --git a/README.md b/README.md
index f2f0dd3..d8c6fd7 100644
--- a/README.md
+++ b/README.md
@@ -62,9 +62,12 @@ $ sudo apt-get install -y python3 python3-dev libpng-dev libjpeg-dev p7zip-full
#### Optional dependencies
-- KindleGen ~~[deprecated link](http://www.amazon.com/gp/feature.html?ie=UTF8&docId=1000765211)~~ v2.9+ in a directory reachable by your _PATH_ or in _KCC_ directory *(For MOBI generation)
- - It can be found in [Kindle Previewer](https://www.amazon.com/Kindle-Previewer/b?ie=UTF8&node=21381691011)
- `Amazon Kindle Previewer 3 Folder\lib\fc\bin`, the usual location in windows is in windows is `C:\Users\user\AppData\Local\Amazon\Kindle Previewer 3\lib\fc\bin\`
+- KindleGen ~~[(deprecated link)](http://www.amazon.com/gp/feature.html?ie=UTF8&docId=1000765211)~~ v2.9+ (For MOBI generation)
+ - should be placed in a directory reachable by your _PATH_ or in _KCC_ directory
+ - `KindleGen` can be found in [Kindle Previewer](https://www.amazon.com/Kindle-Previewer/b?ie=UTF8&node=21381691011)
+ `Amazon Kindle Previewer 3 Folder\lib\fc\bin`, the usual location in windows is in windows is `C:\Users\user\AppData\Local\Amazon\Kindle Previewer 3\lib\fc\bin\`
+ - `KindleGen` can be also be found in [Kindle Comic Creator](https://www.amazon.com/b?node=23496309011)
+
- [7z](http://www.7-zip.org/download.html) *(For CBZ/ZIP, CBR/RAR, 7z/CB7 support)*
- Unrar (no rar in 7z on Fedora)
diff --git a/kcc.py b/kcc.py
index 8e12cfd..3c18461 100755
--- a/kcc.py
+++ b/kcc.py
@@ -27,22 +27,37 @@ if sys.version_info < (3, 8, 0):
# OS specific workarounds
import os
if sys.platform.startswith('darwin'):
+ mac_paths = [
+ '/Applications/Kindle Previewer 3.app/Contents/lib/fc/bin/',
+ '/Applications/Kindle Comic Creator/Kindle Comic Creator.app/Contents/MacOS',
+ ]
if getattr(sys, 'frozen', False):
- os.environ['PATH'] = os.path.dirname(os.path.abspath(sys.executable)) + \
- '/../Resources:/Applications/Kindle Comic Creator/Kindle Comic Creator.app/Contents/MacOS:' \
- '/Applications/Kindle Previewer 3.app/Contents/lib/fc/bin/:/usr/local/bin:/usr/bin:/bin'
+ os.environ['PATH'] += os.pathsep + os.pathsep.join(mac_paths +
+ [
+ os.path.dirname(os.path.abspath(sys.executable)) + '/../Resources',
+ '/usr/local/bin',
+ '/usr/bin',
+ '/bin',
+ ]
+ )
os.chdir(os.path.dirname(os.path.abspath(sys.executable)) + '/../Resources')
else:
+ os.environ['PATH'] += os.pathsep + os.pathsep.join(mac_paths)
os.chdir(os.path.dirname(os.path.abspath(__file__)))
elif sys.platform.startswith('win'):
+ win_paths = [
+ '%LOCALAPPDATA%\\Amazon\\Kindle Previewer 3\\lib\\fc\\bin\\',
+ 'C:\\Program Files\\7-Zip',
+ ]
if getattr(sys, 'frozen', False):
- os.environ['PATH'] = '%LOCALAPPDATA%\\Amazon\\Kindle Previewer 3\\lib\\fc\\bin\\;' + \
- os.environ['PATH']
+ os.environ['PATH'] += os.pathsep + os.pathsep.join(win_paths)
os.chdir(os.path.dirname(os.path.abspath(sys.executable)))
else:
- os.environ['PATH'] = os.path.dirname(os.path.abspath(__file__)) + '/other/windows/;' \
- '%LOCALAPPDATA%\\Amazon\\Kindle Previewer 3\\lib\\fc\\bin\\;' + \
- os.environ['PATH']
+ os.environ['PATH'] += os.pathsep + os.pathsep.join(win_paths +
+ [
+ os.path.dirname(os.path.abspath(__file__)) + '/other/windows/',
+ ]
+ )
os.chdir(os.path.dirname(os.path.abspath(__file__)))
# Load additional Sentry configuration
# if getattr(sys, 'frozen', False):
diff --git a/kindlecomicconverter/KCC_gui.py b/kindlecomicconverter/KCC_gui.py
index e1d0f13..7082ec4 100644
--- a/kindlecomicconverter/KCC_gui.py
+++ b/kindlecomicconverter/KCC_gui.py
@@ -744,18 +744,25 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
self.detectKindleGen()
if not self.kindleGen:
GUI.jobList.clear()
- self.addMessage('Cannot find KindleGen! MOBI conversion is unavailable!', 'error')
- if sys.platform.startswith('win'):
- self.addMessage('Download it and place EXE in KCC directory.', 'error')
- elif sys.platform.startswith('darwin'):
- self.addMessage('Install it using Homebrew.', 'error')
- else:
- self.addMessage('Download it and place executable in /usr/local/bin directory.', 'error')
+ self.display_kindlegen_missing()
self.needClean = True
return
self.worker.start()
+ def display_kindlegen_missing(self):
+ self.addMessage('Cannot find KindleGen from '
+ 'Kindle Comic Creator or '
+ ''
+ 'Kindle Previewer! MOBI conversion is unavailable!', 'error')
+ if sys.platform.startswith('win'):
+ self.addMessage('Download it and place EXE in KCC directory.', 'error')
+ elif sys.platform.startswith('darwin'):
+ self.addMessage(''
+ 'Install the kindle-comic-creator cask using Homebrew to enable MOBI conversion',
+ 'error')
+ else:
+ self.addMessage('Download it and place executable in /usr/local/bin directory.', 'error')
+
def saveSettings(self, event):
if self.conversionAlive:
GUI.convertButton.setEnabled(False)
@@ -849,22 +856,15 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
if 'Amazon kindlegen' in line:
versionCheck = line.split('V')[1].split(' ')[0]
if StrictVersion(versionCheck) < StrictVersion('2.9'):
- self.addMessage('Your KindleGen is outdated! MOBI conversion might fail.', 'warning')
+ self.addMessage('Your KindleGen'
+ ' is outdated! MOBI conversion might fail.', 'warning')
break
else:
self.kindleGen = False
if startup:
- self.addMessage('Cannot find '
- 'KindleGen! MOBI conversion will be unavailable!', 'error')
- if sys.platform.startswith('win'):
- self.addMessage('Download it and place EXE in KCC directory.', 'error')
- elif sys.platform.startswith('darwin'):
- self.addMessage('Install it using Homebrew: '
- 'brew install --cask kindle-comic-creator or '
- 'brew install --cask kindle-previewer', 'error')
- else:
- self.addMessage('Download it and place executable in /usr/local/bin directory.', 'error')
+ self.display_kindlegen_missing()
+
+
def __init__(self, kccapp, kccwindow):
global APP, MW, GUI