about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPaweł Jastrzębski <[email protected]>2017-10-14 18:01:32 +0200
committerGitHub <[email protected]>2017-10-14 18:01:32 +0200
commit7524c50657e3b01459dc6940f562021a3e33a9b2 (patch)
tree3293727977f898cfc6718af8d415ef60de362b3e
parentMerge pull request #244 from ciromattia/dev (diff)
parentUpdated README + version bump (diff)
downloadkcc-7524c50657e3b01459dc6940f562021a3e33a9b2.tar.gz
kcc-7524c50657e3b01459dc6940f562021a3e33a9b2.tar.bz2
kcc-7524c50657e3b01459dc6940f562021a3e33a9b2.zip
Merge pull request #250 from ciromattia/dev
5.4.2
-rw-r--r--.travis.yml4
-rw-r--r--CHANGELOG.md6
-rw-r--r--README.md5
-rw-r--r--appveyor.yml2
-rw-r--r--gui/KCC.ui5
-rw-r--r--kcc.iss4
-rw-r--r--kindlecomicconverter/KCC_gui.py60
-rw-r--r--kindlecomicconverter/KCC_ui.py1
-rw-r--r--kindlecomicconverter/__init__.py2
-rwxr-xr-xkindlecomicconverter/comic2ebook.py23
-rwxr-xr-xkindlecomicconverter/image.py1
-rw-r--r--kindlecomicconverter/metadata.py4
-rw-r--r--other/osx/Info.plist6
-rw-r--r--other/windows/vc_redist.x64.exebin14572000 -> 0 bytes
-rwxr-xr-xsetup.py1
15 files changed, 77 insertions, 47 deletions
diff --git a/.travis.yml b/.travis.yml
index 11a98b4..eff62b5 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -21,10 +21,10 @@ before_install:
 
 install:
 - if [ "$TRAVIS_OS_NAME" == "linux" ] ; then pip install -r requirements.txt ; fi
-- if [ "$TRAVIS_OS_NAME" == "linux" ] ; then pip install certifi https://github.com/pyinstaller/pyinstaller/archive/develop.zip ; fi
+- if [ "$TRAVIS_OS_NAME" == "linux" ] ; then pip install certifi PyInstaller ; fi
 - if [ "$TRAVIS_OS_NAME" == "linux" ] ; then gem install fpm ; fi
 - if [ "$TRAVIS_OS_NAME" == "osx" ] ; then pip3 install -r requirements.txt ; fi
-- if [ "$TRAVIS_OS_NAME" == "osx" ] ; then pip3 install certifi https://github.com/pyinstaller/pyinstaller/archive/develop.zip ; fi
+- if [ "$TRAVIS_OS_NAME" == "osx" ] ; then pip3 install certifi PyInstaller ; fi
 - if [ "$TRAVIS_OS_NAME" == "osx" ] ; then npm install -g appdmg ; fi
 
 script: python3 setup.py build_binary
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c68a09f..997e043 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,10 @@
 # CHANGELOG
+#### 5.4.2:
+* Added Kindle Oasis 2 profile
+* Allowed metadata editor to edit directories
+* Fixed image stretching when HQ Panel View option was enabled
+* Fixed possible problem with directory sort order
+
 #### 5.4.1:
 * Minor bug fixes and tweaks
 * Implemented new binary build pipeline
diff --git a/README.md b/README.md
index ce4977a..fe49da1 100644
--- a/README.md
+++ b/README.md
@@ -83,7 +83,7 @@ Options:
   MAIN:
     -p PROFILE, --profile=PROFILE
                         Device profile (Available options: K1, K2, K34, K578,
-                        KDX, KPW, KV, KoMT, KoG, KoGHD, KoA, KoAHD, KoAH2O,
+                        KDX, KPW, KV, KO, KoMT, KoG, KoGHD, KoA, KoAHD, KoAH2O,
                         KoAO) [Default=KV]
     -m, --manga-style   Manga style (right-to-left reading and splitting)
     -q, --hq            Try to increase the quality of magnification
@@ -162,9 +162,10 @@ The app relies and includes the following scripts:
  - Icon is by **Nikolay Verin** ([http://ncrow.deviantart.com/](http://ncrow.deviantart.com/)) and released under [CC BY-NC-SA 3.0](http://creativecommons.org/licenses/by-nc-sa/3.0/) License.
 
 ## SAMPLE FILES CREATED BY KCC
+* [Kindle Oasis 2](http://kcc.iosphe.re/Samples/Ubunchu!-KO.mobi)
 * [Kindle Paperwhite 3 / Voyage / Oasis](http://kcc.iosphe.re/Samples/Ubunchu!-KV.mobi)
 * [Kindle Paperwhite 1 / 2](http://kcc.iosphe.re/Samples/Ubunchu!-KPW.mobi)
-* [Kindle](http://kcc.iosphe.re/Samples/Ubunchu!-K45.mobi)
+* [Kindle](http://kcc.iosphe.re/Samples/Ubunchu!-K578.mobi)
 * [Kobo Aura](http://kcc.iosphe.re/Samples/Ubunchu-KoA.kepub.epub)
 * [Kobo Aura HD](http://kcc.iosphe.re/Samples/Ubunchu-KoAHD.kepub.epub)
 * [Kobo Aura H2O](http://kcc.iosphe.re/Samples/Ubunchu-KoAH2O.kepub.epub)
diff --git a/appveyor.yml b/appveyor.yml
index 2a47721..1fb13e1 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -5,7 +5,7 @@ install:
   - set PATH="%PYTHON%\\Scripts";"C:\\Program Files (x86)\\Inno Setup 5";%PATH%
   - "%PYTHON%\\python.exe -m pip install --upgrade pip setuptools wheel"
   - "%PYTHON%\\python.exe -m pip install -r requirements.txt"
-  - "%PYTHON%\\python.exe -m pip install certifi https://github.com/pyinstaller/pyinstaller/archive/develop.zip"
+  - "%PYTHON%\\python.exe -m pip install certifi PyInstaller"
   - nuget install secure-file -ExcludeVersion
   - nuget install verpatch -ExcludeVersion
   - secure-file\tools\secure-file -decrypt other\windows\Cert.pfx.enc -secret %ENCRYPTION%
diff --git a/gui/KCC.ui b/gui/KCC.ui
index 1c49bc2..09a7b92 100644
--- a/gui/KCC.ui
+++ b/gui/KCC.ui
@@ -320,6 +320,9 @@
          <property name="text">
           <string>Editor</string>
          </property>
+         <property name="toolTip">
+          <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p style='white-space:pre'&gt;Shift+Click to edit directory.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+         </property>
          <property name="icon">
           <iconset resource="KCC.qrc">
            <normaloff>:/Other/icons/editor.png</normaloff>:/Other/icons/editor.png</iconset>
@@ -454,7 +457,7 @@
           </font>
          </property>
          <property name="toolTip">
-          <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p  style='white-space:pre'&gt;Shift+Click to select the output directory.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+          <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p style='white-space:pre'&gt;Shift+Click to select the output directory.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
          </property>
          <property name="text">
           <string>Convert</string>
diff --git a/kcc.iss b/kcc.iss
index c51f8c8..5225426 100644
--- a/kcc.iss
+++ b/kcc.iss
@@ -1,5 +1,5 @@
 #define MyAppName "Kindle Comic Converter"
-#define MyAppVersion "5.4.1"
+#define MyAppVersion "5.4.2"
 #define MyAppPublisher "Ciro Mattia Gonano, Paweł Jastrzębski"
 #define MyAppURL "http://kcc.iosphe.re/"
 #define MyAppExeName "KCC.exe"
@@ -49,7 +49,6 @@ Source: "LICENSE.txt"; DestDir: "{app}"; Flags: ignoreversion solidbreak
 Source: "other\windows\Additional-LICENSE.txt"; DestDir: "{app}"; Flags: ignoreversion
 Source: "other\windows\UnRAR.exe"; DestDir: "{app}"; Flags: ignoreversion
 Source: "other\windows\7za.exe"; DestDir: "{app}"; Flags: ignoreversion
-Source: "other\windows\vc_redist.x64.exe"; DestDir: "{tmp}"; Flags: ignoreversion deleteafterinstall
 
 [Icons]
 Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
@@ -57,7 +56,6 @@ Name: "{group}\Readme"; Filename: "https://github.com/ciromattia/kcc#kcc"
 Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
 
 [Run]
-Filename: "{tmp}\vc_redist.x64.exe"; Parameters: "/install /passive /norestart"; StatusMsg: "Installing Microsoft Visual C++ 2015 Redistributable Package..."
 Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall
 
 [Messages]
diff --git a/kindlecomicconverter/KCC_gui.py b/kindlecomicconverter/KCC_gui.py
index c2749ff..a98585a 100644
--- a/kindlecomicconverter/KCC_gui.py
+++ b/kindlecomicconverter/KCC_gui.py
@@ -500,28 +500,38 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
                 GUI.jobList.scrollToBottom()
 
     def selectFileMetaEditor(self):
-        if self.UnRAR:
-            if self.sevenza:
-                fname = QtWidgets.QFileDialog.getOpenFileName(MW, 'Select file', self.lastPath,
-                                                              'Comic (*.cbz *.cbr *.cb7)')
-            else:
-                fname = QtWidgets.QFileDialog.getOpenFileName(MW, 'Select file', self.lastPath,
-                                                              'Comic (*.cbz *.cbr)')
+        sname = ''
+        if QtWidgets.QApplication.keyboardModifiers() == QtCore.Qt.ShiftModifier:
+            dname = QtWidgets.QFileDialog.getExistingDirectory(MW, 'Select directory', self.lastPath)
+            if dname != '':
+                sname = os.path.join(dname, 'ComicInfo.xml')
+                if sys.platform.startswith('win'):
+                    sname = sname.replace('/', '\\')
+                self.lastPath = os.path.abspath(sname)
         else:
-            if self.sevenza:
-                fname = QtWidgets.QFileDialog.getOpenFileName(MW, 'Select file', self.lastPath,
-                                                              'Comic (*.cbz *.cb7)')
-            else:
-                fname = QtWidgets.QFileDialog.getOpenFileName(MW, 'Select file', self.lastPath,
-                                                              'Comic (*.cbz)')
-        if fname[0] != '':
-            if sys.platform.startswith('win'):
-                fname = fname[0].replace('/', '\\')
+            if self.UnRAR:
+                if self.sevenza:
+                    fname = QtWidgets.QFileDialog.getOpenFileName(MW, 'Select file', self.lastPath,
+                                                                  'Comic (*.cbz *.cbr *.cb7)')
+                else:
+                    fname = QtWidgets.QFileDialog.getOpenFileName(MW, 'Select file', self.lastPath,
+                                                                  'Comic (*.cbz *.cbr)')
             else:
-                fname = fname[0]
-            self.lastPath = os.path.abspath(os.path.join(fname, os.pardir))
+                if self.sevenza:
+                    fname = QtWidgets.QFileDialog.getOpenFileName(MW, 'Select file', self.lastPath,
+                                                                  'Comic (*.cbz *.cb7)')
+                else:
+                    fname = QtWidgets.QFileDialog.getOpenFileName(MW, 'Select file', self.lastPath,
+                                                                  'Comic (*.cbz)')
+            if fname[0] != '':
+                if sys.platform.startswith('win'):
+                    sname = fname[0].replace('/', '\\')
+                else:
+                    sname = fname[0]
+                self.lastPath = os.path.abspath(os.path.join(sname, os.pardir))
+        if sname != '':
             try:
-                self.editor.loadData(fname)
+                self.editor.loadData(sname)
             except Exception as err:
                 _, _, traceback = sys.exc_info()
                 GUI.sentry.captureException()
@@ -618,9 +628,9 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
     def togglequalityBox(self, value):
         profile = GUI.profiles[str(GUI.deviceBox.currentText())]
         if value == 2:
-            if profile['Label'] in ['KV']:
+            if profile['Label'] in ['KV', 'KO']:
                 self.addMessage('This option is intended for older Kindle models.', 'warning')
-                self.addMessage('It will not increase quality on a device with 300 ppi screen.', 'warning')
+                self.addMessage('On this device, quality improvement will be negligible.', 'warning')
             GUI.upscaleBox.setEnabled(False)
             GUI.upscaleBox.setChecked(True)
         else:
@@ -918,6 +928,8 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
                 MW.resize(500, 500)
 
         self.profiles = {
+            "Kindle Oasis 2": {'PVOptions': True, 'ForceExpert': False, 'DefaultFormat': 0,
+                               'DefaultUpscale': True, 'Label': 'KO'},
             "Kindle Oasis": {'PVOptions': True, 'ForceExpert': False, 'DefaultFormat': 0,
                              'DefaultUpscale': True, 'Label': 'KV'},
             "Kindle Voyage": {'PVOptions': True, 'ForceExpert': False, 'DefaultFormat': 0,
@@ -956,6 +968,7 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
                              'DefaultUpscale': False, 'Label': 'K34'},
         }
         profilesGUI = [
+            "Kindle Oasis 2",
             "Kindle Oasis",
             "Kindle Voyage",
             "Kindle PW 3",
@@ -1106,7 +1119,10 @@ class KCCGUI_MetaEditor(KCC_ui_editor.Ui_editorDialog):
         for field in (self.writerLine, self.pencillerLine, self.inkerLine, self.coloristLine):
             field.setText(', '.join(self.parser.data[field.objectName().capitalize()[:-4] + 's']))
         if self.seriesLine.text() == '':
-            self.seriesLine.setText(file.split('\\')[-1].split('/')[-1].split('.')[0])
+            if file.endswith('.xml'):
+                self.seriesLine.setText(file.split('\\')[-2])
+            else:
+                self.seriesLine.setText(file.split('\\')[-1].split('/')[-1].split('.')[0])
 
     def saveData(self):
         for field in (self.volumeLine, self.numberLine, self.muidLine):
diff --git a/kindlecomicconverter/KCC_ui.py b/kindlecomicconverter/KCC_ui.py
index ef8fcbf..b70f3ef 100644
--- a/kindlecomicconverter/KCC_ui.py
+++ b/kindlecomicconverter/KCC_ui.py
@@ -258,6 +258,7 @@ class Ui_mainWindow(object):
         self.colorBox.setText(_translate("mainWindow", "Color mode"))
         self.gammaLabel.setText(_translate("mainWindow", "Gamma: Auto"))
         self.editorButton.setText(_translate("mainWindow", "Editor"))
+        self.editorButton.setToolTip(_translate("mainWindow", "<html><head/><body><p  style=\'white-space:pre\'>Shift+Click to edit directory.</p></body></html>"))
         self.wikiButton.setText(_translate("mainWindow", "Wiki"))
         self.directoryButton.setToolTip(_translate("mainWindow", "<html><head/><body><p style=\'white-space:pre\'>Add directory containing JPG, PNG or GIF files to queue.<br/><span style=\" font-weight:600;\">CBR, CBZ and CB7 files inside will not be processed!</span></p></body></html>"))
         self.directoryButton.setText(_translate("mainWindow", "Add directory"))
diff --git a/kindlecomicconverter/__init__.py b/kindlecomicconverter/__init__.py
index 45fe8a6..dad32ea 100644
--- a/kindlecomicconverter/__init__.py
+++ b/kindlecomicconverter/__init__.py
@@ -1,4 +1,4 @@
-__version__ = '5.4.1'
+__version__ = '5.4.2'
 __license__ = 'ISC'
 __copyright__ = '2012-2017, Ciro Mattia Gonano <[email protected]>, Pawel Jastrzebski <[email protected]>'
 __docformat__ = 'restructuredtext en'
diff --git a/kindlecomicconverter/comic2ebook.py b/kindlecomicconverter/comic2ebook.py
index 4d5f574..e27d5e6 100755
--- a/kindlecomicconverter/comic2ebook.py
+++ b/kindlecomicconverter/comic2ebook.py
@@ -104,7 +104,7 @@ def buildHTML(path, imgfile, imgfilepath):
     htmlfile = os.path.join(htmlpath, filename[0] + '.xhtml')
     imgsize = Image.open(os.path.join(head, "Images", postfix, imgfile)).size
     if options.hq:
-        imgsizeframe = deviceres
+        imgsizeframe = (int(imgsize[0] // 1.5), int(imgsize[1] // 1.5))
     else:
         imgsizeframe = imgsize
     f = open(htmlfile, "w", encoding='UTF-8')
@@ -118,7 +118,7 @@ def buildHTML(path, imgfile, imgfilepath):
                   "content=\"width=" + str(imgsize[0]) + ", height=" + str(imgsize[1]) + "\"/>\n"
                   "</head>\n",
                   "<body style=\"" + additionalStyle + "\">\n",
-                  "<div style=\"text-align:center;top:" + getTopMargin(deviceres, imgsize) + "%;\">\n",
+                  "<div style=\"text-align:center;top:" + getTopMargin(deviceres, imgsizeframe) + "%;\">\n",
                   "<img width=\"" + str(imgsizeframe[0]) + "\" height=\"" + str(imgsizeframe[1]) + "\" ",
                   "src=\"", "../" * backref, "Images/", postfix, imgfile, "\"/>\n</div>\n"])
     if options.iskindle and options.panelview:
@@ -699,7 +699,7 @@ def sanitizeTree(filetree):
     for root, dirs, files in os.walk(filetree, False):
         for name in files:
             splitname = os.path.splitext(name)
-            slugified = slugify(splitname[0])
+            slugified = slugify(splitname[0], False)
             while os.path.exists(os.path.join(root, slugified + splitname[1])) and splitname[0].upper()\
                     != slugified.upper():
                 slugified += "A"
@@ -709,7 +709,7 @@ def sanitizeTree(filetree):
                 os.replace(key, newKey)
         for name in dirs:
             tmpName = name
-            slugified = slugify(name)
+            slugified = slugify(name, True)
             while os.path.exists(os.path.join(root, slugified)) and name.upper() != slugified.upper():
                 slugified += "A"
             chapterNames[slugified] = tmpName
@@ -856,8 +856,11 @@ def createNewTome():
     return tomePath, tomePathRoot
 
 
-def slugify(value):
-    value = slugifyExt(value)
+def slugify(value, isDir):
+    if isDir:
+        value = slugifyExt(value, regex_pattern=r'[^-a-z0-9_\.]+')
+    else:
+        value = slugifyExt(value)
     value = sub(r'0*([0-9]{4,})', r'\1', sub(r'([0-9]+)', r'0000\1', value, count=2))
     return value
 
@@ -887,8 +890,8 @@ def makeParser():
     otherOptions = OptionGroup(psr, "OTHER")
 
     mainOptions.add_option("-p", "--profile", action="store", dest="profile", default="KV",
-                           help="Device profile (Available options: K1, K2, K34, K578, KDX, KPW, KV, KoMT, KoG, KoGHD,"
-                                " KoA, KoAHD, KoAH2O, KoAO) [Default=KV]")
+                           help="Device profile (Available options: K1, K2, K34, K578, KDX, KPW, KV, KO, KoMT, KoG,"
+                                " KoGHD, KoA, KoAHD, KoAH2O, KoAO) [Default=KV]")
     mainOptions.add_option("-m", "--manga-style", action="store_true", dest="righttoleft", default=False,
                            help="Manga style (right-to-left reading and splitting)")
     mainOptions.add_option("-q", "--hq", action="store_true", dest="hq", default=False,
@@ -951,13 +954,13 @@ def checkOptions():
     options.iskindle = False
     options.bordersColor = None
     if options.format == 'Auto':
-        if options.profile in ['K1', 'K2', 'K34', 'K578', 'KPW', 'KV']:
+        if options.profile in ['K1', 'K2', 'K34', 'K578', 'KPW', 'KV', 'KO']:
             options.format = 'MOBI'
         elif options.profile in ['OTHER', 'KoMT', 'KoG', 'KoGHD', 'KoA', 'KoAHD', 'KoAH2O', 'KoAO']:
             options.format = 'EPUB'
         elif options.profile in ['KDX']:
             options.format = 'CBZ'
-    if options.profile in ['K1', 'K2', 'K34', 'K578', 'KPW', 'KV']:
+    if options.profile in ['K1', 'K2', 'K34', 'K578', 'KPW', 'KV', 'KO']:
         options.iskindle = True
     if options.white_borders:
         options.bordersColor = 'white'
diff --git a/kindlecomicconverter/image.py b/kindlecomicconverter/image.py
index c95817e..e7f29a4 100755
--- a/kindlecomicconverter/image.py
+++ b/kindlecomicconverter/image.py
@@ -85,6 +85,7 @@ class ProfileData:
         'KDX': ("Kindle DX/DXG", (824, 1000), Palette16, 1.8),
         'KPW': ("Kindle Paperwhite 1/2", (758, 1024), Palette16, 1.8),
         'KV': ("Kindle Paperwhite 3/Voyage/Oasis", (1072, 1448), Palette16, 1.8),
+        'KO': ("Kindle Oasis 2", (1264, 1680), Palette16, 1.8),
         'KoMT': ("Kobo Mini/Touch", (600, 800), Palette16, 1.8),
         'KoG': ("Kobo Glo", (768, 1024), Palette16, 1.8),
         'KoGHD': ("Kobo Glo HD", (1072, 1448), Palette16, 1.8),
diff --git a/kindlecomicconverter/metadata.py b/kindlecomicconverter/metadata.py
index f2cf488..714dcd1 100644
--- a/kindlecomicconverter/metadata.py
+++ b/kindlecomicconverter/metadata.py
@@ -43,10 +43,10 @@ class MetadataParser:
                      'Bookmarks': []}
         self.rawdata = None
         self.compressor = None
-        if self.source.endswith('.xml'):
+        if self.source.endswith('.xml') and os.path.exists(self.source):
             self.rawdata = parse(self.source)
             self.parseXML()
-        else:
+        elif not self.source.endswith('.xml'):
             if is_zipfile(self.source):
                 self.compressor = 'zip'
                 with ZipFile(self.source) as zip_file:
diff --git a/other/osx/Info.plist b/other/osx/Info.plist
index d8fad38..158bd62 100644
--- a/other/osx/Info.plist
+++ b/other/osx/Info.plist
@@ -30,7 +30,7 @@
 	<key>CFBundleExecutable</key>
 	<string>MacOS/Kindle Comic Converter</string>
 	<key>CFBundleGetInfoString</key>
-	<string>KindleComicConverter 5.4.1, written 2012-2017 by Ciro Mattia Gonano and Pawel Jastrzebski</string>
+	<string>KindleComicConverter 5.4.2, written 2012-2017 by Ciro Mattia Gonano and Pawel Jastrzebski</string>
 	<key>CFBundleIconFile</key>
 	<string>comic2ebook.icns</string>
 	<key>CFBundleIdentifier</key>
@@ -42,11 +42,11 @@
 	<key>CFBundlePackageType</key>
 	<string>APPL</string>
 	<key>CFBundleShortVersionString</key>
-	<string>5.4.1</string>
+	<string>5.4.2</string>
 	<key>CFBundleSignature</key>
 	<string>????</string>
 	<key>CFBundleVersion</key>
-	<string>5.4.1</string>
+	<string>5.4.2</string>
 	<key>LSEnvironment</key>
 	<dict>
 		<key>PATH</key>
diff --git a/other/windows/vc_redist.x64.exe b/other/windows/vc_redist.x64.exe
deleted file mode 100644
index 048fda2..0000000
--- a/other/windows/vc_redist.x64.exe
+++ /dev/null
Binary files differdiff --git a/setup.py b/setup.py
index 89c41a0..c50dcaa 100755
--- a/setup.py
+++ b/setup.py
@@ -71,6 +71,7 @@ class BuildBinaryCommand(distutils.cmd.Command):
                       '--category "graphics" -d "unrar | unrar-free" -d "p7zip-full" -d "libc6" usr')
             exit(0)
 
+
 setuptools.setup(
     cmdclass={
         'build_binary': BuildBinaryCommand,