Conversation
Issues created from catalog data carry a ComicVine id but no stored page link, so files imported for them were written without a Web entry even though the id was known. Readers such as Komga only surface the link from Web, which left those files unlinked. Fall back to the canonical /issue/4000-<id>/ page whenever no fetched link is stored. A stored link is still used unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E9gUFQEryh4gDJRKvjNUZM
The mass convert metadata step built its own, smaller ComicInfo payload: no Web link, no ComicVine id note and no creator credits. Re-embedding a tracked file therefore could not add what the import path writes for the same issue. Include the Web link, the cv id note and the stored creator fields for tracked files in both the library and manual/folder scopes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E9gUFQEryh4gDJRKvjNUZM
|
@bbutlerau |
|
No worries, I'll hold off until the 2.0 metadata stuff is going if you want. |
Summary
Files imported for catalog-sourced issues are written without a
Webentry in ComicInfo.xml, even though Pullbox knows the issue's ComicVine id (it writes it toNotes). Readers such as Komga only pick the ComicVine link up fromWeb, so those books end up unlinked there. On my library that was 188 tracked issues across 19 series, all withcomicvine_idset andcomicvine_urlnull.Separately, Mass Convert's "embed ComicInfo" step builds its own smaller payload, so re-embedding a file cannot add the link, the cv id note or creator credits that the import path writes for the same issue.
Related Issues
None filed. Happy to open one if you prefer an issue first.
Changes
comicvine_issue_url()incore/comicvine_links.py: returns the stored link when there is one, otherwise deriveshttps://comicvine.gamespot.com/issue/4000-<id>/from the issue id (the same formui/import_review_tables.pyandservices/catalog/reader.pyalready build).Webin bothbuild_comicinfo_payload_for_issueimplementations (core/library_comicinfo.pyandservices/import_file_preparation.py).Web, the[cv_vol_id:…] [cv_issue_id:…]note and the stored creator fields for tracked files, in the library scope and the manual/folder scopes.Behaviour is unchanged for issues that have a stored link, and for provisional issues with no ComicVine id (
Webstays empty).Checklist
tests/unit/test_comicvine_links.py,test_exact_issue_artifacts.py,test_library_comicinfo.py,test_import_file_preparation.py,tests/utilities/test_mass_convert_pipeline.py). The four new tests fail ondevelopwithout the change.ruff check src/ tests/)mypy --strict src/pullbox/): clean for the files touched here. My local environment reports 42 errors on an untoucheddevelopas well, which looks like dependency drift on my side (SQLAlchemy 2.1.1, mypy 2.4.0), so I am relying on CI for this one.ruff format --check src/ tests/)CHANGELOG.mdupdated: left for release prep, per the contributing guideLocal note: in my container the full
tests/unit+tests/utilitiesrun has about 16 failing or intermittent tests intest_import_file_execution.py,test_import_service.pyandtest_import_job_controls.py, with and without this change. I have not investigated those.Screenshots
No UI changes.
🤖 Generated with Claude Code