Files
PC-Monitor/plugins/__init__.py
2026-03-24 07:17:48 +01:00

60 lines
1.8 KiB
Python

# Plugins pour PC Monitor
from .base import BasePlugin
from .librehardwaremonitor import LibreHardwareMonitorPlugin
from .hwinfo import HWiNFOPlugin
from .plexamp import PlexampPlugin
# Registry des plugins monitoring hardware
PLUGINS = {
'librehardwaremonitor': LibreHardwareMonitorPlugin,
'hwinfo': HWiNFOPlugin
}
# Registry des plugins média
MEDIA_PLUGINS = {
'plexamp': PlexampPlugin
}
def get_plugin(name: str, config: dict) -> BasePlugin:
"""Retourne une instance du plugin demandé"""
if name not in PLUGINS:
raise ValueError(f"Plugin inconnu: {name}")
return PLUGINS[name](config)
def get_media_plugin(name: str, config: dict):
"""Retourne une instance du plugin média demandé"""
if name not in MEDIA_PLUGINS:
raise ValueError(f"Plugin média inconnu: {name}")
return MEDIA_PLUGINS[name](config)
def get_available_plugins() -> list:
"""Retourne la liste des plugins disponibles"""
return [
{
'id': 'librehardwaremonitor',
'name': 'LibreHardwareMonitor',
'description': 'Open source, API REST intégrée',
'default_port': 8085,
'website': 'https://github.com/LibreHardwareMonitor/LibreHardwareMonitor'
},
{
'id': 'hwinfo',
'name': 'HWiNFO + RemoteHWInfo',
'description': 'HWiNFO avec RemoteHWInfo (github.com/Demion/remotehwinfo)',
'default_port': 60000,
'website': 'https://github.com/Demion/remotehwinfo'
}
]
def get_available_media_plugins() -> list:
"""Retourne la liste des plugins média disponibles"""
return [
{
'id': 'plexamp',
'name': 'Plexamp',
'description': 'Lecteur Plex (via serveur Plex distant)',
'default_port': 32400,
'website': 'https://plexamp.com'
}
]