69 Commits
Author SHA1 Message Date
timmy 0f82ec8340 Merge branch 'bump-settngs' into develop 2026-08-16 13:06:44 -07:00
timmy 4351f929e5 Update setting group names
Make group names presentable to users and add builtin plugins during namespace generation.
Revamp talkeruigenerator.py to use generated group and setting names and remove as many hard-coded strings as possible
Add a --list-plugins commandline option
2026-08-15 13:42:50 -07:00
timmy 47be75375c Convert ComicIssue into GenericMetadata
I could not find a good reason for ComicIssue to exist other than that
 it had more attributes than GenericMetadata, so it has been replaced.
New attributes for GenericMetadata:
  series_id:        a string uniquely identifying the series to tag_origin
  series_aliases:   alternate series names that are not the canonical name
  title_aliases:    alternate issue titles that are not the canonical name
  alternate_images: a list of urls to alternate cover images

Updated attributes for GenericMetadata:
  genre        -> genres:        str -> list[str]
  comments     -> description:   str -> str
  story_arc    -> story_arcs:    str -> list[str]
  series_group -> series_groups: str -> list[str]
  character    -> characters:    str -> list[str]
  team         -> teams:         str -> list[str]
  location     -> locations:     str -> list[str]
  tag_origin   -> tag_origin:    str -> TagOrigin (tuple[str, str])

ComicSeries has been relocated to the ComicAPI package, currently has no
 usage within ComicAPI.
CreditMetadata has been renamed to Credit and has replaced Credit from
 ComicTalker.
fetch_series has been added to ComicTalker, this is currently only used
 in the GUI when a series is selected and does not already contain the
 needed fields, this function should always be cached.

A new split function has been added to ComicAPI, all uses of split on
 single characters have been updated to use this

cleanup_html and the corresponding setting are now only used in
 ComicTagger proper, for display we want any html directly from the
 upstream. When applying the metadata we then strip the description of
 any html.

A new conversion has been added to the MetadataFormatter:
  j: joins any lists into a string with ', '. Note this is a valid
     operation on strings as well, it will add ', ' in between every
     character.

parse_settings now assigns the given ComicTaggerPaths object to the
 result ensuring that the correct path is always used.

Add test for split

Fix attribute names

Fix cbr tests
2026-08-15 13:39:46 -07:00
timmy 4fdb49a5cd Update settngs to typed version fixes #453
Generate a namespace object for typing settngs
2026-08-15 13:39:46 -07:00
Mizaki af96c3db3e Replace instances of Comic Vine to use the talker's name
Change data to metadata
2026-08-15 13:39:46 -07:00
timmy 60e3497818 Automate contributions
docs(contributor): contrib-readme-action has updated readme

Update AUTHORS

Update copyright statements to ComicTagger Authors

Update AUTHORS

Restrict contributions updates to only run on pushes to develop

Fix actions failure when there are no new contributors
2026-08-15 13:39:46 -07:00
timmy bcff17b081 Merge branch 'talker-cleanup' into develop 2026-08-15 13:39:46 -07:00
timmy 4a3194cb85 Merge branch 'settings-consistency' into develop 2026-08-15 13:39:46 -07:00
timmy 2844582ff0 Merge branch 'mizaki-phash' into develop 2026-08-15 13:39:46 -07:00
timmy 693c344cc1 Merge branch 'crop-border' into develop 2026-08-15 13:39:46 -07:00
timmy bba70aa98b Tidy Issue Identifier
Switch comictalker TypedDicts to dataclasses
Stop using thumb image
2026-08-15 13:39:46 -07:00
timmy f3667c8e2d Simplify year matching 2026-08-15 13:39:46 -07:00
timmy 5c88cf8a96 Change issue id to strings 2026-08-15 13:39:46 -07:00
timmy 8bd9182455 Simplify id matching 2026-08-15 13:39:46 -07:00
timmy bdcef2295e Fix color space on CMYK images 2026-08-15 13:39:46 -07:00
timmy d05075b593 Merge branch 'volume-to-series' into develop
fixup series
2026-08-15 13:39:46 -07:00
timmy 2951dc40b9 Merge branch 'settings' into develop
Merge branch 'mizaki-rename_namespace_fix' into develop
2026-08-15 13:39:46 -07:00
timmy 81ee456fe7 Merge branch 'mizaki-infosources' into dev
Fix tests

