Added some setting for clearing cache and tuning the issue identifier

git-svn-id: http://comictagger.googlecode.com/svn/trunk@68 6c5673fe-1810-88d6-992b-cd32ca31540c
This commit is contained in:
beville@gmail.com 2012-11-20 08:57:12 +00:00
parent da74046eb6
commit 8e32f3c755
12 changed files with 348 additions and 257 deletions

View File

@ -25,15 +25,20 @@ import sys
import os
import datetime
from settings import ComicTaggerSettings
class ComicVineCacher:
def __init__(self, settings_folder ):
self.settings_folder = settings_folder
def __init__(self ):
self.settings_folder = ComicTaggerSettings.getSettingsFolder()
self.db_file = os.path.join( self.settings_folder, "cv_cache.db")
if not os.path.exists( self.db_file ):
self.create_cache_db()
def clearCache( self ):
os.unlink( self.db_file )
def create_cache_db( self ):
# this will wipe out any existing version

View File

@ -62,7 +62,7 @@ class ComicVineTalker(QObject):
# before we search online, look in our cache, since we might have
# done this same search recently
cvc = ComicVineCacher( ComicTaggerSettings.getSettingsFolder() )
cvc = ComicVineCacher( )
if not refresh_cache:
cached_search_results = cvc.get_search_results( series_name )
@ -134,7 +134,7 @@ class ComicVineTalker(QObject):
# before we search online, look in our cache, since we might already
# have this info
cvc = ComicVineCacher( ComicTaggerSettings.getSettingsFolder() )
cvc = ComicVineCacher( )
cached_volume_result = cvc.get_volume_info( series_id )
if cached_volume_result is not None:
@ -284,11 +284,11 @@ class ComicVineTalker(QObject):
# before we search online, look in our cache, since we might already
# have this info
cvc = ComicVineCacher( ComicTaggerSettings.getSettingsFolder() )
cvc = ComicVineCacher( )
return cvc.get_issue_select_details( issue_id )
def cacheIssueSelectDetails( self, issue_id, image_url, thumb_url, month, year ):
cvc = ComicVineCacher( ComicTaggerSettings.getSettingsFolder() )
cvc = ComicVineCacher( )
cvc.add_issue_select_details( issue_id, image_url, thumb_url, month, year )

View File

@ -46,6 +46,12 @@ class ImageFetcher(QObject):
if not os.path.exists( self.db_file ):
self.create_image_db()
def clearCache( self ):
os.unlink( self.db_file )
if os.path.isdir( self.cache_folder ):
shutil.rmtree( self.cache_folder )
def fetch( self, url, user_data=None, blocking=False ):
"""
If called with blocking=True, this will block until the image is

View File

@ -42,7 +42,7 @@ class IssueIdentifier:
ResultOneGoodMatch = 4
ResultMultipleGoodMatches = 5
def __init__(self, comic_archive, cv_api_key ):
def __init__(self, comic_archive, settings ):
self.comic_archive = comic_archive
self.image_hasher = 1
@ -58,13 +58,13 @@ class IssueIdentifier:
self.strong_score_thresh = 8
# used to eliminate series names that are too long based on our search string
self.length_delta_thresh = 5
self.length_delta_thresh = settings.id_length_delta_thresh
# used to eliminate unlikely publishers
self.publisher_blacklist = [ 'panini comics', 'abril', 'scholastic book services' ]
#self.publisher_blacklist = [ 'panini comics', 'abril', 'scholastic book services' ]
self.publisher_blacklist = [ s.strip().lower() for s in settings.id_publisher_blacklist.split(',') ]
self.additional_metadata = GenericMetadata()
self.cv_api_key = cv_api_key
self.output_function = IssueIdentifier.defaultWriteOutput
self.callback = None
self.search_result = self.ResultNoMatches
@ -239,8 +239,9 @@ class IssueIdentifier:
if keys['month'] is not None:
self.log_msg( "\tMonth : " + keys['month'] )
self.log_msg("Publisher Blacklist: " + str(self.publisher_blacklist))
comicVine = ComicVineTalker( self.cv_api_key )
comicVine = ComicVineTalker( )
#self.log_msg( ( "Searching for " + keys['series'] + "...")
self.log_msg( "Searching for {0} #{1} ...".format( keys['series'], keys['issue_number']) )

View File

@ -98,8 +98,6 @@ class IssueSelectionWindow(QtGui.QDialog):
row += 1
#TODO look for given issue in list, and select that one
self.twList.setSortingEnabled(True)
self.twList.sortItems( 0 , QtCore.Qt.AscendingOrder )

View File

@ -43,6 +43,10 @@ class ComicTaggerSettings:
last_main_window_x = 0
last_main_window_y = 0
# identifier settings
id_length_delta_thresh = 5
id_publisher_blacklist = "panini comics, abril, scholastic book services"
@staticmethod
def getSettingsFolder():
if platform.system() == "Windows":
@ -117,6 +121,11 @@ class ComicTaggerSettings:
self.last_main_window_x = self.config.getint( 'auto', 'last_main_window_x' )
if self.config.has_option('auto', 'last_main_window_y'):
self.last_main_window_y = self.config.getint( 'auto', 'last_main_window_y' )
if self.config.has_option('identifier', 'id_length_delta_thresh'):
self.id_length_delta_thresh = self.config.getint( 'identifier', 'id_length_delta_thresh' )
if self.config.has_option('identifier', 'id_publisher_blacklist'):
self.id_publisher_blacklist = self.config.get( 'identifier', 'id_publisher_blacklist' )
def save( self ):
@ -136,6 +145,12 @@ class ComicTaggerSettings:
self.config.set( 'auto', 'last_main_window_height', self.last_main_window_height )
self.config.set( 'auto', 'last_main_window_x', self.last_main_window_x )
self.config.set( 'auto', 'last_main_window_y', self.last_main_window_y )
if not self.config.has_section( 'identifier' ):
self.config.add_section( 'identifier' )
self.config.set( 'identifier', 'id_length_delta_thresh', self.id_length_delta_thresh )
self.config.set( 'identifier', 'id_publisher_blacklist', self.id_publisher_blacklist )
with open( self.settings_file, 'wb') as configfile:
self.config.write(configfile)

View File

@ -23,8 +23,9 @@ import os
from PyQt4 import QtCore, QtGui, uic
from settings import ComicTaggerSettings
from comicvinetalker import *
from comicvinecacher import ComicVineCacher
from imagefetcher import ImageFetcher
import utils
windowsRarHelp = """
<html><head/><body><p>In order to write to CBR/RAR archives,
@ -48,10 +49,8 @@ macRarHelp = """
</p></body></html>
"""
class SettingsWindow(QtGui.QDialog):
def __init__(self, parent, settings ):
super(SettingsWindow, self).__init__(parent)
@ -72,45 +71,34 @@ class SettingsWindow(QtGui.QDialog):
self.lblRarHelp.setText( macRarHelp )
# Copy values from settings to form
self.leCVAPIKey.setText( self.settings.cv_api_key )
self.leRarExePath.setText( self.settings.rar_exe_path )
self.leUnrarExePath.setText( self.settings.unrar_exe_path )
self.leNameLengthDeltaThresh.setText( str(self.settings.id_length_delta_thresh) )
self.tePublisherBlacklist.setPlainText( self.settings.id_publisher_blacklist )
self.btnTestKey.clicked.connect(self.testAPIKey)
self.btnBrowseRar.clicked.connect(self.selectRar)
self.btnBrowseUnrar.clicked.connect(self.selectUnrar)
self.btnBrowseUnrar.clicked.connect(self.selectUnrar)
self.btnClearCache.clicked.connect(self.clearCache)
def accept( self ):
# Copy values from form to settings and save
self.settings.cv_api_key = str(self.leCVAPIKey.text())
self.settings.rar_exe_path = str(self.leRarExePath.text())
self.settings.unrar_exe_path = str(self.leUnrarExePath.text())
# make sure unrar program is now in the path for the UnRAR class
utils.addtopath(os.path.dirname(self.settings.unrar_exe_path))
if not str(self.leNameLengthDeltaThresh.text()).isdigit():
QtGui.QMessageBox.information(self,"Settings", "The Name Length Delta Threshold must be a number!")
return
self.settings.id_length_delta_thresh = int(self.leNameLengthDeltaThresh.text())
self.settings.id_publisher_blacklist = str(self.tePublisherBlacklist.toPlainText())
self.settings.save()
QtGui.QDialog.accept(self)
def testAPIKey( self ):
# TODO hourglass
palette = self.lblResult.palette()
bad_color = QtGui.QColor(255, 0, 0)
good_color = QtGui.QColor(0, 255, 0)
comicVine = ComicVineTalker( str(self.leCVAPIKey.text()) )
if comicVine.testKey( ):
palette.setColor(self.lblResult.foregroundRole(), good_color)
self.lblResult.setText("Good Key!")
else:
palette.setColor(self.lblResult.foregroundRole(), bad_color)
self.lblResult.setText("Bad Key :(")
self.lblResult.setPalette(palette)
def selectRar( self ):
self.selectFile( self.leRarExePath, "RAR" )
@ -118,6 +106,9 @@ class SettingsWindow(QtGui.QDialog):
def selectUnrar( self ):
self.selectFile( self.leUnrarExePath, "UnRAR" )
def clearCache( self ):
ImageFetcher().clearCache()
ComicVineCacher( ).clearCache()
def selectFile( self, control, name ):

View File

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>750</width>
<height>403</height>
<width>753</width>
<height>440</height>
</rect>
</property>
<property name="windowTitle">
@ -16,192 +16,286 @@
<property name="sizeGripEnabled">
<bool>false</bool>
</property>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="geometry">
<rect>
<x>530</x>
<y>340</y>
<width>191</width>
<height>30</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>20</x>
<y>20</y>
<width>581</width>
<height>61</height>
</rect>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;To perform online searches using ComicVine, you must first register and request an API key. You can start here: &lt;a href=&quot;http://api.comicvine.com/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;http://api.comicvine.com/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="textFormat">
<enum>Qt::RichText</enum>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
</widget>
<widget class="QWidget" name="formLayoutWidget">
<property name="geometry">
<rect>
<x>20</x>
<y>90</y>
<width>581</width>
<height>41</height>
</rect>
</property>
<layout class="QFormLayout" name="formLayout">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Comic Vine API Key</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="leCVAPIKey"/>
</item>
</layout>
</widget>
<widget class="QLabel" name="lblRarHelp">
<property name="geometry">
<rect>
<x>20</x>
<y>150</y>
<width>611</width>
<height>61</height>
</rect>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;In order to read/write to CBR/RAR archives, you will need to have the shareware tools from &lt;a href=&quot;www.win-rar.com/download.html&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;WinRAR&lt;/span&gt;&lt;/a&gt; installed. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="textFormat">
<enum>Qt::RichText</enum>
</property>
<property name="alignment">
<set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
</widget>
<widget class="QWidget" name="formLayoutWidget_3">
<property name="geometry">
<rect>
<x>20</x>
<y>220</y>
<width>611</width>
<height>71</height>
</rect>
</property>
<layout class="QFormLayout" name="formLayout_3">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>RAR program</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="leRarExePath">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="lblUnrar">
<property name="text">
<string>UnRAR program</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="leUnrarExePath">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QPushButton" name="btnBrowseRar">
<property name="geometry">
<rect>
<x>640</x>
<y>220</y>
<width>41</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
<widget class="QPushButton" name="btnBrowseUnrar">
<property name="geometry">
<rect>
<x>640</x>
<y>250</y>
<width>41</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
<widget class="QPushButton" name="btnTestKey">
<property name="geometry">
<rect>
<x>610</x>
<y>90</y>
<width>94</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>Test Key</string>
</property>
</widget>
<widget class="QLabel" name="lblResult">
<property name="geometry">
<rect>
<x>620</x>
<y>120</y>
<width>71</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>General</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_2">
<item row="3" column="0">
<widget class="QLabel" name="lblResult">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="0" rowspan="5" colspan="2">
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="label_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>ComicTagger keeps a cache of online data to improve speed. If you need to free up the disk space, or the responses seems out of date, clear it.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnClearCache">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Clear Cache</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lblRarHelp">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;In order to read/write to CBR/RAR archives, you will need to have the shareware tools from &lt;a href=&quot;www.win-rar.com/download.html&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;WinRAR&lt;/span&gt;&lt;/a&gt; installed. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="textFormat">
<enum>Qt::RichText</enum>
</property>
<property name="alignment">
<set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse</set>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label_7">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>200</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>RAR program</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="leRarExePath">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnBrowseRar">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="lblUnrar">
<property name="minimumSize">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>UnRAR program</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="leUnrarExePath">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnBrowseUnrar">
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Identifier</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;These settings are for the automatic issue identifier which searches online for matches. They will not affect &amp;quot;manual&amp;quot; searching.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="2" column="0">
<layout class="QFormLayout" name="formLayout_2">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
<item row="0" column="0" colspan="2">
<widget class="QLabel" name="label_6">
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The &amp;quot;Name Length Delta Threshold&amp;quot; is for eliminating automatic search matches that are too long compared to your series name search. The higher it is, the more likely to have a good match, but each search will take longer and use more bandwidth. Too low, and only the very closest lexical matches will be explored.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Name Length Delta Threshold:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="leNameLengthDeltaThresh">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<widget class="QLabel" name="label_9">
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The &amp;quot;Publisher Blacklist&amp;quot; is for eliminating automatic matches to certain publishers that you know are incorrect. Useful for avoiding international re-prints with same covers or series names. Enter publisher names separated by commas.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Publisher Blacklist:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QPlainTextEdit" name="tePublisherBlacklist">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections>

