Commit Graph

1343 Commits

Author SHA1 Message Date
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
c6522865ab Use casefold 2023-09-21 16:05:13 +01:00
Mizaki
5684694055 Generate password box for any settings dest name that end in password 2023-09-21 01:47:08 +01:00
Timmy Welch
360a9e6308 Merge branch 'mizaki-talker_gen_combo' into develop 2023-09-17 16:39:33 -07:00
Timmy Welch
015959bd97 Merge branch 'mizaki-talker_setting_logo_blurb' into develop 2023-09-17 16:35:13 -07:00
Mizaki
8feade923a Don't capitalise and therefore no need to use data on the combobox 2023-09-17 20:54:20 +01:00
Mizaki
df3e7912b3 Add talker information in setting window 2023-09-17 18:26:06 +01:00
Timmy Welch
919561099e Finish removing the script option 2023-09-17 08:36:00 -07:00
Timmy Welch
e7cc05679f Bump metron-talker version 2023-09-17 08:09:43 -07:00
Timmy Welch
99461c54f1 Fix a crash when setting the page type with no comic selected 2023-09-15 21:03:41 -07:00
Mizaki
56f172e7b5 Add combo box support to talker settings generator 2023-09-15 23:46:13 +01:00
Timmy Welch
ddd98ee86d Add metron-talker as an optional dependency 2023-09-15 15:13:14 -07:00
Timmy Welch
1d25179171 Allow unsetting metadata fields on the commandline fixes #528 2023-09-14 11:30:05 -07:00
Timmy Welch
7efef0bb44 Merge branch 'mizaki-on_change_windows' into develop 2023-09-14 11:20:01 -07:00
Mizaki
366e9cf6e8 Move update into own function. Add title missing to trigger issue update. 2023-09-13 21:35:52 +01:00
Timmy Welch
57abe22515 Merge branch 'mizaki-fix_auto_id' into develop 2023-09-12 15:16:16 -07:00
Mizaki
c7a49b3643 Fix crash with series and issue window if the year is None. Closes #523 2023-09-10 13:42:17 +01:00
Mizaki
1125788bb7 Update series and issue rows after calling for more information. Closes #512 2023-09-10 13:31:20 +01:00
Mizaki
034a25a813 Fix auto-identify crash 2023-09-07 14:44:30 +01:00
Timmy Welch
f72c0c8224 Fix call to check_api 2023-09-06 04:56:30 -04:00
Timmy Welch
f6be7919d7 Implement support for protofolius's permission scheme 2023-09-06 04:50:05 -04:00
Timmy Welch
0a2340b6dc Remove the --script commandline option 2023-09-06 03:00:27 -04:00
Timmy Welch
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 Welch
40bd3d5bb8 Fix generation and saving of talker settings fixes #515 #514 2023-09-05 14:43:17 -04:00
Timmy Welch
61d2a8b833 Fix issue padding validation fixes #513 2023-09-05 14:42:03 -04:00
Timmy Welch
b04dad8015 Stop deleting self.progialog in the series selection window 2023-09-05 14:41:07 -04:00
Timmy Welch
3ade47a7e0 Convert bytes to str when printing raw tags. Fixes #510 2023-09-05 04:05:20 -04:00
Timmy Welch
5bc44650d6 Change --only-set-cv-key to --only-save-config 2023-09-05 03:56:56 -04:00
Timmy Welch
8b1bcd93e6 Add a combobox to select a metadata source in the main window Fixes #508 2023-09-05 03:55:18 -04:00
Timmy Welch
d70a98ed29 Fix --darkmode 2023-09-05 03:55:18 -04:00
Timmy Welch
05e6eaf88e 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 much hard-coded strings as possible
Add a --list-plugins commandline option
2023-09-05 03:55:12 -04:00
Timmy Welch
90eb1c3980 Fix date display in the issue selection window 2023-09-05 03:14:55 -04:00
Timmy Welch
7a63474769 Fix cbr tests and update pre-commit 2023-09-04 19:56:18 -05:00
Timmy Welch
0f07fc3153 Use a dictionary instead of a list in the issue/series selection windows
List lookups were done by row number which became inaccurate if any sorting was done

Fixes #507
2023-09-03 15:18:56 -07:00
Timmy Welch
e832b19f2f Fix attribute names 2023-09-03 15:12:06 -07:00
Mizaki
9499aeae10 PyrateLimter version 2 only for now. 2023-08-30 23:23:19 +01:00
Timmy Welch
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 Welch
ea84031b87 Add more 4-digit issue number tests 2023-08-04 21:04:21 -07:00
Timmy Welch
611c40fe0b Add test for split 2023-08-03 01:06:10 -07:00
Timmy Welch
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 Welch
1b6307f9c2 Merge branch 'mizaki-tidy_ii' into develop 2023-07-30 16:24:13 -07:00
Timmy Welch
548ad4a816 Fix folder archiver
Implement supports_comment and is_writable
Fix function call in ComicArchive for supports_comment
Add a menu option to open a folder as an archive
2023-07-29 00:07:25 -07:00
Timmy Welch
27f71833b3 Generate settngs namespace before formatting 2023-07-28 23:29:39 -07:00
Timmy Welch
6c07fab985 Fix tests taking forever caused by f90f373d20 2023-07-28 23:25:12 -07:00
Timmy Welch
4151c0e113 Cleanup sqlite
Remove the import rename
use sqlite3.Row allows retrieving value by name
2023-07-28 23:22:35 -07:00
Mizaki
3119d68ea2 Remove used issue id from get_issue_cover_match_score and fix test 2023-07-18 01:14:32 +01:00
Timmy Welch
f43f51aa2f Fix #396
Use a QWebEngineView if QtWebEngine is available.
If QtWebEngine is not available replace figure tags with div's to allow
 the QTextEdit to render the rest of the html properly
2023-07-01 23:29:38 -07:00
Timmy Welch
19986b64d0 Upgrade pre-commit hooks 2023-07-01 23:12:41 -07:00
Timmy Welch
00200334fb Add filter to SeriesSelectionWindow and IssueSelectionWindow fixes #476 2023-07-01 18:57:33 -07:00