Stop setting the notes field in map_comic_issue_to_metadata

Make errors loading the ComicVineTalker object explicit

Re-add --only-set-cv-key feature

Cleanup

Move most options passed in to ComicVineTalker to ComicTalker
Give ComicCacher and ComicTalker a version argument to remove all
  references to comictaggerlib
Update default arguments to reflect what is required to use these classes
2026-08-15 13:39:46 -07:00
timmy 36ad8b8c25 Merge branch 'mizaki-fixii_keys' into develop 2026-08-15 11:52:55 -07:00
timmy d980fe7def fixup whitespace other issueidentifier 2026-08-15 11:52:45 -07:00
Mizaki 89e9f9a675 FIX: A hamming distance of 0 is a perfect match. Adjust to 100 for empty URLs 2026-08-15 10:29:26 -07:00
Mizaki 880b1be401 Return zero score if there is no image url. Fixes #392 2022-11-10 16:15:27 +00:00
timmy 2daf9b3ed8 Style and typo fixes 2022-10-04 16:15:55 -07:00
timmy 77a53a6834 Update dependencies
Includes changes from pyupgrade
2022-08-10 20:55:46 -07:00
timmy 40314367c9 Improve formatting and consistency 2022-07-18 12:17:13 -07:00
timmy 947dc81c74 use thefuzz
use thefuzz

use thefuzz
2022-07-13 23:11:17 -07:00
timmy 68efcc74fb Updates
Use casefold in place of lower
Make lint job fail if errors are detected
Use join instead of utils.list_to_string
Simplify get_recursive_filelist with the glob library
Fix handling of un-parseable numbers in xlate
2022-07-01 16:22:01 -07:00
timmy ff73cbf2f9 Fix small issues
Fix spelling errors
Remove Redundant exception types
Remove dead code
Change the forum link to point to GitHub discussions
2022-06-07 20:22:33 -07:00
timmy 04409a55c7 Handle more exceptions
Handle exceptions during metadata save fixes #309
Handle exceptions during metadata read fixes #126 and #309
2022-06-06 20:04:51 -07:00
timmy fd4c453854 Apply pre-commit configuration 2022-06-02 18:32:16 -07:00
timmy 3e3dcb03f9 Typed 2022-05-19 13:19:19 -07:00
timmy 205d337751 Add new filename parser
I created a new, mostly over complicated, filename parser
The new parser works well in many cases and will collect more data than
the original parser but will sometimes give odd results because of how
complicated it has been made e.g.
'100 page giant' will cause issues however '100-page giant' will not

Remove the parse scan info setting as it was not respected in many cases
2022-05-06 00:30:33 -07:00
timmy 135544c0db Code cleanup 2022-04-20 13:13:03 -07:00
timmy 0fe881df59 Code cleanup 2022-04-18 19:40:04 -07:00
timmy c50cef568e Add basic logging 2022-04-04 19:10:22 -07:00
timmy e10f7dd7a7 Code cleanup
Remove no longer used google scripts
Remove convenience files from comicataggerlib and import comicapi directly
Add type-hints to facilitate auto-complete tools
Make PyQt5 code more compatible with PyQt6

Implement automatic tooling
isort and black for code formatting
Line length has been set to 120
flake8 for code standards with exceptions:
E203 - Whitespace before ':'  - format compatiblity with black
E501 - Line too long          - flake8 line limit cannot be set
E722 - Do not use bare except - fixing bare except statements is a
                                lot of overhead and there are already
                                many in the codebase

These changes, along with some manual fixes creates much more readable code.
See examples below:

diff --git a/comicapi/comet.py b/comicapi/comet.py
index d1741c5..52dc195 100644
--- a/comicapi/comet.py
+++ b/comicapi/comet.py
@@ -166,7 +166,2 @@ class CoMet:

