6 Commits

Author SHA1 Message Date
adator
64f1490942 Merge pull request #76 from adator85/upgrade-mod-jsonrpc
Moving rpc module to rpc package v2
2025-08-07 16:27:40 +02:00
adator
9ddb2a28b2 Moving rpc module to rpc package v2 2025-08-07 16:26:59 +02:00
adator
eacfe0d087 Merge pull request #75 from adator85/update/admin.py
Update level of the debug for admin.py
2025-08-07 02:00:38 +02:00
adator
680a446c2c Update level of the debug for admin.py 2025-08-07 02:00:04 +02:00
adator
a10aa9b94e Merge pull request #74 from adator85/jsonrpc/update
Update jsonrpc module with new version of unrealircd-rpc-py
2025-08-07 01:39:55 +02:00
adator
56265985f7 Update jsonrpc module with new version of unrealircd-rpc-py 2025-08-07 01:39:21 +02:00
3 changed files with 44 additions and 37 deletions

View File

@@ -46,7 +46,7 @@ class Admin:
return result return result
if not result: if not result:
self.Logs.critical(f'The new nickname {newNickname} was not updated, uid = {uid}') self.Logs.debug(f'The new nickname {newNickname} was not updated, uid = {uid} - The Client is not an admin')
return result return result
@@ -63,7 +63,7 @@ class Admin:
return result return result
if not result: if not result:
self.Logs.critical(f'The new level {newLevel} was not updated, nickname = {nickname}') self.Logs.debug(f'The new level {newLevel} was not updated, nickname = {nickname} - The Client is not an admin')
return result return result

View File

