mirror of
https://github.com/iio612/DEFENDER.git
synced 2026-02-13 11:14:23 +00:00
Introduce MOD_HEADER constante in all modules as mandatory constante.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
from abc import ABC, abstractmethod
|
||||
from abc import ABC, abstractmethod, abstractproperty
|
||||
from typing import TYPE_CHECKING, Optional
|
||||
from dataclasses import dataclass
|
||||
from mods.clone.schemas import ModConfModel
|
||||
@@ -84,6 +84,8 @@ class IModule(ABC):
|
||||
def inspect_class(self):
|
||||
if not hasattr(self, 'ModConfig'):
|
||||
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
|
||||
def create_tables(self) -> None:
|
||||
|
||||
@@ -15,6 +15,14 @@ class Clone(IModule):
|
||||
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:
|
||||
"""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
|
||||
|
||||
@@ -14,6 +14,14 @@ class Command(IModule):
|
||||
"""
|
||||
pass
|
||||
|
||||
MOD_HEADER: set[str] = {
|
||||
'Command',
|
||||
'1.0.0',
|
||||
'Module contains all IRC commands',
|
||||
'Defender Team',
|
||||
'Defender-6'
|
||||
}
|
||||
|
||||
def create_tables(self) -> None:
|
||||
"""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
|
||||
|
||||
@@ -12,6 +12,14 @@ class Defender(IModule):
|
||||
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:
|
||||
"""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
|
||||
|
||||
@@ -15,6 +15,14 @@ class Jsonrpc(IModule):
|
||||
"""
|
||||
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:
|
||||
|
||||
dnickname = self.Config.SERVICE_NICKNAME
|
||||
|
||||
@@ -12,6 +12,14 @@ class Test(IModule):
|
||||
param_exemple1: str
|
||||
param_exemple2: int
|
||||
|
||||
MOD_HEADER: set[str] = {
|
||||
'Test',
|
||||
'1.0.0',
|
||||
'The test module',
|
||||
'Defender Team',
|
||||
'Defender-6'
|
||||
}
|
||||
|
||||
def create_tables(self) -> None:
|
||||
"""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
|
||||
|
||||
@@ -15,7 +15,7 @@ import mods.votekick.schemas as schemas
|
||||
import mods.votekick.utils as utils
|
||||
from mods.votekick.votekick_manager import VotekickManager
|
||||
import mods.votekick.threads as thds
|
||||
from typing import TYPE_CHECKING, Any, Optional
|
||||
from typing import Any, Optional
|
||||
|
||||
class Votekick(IModule):
|
||||
|
||||
@@ -23,6 +23,14 @@ class Votekick(IModule):
|
||||
class ModConfModel(schemas.VoteChannelModel):
|
||||
...
|
||||
|
||||
MOD_HEADER: set[str] = {
|
||||
'votekick',
|
||||
'1.0.2',
|
||||
'Channel Democraty',
|
||||
'Defender Team',
|
||||
'Defender-6'
|
||||
}
|
||||
|
||||
def create_tables(self) -> None:
|
||||
"""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
|
||||
|
||||
Reference in New Issue
Block a user