mirror of
https://github.com/iio612/DEFENDER.git
synced 2026-02-13 19:24: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 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:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user