Introduce MOD_HEADER constante in all modules as mandatory constante.

This commit is contained in:
adator
2025-11-10 00:13:35 +01:00
parent a1254c7a39
commit a7efede75e
7 changed files with 52 additions and 2 deletions

View File

@@ -1,4 +1,4 @@
from abc import ABC, abstractmethod from abc import ABC, abstractmethod, abstractproperty
from typing import TYPE_CHECKING, Optional from typing import TYPE_CHECKING, Optional
from dataclasses import dataclass from dataclasses import dataclass
from mods.clone.schemas import ModConfModel from mods.clone.schemas import ModConfModel
@@ -84,6 +84,8 @@ class IModule(ABC):
def inspect_class(self): def inspect_class(self):
if not hasattr(self, 'ModConfig'): if not hasattr(self, 'ModConfig'):
raise AttributeError("The Module must init ModConfig attribute in the load method!") raise AttributeError("The Module must init ModConfig attribute in the load method!")
if not hasattr(self, 'MOD_HEADER'):
raise NotImplementedError(f"You must declare the header of the module in {self.__class__.__name__}!")
@abstractmethod @abstractmethod
def create_tables(self) -> None: def create_tables(self) -> None:

View File

@@ -15,6 +15,14 @@ class Clone(IModule):
class ModConfModel(schemas.ModConfModel): class ModConfModel(schemas.ModConfModel):
... ...
MOD_HEADER: set[str] = {
'Clone',
'1.0.0',
'Connect thousands of clones to your IRCD, by group. You can use them as security moderation.',
'Defender Team',
'Defender-6'
}
def create_tables(self) -> None: def create_tables(self) -> None:
"""Methode qui va créer la base de donnée si elle n'existe pas. """Methode qui va créer la base de donnée si elle n'existe pas.
Une Session unique pour cette classe sera crée, qui sera utilisé dans cette classe / module Une Session unique pour cette classe sera crée, qui sera utilisé dans cette classe / module

View File

@@ -14,6 +14,14 @@ class Command(IModule):
""" """
pass pass
MOD_HEADER: set[str] = {
'Command',
'1.0.0',
'Module contains all IRC commands',
'Defender Team',
'Defender-6'
}
def create_tables(self) -> None: def create_tables(self) -> None:
"""Methode qui va créer la base de donnée si elle n'existe pas. """Methode qui va créer la base de donnée si elle n'existe pas.
Une Session unique pour cette classe sera crée, qui sera utilisé dans cette classe / module Une Session unique pour cette classe sera crée, qui sera utilisé dans cette classe / module

View File

@@ -12,6 +12,14 @@ class Defender(IModule):
class ModConfModel(schemas.ModConfModel): class ModConfModel(schemas.ModConfModel):
... ...
MOD_HEADER: set[str] = {
'Defender',
'1.0.0',
'Defender main module that uses the reputation security.',
'Defender Team',
'Defender-6'
}
def create_tables(self) -> None: def create_tables(self) -> None:
"""Methode qui va créer la base de donnée si elle n'existe pas. """Methode qui va créer la base de donnée si elle n'existe pas.
Une Session unique pour cette classe sera crée, qui sera utilisé dans cette classe / module Une Session unique pour cette classe sera crée, qui sera utilisé dans cette classe / module

View File

@@ -15,6 +15,14 @@ class Jsonrpc(IModule):
""" """
jsonrpc: int = 0 jsonrpc: int = 0
MOD_HEADER: set[str] = {
'JsonRPC',
'1.0.0',
'Module using the unrealircd-rpc-py library',
'Defender Team',
'Defender-6'
}
def callback_sent_to_irc(self, response: LiveRPCResult) -> None: def callback_sent_to_irc(self, response: LiveRPCResult) -> None:
dnickname = self.Config.SERVICE_NICKNAME dnickname = self.Config.SERVICE_NICKNAME

View File

@@ -12,6 +12,14 @@ class Test(IModule):
param_exemple1: str param_exemple1: str
param_exemple2: int param_exemple2: int
MOD_HEADER: set[str] = {
'Test',
'1.0.0',
'The test module',
'Defender Team',
'Defender-6'
}
def create_tables(self) -> None: def create_tables(self) -> None:
"""Methode qui va créer la base de donnée si elle n'existe pas. """Methode qui va créer la base de donnée si elle n'existe pas.
Une Session unique pour cette classe sera crée, qui sera utilisé dans cette classe / module Une Session unique pour cette classe sera crée, qui sera utilisé dans cette classe / module

View File

@@ -15,7 +15,7 @@ import mods.votekick.schemas as schemas
import mods.votekick.utils as utils import mods.votekick.utils as utils
from mods.votekick.votekick_manager import VotekickManager from mods.votekick.votekick_manager import VotekickManager
import mods.votekick.threads as thds import mods.votekick.threads as thds
from typing import TYPE_CHECKING, Any, Optional from typing import Any, Optional
class Votekick(IModule): class Votekick(IModule):
@@ -23,6 +23,14 @@ class Votekick(IModule):
class ModConfModel(schemas.VoteChannelModel): class ModConfModel(schemas.VoteChannelModel):
... ...
MOD_HEADER: set[str] = {
'votekick',
'1.0.2',
'Channel Democraty',
'Defender Team',
'Defender-6'
}
def create_tables(self) -> None: def create_tables(self) -> None:
"""Methode qui va créer la base de donnée si elle n'existe pas. """Methode qui va créer la base de donnée si elle n'existe pas.
Une Session unique pour cette classe sera crée, qui sera utilisé dans cette classe / module Une Session unique pour cette classe sera crée, qui sera utilisé dans cette classe / module