123 Commits

Author SHA1 Message Date
timmy 4ec2e2d11b Fix log formatting
CI / lint (ubuntu-latest, 3.9) (push) Has been cancelled
CI / build-and-test (macos-13, 3.13) (push) Has been cancelled
CI / build-and-test (macos-13, 3.9) (push) Has been cancelled
CI / build-and-test (macos-14, 3.13) (push) Has been cancelled
CI / build-and-test (macos-14, 3.9) (push) Has been cancelled
CI / build-and-test (ubuntu-22.04, 3.13) (push) Has been cancelled
CI / build-and-test (ubuntu-22.04, 3.9) (push) Has been cancelled
CI / build-and-test (ubuntu-22.04-arm, 3.13) (push) Has been cancelled
CI / build-and-test (ubuntu-22.04-arm, 3.9) (push) Has been cancelled
CI / build-and-test (windows-latest, 3.13) (push) Has been cancelled
CI / build-and-test (windows-latest, 3.9) (push) Has been cancelled
Contributions / A job to automate contrib in readme (push) Has been cancelled
2025-07-17 22:14:58 -07:00
timmy bfa9b07016 Use efficient list checks 2025-06-29 17:37:11 -07:00
timmy 12f1d11ee8 Merge branch 'mizaki/issue_hash_cover' into develop 2025-05-05 00:20:57 -07:00
timmy 0a7bb4d93d Fix ratelimit on direct series/issue lookups 2025-05-04 15:32:00 -07:00
timmy dfaa2cc11d Reduce number of requests for quick_tag 2025-05-02 14:33:00 -07:00
timmy 2106883c67 Improve ComicCacher performance 2025-05-02 14:12:25 -07:00
timmy 165388ce1b Show more options to the user if there are multiple bad matches
Fix some error cases in the comicvine talker
Remove leftover pprint statement
2025-04-30 17:32:05 -07:00
Mizaki 506fac03c7 Use ImageHash solely 2025-04-17 23:48:53 +01:00
timmy 5ee467465a Fix a cache miss when retrieving multiple issues 2025-01-30 01:39:26 -08:00
timmy 8de35bdfa1 Fix default dict creating unnecessary keys 2025-01-10 16:25:10 -08:00
timmy 4cd70670cc Allow custom paramaters in comicvine url 2024-09-27 15:06:26 -07:00
timmy 5820c36ea5 Fix CV error handling 2024-09-27 14:39:25 -07:00
timmy a4a6d54d7e Merge branch 'cv-cache' into develop 2024-09-20 15:02:20 -07:00
timmy a60eda1602 Typo 2024-09-20 13:57:14 -07:00
timmy 89dfec2363 ComicVine improvements
Add more logging
Add a 10 second timeout to all requests
Log unhandled exceptions
2024-09-19 19:13:03 -07:00
timmy 39a4a37d7c Add tests 2024-09-19 19:03:30 -07:00
timmy 25e5134577 Cache more ComicVine lookups 2024-09-19 17:31:06 -07:00
timmy c9c0c99a2a Increase rate limits on CV to cover the 200 requests/Hr restriction
Add twitter's alternative to HTTP code 429
2024-09-12 13:56:57 -07:00
timmy 582224abec Fixes for quick-tag 2024-09-12 11:51:38 -07:00
timmy fab30f3f29 Add experimental quick-tag 2024-08-18 19:16:55 -07:00
timmy 3389c72a63 Merge branch 'help-messages' into develop 2024-06-21 19:53:30 -07:00
timmy 69a9566f42 Update all references of saved 'matadata' to 'tags' 2024-06-20 16:47:10 -07:00
timmy 6132af3bb5 Support niquests 2024-06-09 13:09:26 -07:00
timmy 5e6682566f Allow results to include comics in the following year fixes #638 2024-06-08 19:17:42 -07:00
timmy c311b8e351 Use comicapi for all urllib3 items 2024-04-12 14:39:34 -07:00
timmy 3df263858d Merge branch 'web-links' into develop 2024-03-09 13:42:29 -08:00
timmy 2eca743f20 Fix #602
Tests were not made correctly to catch the change in 2c3a2566cc
This has now been corrected
2024-02-18 17:31:00 -08:00
timmy 44e9a47a8b Support multiple web_links 2024-02-17 17:42:07 -08:00
pre-commit-ci[bot] df762746ec [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2024-01-29 17:14:26 +00:00
timmy 04b3b6b4ab Do not normalize series_name when a literal search is requested 2023-12-17 19:14:38 -08:00
timmy bb67ab009e Ensure that all output goes through a logger before output to the user
Adds an option to output json for CLI options
2023-12-17 15:51:43 -08:00
timmy 305eb1dec5 Enable stricter mypy configuration 2023-11-23 16:05:16 -08:00
timmy f250d2c5c3 Merge branch 'mizaki-gmd_list_set' into develop 2023-10-04 20:16:33 -07:00
Mizaki 058651cc29 Change metadata lists to sets. Changed CV talker to reflect and tidied 2023-09-24 14:33:57 +01:00
Mizaki 5874f3bcaf Remove genres from ComicSeries as it is no longer required with the new cache system 2023-09-22 23:15:04 +01:00
Mizaki df3e7912b3 Add talker information in setting window 2023-09-17 18:26:06 +01:00
timmy bf2b4ab268 Rename check_api_key to check_status
Parameter is changed to a settings dict so that a Talker can retrieve any info it needs
Change issue_id type annotation to str
2023-09-06 02:59:59 -04:00
timmy f72ebdb149 Simplify ComicCacher to store a single binary data field and ID(s)
If the ComicCacher is to be a generic cache for talkers it must assume
 very little. Current assumptions:
 - There are issues that can be queried individually by an "Issue ID" and they have a relation to a single series
 - There are series that can be queried individually by an "Series ID" and they have a relation to zero or more issues
 - There are Searches that can be queried by the search term and they have a relation to zero or more series

Each series and issue have a boolean `complete` attribute which is up to the talker to decide what it means.
Data is returned as a tuple ([series, complete] or [issue, complete]) or a list of tuples
An issue consists of an ID, an series ID and a binary data attribute which is up to the talker to determine what it means.
An series consists of in ID and a binary data attribute which is up to the talker to determine what it means.

The data attribute is binary to allow for compression and efficient storage of binary data (e.g. pickle) it is suggested to store it as json or similar text format encoded with utf-8. If the talker is using a website API it is suggested to store the raw response from the server.

All caches automatically expire 7 days after insertion.
2023-08-05 03:02:12 -07:00
timmy 2c3a2566cc 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.
2023-08-02 09:00:04 -07:00
timmy f90f373d20 Merge branch 'mizaki-rate_limit_cv' into develop 2023-07-01 18:04:24 -07:00
timmy c246b96845 Merge branch 'mizaki-vol_to_issue' into develop 2023-07-01 18:02:57 -07:00
Mizaki 37cc66cbae Use requests.status_codes.codes.TOO_MANY_REQUESTS 2023-06-27 17:48:38 +01:00
timmy 2e01672e68 Fix #485
As mentioned in the comment in comictaggerlib/main.py:186
The default value should be None not the empty string.
We also check if the given value is the default or the empty string and
 the setting is unset so the default value is not saved in the settings
 file.
The default_api_url is shown in the GUI Settings Window it is not
 currently show in the cli help.
2023-06-23 17:48:18 -07:00
Mizaki 2187ddece8 Move volume from ComicSeries to ComicIssue 2023-06-23 22:38:15 +01:00
Mizaki fba5518d06 Create two module limiters and assign class limiter var depending. Add to welcome message limits of default CV API key. 2023-06-23 21:25:02 +01:00
Mizaki 861584df3a Move rate limit check from defunc API status code 107 to HTTP code 429. Set a limit of 10 request every 10 seconds except for the default API key which is 1,2 (to be finisalised). Remove wait on rate limit option. 2023-06-22 23:50:32 +01:00
Mizaki 7a91acb60c Add pyrate-limiter and apply CV suggested rate limit 2023-06-20 22:28:29 +01:00
Mizaki d191750231 Remove attempted validation of language and country plus minor changes 2023-05-25 01:32:52 +01:00
Mizaki e72347656b Add format (1-shot, limited series, etc.) 2023-05-23 00:27:58 +01:00
Mizaki 97e64fa918 Add maturity_rating, language and country to ComicIssue and pass to metadata. 2023-05-18 02:02:21 +01:00