From b726c3254812e414f03322f18386ca59f45a9e2a Mon Sep 17 00:00:00 2001 From: dsyoon Date: Sun, 27 Apr 2025 15:52:41 +0900 Subject: [PATCH] init --- stock_monitor.py | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/stock_monitor.py b/stock_monitor.py index 200dc34..0fcaf28 100644 --- a/stock_monitor.py +++ b/stock_monitor.py @@ -113,14 +113,13 @@ def get_stock_data(symbol, retries=3): return None -def sendAlertMsg(info, market="US"): - if market == "US": - message = "πŸ”” [US] {} ({}) ν˜„μž¬κ°€: ${:.2f}, 근접도: {:.2f}%".format(info['name'], info['symbol'], info['price'], - info['distance']) +def sendAlertMsg(info, market="US", alert=False): + if alert: + message = "πŸ””" else: - message = "πŸ”” [KR] {} ({}) ν˜„μž¬κ°€: β‚©{:.0f}, 근접도: {:.2f}%".format(info['name'], info['symbol'].replace('.KS', ''), - info['price'], info['distance']) + message = "" + message += "[{}] {} ({}) ν˜„μž¬κ°€: ${:.2f}, 근접도: {:.2f}%".format(market, info['name'], info['symbol'], info['price'], info['distance']) try: send_telegram_message(message) except Exception as e: @@ -140,9 +139,12 @@ def monitor_us_stocks(): info['name'] = US_STOCKS[symbol] print(" - {} ({}): {:.2f} ({:.2f})".format(info['name'], symbol, info['price'], info['distance'])) - if info['distance'] <= ALERT_THRESHOLD: + if info['distance'] > ALERT_THRESHOLD: sendAlertMsg(info, "US") + else: + sendAlertMsg(info, "US", alert=True) print(f"Alert generated for {symbol}") + except Exception as e: print(f"Error processing data for {symbol}: {str(e)}") else: @@ -164,9 +166,12 @@ def monitor_kr_stocks(): info['name'] = KR_ETFS[symbol] print(" - {} ({}): {:.2f} ({:.2f})".format(info['name'], symbol, info['price'], info['distance'])) - if info['distance'] <= ALERT_THRESHOLD: + if info['distance'] > ALERT_THRESHOLD: sendAlertMsg(info, "KR") + else: + sendAlertMsg(info, "KR", alert=True) print(f"Alert generated for {symbol}") + except Exception as e: print(f"Error processing data for {symbol}: {str(e)}") else: @@ -178,7 +183,7 @@ def monitor_kr_stocks(): def monitor_coins(): # 코인 λͺ¨λ‹ˆν„°λ§ - print("KR Coins {}".format(datetime.now().strftime('%Y-%m-%d %H:%M:%S'))) + print("KRW Coins {}".format(datetime.now().strftime('%Y-%m-%d %H:%M:%S'))) for symbol in KR_COINS: data = get_coin_data(symbol) if data is not None and not data.empty: @@ -188,9 +193,12 @@ def monitor_coins(): info['name'] = KR_COINS[symbol] print(" - {} ({}): {:.2f} ({:.2f})".format(info['name'], symbol, info['price'], info['distance'])) - if info['distance'] <= ALERT_THRESHOLD: - sendAlertMsg(info, "US") + if info['distance'] > ALERT_THRESHOLD: + sendAlertMsg(info, "KRW") + else: + sendAlertMsg(info, "KRW", alert=True) print(f"Alert generated for {symbol}") + except Exception as e: print(f"Error processing data for {symbol}: {str(e)}") else: