mirror of
https://github.com/BrenBroZAYT/gameyfin.git
synced 2026-06-15 00:30:02 +00:00
[GH-61] Fix manual mapping leading to duplicates in DB
This commit is contained in:
@@ -4,8 +4,6 @@
|
||||
<p align="center">A simple game library manager.</p>
|
||||
</div>
|
||||
|
||||
<img />
|
||||
|
||||
# Overview
|
||||
|
||||
Name and functionality inspired by [Jellyfin](https://jellyfin.org/).
|
||||
@@ -16,15 +14,17 @@ Click [this link](https://youtu.be/BSaccEm0tpo) to watch how to install and set
|
||||
|
||||
## Features
|
||||
|
||||
* Automatically scans your game library folder
|
||||
* Load additional information about the games from IGDB
|
||||
* Display your library in a modern web frontend
|
||||
* Automatically scans your game library folder and downloads additional metadata from IGDB
|
||||
* Access your library via your Web-Browser
|
||||
* Download games directly from your browser
|
||||
* Search and filter your game library
|
||||
* Offline-friendly (once the library has been scanned everything is cached locally)
|
||||
* Easy to host yourself thanks to native Docker support (alternatively it's only one .jar file to run on bare metal)
|
||||
* LAN-friendly (everything is cached locally)
|
||||
* Native Docker support (alternatively it's only one .jar file to run on bare metal)
|
||||
* Light and dark theme
|
||||
|
||||
## Preview
|
||||
|
||||
https://user-images.githubusercontent.com/9295182/197277953-d69464a4-d280-407b-9274-ae62e6917981.mp4
|
||||
|
||||
## Installation
|
||||
|
||||
### General
|
||||
@@ -44,21 +44,3 @@ Since Gameyfin loads information from IGDB, you need to register yourself there.
|
||||
3. Edit the config options in the `gameyfin.properties` file
|
||||
4. Use the following command to start Gameyfin: `java -jar gameyfin.jar`
|
||||
5. Open the address of your Gameyfin host in your browser, Gameyfin runs under port 8080 by default
|
||||
|
||||
## Screenshots
|
||||
|
||||
### Game library screen in light mode (top) and dark mode (bottom)
|
||||

|
||||
|
||||
### Game detail view
|
||||

|
||||
|
||||
### Automatic library scanning
|
||||

|
||||
|
||||
### Admin interface
|
||||

|
||||
|
||||
### Manually fix incorrect mappings (with autocomplete suggestions)
|
||||

|
||||
|
||||
|
||||
@@ -105,6 +105,8 @@ public class GameService {
|
||||
.orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND, "Game with slug '%s' does not exist on IGDB.".formatted(slug)));
|
||||
|
||||
DetectedGame game = gameMapper.toDetectedGame(igdbGame, Path.of(unmappableFile.getPath()));
|
||||
game.setConfirmedMatch(true);
|
||||
|
||||
game = detectedGameRepository.save(game);
|
||||
|
||||
unmappableFileRepository.delete(unmappableFile);
|
||||
@@ -117,8 +119,12 @@ public class GameService {
|
||||
.orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND, "Game with slug '%s' does not exist on IGDB.".formatted(slug)));
|
||||
|
||||
DetectedGame game = gameMapper.toDetectedGame(igdbGame, Path.of(existingGame.getPath()));
|
||||
game.setConfirmedMatch(true);
|
||||
|
||||
game = detectedGameRepository.save(game);
|
||||
|
||||
detectedGameRepository.delete(existingGame);
|
||||
|
||||
return game;
|
||||
}
|
||||
}
|
||||
|
||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "frontend",
|
||||
"version": "1.2.4-SNAPSHOT",
|
||||
"version": "1.2.5-SNAPSHOT",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "frontend",
|
||||
"version": "1.2.4-SNAPSHOT",
|
||||
"version": "1.2.5-SNAPSHOT",
|
||||
"dependencies": {
|
||||
"@angular/animations": "^14.0.0",
|
||||
"@angular/cdk": "^14.1.0",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "frontend",
|
||||
"version": "1.2.4-SNAPSHOT",
|
||||
"version": "1.2.5-SNAPSHOT",
|
||||
"scripts": {
|
||||
"ng": "ng",
|
||||
"start": "ng serve",
|
||||
|
||||
Reference in New Issue
Block a user