How yuutara/illustration-archive works
Illustration Archive is a local-first personal illustration catalog: users import image files, browse paginated galleries, open artwork details, and manage metadata. The main flow validates and stores image content, deduplicates it, persists illustration and asset records, and generates thumbnails; browsing resolves stored assets through content APIs. Separate capabilities cover author/tag management and X Likes synchronization into a reviewable import inbox. The README documents the architecture and capabilities; sampled code confirms selected import, storage, author-search, and X-sync paths, while some subsystem wiring is documented but not sampled.
Main entry points: app.js Browser UI · IllustrationImportService.java File import · IllustrationDeleteService.java Deletion workflow · XLikeSyncService.java Likes synchronization
Components 34
Web experience
- Gallery API
src/main/java/com/yuutara/illustrationarchive/controller/IllustrationGalleryController.java - Detail API
src/main/java/com/yuutara/illustrationarchive/controller/IllustrationDetailController.java - Asset content API
src/main/java/com/yuutara/illustrationarchive/controller/AssetContentController.java - File import API
src/main/java/com/yuutara/illustrationarchive/controller/IllustrationImportController.java - Metadata update API
src/main/java/com/yuutara/illustrationarchive/controller/IllustrationUpdateController.java - Delete API
src/main/java/com/yuutara/illustrationarchive/controller/IllustrationDeleteController.java - Author API
src/main/java/com/yuutara/illustrationarchive/controller/AuthorController.java - Tag API
src/main/java/com/yuutara/illustrationarchive/controller/TagController.java - X import API
src/main/java/com/yuutara/illustrationarchive/controller/XImportController.java
Illustration catalog
- Gallery queries
src/main/java/com/yuutara/illustrationarchive/service/IllustrationGalleryService.java - Illustration details
src/main/java/com/yuutara/illustrationarchive/service/IllustrationDetailService.java - File import
src/main/java/com/yuutara/illustrationarchive/service/IllustrationImportService.java - Batch import
src/main/java/com/yuutara/illustrationarchive/service/IllustrationBatchImportService.java - Illustration persistence
src/main/java/com/yuutara/illustrationarchive/service/IllustrationPersistenceService.java - Metadata editing
src/main/java/com/yuutara/illustrationarchive/service/IllustrationUpdateService.java - Deletion workflow
src/main/java/com/yuutara/illustrationarchive/service/IllustrationDeleteService.java - Database deletion
src/main/java/com/yuutara/illustrationarchive/service/IllustrationDatabaseDeleteService.java - Author management
src/main/java/com/yuutara/illustrationarchive/service/AuthorService.java - Tag management
src/main/java/com/yuutara/illustrationarchive/service/TagService.java
X Likes archive
- Likes synchronization
src/main/java/com/yuutara/illustrationarchive/service/XLikeSyncService.java - X API client
src/main/java/com/yuutara/illustrationarchive/service/XApiClient.java - Likes persistence
src/main/java/com/yuutara/illustrationarchive/service/XLikePersistenceService.java - Inbox import
src/main/java/com/yuutara/illustrationarchive/service/XImportService.java - Photo download
src/main/java/com/yuutara/illustrationarchive/service/XPhotoDownloadService.java - Post persistence
src/main/java/com/yuutara/illustrationarchive/service/XPostPersistenceService.java
Persistence and files
- SQL repositories
src/main/java/com/yuutara/illustrationarchive/repository/IllustrationRepository.java - Author repository
src/main/java/com/yuutara/illustrationarchive/repository/AuthorRepository.java - Tag repository
src/main/java/com/yuutara/illustrationarchive/repository/TagRepository.java - X repositories
src/main/java/com/yuutara/illustrationarchive/repository/XLikeRepository.java - File storage
src/main/java/com/yuutara/illustrationarchive/storage/FileStorageService.java - Thumbnail service
src/main/java/com/yuutara/illustrationarchive/storage/ThumbnailService.java
Other components
- Browser UI
src/main/resources/static/app.js - MySQL
- X platform
Connections 39
- Browser UI → Gallery API: requests gallery
- Browser UI → File import API: uploads files
- Browser UI → Detail API: requests detail
- Browser UI → Asset content API: loads images
- Browser UI → X import API: manages inbox
- Gallery API → Gallery queries: calls
- Detail API → Illustration details: calls
- Asset content API → File storage: loads content
- File import API → Batch import: calls batch
- File import API → File import: calls single
- Batch import → File import: imports each
- File import → File storage: stores files
- File import → Illustration persistence: persists record
- File import → Thumbnail service: generates thumbnail
- Gallery queries → SQL repositories: queries page
- Illustration details → SQL repositories: queries detail
- Metadata update API → Metadata editing: calls
- Delete API → Deletion workflow: calls
- Deletion workflow → Database deletion: deletes record
- Database deletion → SQL repositories: reads assets
- Deletion workflow → Thumbnail service: cleans thumbnails
- Deletion workflow → File storage: cleans originals
- Author API → Author management: calls
- Author management → Author repository: searches and writes
- Tag API → Tag management: calls
- Tag management → Tag repository: manages tags
- X import API → Likes synchronization: syncs and lists
- X import API → Inbox import: imports selection
- Likes synchronization → X API client: fetches pages
- Likes synchronization → Likes persistence: saves pages
- Likes synchronization → X repositories: reads inbox state
- Inbox import → Photo download: downloads photos
- Inbox import → Post persistence: persists posts
- Photo download → File storage: stores photos
- X API client → X platform: calls X
- SQL repositories → MySQL: executes SQL
- Author repository → MySQL: executes SQL
- Tag repository → MySQL: executes SQL
- X repositories → MySQL: executes SQL