@@ -1,7 +1,7 @@
import logging import logging
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from dataclasses import dataclass from dataclasses import dataclass
from unrealircd_rpc_py.Live import Live from unrealircd_rpc_py.Live import LiveWebsocket
from unrealircd_rpc_py.Loader import Loader from unrealircd_rpc_py.Loader import Loader
if TYPE_CHECKING: if TYPE_CHECKING:
@@ -63,14 +63,22 @@ class Jsonrpc():
self.__load_module_configuration() self.__load_module_configuration()
# End of mandatory methods you can start your customization # # End of mandatory methods you can start your customization #
self.UnrealIrcdRpcLive: Live = Live( self.UnrealIrcdRpcLive: LiveWebsocket = LiveWebsocket(
req_method='websocket',
url=self.Config.JSONRPC_URL, url=self.Config.JSONRPC_URL,
username=self.Config.JSONRPC_USER, username=self.Config.JSONRPC_USER,
password=self.Config.JSONRPC_PASSWORD, password=self.Config.JSONRPC_PASSWORD,
callback_object_instance=self, callback_object_instance=self,
callback_method_name='callback_sent_to_irc' callback_method_or_function_name='callback_sent_to_irc'
) )
if self.UnrealIrcdRpcLive.get_error.code != 0:
self.Logs.error(self.UnrealIrcdRpcLive.get_error.code, self.UnrealIrcdRpcLive.get_error.message)
self.Protocol.send_priv_msg(
nick_from=self.Config.SERVICE_NICKNAME,
msg=f"[{self.Config.COLORS.red}ERROR{self.Config.COLORS.nogc}] {self.UnrealIrcdRpcLive.get_error.message}",
channel=self.Config.SERVICE_CHANLOG
)
return
self.Rpc: Loader = Loader( self.Rpc: Loader = Loader(
req_method=self.Config.JSONRPC_METHOD, req_method=self.Config.JSONRPC_METHOD,
@@ -79,21 +87,15 @@ class Jsonrpc():
password=self.Config.JSONRPC_PASSWORD password=self.Config.JSONRPC_PASSWORD
) )
self.subscribed = False if self.Rpc.get_error.code != 0:
self.Logs.error(self.Rpc.get_error.code, self.Rpc.get_error.message)
if self.Rpc.Error.code != 0:
self.Protocol.send_priv_msg( self.Protocol.send_priv_msg(
nick_from=self.Config.SERVICE_NICKNAME, nick_from=self.Config.SERVICE_NICKNAME,
msg=f"[{self.Config.COLORS.red}ERROR{self.Config.COLORS.nogc}] {self.Rpc.Error.message}", msg=f"[{self.Config.COLORS.red}ERROR{self.Config.COLORS.nogc}] {self.Rpc.get_error.message}",
channel=self.Config.SERVICE_CHANLOG channel=self.Config.SERVICE_CHANLOG
) )
if self.UnrealIrcdRpcLive.Error.code != 0: self.subscribed = False
self.Protocol.send_priv_msg(
nick_from=self.Config.SERVICE_NICKNAME,
msg=f"[{self.Config.COLORS.red}ERROR{self.Config.COLORS.nogc}] {self.UnrealIrcdRpcLive.Error.message}",
channel=self.Config.SERVICE_CHANLOG
)
if self.ModConfig.jsonrpc == 1: if self.ModConfig.jsonrpc == 1:
self.Base.create_thread(self.thread_start_jsonrpc, run_once=True) self.Base.create_thread(self.thread_start_jsonrpc, run_once=True)
@@ -120,7 +122,7 @@ class Jsonrpc():
self.Base.db_execute_query(table_logs) self.Base.db_execute_query(table_logs)
return None return None
def callback_sent_to_irc(self, json_response: str): def callback_sent_to_irc(self, response):
dnickname = self.Config.SERVICE_NICKNAME dnickname = self.Config.SERVICE_NICKNAME
dchanlog = self.Config.SERVICE_CHANLOG dchanlog = self.Config.SERVICE_CHANLOG
@@ -129,32 +131,37 @@ class Jsonrpc():
bold = self.Config.COLORS.bold bold = self.Config.COLORS.bold
red = self.Config.COLORS.red red = self.Config.COLORS.red
if json_response.result == True: if hasattr(response, 'result'):
self.Protocol.send_priv_msg( if isinstance(response.result, bool) and response.result:
nick_from=self.Config.SERVICE_NICKNAME, self.Protocol.send_priv_msg(
msg=f"[{bold}{green}JSONRPC{nogc}{bold}] Event activated", nick_from=self.Config.SERVICE_NICKNAME,
channel=dchanlog) msg=f"[{bold}{green}JSONRPC{nogc}{bold}] Event activated",
return None channel=dchanlog)
return None
level = json_response.result.level level = response.result.level if hasattr(response.result, 'level') else ''
subsystem = json_response.result.subsystem subsystem = response.result.subsystem if hasattr(response.result, 'subsystem') else ''
event_id = json_response.result.event_id event_id = response.result.event_id if hasattr(response.result, 'event_id') else ''
log_source = json_response.result.log_source log_source = response.result.log_source if hasattr(response.result, 'log_source') else ''
msg = json_response.result.msg msg = response.result.msg if hasattr(response.result, 'msg') else ''
build_msg = f"{green}{log_source}{nogc}: [{bold}{level}{bold}] {subsystem}.{event_id} - {msg}" build_msg = f"{green}{log_source}{nogc}: [{bold}{level}{bold}] {subsystem}.{event_id} - {msg}"
# Check if there is an error
if self.UnrealIrcdRpcLive.get_error.code != 0:
self.Logs.error(f"RpcLiveError: {self.UnrealIrcdRpcLive.get_error.message}")
self.Protocol.send_priv_msg(nick_from=dnickname, msg=build_msg, channel=dchanlog) self.Protocol.send_priv_msg(nick_from=dnickname, msg=build_msg, channel=dchanlog)
def thread_start_jsonrpc(self): def thread_start_jsonrpc(self):
if self.UnrealIrcdRpcLive.Error.code == 0: if self.UnrealIrcdRpcLive.get_error.code == 0:
self.UnrealIrcdRpcLive.subscribe(["all"]) self.UnrealIrcdRpcLive.subscribe(["all"])
self.subscribed = True self.subscribed = True
else: else:
self.Protocol.send_priv_msg( self.Protocol.send_priv_msg(
nick_from=self.Config.SERVICE_NICKNAME, nick_from=self.Config.SERVICE_NICKNAME,
msg=f"[{self.Config.COLORS.red}ERROR{self.Config.COLORS.nogc}] {self.UnrealIrcdRpcLive.Error.message}", msg=f"[{self.Config.COLORS.red}ERROR{self.Config.COLORS.nogc}] {self.UnrealIrcdRpcLive.get_error.message}",
channel=self.Config.SERVICE_CHANLOG channel=self.Config.SERVICE_CHANLOG
) )
@@ -218,17 +225,17 @@ class Jsonrpc():
# self.Protocol.send_notice(nick_from=dnickname, nick_to=fromuser, msg=f"{logger_name} - {logger.level}") # self.Protocol.send_notice(nick_from=dnickname, nick_to=fromuser, msg=f"{logger_name} - {logger.level}")
for thread in self.Base.running_threads: for thread in self.Base.running_threads:
if thread.getName() == 'thread_start_jsonrpc': if thread.name == 'thread_start_jsonrpc':
if thread.is_alive(): if thread.is_alive():
self.Protocol.send_priv_msg( self.Protocol.send_priv_msg(
nick_from=self.Config.SERVICE_NICKNAME, nick_from=self.Config.SERVICE_NICKNAME,
msg=f"Thread {thread.getName()} is running", msg=f"Thread {thread.name} is running",
channel=dchannel channel=dchannel
) )
else: else:
self.Protocol.send_priv_msg( self.Protocol.send_priv_msg(
nick_from=self.Config.SERVICE_NICKNAME, nick_from=self.Config.SERVICE_NICKNAME,
msg=f"Thread {thread.getName()} is not running, wait untill the process will be cleaned up", msg=f"Thread {thread.name} is not running, wait untill the process will be cleaned up",
channel=dchannel channel=dchannel
) )
@@ -260,8 +267,8 @@ class Jsonrpc():
rpc = self.Rpc rpc = self.Rpc
UserInfo = rpc.User.get(uid_to_get) UserInfo = rpc.User.get(uid_to_get)
if rpc.Error.code != 0: if rpc.get_error.code != 0:
self.Protocol.send_notice(nick_from=dnickname, nick_to=fromuser, msg=f'{rpc.Error.message}') self.Protocol.send_notice(nick_from=dnickname, nick_to=fromuser, msg=f'{rpc.get_error.message}')
return None return None
chan_list = [] chan_list = []

View File

@@ -1,9 +1,9 @@
{ {
"version": "6.1.2", "version": "6.1.3",
"requests": "2.32.3", "requests": "2.32.3",
"psutil": "6.0.0", "psutil": "6.0.0",
"unrealircd_rpc_py": "1.0.7", "unrealircd_rpc_py": "2.0.0",
"sqlalchemy": "2.0.35", "sqlalchemy": "2.0.35",
"faker": "30.1.0" "faker": "30.1.0"
} }