View File

@ -155,7 +155,7 @@ def process_file_cli( filename, opts, settings ):
# finally, search online
if opts.search_online:
ii = IssueIdentifier( ca, "" )
ii = IssueIdentifier( ca, settings )
if md is None or md.isEmpty:
print "No metadata given to search online with!"

View File

@ -912,7 +912,6 @@ class TaggerWindow( QtGui.QMainWindow):
ok_to_mod = True
if self.isDupeCredit( new_role, new_name):
# delete the dupe credit from list
#TODO warn user!!
reply = QtGui.QMessageBox.question(self,
self.tr("Duplicate Credit!"),
self.tr("This will create a duplicate credit entry. Would you like to merge the entries, or create a duplicate?"),

View File

@ -2,19 +2,6 @@
Features
----------------
Raw Tag Block Window
Settings/Preferences Dialog
Remove API Key
Add clear cache
Add reset settings
Tab w/Identifier Settings
Add publisher blacklist
other Identifier tunings
save Last tag style
save Last "Open" folder (include dragged)
Add class for warning/info messages with "Don't show again" checkbox.
Add list of these flags to settings
@ -22,19 +9,23 @@ Style sheets for windows/mac/linux
Better stripping of html from CV text
Add warning message to allow writing CBI to RAR, and ask them to contact CBL ! :-)
Move RAR/CBL test into ComicArchive class, isWriteable
-----------------
Bugs
----------------
Unicode errors when piping or redirecting stdout
Broke windows installer graphics somehow
Windows zip and rar: set proper path for writing to archive
SERIOUS BUG: rebuilding zips!
http://stackoverflow.com/questions/11578443/trigger-io-errno-18-cross-device-link
OSX:
Frozen apps better finding of resource files
OSX
toolbar
weird unrar complaints
Page browser sizing
@ -49,14 +40,12 @@ Check all HTTP responses for errors
Lots of error checking
-------------
Future
------------
File rename
-Dialog??
TaggerWindow entry fields
Special tabbed Dialog needed for:
@ -70,7 +59,6 @@ CLI
interactive for choices option?
--- or defer choices to end, by keeping special log of those files
Add warning message to allow writing CBI to RAR, and ask them to contact CBL ! :-)
Scrape alternate Covers from ComicVine issue pages
@ -88,19 +76,14 @@ Wizard for converting between tag styles
App option to covert RAR to ZIP
Archive function to detect tag blocks out of sync
Idea: Support only CBI or CIX for any given file, and not both
If user selects different one, warn about potential loss/re-arranging of data
Longer term:
Think about mass tagging and (semi) automatic volume selection
<?xml version="1.0"?>
-<ComicInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
----------------------------------------------
COMIC RACK Questions

View File

@ -124,8 +124,7 @@ class VolumeSelectionWindow(QtGui.QDialog):
self.iddialog.rejected.connect( self.identifyCancel )
self.iddialog.show()
self.ii = IssueIdentifier( self.comic_archive, self.cv_api_key )
self.ii = IssueIdentifier( self.comic_archive, self.settings )
md = GenericMetadata()
md.series = self.series_name