Minor bugfixes in IGDB plugin

Minor bugfixes in Steam plugin
This commit is contained in:
grimsi
2025-03-31 11:25:50 +02:00
parent bcade0e4f1
commit aae9a989d0
6 changed files with 24 additions and 30 deletions
@@ -97,7 +97,8 @@ class Mapper {
return URI(imageBuilder(screenshot.imageId, ImageSize.FHD, ImageType.PNG)) return URI(imageBuilder(screenshot.imageId, ImageSize.FHD, ImageType.PNG))
} }
fun cover(cover: proto.Cover): URI { fun cover(cover: proto.Cover): URI? {
if (cover.imageId.isEmpty()) return null
return URI(imageBuilder(cover.imageId, ImageSize.COVER_BIG, ImageType.PNG)) return URI(imageBuilder(cover.imageId, ImageSize.COVER_BIG, ImageType.PNG))
} }
+1 -1
View File
@@ -2,5 +2,5 @@ Manifest-Version: 1.0
Plugin-Class: de.grimsi.gameyfin.plugins.igdb.IgdbPlugin Plugin-Class: de.grimsi.gameyfin.plugins.igdb.IgdbPlugin
Plugin-Id: igdb Plugin-Id: igdb
Plugin-Description: IGDB Metadata Plugin-Description: IGDB Metadata
Plugin-Version: 1.0.0-alpha3 Plugin-Version: 1.0.0-alpha4
Plugin-Provider: grimsi Plugin-Provider: grimsi
@@ -100,19 +100,21 @@ class SteamPlugin(wrapper: PluginWrapper) : GameyfinPlugin(wrapper) {
val game = steamDetailsResultWrapper[id]?.data ?: return null val game = steamDetailsResultWrapper[id]?.data ?: return null
if (game.type != "game") return null
// This is as much as I can get from the Steam Store API // This is as much as I can get from the Steam Store API
val metadata = GameMetadata( val metadata = GameMetadata(
originalId = id.toString(), originalId = id.toString(),
title = game.name, title = game.name,
description = game.detailedDescription, description = game.detailedDescription,
coverUrl = URI(game.headerImage), coverUrl = game.headerImage?.let { URI(it) },
release = game.releaseDate?.date, release = game.releaseDate?.date,
developedBy = game.developers.toSet(), developedBy = game.developers?.toSet(),
publishedBy = game.publishers.toSet(), publishedBy = game.publishers?.toSet(),
genres = game.genres.map { Mapper.genre(it) }.toSet(), genres = game.genres?.let { it.map { Mapper.genre(it) }.toSet() },
keywords = game.categories.mapNotNull { it.description }.toSet(), keywords = game.categories?.let { it.mapNotNull { it.description }.toSet() },
screenshotUrls = game.screenshots.map { URI(it.pathFull!!) }.toSet(), screenshotUrls = game.screenshots?.let { it.map { URI(it.pathFull) }.toSet() },
videoUrls = game.movies.map { URI(it.webm?.max!!) }.toSet() videoUrls = game.movies?.let { it.mapNotNull { it.webm?.let { URI(it.max) } }.toSet() }
) )
return metadata return metadata
@@ -1,10 +0,0 @@
package de.grimsi.gameyfin.plugins.steam.dto
import kotlinx.serialization.Serializable
@Serializable
data class Platforms(
val windows: Boolean,
val mac: Boolean,
val linux: Boolean
)
@@ -13,15 +13,16 @@ data class SteamDetailsResultWrapper(
@Serializable @Serializable
data class SteamGameDetails( data class SteamGameDetails(
val type: String,
val name: String, val name: String,
@SerialName("detailed_description") val detailedDescription: String, @SerialName("detailed_description") val detailedDescription: String? = null,
@SerialName("header_image") val headerImage: String, @SerialName("header_image") val headerImage: String? = null,
val developers: List<String>, val developers: List<String>? = null,
val publishers: List<String>, val publishers: List<String>? = null,
val categories: List<Category>, val categories: List<Category>? = null,
val genres: List<SteamGenre>, val genres: List<SteamGenre>? = null,
val screenshots: List<Screenshot>, val screenshots: List<Screenshot>? = null,
val movies: List<Movie>, val movies: List<Movie>? = null,
@SerialName("release_date") val releaseDate: ReleaseDate? = null @SerialName("release_date") val releaseDate: ReleaseDate? = null
) )
@@ -41,7 +42,7 @@ data class SteamGenre(
data class Screenshot( data class Screenshot(
val id: Int, val id: Int,
@SerialName("path_thumbnail") val pathThumbnail: String? = null, @SerialName("path_thumbnail") val pathThumbnail: String? = null,
@SerialName("path_full") val pathFull: String? = null @SerialName("path_full") val pathFull: String
) )
@Serializable @Serializable
@@ -57,7 +58,7 @@ data class Movie(
@Serializable @Serializable
data class Webm( data class Webm(
val `480`: String? = null, val `480`: String? = null,
val max: String? = null val max: String
) )
@Serializable @Serializable
+1 -1
View File
@@ -2,5 +2,5 @@ Manifest-Version: 1.0
Plugin-Class: de.grimsi.gameyfin.plugins.steam.SteamPlugin Plugin-Class: de.grimsi.gameyfin.plugins.steam.SteamPlugin
Plugin-Id: steam Plugin-Id: steam
Plugin-Description: Steam Metadata Plugin-Description: Steam Metadata
Plugin-Version: 1.0.0-alpha4 Plugin-Version: 1.0.0-alpha5
Plugin-Provider: grimsi Plugin-Provider: grimsi