+ Update transfer bot logging

This commit is contained in:
Wong Yiek Heng 2025-10-04 11:10:57 +08:00
parent 4f309f40e6
commit 27d56b8275

View File

@ -4,33 +4,6 @@ from concurrent.futures import ThreadPoolExecutor
from datetime import datetime
import os
# Configure logging with time-based file rotation
log_dir = "logs"
if not os.path.exists(log_dir):
os.makedirs(log_dir)
# Create logger
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
# Create formatter
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
# Create file handler with time-based filename
log_filename = os.path.join(log_dir, f"transfer_credit_{datetime.now().strftime('%Y%m%d')}.log")
file_handler = logging.FileHandler(log_filename)
file_handler.setLevel(logging.INFO)
file_handler.setFormatter(formatter)
# Create console handler
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)
console_handler.setFormatter(formatter)
# Add handlers to logger
logger.addHandler(file_handler)
logger.addHandler(console_handler)
# Suppress httpx logs
logging.getLogger("httpx").setLevel(logging.WARNING)
@ -38,11 +11,11 @@ logging.getLogger("httpx").setLevel(logging.WARNING)
api_url = 'http://api-server:3000'
max_threading = 1
def transfer(data: dict):
def transfer(data: dict, local_logger):
bot = CM_BOT_HAL()
logger.info(f"[Start] Transfer Credit from {data['f_username']} to {data['t_username']}")
local_logger.info(f"[Start] Transfer Credit from {data['f_username']} to {data['t_username']}")
bot.transfer_credit_api(data['f_username'], data['f_password'], data['t_username'], data['t_password'])
logger.info(f"[DONE] {data['f_username']} transfer done!")
local_logger.info(f"[Done] {data['f_username']} transfer done!")
del bot
time.sleep(0.5)
@ -51,16 +24,15 @@ while True:
hour = int(datetime.now().strftime("%H"))
minutes = int(datetime.now().strftime("%M"))
if weekday == 1 and (hour >= 6 and hour < 13):
local_logger = logging.getLogger(f"{__name__}.saturday_processing")
local_logger.info("Starting Saturday transfer processing")
local_logger = logging.getLogger(f"{__name__}")
response = requests.get(f'{api_url}/user')
items = json.loads(response.text)
total_items = len(items) if isinstance(items, list) else 0
if total_items == 0:
logger.info("No items to process.")
local_logger.info("No items to process.")
else:
logger.info(f"Processing {total_items} transfer items...")
local_logger.info(f"Processing {total_items} transfer items...")
with ThreadPoolExecutor(max_workers=max_threading) as executor:
results = list(executor.map(transfer, items))
logger.info(f"Completed processing {total_items} transfer items.")
results = list(executor.map(lambda item: transfer(item, local_logger), items))
local_logger.info(f"Completed processing {total_items} transfer items.")
time.sleep(1)