91f82fd6d3
* Tweaked search string based on new comic vine search behavior Placated Beaufitul Soup by passing the parser * First cut at porting to Python 3 and PyQt5 * remove debug print * tweaked progress dialog handling for issues on ubuntu gui * Handle bad key more gracefullu * More integration of unrarlib into settings and rest of app * Better handling of "personal" unrar lib setting * PEP 440-compliant version string * Tuned linux rar help strings * Got setup working again * Attempts to build unrar on install * Some minimal desktop integration on various platforms * Fix wrong shortfile * More setup.py enhancements * Use proper temp file * Added comment block at top * Comment out desktop integration attempt for now * Updated some links and info * Fixed the html a bit * Repaired some images that caused libpng to complain * update readme re: py3qt5 branch changes * another note * #108 feat: try to simplify windows build using only pip and python3 * #108 feat: fix python location on appveyor (try 1) * #108 feat: use venv (try 2) * #108 feat: use venv (try 3) * #108 feat: update to latest pyinstaller develop branch * #108 feat: update to latest pyinstaller develop branch (again) * #108: add ssl libraries for windows packaging * #108: refresh env in win build to pick the right mingw * #108: change order of win build script operations * #113: fix subprocess usage in pyinstaller package * bump version
109 lines
3.3 KiB
Python
Executable File
109 lines
3.3 KiB
Python
Executable File
"""A python app to (automatically) tag comic archives"""
|
|
|
|
# Copyright 2012-2014 Anthony Beville
|
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
import os
|
|
import sys
|
|
import signal
|
|
import traceback
|
|
import platform
|
|
|
|
from .settings import ComicTaggerSettings
|
|
# Need to load setting before anything else
|
|
SETTINGS = ComicTaggerSettings()
|
|
|
|
try:
|
|
qt_available = True
|
|
from PyQt5 import QtCore, QtGui, QtWidgets
|
|
from .taggerwindow import TaggerWindow
|
|
except ImportError as e:
|
|
qt_available = False
|
|
|
|
|
|
from . import utils
|
|
from . import cli
|
|
from .options import Options
|
|
from .comicvinetalker import ComicVineTalker
|
|
|
|
def ctmain():
|
|
opts = Options()
|
|
opts.parseCmdLineArgs()
|
|
|
|
# manage the CV API key
|
|
if opts.cv_api_key:
|
|
if opts.cv_api_key != SETTINGS.cv_api_key:
|
|
SETTINGS.cv_api_key = opts.cv_api_key
|
|
SETTINGS.save()
|
|
if opts.only_set_key:
|
|
print("Key set")
|
|
return
|
|
|
|
ComicVineTalker.api_key = SETTINGS.cv_api_key
|
|
|
|
signal.signal(signal.SIGINT, signal.SIG_DFL)
|
|
|
|
if not qt_available and not opts.no_gui:
|
|
opts.no_gui = True
|
|
print("PyQt5 is not available. ComicTagger is limited to command-line mode.", file=sys.stderr)
|
|
|
|
if opts.no_gui:
|
|
cli.cli_mode(opts, SETTINGS)
|
|
else:
|
|
|
|
os.environ['QT_AUTO_SCREEN_SCALE_FACTOR'] = '1'
|
|
|
|
#if platform.system() == "Darwin":
|
|
# QtWidgets.QApplication.setStyle("macintosh")
|
|
#else:
|
|
# QtWidgets.QApplication.setStyle("Fusion")
|
|
|
|
app = QtWidgets.QApplication(sys.argv)
|
|
if platform.system() == "Darwin":
|
|
# Set the MacOS dock icon
|
|
app.setWindowIcon(
|
|
QtGui.QIcon(ComicTaggerSettings.getGraphic('app.png')))
|
|
|
|
if platform.system() == "Windows":
|
|
# For pure python, tell windows that we're not python,
|
|
# so we can have our own taskbar icon
|
|
import ctypes
|
|
myappid = u'comictagger' # arbitrary string
|
|
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid)
|
|
|
|
if platform.system() != "Linux":
|
|
img = QtGui.QPixmap(ComicTaggerSettings.getGraphic('tags.png'))
|
|
|
|
splash = QtWidgets.QSplashScreen(img)
|
|
splash.show()
|
|
splash.raise_()
|
|
app.processEvents()
|
|
|
|
try:
|
|
tagger_window = TaggerWindow(opts.file_list, SETTINGS, opts=opts)
|
|
tagger_window.setWindowIcon(
|
|
QtGui.QIcon(ComicTaggerSettings.getGraphic('app.png')))
|
|
tagger_window.show()
|
|
|
|
if platform.system() != "Linux":
|
|
splash.finish(tagger_window)
|
|
|
|
sys.exit(app.exec_())
|
|
except Exception as e:
|
|
QtWidgets.QMessageBox.critical(
|
|
QtWidgets.QMainWindow(),
|
|
"Error",
|
|
"Unhandled exception in app:\n" +
|
|
traceback.format_exc())
|