Commit Graph

15 Commits

Author SHA1 Message Date
425d2d40b7 fix: Stop MobyGames cover importer from misattaching covers to wrong releases
Covers were being attached to the nearest existing SoftwareRelease even when
no release actually matched the cover's region, e.g. a Spanish cover landing
on a Japanese release just because it was the only release present. The
importer no longer guesses: it stops trying to attach covers to a release at
all, clustering them by Software + MobyGames cover-group id instead.
SoftwareReleaseId becomes an optional, admin-only manual curation field, with
a new bulk "assign whole group to a release" action in the cover admin UI. A
new repair-covers command retroactively detaches previously misassigned
covers using data already recorded during import, no re-scraping needed.
2026-06-22 20:41:32 +01:00
2572e24e83 Refactor error handling in services and controllers to use ExtractDetail method for consistent error messages
- Updated SoundSynthVideosController to return ProblemDetails for bad requests and conflicts.
- Modified UsersController to return ProblemDetails for user not found and account purge failures.
- Enhanced BooksService, DocumentsService, GpusService, InstructionSetExtensionsService, MachineFamiliesService, MagazinesService, ResolutionsService, ScreensService, SoftwareFamiliesService, SoftwarePlatformsService, SoftwareVersionsService, SoundSynthsService, and WwpcImportsService to utilize ExtractDetail for error messages from ApiException.
- Introduced ExtractDetail method to standardize error message extraction from ApiException across multiple services.
2026-06-04 15:41:26 +01:00
bb77230dfc Remove JPEG-XL support. 2026-06-04 10:44:56 +01:00
5ea8edabea Remove 409 Conflict exception handling and related admin batch image count logic from multiple controllers and PendingImageStore 2026-05-31 01:49:18 +01:00
4fe3f114c6 Add batch upload functionality for GPU, Machine, Processor, and Sound Synth photos
- Implemented methods to delete admin-staged pending photos and commit batches for GPU, Machine, Processor, and Sound Synth photos in their respective services.
- Added JavaScript helpers for batch uploading photos via XHR for GPU, Machine, Processor, and Sound Synth admin pages, including progress tracking and error handling.
- Each upload helper supports multiple image formats and enforces size limits.
2026-05-30 05:16:52 +01:00
c511a9e49d Implement batch upload functionality for software covers
- Added Identify method in Photos class for content-sniffing image formats and dimensions using ImageMagick.
- Introduced GenerateThumbnailJpeg method for creating JPEG thumbnails from images.
- Updated Program.cs to register BatchUploadJobStore and BatchUploadJobReaperService for managing batch upload jobs.
- Refactored SoftwareCovers.razor to replace single image upload with a batch upload dialog.
- Created SoftwareCoversBatchUploadDialog.razor and its code-behind for handling batch uploads, including staging, committing, and displaying upload progress.
- Added JavaScript helper (software-cover-batch-upload.js) for managing XHR-based uploads with progress reporting.
- Enhanced SoftwareReleasesService with methods for deleting pending covers and committing batch uploads.
- Updated _Host.cshtml to include the new JavaScript file for batch uploads.
2026-05-30 03:35:19 +01:00
935b1ae883 Add automatic software cover caption translation system.
- Created migration to add SoftwareCoverCaptionTranslations table with necessary fields and constraints.
- Updated MarechaiContext to include DbSet for SoftwareCoverCaptionTranslation.
- Implemented SoftwareCoverCaptionTranslation model to represent translations for software cover captions.
- Enhanced SoftwareCoversController to support fetching localized captions based on language.
- Introduced SoftwareCoverCaptionTranslationProvider for managing translation logic and background processing.
- Updated admin UI to allow editing of canonical captions, reflecting changes in localized captions.
- Modified SoftwareService to include language parameter when fetching software covers.
2026-05-14 21:47:03 +01:00
f34b87ba79 Update image sources to use 4K assets across various pages for improved visual quality
- Changed image source paths in Gpus, Machines, Magazines, People, Processors, Software, SoundSynths, and Suggestions pages to point to 4K versions of images.
- Removed lower resolution options (hd and 1440p) from <source> elements and <img> tags.
- Ensured consistent use of 4K images for all relevant assets to enhance user experience.
2026-05-14 12:53:10 +01:00
c5530ec38b Add software release cover suggestion functionality.
- Updated resource files for English, Spanish, French, and Italian to include new strings related to cover image suggestions and uploads.
- Implemented a new method in SoftwareReleasesService to delete pending cover images.
- Introduced a new JavaScript file for handling multi-file uploads of software cover images with progress tracking and cancellation support.
2026-05-14 01:35:59 +01:00
75e5c66eb5 Remove HEIF/HEIC support from image processing and rendering
- Eliminated HEIF and HEIC formats from various controllers, helpers, and views.
- Updated image format handling in SoundSynthPhotosController, AvatarFileCleaner, and Photos helper.
- Removed references to HEIF/HEIC in Admin, Books, Gpus, Machines, Magazines, People, and Software pages.
- Adjusted image format mappings in Program.cs to exclude HEIF/HEIC.
2026-05-10 20:24:03 +01:00
8d018adf73 Sort GUIDs by creation date and ID in various controllers 2026-05-07 02:45:20 +01:00
612ca5c42f Add software cover management functionality with upload, update, and delete features 2026-05-06 02:36:35 +01:00
3dd90043f1 Fix CS8632 warnings 2026-05-05 02:36:31 +01:00
7ff6799df2 Remove support for JPEG2000 format across various components, including controllers, helpers, and UI pages. Update image format handling to exclude JPEG2000, ensuring consistency in image processing and display. Adjust localization resources to reflect the removal of JPEG2000 conversion messages. 2026-04-29 18:41:03 +01:00
13190cc172 Add Software Covers functionality
- Created migration to add SoftwareCovers table with necessary fields and relationships.
- Updated MarechaiContext to include DbSet for SoftwareCovers and configured relationships.
- Implemented SoftwareCover model with properties for managing cover details.
- Enhanced SoftwareRelease model to include a collection of SoftwareCovers.
- Developed SoftwareCoversController for handling cover uploads, retrieval, updates, and deletions.
- Integrated cover display in ReleaseView and View components with responsive image handling.
- Added localization support for "Covers" in English and Spanish resource files.
- Implemented service methods for fetching cover data by software and release.
2026-04-29 08:53:10 +01:00