From 149b97b0caf253649584fd8c6e16c673bb2d98d2 Mon Sep 17 00:00:00 2001 From: hyeonggil <> Date: Sun, 15 Mar 2026 15:14:09 +0900 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20.env=20=ED=8C=8C=EC=9D=BC?= =?UTF-8?q?=20=EB=A1=9C=EB=93=9C=20=EB=B0=8F=20Slack=20=EC=9B=B9=ED=9B=85?= =?UTF-8?q?=20=EC=95=8C=EB=A6=BC=20=EC=A7=80=EC=9B=90=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lotto_auto_buy.py | 9 +++++++++ lotto_log.json | 37 +++++++++++++++++++++++++++++++++++++ requirements.txt | 1 + 3 files changed, 47 insertions(+) create mode 100644 lotto_log.json diff --git a/lotto_auto_buy.py b/lotto_auto_buy.py index 51e9335..360a9f8 100755 --- a/lotto_auto_buy.py +++ b/lotto_auto_buy.py @@ -14,7 +14,15 @@ import sys import time import json import logging +import urllib.request from datetime import datetime + +# .env 파일 자동 로드 +try: + from dotenv import load_dotenv + load_dotenv() +except ImportError: + pass from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.service import Service @@ -32,6 +40,7 @@ CONFIG = { "BUY_COUNT": 1, # 구매 게임 수 (1~10) "HEADLESS": True, # True: 브라우저 창 숨김, False: 브라우저 창 표시 "LOG_FILE": "lotto_log.json", + "SLACK_WEBHOOK_URL": os.environ.get("SLACK_WEBHOOK_URL", ""), } # 로깅 설정 diff --git a/lotto_log.json b/lotto_log.json new file mode 100644 index 0000000..e3d652b --- /dev/null +++ b/lotto_log.json @@ -0,0 +1,37 @@ +[ + { + "date": "2026-03-15 12:46:23", + "status": "error", + "error": "Message: no such element: Unable to locate element: {\"method\":\"css selector\",\"selector\":\"[id=\"userId\"]\"}\n (Session info: chrome=145.0.7632.160); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#nosuchelementexception\nStacktrace:\n0 chromedriver 0x00000001028816b4 cxxbridge1$str$ptr + 3127600\n1 chromedriver 0x0000000102879a50 cxxbridge1$str$ptr + 3095756\n2 chromedriver 0x000000010235656c _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 75432\n3 chromedriver 0x000000010239f864 _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 375200\n4 chromedriver 0x00000001023de620 _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 632668\n5 chromedriver 0x0000000102393b9c _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 326872\n6 chromedriver 0x0000000102840680 cxxbridge1$str$ptr + 2861308\n7 chromedriver 0x0000000102843dd4 cxxbridge1$str$ptr + 2875472\n8 chromedriver 0x0000000102825a7c cxxbridge1$str$ptr + 2751736\n9 chromedriver 0x0000000102844658 cxxbridge1$str$ptr + 2877652\n10 chromedriver 0x0000000102815ffc cxxbridge1$str$ptr + 2687608\n11 chromedriver 0x0000000102868d78 cxxbridge1$str$ptr + 3026932\n12 chromedriver 0x0000000102868ef4 cxxbridge1$str$ptr + 3027312\n13 chromedriver 0x00000001028796a8 cxxbridge1$str$ptr + 3094820\n14 libsystem_pthread.dylib 0x00000001929cbc08 _pthread_start + 136\n15 libsystem_pthread.dylib 0x00000001929c6ba8 thread_start + 8\n" + }, + { + "date": "2026-03-15 12:50:45", + "status": "error", + "error": "Message: invalid element state\n (Session info: chrome=145.0.7632.160)\nStacktrace:\n0 chromedriver 0x00000001028a96b4 cxxbridge1$str$ptr + 3127600\n1 chromedriver 0x00000001028a1a50 cxxbridge1$str$ptr + 3095756\n2 chromedriver 0x000000010237e370 _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 74924\n3 chromedriver 0x00000001023bf528 _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 341604\n4 chromedriver 0x00000001023bd25c _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 332696\n5 chromedriver 0x0000000102406620 _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 632668\n6 chromedriver 0x00000001023bbb9c _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 326872\n7 chromedriver 0x0000000102868680 cxxbridge1$str$ptr + 2861308\n8 chromedriver 0x000000010286bdd4 cxxbridge1$str$ptr + 2875472\n9 chromedriver 0x000000010284da7c cxxbridge1$str$ptr + 2751736\n10 chromedriver 0x000000010286c658 cxxbridge1$str$ptr + 2877652\n11 chromedriver 0x000000010283dffc cxxbridge1$str$ptr + 2687608\n12 chromedriver 0x0000000102890d78 cxxbridge1$str$ptr + 3026932\n13 chromedriver 0x0000000102890ef4 cxxbridge1$str$ptr + 3027312\n14 chromedriver 0x00000001028a16a8 cxxbridge1$str$ptr + 3094820\n15 libsystem_pthread.dylib 0x00000001929cbc08 _pthread_start + 136\n16 libsystem_pthread.dylib 0x00000001929c6ba8 thread_start + 8\n" + }, + { + "date": "2026-03-15 12:52:02", + "status": "error", + "error": "Message: invalid element state\n (Session info: chrome=145.0.7632.160)\nStacktrace:\n0 chromedriver 0x0000000102d096b4 cxxbridge1$str$ptr + 3127600\n1 chromedriver 0x0000000102d01a50 cxxbridge1$str$ptr + 3095756\n2 chromedriver 0x00000001027de370 _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 74924\n3 chromedriver 0x000000010281f528 _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 341604\n4 chromedriver 0x000000010281d25c _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 332696\n5 chromedriver 0x0000000102866620 _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 632668\n6 chromedriver 0x000000010281bb9c _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 326872\n7 chromedriver 0x0000000102cc8680 cxxbridge1$str$ptr + 2861308\n8 chromedriver 0x0000000102ccbdd4 cxxbridge1$str$ptr + 2875472\n9 chromedriver 0x0000000102cada7c cxxbridge1$str$ptr + 2751736\n10 chromedriver 0x0000000102ccc658 cxxbridge1$str$ptr + 2877652\n11 chromedriver 0x0000000102c9dffc cxxbridge1$str$ptr + 2687608\n12 chromedriver 0x0000000102cf0d78 cxxbridge1$str$ptr + 3026932\n13 chromedriver 0x0000000102cf0ef4 cxxbridge1$str$ptr + 3027312\n14 chromedriver 0x0000000102d016a8 cxxbridge1$str$ptr + 3094820\n15 libsystem_pthread.dylib 0x00000001929cbc08 _pthread_start + 136\n16 libsystem_pthread.dylib 0x00000001929c6ba8 thread_start + 8\n" + }, + { + "date": "2026-03-15 12:53:12", + "status": "error", + "error": "Message: \n" + }, + { + "date": "2026-03-15 13:00:41", + "status": "error", + "error": "Message: invalid session id; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#invalidsessionidexception\nStacktrace:\n0 chromedriver 0x00000001011a96b4 cxxbridge1$str$ptr + 3127600\n1 chromedriver 0x00000001011a1a50 cxxbridge1$str$ptr + 3095756\n2 chromedriver 0x0000000100c7e370 _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 74924\n3 chromedriver 0x0000000100cbaf08 _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 323652\n4 chromedriver 0x0000000100ce3af4 _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 490544\n5 chromedriver 0x0000000100ce2fcc _RNvCsdExgN8vFLbb_7___rustc35___rust_no_alloc_shim_is_unstable_v2 + 487688\n6 chromedriver 0x0000000100c4b620 chromedriver + 112160\n7 chromedriver 0x0000000101168680 cxxbridge1$str$ptr + 2861308\n8 chromedriver 0x000000010116bdd4 cxxbridge1$str$ptr + 2875472\n9 chromedriver 0x000000010114da7c cxxbridge1$str$ptr + 2751736\n10 chromedriver 0x000000010116c658 cxxbridge1$str$ptr + 2877652\n11 chromedriver 0x000000010113dffc cxxbridge1$str$ptr + 2687608\n12 chromedriver 0x0000000100c49314 chromedriver + 103188\n13 dyld 0x0000000192601d54 start + 7184\n" + }, + { + "date": "2026-03-15 13:05:19", + "games": [], + "status": "completed_but_numbers_unknown" + }, + { + "date": "2026-03-15 13:12:37", + "games": [], + "status": "completed_but_numbers_unknown" + } +] \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 7cb6656..c6ffdf1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,2 @@ selenium +python-dotenv