60 lines
1.8 KiB
Python
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'
|
|
}
|
|
]
|