-            if credit['role'].lower() in set(self.editor_synonyms):
-                ET.SubElement(
-                    root,
-                    'editor').text = "{0}".format(
-                    credit['person'])

@@ -174,2 +169,4 @@ class CoMet:
         self.indent(root)
+            if credit["role"].lower() in set(self.editor_synonyms):
+                ET.SubElement(root, "editor").text = str(credit["person"])

diff --git a/comictaggerlib/autotagmatchwindow.py b/comictaggerlib/autotagmatchwindow.py
index 4338176..9219f01 100644
--- a/comictaggerlib/autotagmatchwindow.py
+++ b/comictaggerlib/autotagmatchwindow.py
@@ -63,4 +63,3 @@ class AutoTagMatchWindow(QtWidgets.QDialog):
             self.skipButton, QtWidgets.QDialogButtonBox.ActionRole)
-        self.buttonBox.button(QtWidgets.QDialogButtonBox.Ok).setText(
-            "Accept and Write Tags")
+        self.buttonBox.button(QtWidgets.QDialogButtonBox.StandardButton.Ok).setText("Accept and Write Tags")

diff --git a/comictaggerlib/cli.py b/comictaggerlib/cli.py
index 688907d..dbd0c2e 100644
--- a/comictaggerlib/cli.py
+++ b/comictaggerlib/cli.py
@@ -293,7 +293,3 @@ def process_file_cli(filename, opts, settings, match_results):
                 if opts.raw:
-                    print((
-                        "{0}".format(
-                            str(
-                                ca.readRawCIX(),
-                                errors='ignore'))))
+                    print(ca.read_raw_cix())
                 else:
2022-04-02 14:21:37 -07:00
timmy 03b8bf4671 Bug fixes
Closes #65,#59,#154,#180,#187,#209
2022-02-21 20:05:07 -08:00
timmy b62e291749 Cleanup settings from #200
Rename blacklist to filter to be more accurate
2022-01-22 15:00:22 -08:00
timmy d46e171bd6 Merge pull request #199 from lordwelch/seriesSearch
Improve issue identification
2021-09-26 17:09:54 -07:00
timmy e7fe520660 Improve issue identification
Move title sanitizing code to utils module
Update issue identifier to compare sanitized names
2021-09-26 17:06:30 -07:00
timmy 03a8d906ea Merge pull request #189 from lordwelch/seriesSearch
Series search
2021-09-21 19:59:26 -07:00
timmy 11bf5a9709 Move to python requests module
Add requests to requirements.txt
Requests is much simpler and fixes all ssl errors.
Comic Vine now requires a unique useragent string
2021-08-11 20:13:53 -07:00
timmy 9bb7fbbc9e Fix errors
Libraries updated and these are no longer needed
2021-08-05 17:21:21 -07:00
davide-romanini 91f82fd6d3 Python3 and QT5 upgrade (#109)
* 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
2018-09-19 22:05:39 +02:00
fcanc d959ac0401 Huge code cleanup
- `autopep8 -aa` for general cleanup;
- Changed order of imports, they should be ordered into 3 groups:
1. standard library imports;
2. 3rd party packages;
3. project imports.
- I commented various imports that were reported as unused by my IDE.
If everything goes fine we can consider to delete them;
- The Apache license disclaimers are now comments since triple-quotes
should be used only for docstrings;
- Fix - `utils.centerWindowOnParent` did not resolve, changed to
`centerWindowOnParent`
2015-02-22 03:30:32 +01:00
fcanc a419969b85 autopep8 -aa
—aggressive, level 2
2015-02-15 12:55:04 +01:00
fcanc ee52448f17 autopep8 -a
—aggressive, level 1
2015-02-15 12:44:09 +01:00
fcanc 79103990fa autopep8
automatically formats Python code to conform to the PEP 8 style guide —
default usage (whitespace changes only)
2015-02-15 11:44:00 +01:00
fcanc 22dbafbc00 Code cleanup, round 1
Some formatting cleanup, plus print modernization, & typos correction.
2015-02-14 00:08:07 +01:00
fcanc 0df283778c Indentation
Replaced tabs with spaces, and removed some trailing spaces.
2015-02-12 23:57:46 +01:00