Skip to content

Conversation

@Irodzuita
Copy link

Changes

Backend (Kotlin/Spring Boot)

  • ✅ Added database schema migration for characters tables
  • ✅ Extended domain models (BookMetadata, BookMetadataAggregation, SearchCondition)
  • ✅ Implemented character parsing in ComicInfoProvider
  • ✅ Added REST API endpoint /api/v1/characters
  • ✅ Implemented character filtering in search
  • ✅ Updated JOOQ DAOs and repositories

Frontend (Vue.js/TypeScript)

  • ✅ Added TypeScript types for characters
  • ✅ Implemented UI components for viewing characters
  • ✅ Added character filtering to Books and Series views
  • ✅ Extended metadata editing dialogs
  • ✅ Added character chips with navigation
  • ✅ Implemented API service methods

Testing

  • ✅ Updated existing tests
  • ✅ Manually tested with ComicInfo.xml files
  • ✅ Verified database migrations
  • ✅ Tested filtering and search functionality

Checklist

  • Code follows project style guidelines
  • Database migration follows naming convention
  • Frontend components follow existing patterns
  • Translations added for English
  • No breaking changes to existing functionality
  • Tested locally with multiple scenarios

Related discussion #1551

Additional Notes

  • Follows the same implementation pattern as Tags
  • Characters are stored lowercase and normalized
  • Fully integrated with existing search/filter system
  • Compatible with existing ComicInfo.xml files

Implements full support for the <Characters> field from ComicInfo.xml specification:

Backend changes:
- Added BOOK_METADATA_CHARACTER and BOOK_METADATA_AGGREGATION_CHARACTER database tables
- Created Flyway migration V20251012120000__book_metadata_characters.sql
- Extended BookMetadata, BookMetadataPatch, and SeriesMetadataAggregation models
- Updated ComicInfoProvider to parse <Characters> field
- Added characters to MetadataApplier and MetadataAggregator
- Implemented SearchCondition.Character for filtering
- Added /api/v1/characters REST endpoint

Frontend changes:
- Added characters field to TypeScript types (komga-books.ts, komga-series.ts, komga-search.ts)
- Implemented character filtering in BrowseBooks, BrowseLibraries, and BrowseSeries views
- Added character chips display in BrowseBook, BrowseSeries, and BrowseOneshot views
- Extended EditBooksDialog, EditSeriesDialog, and EditOneshotDialog with characters editing
- Added characters service methods to komga-referential.service.ts
- Added English translations for characters UI labels

Testing:
- Updated TransientBookLifecycleTest and ComicInfoProviderTest

This feature allows users to:
- Import characters from ComicInfo.xml files
- View characters on book/series detail pages
- Filter books and series by characters
- Edit characters metadata manually
- Search for characters across libraries
@gotson
Copy link
Owner

gotson commented Oct 13, 2025

thanks, but that's not something i am interested in adding to Komga for the moment

@gotson gotson added the consider Not sure yet if this makes sense or not label Oct 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

consider Not sure yet if this makes sense or not

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants