mirror of
https://github.com/iio612/DEFENDER.git
synced 2026-02-13 11:14:23 +00:00
Adding current_admin to the global settings:
- New property current_admin added to the Settings.py
- Fix also translation function
This commit is contained in:
@@ -69,7 +69,7 @@ def rehash_service(uplink: 'Irc', nickname: str) -> None:
|
|||||||
msg=f'[REHASH] Module [{mod}] reloaded',
|
msg=f'[REHASH] Module [{mod}] reloaded',
|
||||||
channel=uplink.Config.SERVICE_CHANLOG
|
channel=uplink.Config.SERVICE_CHANLOG
|
||||||
)
|
)
|
||||||
|
uplink.Utils = sys.modules['core.utils']
|
||||||
uplink.Config = uplink.Loader.ConfModule.Configuration(uplink.Loader).get_config_model()
|
uplink.Config = uplink.Loader.ConfModule.Configuration(uplink.Loader).get_config_model()
|
||||||
uplink.Config.HSID = config_model_bakcup.HSID
|
uplink.Config.HSID = config_model_bakcup.HSID
|
||||||
uplink.Config.DEFENDER_INIT = config_model_bakcup.DEFENDER_INIT
|
uplink.Config.DEFENDER_INIT = config_model_bakcup.DEFENDER_INIT
|
||||||
|
|||||||
@@ -4,10 +4,11 @@ from logging import Logger
|
|||||||
from threading import Timer, Thread, RLock
|
from threading import Timer, Thread, RLock
|
||||||
from socket import socket
|
from socket import socket
|
||||||
from typing import Any, Optional, TYPE_CHECKING
|
from typing import Any, Optional, TYPE_CHECKING
|
||||||
from core.definition import MSModule
|
from core.definition import MSModule, MAdmin
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from core.classes.user import User
|
from core.classes.user import User
|
||||||
|
from core.classes.admin import Admin
|
||||||
|
|
||||||
class Settings:
|
class Settings:
|
||||||
"""This Class will never be reloaded.
|
"""This Class will never be reloaded.
|
||||||
@@ -15,33 +16,36 @@ class Settings:
|
|||||||
the whole life of the app
|
the whole life of the app
|
||||||
"""
|
"""
|
||||||
|
|
||||||
RUNNING_TIMERS: list[Timer] = []
|
RUNNING_TIMERS: list[Timer] = []
|
||||||
RUNNING_THREADS: list[Thread] = []
|
RUNNING_THREADS: list[Thread] = []
|
||||||
RUNNING_SOCKETS: list[socket] = []
|
RUNNING_SOCKETS: list[socket] = []
|
||||||
PERIODIC_FUNC: dict[object] = {}
|
PERIODIC_FUNC: dict[object] = {}
|
||||||
LOCK: RLock = RLock()
|
LOCK: RLock = RLock()
|
||||||
|
|
||||||
CONSOLE: bool = False
|
CONSOLE: bool = False
|
||||||
|
|
||||||
MAIN_SERVER_HOSTNAME: str = None
|
MAIN_SERVER_HOSTNAME: str = None
|
||||||
PROTOCTL_USER_MODES: list[str] = []
|
PROTOCTL_USER_MODES: list[str] = []
|
||||||
PROTOCTL_PREFIX: list[str] = []
|
PROTOCTL_PREFIX: list[str] = []
|
||||||
|
|
||||||
SMOD_MODULES: list[MSModule] = []
|
SMOD_MODULES: list[MSModule] = []
|
||||||
"""List contains all Server modules"""
|
"""List contains all Server modules"""
|
||||||
|
|
||||||
__CACHE: dict[str, Any] = {}
|
__CACHE: dict[str, Any] = {}
|
||||||
"""Use set_cache or get_cache instead"""
|
"""Use set_cache or get_cache instead"""
|
||||||
|
|
||||||
__TRANSLATION: dict[str, list[list[str]]] = dict()
|
__TRANSLATION: dict[str, list[list[str]]] = dict()
|
||||||
"""Translation Varibale"""
|
"""Translation Varibale"""
|
||||||
|
|
||||||
__LANG: str = "EN"
|
__LANG: str = "EN"
|
||||||
|
|
||||||
__INSTANCE_OF_USER_UTILS: Optional['User'] = None
|
__INSTANCE_OF_USER_UTILS: Optional['User'] = None
|
||||||
"""Instance of the User Utils class"""
|
"""Instance of the User Utils class"""
|
||||||
|
|
||||||
__LOGGER: Optional[Logger] = None
|
__CURRENT_ADMIN: Optional['MAdmin'] = None
|
||||||
|
"""The Current Admin Object Model"""
|
||||||
|
|
||||||
|
__LOGGER: Optional[Logger] = None
|
||||||
"""Instance of the logger"""
|
"""Instance of the logger"""
|
||||||
|
|
||||||
def set_cache(self, key: str, value_to_cache: Any):
|
def set_cache(self, key: str, value_to_cache: Any):
|
||||||
@@ -97,6 +101,14 @@ class Settings:
|
|||||||
def global_user(self, user_utils_instance: 'User') -> None:
|
def global_user(self, user_utils_instance: 'User') -> None:
|
||||||
self.__INSTANCE_OF_USER_UTILS = user_utils_instance
|
self.__INSTANCE_OF_USER_UTILS = user_utils_instance
|
||||||
|
|
||||||
|
@property
|
||||||
|
def current_admin(self) -> MAdmin:
|
||||||
|
return self.__CURRENT_ADMIN
|
||||||
|
|
||||||
|
@current_admin.setter
|
||||||
|
def current_admin(self, current_admin: MAdmin) -> None:
|
||||||
|
self.__CURRENT_ADMIN = current_admin
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def global_logger(self) -> Logger:
|
def global_logger(self) -> Logger:
|
||||||
return self.__LOGGER
|
return self.__LOGGER
|
||||||
|
|||||||
@@ -626,7 +626,8 @@ class Irc:
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
fromuser = self.User.get_nickname(user) # Nickname qui a lancé la commande
|
fromuser = self.User.get_nickname(user) # Nickname qui a lancé la commande
|
||||||
uid = self.User.get_uid(fromuser) # Récuperer le uid de l'utilisateur
|
uid = self.User.get_uid(user) # Récuperer le uid de l'utilisateur
|
||||||
|
self.Settings.current_admin = self.Admin.get_admin(user) # set Current admin if any.
|
||||||
|
|
||||||
RED = self.Config.COLORS.red
|
RED = self.Config.COLORS.red
|
||||||
GREEN = self.Config.COLORS.green
|
GREEN = self.Config.COLORS.green
|
||||||
@@ -1197,14 +1198,14 @@ class Irc:
|
|||||||
self.Protocol.send_notice(
|
self.Protocol.send_notice(
|
||||||
nick_from=dnickname,
|
nick_from=dnickname,
|
||||||
nick_to=fromuser,
|
nick_to=fromuser,
|
||||||
msg=f"{module} - {GREEN}Loaded{NOGC} by {loaded_user} on {loaded_datetime}"
|
msg=tr('%s - %sLoaded%s by %s on %s', module, GREEN, NOGC, loaded_user, loaded_datetime)
|
||||||
)
|
)
|
||||||
loaded = False
|
loaded = False
|
||||||
else:
|
else:
|
||||||
self.Protocol.send_notice(
|
self.Protocol.send_notice(
|
||||||
nick_from=dnickname,
|
nick_from=dnickname,
|
||||||
nick_to=fromuser,
|
nick_to=fromuser,
|
||||||
msg=f"{module} - {RED}Not Loaded{NOGC}"
|
msg=tr('%s - %sNot Loaded%s', module, GREEN, NOGC)
|
||||||
)
|
)
|
||||||
|
|
||||||
case 'show_timers':
|
case 'show_timers':
|
||||||
|
|||||||
@@ -2,3 +2,7 @@ traduction:
|
|||||||
# Message help
|
# Message help
|
||||||
- orig: "Access denied!"
|
- orig: "Access denied!"
|
||||||
trad: "Accès refusé."
|
trad: "Accès refusé."
|
||||||
|
- orig: "%s - %sLoaded%s by %s on %s"
|
||||||
|
trad: "%s - %sChargé%s par %s le %s"
|
||||||
|
- orig: "%s - %sNot Loaded%s"
|
||||||
|
trad: "%s - %sNon chargé%s"
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
Main utils library.
|
Main utils library.
|
||||||
'''
|
'''
|
||||||
import gc
|
import gc
|
||||||
import glob
|
|
||||||
import ssl
|
import ssl
|
||||||
import socket
|
import socket
|
||||||
import sys
|
import sys
|
||||||
@@ -38,20 +37,22 @@ def tr(message: str, *args) -> str:
|
|||||||
g = global_settings
|
g = global_settings
|
||||||
try:
|
try:
|
||||||
# Access to user object ==> global_instance.get_user_option
|
# Access to user object ==> global_instance.get_user_option
|
||||||
client_language = global_settings.global_user.current_user.geoip if global_settings.global_user.current_user else 'en'
|
client_language = g.current_admin.language if g.current_admin else g.global_lang
|
||||||
client_language = client_language if client_language else 'en'
|
|
||||||
|
if g.current_admin:
|
||||||
|
print("Current Admin", g.current_admin.nickname, "Current language", client_language, "Global language", g.global_lang)
|
||||||
|
|
||||||
if count_args != count_placeholder:
|
if count_args != count_placeholder:
|
||||||
global_settings.global_logger.error(f"Translation: Original message: {message} | Args: {count_args} - Placeholder: {count_placeholder}")
|
g.global_logger.error(f"Translation: Original message: {message} | Args: {count_args} - Placeholder: {count_placeholder}")
|
||||||
return message
|
return message
|
||||||
|
|
||||||
if g.global_lang is None:
|
if g.global_lang is None:
|
||||||
return message % args if is_args_available else message
|
return message % args if is_args_available else message
|
||||||
|
|
||||||
if g.global_lang.lower() == 'en':
|
if client_language.lower() == 'en':
|
||||||
return message % args if is_args_available else message
|
return message % args if is_args_available else message
|
||||||
|
|
||||||
for trads in global_settings.global_translation[global_settings.global_lang.lower()]:
|
for trads in g.global_translation[client_language.lower()]:
|
||||||
if sub(r"\s+", "", message) == sub(r"\s+", "", trads[0]):
|
if sub(r"\s+", "", message) == sub(r"\s+", "", trads[0]):
|
||||||
return trads[1] % args if is_args_available else trads[1]
|
return trads[1] % args if is_args_available else trads[1]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user