From 336ea4bf41ff600c6c275d249bca1b89acee5e96 Mon Sep 17 00:00:00 2001 From: Wong Yiek Heng Date: Sat, 4 Oct 2025 10:47:04 +0800 Subject: [PATCH] + Update api_url for transfer bot + Modified logger for transfer bot --- cm_transfer_credit.py | 43 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/cm_transfer_credit.py b/cm_transfer_credit.py index dbd9af1..c8fa048 100644 --- a/cm_transfer_credit.py +++ b/cm_transfer_credit.py @@ -2,16 +2,40 @@ from cm_bot_hal import CM_BOT_HAL import logging, time, requests, json from concurrent.futures import ThreadPoolExecutor from datetime import datetime -from tqdm import tqdm +import os -logging.basicConfig( - format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", level=logging.INFO -) +# 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) -logger = logging.getLogger(__name__) # api_url = 'https://api.luckytown888.net' -api_url = 'https://localhost:3000' +api_url = 'http://api-server:3000' max_threading = 1 def transfer(data: dict): @@ -28,13 +52,16 @@ while True: minutes = int(datetime.now().strftime("%M")) print(f'weekday: {weekday}, hour: {hour}, minutes: {minutes}') if weekday == 6 and (hour >= 9 and hour < 22): - print('hi') + local_logger = logging.getLogger(f"{__name__}.saturday_processing") + local_logger.info("Starting Saturday transfer processing") 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.") else: + logger.info(f"Processing {total_items} transfer items...") with ThreadPoolExecutor(max_workers=max_threading) as executor: - list(tqdm(executor.map(transfer, items), total=total_items, desc="Processing data")) + results = list(executor.map(transfer, items)) + logger.info(f"Completed processing {total_items} transfer items.") time.sleep(1)