diff --git a/comictaggerlib/comicvinetalker.py b/comictaggerlib/comicvinetalker.py
index 2090b82..cc15794 100644
--- a/comictaggerlib/comicvinetalker.py
+++ b/comictaggerlib/comicvinetalker.py
@@ -412,7 +412,7 @@ class ComicVineTalker(QObject):
metadata.day, metadata.month, metadata.year = self.parseDateStr( issue_results['cover_date'] )
#metadata.issueCount = volume_results['count_of_issues']
- metadata.comments = self.cleanup_html(issue_results['description'])
+ metadata.comments = self.cleanup_html(issue_results['description'], settings.remove_html_tables)
if settings.use_series_start_as_volume:
metadata.volume = volume_results['start_year']
@@ -458,7 +458,7 @@ class ComicVineTalker(QObject):
metadata.storyArc = utils.listToString(arc_list)
return metadata
- def cleanup_html( self, string):
+ def cleanup_html( self, string, remove_html_tables):
"""
converter = html2text.HTML2Text()
#converter.emphasis_mark = '*'
@@ -488,7 +488,11 @@ class ComicVineTalker(QObject):
#remove the tables
p = re.compile(r'
.*?<\/table>')
- string = p.sub('{}',string)
+ if remove_html_tables:
+ string = p.sub('',string)
+ string = string.replace("*List of covers and their creators:*","")
+ else:
+ string = p.sub('{}',string)
# now strip all other tags
p = re.compile(r'<[^<]*?>')
@@ -499,54 +503,54 @@ class ComicVineTalker(QObject):
newstring = newstring.strip()
- # now rebuild the tables into text from BSoup
- try:
- table_strings = []
- for table in tables:
- rows = []
- hdrs = []
- col_widths = []
- for hdr in table.findAll('th'):
- item = hdr.string.strip()
- hdrs.append(item)
- col_widths.append(len(item))
- rows.append(hdrs)
-
- for row in table.findAll('tr'):
- cols = []
- col = row.findAll('td')
- i = 0
- for c in col:
- item = c.string.strip()
- cols.append(item)
- if len(item) > col_widths[i]:
- col_widths[i] = len(item)
- i += 1
- if len(cols) != 0:
- rows.append(cols)
- # now we have the data, make it into text
- fmtstr =""
- for w in col_widths:
- fmtstr += " {{:{}}}|".format(w+1)
- width = sum(col_widths) + len(col_widths)*2
- print "width=" , width
- table_text = ""
- counter = 0
- for row in rows:
- table_text += fmtstr.format(*row) + "\n"
- if counter == 0 and len(hdrs)!= 0:
- table_text += "-" * width + "\n"
- counter += 1
-
- table_strings.append(table_text)
-
- newstring = newstring.format(*table_strings)
- except:
- # we caught an error rebuilding the table.
- # just bail and remove the formatting
- print "table pare error"
- newstring.replace("{}", "")
-
+ if not remove_html_tables:
+ # now rebuild the tables into text from BSoup
+ try:
+ table_strings = []
+ for table in tables:
+ rows = []
+ hdrs = []
+ col_widths = []
+ for hdr in table.findAll('th'):
+ item = hdr.string.strip()
+ hdrs.append(item)
+ col_widths.append(len(item))
+ rows.append(hdrs)
+
+ for row in table.findAll('tr'):
+ cols = []
+ col = row.findAll('td')
+ i = 0
+ for c in col:
+ item = c.string.strip()
+ cols.append(item)
+ if len(item) > col_widths[i]:
+ col_widths[i] = len(item)
+ i += 1
+ if len(cols) != 0:
+ rows.append(cols)
+ # now we have the data, make it into text
+ fmtstr =""
+ for w in col_widths:
+ fmtstr += " {{:{}}}|".format(w+1)
+ width = sum(col_widths) + len(col_widths)*2
+ print "width=" , width
+ table_text = ""
+ counter = 0
+ for row in rows:
+ table_text += fmtstr.format(*row) + "\n"
+ if counter == 0 and len(hdrs)!= 0:
+ table_text += "-" * width + "\n"
+ counter += 1
+
+ table_strings.append(table_text)
+
+ newstring = newstring.format(*table_strings)
+ except:
+ # we caught an error rebuilding the table.
+ # just bail and remove the formatting
+ print "table parse error"
+ newstring.replace("{}", "")
return newstring
diff --git a/comictaggerlib/settings.py b/comictaggerlib/settings.py
index 79423f7..b5368a7 100644
--- a/comictaggerlib/settings.py
+++ b/comictaggerlib/settings.py
@@ -104,6 +104,8 @@ class ComicTaggerSettings:
# Comic Vine settings
self.use_series_start_as_volume = False
+ self.clear_form_before_populating_from_cv = False
+ self.remove_html_tables = False
# CBL Tranform settings
@@ -235,6 +237,11 @@ class ComicTaggerSettings:
if self.config.has_option('comicvine', 'use_series_start_as_volume'):
self.use_series_start_as_volume = self.config.getboolean( 'comicvine', 'use_series_start_as_volume' )
+ if self.config.has_option('comicvine', 'clear_form_before_populating_from_cv'):
+ self.clear_form_before_populating_from_cv = self.config.getboolean( 'comicvine', 'clear_form_before_populating_from_cv' )
+ if self.config.has_option('comicvine', 'remove_html_tables'):
+ self.remove_html_tables = self.config.getboolean( 'comicvine', 'remove_html_tables' )
+
if self.config.has_option('cbl_transform', 'assume_lone_credit_is_primary'):
self.assume_lone_credit_is_primary = self.config.getboolean( 'cbl_transform', 'assume_lone_credit_is_primary' )
@@ -311,6 +318,8 @@ class ComicTaggerSettings:
self.config.add_section( 'comicvine' )
self.config.set( 'comicvine', 'use_series_start_as_volume', self.use_series_start_as_volume )
+ self.config.set( 'comicvine', 'clear_form_before_populating_from_cv', self.clear_form_before_populating_from_cv )
+ self.config.set( 'comicvine', 'remove_html_tables', self.remove_html_tables )
if not self.config.has_section( 'cbl_transform' ):
self.config.add_section( 'cbl_transform' )
diff --git a/comictaggerlib/settingswindow.py b/comictaggerlib/settingswindow.py
index 2e5dd7c..2f167e6 100644
--- a/comictaggerlib/settingswindow.py
+++ b/comictaggerlib/settingswindow.py
@@ -127,6 +127,10 @@ class SettingsWindow(QtGui.QDialog):
if self.settings.use_series_start_as_volume:
self.cbxUseSeriesStartAsVolume.setCheckState( QtCore.Qt.Checked)
+ if self.settings.clear_form_before_populating_from_cv:
+ self.cbxClearFormBeforePopulating.setCheckState( QtCore.Qt.Checked)
+ if self.settings.remove_html_tables:
+ self.cbxRemoveHtmlTables.setCheckState( QtCore.Qt.Checked)
if self.settings.assume_lone_credit_is_primary:
self.cbxAssumeLoneCreditIsPrimary.setCheckState( QtCore.Qt.Checked)
@@ -177,6 +181,8 @@ class SettingsWindow(QtGui.QDialog):
self.settings.parse_scan_info = self.cbxParseScanInfo.isChecked()
self.settings.use_series_start_as_volume = self.cbxUseSeriesStartAsVolume.isChecked()
+ self.settings.clear_form_before_populating_from_cv = self.cbxClearFormBeforePopulating.isChecked()
+ self.settings.remove_html_tables = self.cbxRemoveHtmlTables.isChecked()
self.settings.assume_lone_credit_is_primary = self.cbxAssumeLoneCreditIsPrimary.isChecked()
self.settings.copy_characters_to_tags = self.cbxCopyCharactersToTags.isChecked()
diff --git a/comictaggerlib/taggerwindow.py b/comictaggerlib/taggerwindow.py
index fcb9a41..00dfecc 100644
--- a/comictaggerlib/taggerwindow.py
+++ b/comictaggerlib/taggerwindow.py
@@ -1003,6 +1003,9 @@ class TaggerWindow( QtGui.QMainWindow):
if self.settings.apply_cbl_transform_on_cv_import:
new_metadata = CBLTransformer( new_metadata, self.settings ).apply()
+
+ if self.settings.clear_form_before_populating_from_cv:
+ self.clearForm()
self.metadata.overlay( new_metadata )
# Now push the new combined data into the edit controls
diff --git a/comictaggerlib/ui/settingswindow.ui b/comictaggerlib/ui/settingswindow.ui
index fc92805..34cd161 100644
--- a/comictaggerlib/ui/settingswindow.ui
+++ b/comictaggerlib/ui/settingswindow.ui
@@ -341,7 +341,7 @@
30
30
- 240
+ 251
25
@@ -349,6 +349,32 @@
Use Series Start Date as Volume
+
+
+
+ 30
+ 50
+ 341
+ 25
+
+
+
+ Clear Form Before Importing Comic Vine data
+
+
+
+
+
+ 30
+ 70
+ 351
+ 25
+
+
+
+ Remove HTML tables from CV summary field
+
+
@@ -385,7 +411,7 @@
11
21
- 246
+ 251
182