Update PDAB
- Added standard debugger file for logging - Added fault handler to see what happens if it faults
This commit is contained in:
61
main.py
61
main.py
@@ -1,6 +1,5 @@
|
||||
# Python client file (client.py)
|
||||
import argparse
|
||||
import logging
|
||||
import os
|
||||
import platform
|
||||
import socketio
|
||||
@@ -8,29 +7,11 @@ import asyncio
|
||||
from discord import Intents, opus
|
||||
from discord.ext import commands
|
||||
from NoiseGatev2 import NoiseGate
|
||||
from debugger import setup_logger, running_dir
|
||||
import faulthandler
|
||||
faulthandler.enable()
|
||||
|
||||
running_dir = os.path.dirname(__file__)
|
||||
|
||||
# Ensure the directory exists
|
||||
log_dir = f"{running_dir}/logs"
|
||||
os.makedirs(log_dir, exist_ok=True)
|
||||
|
||||
# Create the file if it doesn't exist
|
||||
log_file = f"{running_dir}/logs/pdab.log"
|
||||
open(log_file, 'a').close()
|
||||
|
||||
# Configure logging
|
||||
logFormatter = logging.Formatter("%(asctime)s [%(threadName)-12.12s] [%(levelname)-5.5s] %(message)s")
|
||||
logger = logging.getLogger('main')
|
||||
logger.setLevel(logging.INFO)
|
||||
|
||||
fileHandler = logging.FileHandler(log_file)
|
||||
fileHandler.setFormatter(logFormatter)
|
||||
logger.addHandler(fileHandler)
|
||||
|
||||
consoleHandler = logging.StreamHandler()
|
||||
consoleHandler.setFormatter(logFormatter)
|
||||
logger.addHandler(consoleHandler)
|
||||
logger = setup_logger('main')
|
||||
|
||||
# Example usage
|
||||
logger.info("Logging initialized successfully.")
|
||||
@@ -43,14 +24,19 @@ ng_threshold = None
|
||||
|
||||
### Core functions
|
||||
def load_opus():
|
||||
logger.info(f"Running dir: '{running_dir}'")
|
||||
processor = platform.machine()
|
||||
logger.info(f"Processor: {processor}")
|
||||
logger.info(f'OS: {os.name}')
|
||||
|
||||
if os.name == 'nt':
|
||||
if os.name == 'nt':
|
||||
opus_path = f'{running_dir}/opus/libopus_amd64.dll' if processor == "AMD64" else None
|
||||
else:
|
||||
opus_path = f'{running_dir}/opus/libopus_aarcch64.so' if processor == "aarch64" else f'{running_dir}/opus/libopus_armv7l.so'
|
||||
|
||||
logger.debug(f"Opus path: '{opus_path}'")
|
||||
logger.info(f"Opus path: '{opus_path}'")
|
||||
|
||||
if opus_path:
|
||||
opus.load_opus(opus_path)
|
||||
logger.info(f"Loaded OPUS library from {opus_path}")
|
||||
@@ -85,6 +71,7 @@ async def join_voice_channel(channel_id):
|
||||
logging.error(e)
|
||||
logging.info('error encountered')
|
||||
|
||||
|
||||
async def leave_voice_channel(guild_id):
|
||||
guild = await client.fetch_guild(guild_id)
|
||||
logger.info(f"Leaving voice channel in guild {guild}")
|
||||
@@ -198,19 +185,14 @@ async def on_ready():
|
||||
logger.info("Loading OPUS library")
|
||||
load_opus()
|
||||
|
||||
if not opus.is_loaded():
|
||||
return
|
||||
logger.info(opus.is_loaded())
|
||||
|
||||
# Send update to socket server
|
||||
try:
|
||||
if opus.is_loaded():
|
||||
logger.info('Emitting to the server')
|
||||
await sio.emit('discord_ready', {'message': 'Discord bot is ready'})
|
||||
except Exception as e:
|
||||
logger.error(f"Error emitting to the server: {e}")
|
||||
logger.info('Server not ready yet')
|
||||
await sio.emit('discord_ready', {'message': 'Discord bot is ready'})
|
||||
|
||||
|
||||
async def main(args):
|
||||
async def start_bot(args):
|
||||
global client, device_id, ng_threshold
|
||||
|
||||
# Connect to the WebSocket server
|
||||
@@ -241,6 +223,13 @@ def parse_arguments():
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
args = parse_arguments()
|
||||
logger.info("Arguments: %s", args)
|
||||
asyncio.run(main(args))
|
||||
try:
|
||||
args = parse_arguments()
|
||||
logger.info("Arguments: %s", args)
|
||||
# Create an event loop
|
||||
loop = asyncio.get_event_loop()
|
||||
# Run the start_bot function within the event loop
|
||||
loop.run_until_complete(start_bot(args))
|
||||
except Exception as e:
|
||||
logger.error(e)
|
||||
logger.warning("Exiting now...")
|
||||
|
||||
Reference in New Issue
Block a user