Automatically assign priority at first plugin load

This commit is contained in:
grimsi
2025-03-30 22:44:31 +02:00
parent 7fdeeedad3
commit c3f696ea90
3 changed files with 13 additions and 8 deletions
@@ -13,8 +13,14 @@ class DatabasePluginStatusProvider(
var pluginManagement = pluginManagementRepository.findByIdOrNull(pluginId)
// If the plugin is unknown, persist it as enabled
if(pluginManagement == null) {
pluginManagement = pluginManagementRepository.save(PluginManagementEntry(pluginId = pluginId, enabled = true))
if (pluginManagement == null) {
// Set priority to the max value of the current plugins + 1 (which is the lowest priority) or 1 if there are no entries
val currentMaxPriority = pluginManagementRepository.findMaxPriority() ?: 0
pluginManagement = pluginManagementRepository.save(
PluginManagementEntry(pluginId = pluginId, enabled = true, priority = currentMaxPriority + 1)
)
}
return pluginManagement.enabled != true
@@ -1,5 +1,9 @@
package de.grimsi.gameyfin.core.plugins.management
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.data.jpa.repository.Query
interface PluginManagementRepository : JpaRepository<PluginManagementEntry, String>
interface PluginManagementRepository : JpaRepository<PluginManagementEntry, String> {
@Query("SELECT MAX(p.priority) FROM PluginManagementEntry p")
fun findMaxPriority(): Int?
}
@@ -87,11 +87,6 @@ class PluginManagementService(
}
}
fun hasLogo(pluginId: String): Boolean {
val plugin = pluginManager.getPlugin(pluginId).plugin as GameyfinPlugin
return plugin.hasLogo()
}
fun getLogo(pluginId: String): InputStream? {
val plugin = pluginManager.getPlugin(pluginId).plugin as GameyfinPlugin
return plugin.getLogo()