tracker 추가

This commit is contained in:
9700X_PC 2025-03-16 07:29:36 +09:00
parent 7205a97679
commit 8b38ea5f62
205 changed files with 457 additions and 48 deletions

1
.gitignore vendored
View File

@ -5,3 +5,4 @@ Include/
src/__pycache__
*.pyc
pyvenv.cfg
src/browsers/user_data/

BIN
1 orders.db Normal file

Binary file not shown.

View File

@ -865,3 +865,181 @@ NoneType: None
[2025-02-11 17:42:53,111] [MainThread] [DEBUG] [sms_worker.py:run:29] Worker: Browser initialized. Waiting for login command (async).
[2025-02-11 17:42:55,214] [MainThread] [DEBUG] [settings_dialog.py:load_sms_quota:204] 저장된 문자 할당량 로드: 이야기모바일, 345건
[2025-02-11 17:43:12,736] [MainThread] [DEBUG] [settings_dialog.py:load_sms_quota:204] 저장된 문자 할당량 로드: 이야기모바일, 345건
[2025-03-15 22:47:01,208] [MainThread] [DEBUG] [sms_worker.py:run:27] Worker: run() started (async)
[2025-03-15 22:47:01,209] [MainThread] [DEBUG] [sms_module_Thread.py:connect:47] 시작 중...
[2025-03-15 22:47:01,597] [MainThread] [DEBUG] [sms_module_Thread.py:connect:52] base_path: D:\py\Mycar_SMS_Sender2\src
[2025-03-15 22:47:01,598] [MainThread] [DEBUG] [sms_module_Thread.py:connect:57] 브라우저 경로: D:\py\Mycar_SMS_Sender2\src\browsers\chromium-1140\chrome-win\chrome.exe
[2025-03-15 22:47:01,599] [MainThread] [DEBUG] [sms_module_Thread.py:connect:58] 사용자 폴더 경로: D:\py\Mycar_SMS_Sender2\src\browsers\user_data
[2025-03-15 22:47:01,990] [MainThread] [INFO] [sms_module_Thread.py:connect:88] 브라우저와 페이지 연결 완료.
[2025-03-15 22:47:01,991] [MainThread] [DEBUG] [sms_worker.py:run:29] Worker: Browser initialized. Waiting for login command (async).
[2025-03-15 22:47:21,850] [MainThread] [INFO] [template_management_dialog.py:on_step_changed:94] 주문 단계 변경: 1 - 통관번호 요청
[2025-03-15 22:47:21,857] [MainThread] [INFO] [template_management_dialog.py:on_template_selected:153] 템플릿 선택됨: ID 1
[2025-03-15 22:47:21,860] [MainThread] [INFO] [template_management_dialog.py:on_template_selected:153] 템플릿 선택됨: ID 1
[2025-03-15 22:47:21,862] [MainThread] [INFO] [template_management_dialog.py:restore_settings:192] 템플릿 설정 복원 완료
[2025-03-15 22:47:24,266] [MainThread] [INFO] [template_management_dialog.py:on_template_selected:153] 템플릿 선택됨: ID 1
[2025-03-15 22:47:25,165] [MainThread] [INFO] [template_management_dialog.py:on_template_selected:153] 템플릿 선택됨: ID 1
[2025-03-15 22:47:37,506] [MainThread] [INFO] [main_window.py:start_login:130] Google Messages 로그인 시작
[2025-03-15 22:47:37,507] [MainThread] [DEBUG] [sms_worker.py:do_login:34] Worker: do_login() started (async)
[2025-03-15 22:47:39,131] [MainThread] [DEBUG] [sms_module_Thread.py:login:96] current page : https://messages.google.com/web/authentication
[2025-03-15 22:47:39,131] [MainThread] [INFO] [sms_module_Thread.py:login:104] AsyncSMSMessenger: 로그인 페이지로 이동합니다.
[2025-03-15 22:47:41,322] [MainThread] [DEBUG] [sms_module_Thread.py:login:132] qr코드가 변경됨.
[2025-03-15 22:47:42,417] [MainThread] [DEBUG] [sms_worker.py:handle_qr_found:64] Worker: QR code detected, emitting qrCodeFound signal : qr_code.png
[2025-03-15 22:47:42,418] [MainThread] [INFO] [main_window.py:show_qr_dialog:321] MainWindow: QR 다이얼로그 표시
[2025-03-15 22:47:55,649] [MainThread] [DEBUG] [sms_worker.py:run:27] Worker: run() started (async)
[2025-03-15 22:47:55,650] [MainThread] [DEBUG] [sms_module_Thread.py:connect:47] 시작 중...
[2025-03-15 22:47:55,864] [MainThread] [DEBUG] [sms_module_Thread.py:connect:52] base_path: D:\py\Mycar_SMS_Sender2\src
[2025-03-15 22:47:55,864] [MainThread] [DEBUG] [sms_module_Thread.py:connect:57] 브라우저 경로: D:\py\Mycar_SMS_Sender2\src\browsers\chromium-1140\chrome-win\chrome.exe
[2025-03-15 22:47:55,865] [MainThread] [DEBUG] [sms_module_Thread.py:connect:58] 사용자 폴더 경로: D:\py\Mycar_SMS_Sender2\src\browsers\user_data
[2025-03-15 22:47:56,121] [MainThread] [INFO] [sms_module_Thread.py:connect:88] 브라우저와 페이지 연결 완료.
[2025-03-15 22:47:56,122] [MainThread] [DEBUG] [sms_worker.py:run:29] Worker: Browser initialized. Waiting for login command (async).
[2025-03-15 22:52:51,154] [MainThread] [DEBUG] [sms_worker.py:run:27] Worker: run() started (async)
[2025-03-15 22:52:51,155] [MainThread] [DEBUG] [sms_module_Thread.py:connect:47] 시작 중...
[2025-03-15 22:52:51,367] [MainThread] [DEBUG] [sms_module_Thread.py:connect:52] base_path: D:\py\Mycar_SMS_Sender2\src
[2025-03-15 22:52:51,367] [MainThread] [DEBUG] [sms_module_Thread.py:connect:57] 브라우저 경로: D:\py\Mycar_SMS_Sender2\src\browsers\chromium-1140\chrome-win\chrome.exe
[2025-03-15 22:52:51,368] [MainThread] [DEBUG] [sms_module_Thread.py:connect:58] 사용자 폴더 경로: D:\py\Mycar_SMS_Sender2\src\browsers\user_data
[2025-03-15 22:52:51,583] [MainThread] [INFO] [sms_module_Thread.py:connect:88] 브라우저와 페이지 연결 완료.
[2025-03-15 22:52:51,584] [MainThread] [DEBUG] [sms_worker.py:run:29] Worker: Browser initialized. Waiting for login command (async).
[2025-03-15 22:52:54,032] [MainThread] [INFO] [main_window.py:closeEvent:345] MainWindow: 종료 전 cleanup 시작
[2025-03-15 22:54:07,335] [MainThread] [DEBUG] [sms_worker.py:run:27] Worker: run() started (async)
[2025-03-15 22:54:07,336] [MainThread] [DEBUG] [sms_module_Thread.py:connect:47] 시작 중...
[2025-03-15 22:54:07,560] [MainThread] [DEBUG] [sms_module_Thread.py:connect:52] base_path: D:\py\Mycar_SMS_Sender2\src
[2025-03-15 22:54:07,561] [MainThread] [DEBUG] [sms_module_Thread.py:connect:57] 브라우저 경로: D:\py\Mycar_SMS_Sender2\src\browsers\chromium-1140\chrome-win\chrome.exe
[2025-03-15 22:54:07,561] [MainThread] [DEBUG] [sms_module_Thread.py:connect:58] 사용자 폴더 경로: D:\py\Mycar_SMS_Sender2\src\browsers\user_data
[2025-03-15 22:54:07,777] [MainThread] [INFO] [sms_module_Thread.py:connect:88] 브라우저와 페이지 연결 완료.
[2025-03-15 22:54:07,778] [MainThread] [DEBUG] [sms_worker.py:run:29] Worker: Browser initialized. Waiting for login command (async).
[2025-03-15 22:54:09,662] [MainThread] [INFO] [main_window.py:closeEvent:345] MainWindow: 종료 전 cleanup 시작
[2025-03-15 22:56:11,268] [MainThread] [DEBUG] [sms_worker.py:run:27] Worker: run() started (async)
[2025-03-15 22:56:11,269] [MainThread] [DEBUG] [sms_module_Thread.py:connect:47] 시작 중...
[2025-03-15 22:56:11,489] [MainThread] [DEBUG] [sms_module_Thread.py:connect:52] base_path: D:\py\Mycar_SMS_Sender2\src
[2025-03-15 22:56:11,490] [MainThread] [DEBUG] [sms_module_Thread.py:connect:57] 브라우저 경로: D:\py\Mycar_SMS_Sender2\src\browsers\chromium-1140\chrome-win\chrome.exe
[2025-03-15 22:56:11,490] [MainThread] [DEBUG] [sms_module_Thread.py:connect:58] 사용자 폴더 경로: D:\py\Mycar_SMS_Sender2\src\browsers\user_data
[2025-03-15 22:56:11,712] [MainThread] [INFO] [sms_module_Thread.py:connect:88] 브라우저와 페이지 연결 완료.
[2025-03-15 22:56:11,713] [MainThread] [DEBUG] [sms_worker.py:run:29] Worker: Browser initialized. Waiting for login command (async).
[2025-03-15 22:56:13,335] [MainThread] [INFO] [main_window.py:closeEvent:345] MainWindow: 종료 전 cleanup 시작
[2025-03-15 22:57:04,762] [MainThread] [DEBUG] [sms_worker.py:run:27] Worker: run() started (async)
[2025-03-15 22:57:04,763] [MainThread] [DEBUG] [sms_module_Thread.py:connect:47] 시작 중...
[2025-03-15 22:57:04,979] [MainThread] [DEBUG] [sms_module_Thread.py:connect:52] base_path: D:\py\Mycar_SMS_Sender2\src
[2025-03-15 22:57:04,980] [MainThread] [DEBUG] [sms_module_Thread.py:connect:57] 브라우저 경로: D:\py\Mycar_SMS_Sender2\src\browsers\chromium-1140\chrome-win\chrome.exe
[2025-03-15 22:57:04,981] [MainThread] [DEBUG] [sms_module_Thread.py:connect:58] 사용자 폴더 경로: D:\py\Mycar_SMS_Sender2\src\browsers\user_data
[2025-03-15 22:57:05,190] [MainThread] [INFO] [sms_module_Thread.py:connect:88] 브라우저와 페이지 연결 완료.
[2025-03-15 22:57:05,191] [MainThread] [DEBUG] [sms_worker.py:run:29] Worker: Browser initialized. Waiting for login command (async).
[2025-03-15 22:57:07,026] [MainThread] [INFO] [main_window.py:closeEvent:345] MainWindow: 종료 전 cleanup 시작
[2025-03-15 22:58:04,463] [MainThread] [DEBUG] [sms_worker.py:run:27] Worker: run() started (async)
[2025-03-15 22:58:04,464] [MainThread] [DEBUG] [sms_module_Thread.py:connect:47] 시작 중...
[2025-03-15 22:58:04,675] [MainThread] [DEBUG] [sms_module_Thread.py:connect:52] base_path: D:\py\Mycar_SMS_Sender2\src
[2025-03-15 22:58:04,676] [MainThread] [DEBUG] [sms_module_Thread.py:connect:57] 브라우저 경로: D:\py\Mycar_SMS_Sender2\src\browsers\chromium-1140\chrome-win\chrome.exe
[2025-03-15 22:58:04,676] [MainThread] [DEBUG] [sms_module_Thread.py:connect:58] 사용자 폴더 경로: D:\py\Mycar_SMS_Sender2\src\browsers\user_data
[2025-03-15 22:58:04,880] [MainThread] [INFO] [sms_module_Thread.py:connect:88] 브라우저와 페이지 연결 완료.
[2025-03-15 22:58:04,881] [MainThread] [DEBUG] [sms_worker.py:run:29] Worker: Browser initialized. Waiting for login command (async).
[2025-03-15 22:58:06,788] [MainThread] [INFO] [main_window.py:closeEvent:345] MainWindow: 종료 전 cleanup 시작
[2025-03-15 22:58:52,519] [MainThread] [DEBUG] [sms_worker.py:run:27] Worker: run() started (async)
[2025-03-15 22:58:52,519] [MainThread] [DEBUG] [sms_module_Thread.py:connect:47] 시작 중...
[2025-03-15 22:58:52,732] [MainThread] [DEBUG] [sms_module_Thread.py:connect:52] base_path: D:\py\Mycar_SMS_Sender2\src
[2025-03-15 22:58:52,733] [MainThread] [DEBUG] [sms_module_Thread.py:connect:57] 브라우저 경로: D:\py\Mycar_SMS_Sender2\src\browsers\chromium-1140\chrome-win\chrome.exe
[2025-03-15 22:58:52,733] [MainThread] [DEBUG] [sms_module_Thread.py:connect:58] 사용자 폴더 경로: D:\py\Mycar_SMS_Sender2\src\browsers\user_data
[2025-03-15 22:58:52,942] [MainThread] [INFO] [sms_module_Thread.py:connect:88] 브라우저와 페이지 연결 완료.
[2025-03-15 22:58:52,943] [MainThread] [DEBUG] [sms_worker.py:run:29] Worker: Browser initialized. Waiting for login command (async).
[2025-03-15 22:58:54,575] [MainThread] [INFO] [main_window.py:closeEvent:345] MainWindow: 종료 전 cleanup 시작
[2025-03-15 22:58:54,581] [MainThread] [DEBUG] [sms_module_Thread.py:disconnect:285] disconnect.
[2025-03-15 22:58:54,582] [MainThread] [DEBUG] [sms_module_Thread.py:disconnect:287] browser.
[2025-03-15 23:00:13,095] [MainThread] [DEBUG] [sms_worker.py:run:27] Worker: run() started (async)
[2025-03-15 23:00:13,096] [MainThread] [DEBUG] [sms_module_Thread.py:connect:47] 시작 중...
[2025-03-15 23:00:13,316] [MainThread] [DEBUG] [sms_module_Thread.py:connect:52] base_path: D:\py\Mycar_SMS_Sender2\src
[2025-03-15 23:00:13,317] [MainThread] [DEBUG] [sms_module_Thread.py:connect:57] 브라우저 경로: D:\py\Mycar_SMS_Sender2\src\browsers\chromium-1140\chrome-win\chrome.exe
[2025-03-15 23:00:13,317] [MainThread] [DEBUG] [sms_module_Thread.py:connect:58] 사용자 폴더 경로: D:\py\Mycar_SMS_Sender2\src\browsers\user_data
[2025-03-15 23:00:13,534] [MainThread] [INFO] [sms_module_Thread.py:connect:88] 브라우저와 페이지 연결 완료.
[2025-03-15 23:00:13,535] [MainThread] [DEBUG] [sms_worker.py:run:29] Worker: Browser initialized. Waiting for login command (async).
[2025-03-15 23:01:54,106] [MainThread] [DEBUG] [sms_worker.py:run:27] Worker: run() started (async)
[2025-03-15 23:01:54,106] [MainThread] [DEBUG] [sms_module_Thread.py:connect:47] 시작 중...
[2025-03-15 23:01:54,340] [MainThread] [DEBUG] [sms_module_Thread.py:connect:52] base_path: D:\py\Mycar_SMS_Sender2\src
[2025-03-15 23:01:54,341] [MainThread] [DEBUG] [sms_module_Thread.py:connect:57] 브라우저 경로: D:\py\Mycar_SMS_Sender2\src\browsers\chromium-1140\chrome-win\chrome.exe
[2025-03-15 23:01:54,342] [MainThread] [DEBUG] [sms_module_Thread.py:connect:58] 사용자 폴더 경로: D:\py\Mycar_SMS_Sender2\src\browsers\user_data
[2025-03-15 23:01:54,577] [MainThread] [INFO] [sms_module_Thread.py:connect:88] 브라우저와 페이지 연결 완료.
[2025-03-15 23:01:54,578] [MainThread] [DEBUG] [sms_worker.py:run:29] Worker: Browser initialized. Waiting for login command (async).
[2025-03-15 23:01:56,139] [MainThread] [INFO] [main_window.py:closeEvent:345] MainWindow: 종료 전 cleanup 시작
[2025-03-15 23:03:23,634] [MainThread] [DEBUG] [sms_worker.py:run:27] Worker: run() started (async)
[2025-03-15 23:03:23,635] [MainThread] [DEBUG] [sms_module_Thread.py:connect:47] 시작 중...
[2025-03-15 23:03:23,847] [MainThread] [DEBUG] [sms_module_Thread.py:connect:52] base_path: D:\py\Mycar_SMS_Sender2\src
[2025-03-15 23:03:23,847] [MainThread] [DEBUG] [sms_module_Thread.py:connect:57] 브라우저 경로: D:\py\Mycar_SMS_Sender2\src\browsers\chromium-1140\chrome-win\chrome.exe
[2025-03-15 23:03:23,848] [MainThread] [DEBUG] [sms_module_Thread.py:connect:58] 사용자 폴더 경로: D:\py\Mycar_SMS_Sender2\src\browsers\user_data
[2025-03-15 23:03:24,059] [MainThread] [INFO] [sms_module_Thread.py:connect:88] 브라우저와 페이지 연결 완료.
[2025-03-15 23:03:24,060] [MainThread] [DEBUG] [sms_worker.py:run:29] Worker: Browser initialized. Waiting for login command (async).
[2025-03-15 23:03:28,871] [MainThread] [INFO] [main_window.py:closeEvent:347] MainWindow: 종료 전 cleanup 시작
[2025-03-15 23:04:04,293] [MainThread] [DEBUG] [sms_worker.py:run:27] Worker: run() started (async)
[2025-03-15 23:04:04,294] [MainThread] [DEBUG] [sms_module_Thread.py:connect:47] 시작 중...
[2025-03-15 23:04:04,507] [MainThread] [DEBUG] [sms_module_Thread.py:connect:52] base_path: D:\py\Mycar_SMS_Sender2\src
[2025-03-15 23:04:04,508] [MainThread] [DEBUG] [sms_module_Thread.py:connect:57] 브라우저 경로: D:\py\Mycar_SMS_Sender2\src\browsers\chromium-1140\chrome-win\chrome.exe
[2025-03-15 23:04:04,508] [MainThread] [DEBUG] [sms_module_Thread.py:connect:58] 사용자 폴더 경로: D:\py\Mycar_SMS_Sender2\src\browsers\user_data
[2025-03-15 23:04:04,731] [MainThread] [INFO] [sms_module_Thread.py:connect:88] 브라우저와 페이지 연결 완료.
[2025-03-15 23:04:04,732] [MainThread] [DEBUG] [sms_worker.py:run:29] Worker: Browser initialized. Waiting for login command (async).
[2025-03-15 23:04:06,403] [MainThread] [INFO] [main_window.py:start_login:132] Google Messages 로그인 시작
[2025-03-15 23:04:06,404] [MainThread] [DEBUG] [sms_worker.py:do_login:34] Worker: do_login() started (async)
[2025-03-15 23:04:07,024] [MainThread] [DEBUG] [sms_module_Thread.py:login:96] current page : https://messages.google.com/web/authentication
[2025-03-15 23:04:07,024] [MainThread] [INFO] [sms_module_Thread.py:login:104] AsyncSMSMessenger: 로그인 페이지로 이동합니다.
[2025-03-15 23:04:09,162] [MainThread] [DEBUG] [sms_module_Thread.py:login:132] qr코드가 변경됨.
[2025-03-15 23:04:10,255] [MainThread] [DEBUG] [sms_worker.py:handle_qr_found:64] Worker: QR code detected, emitting qrCodeFound signal : qr_code.png
[2025-03-15 23:04:10,256] [MainThread] [INFO] [main_window.py:show_qr_dialog:323] MainWindow: QR 다이얼로그 표시
[2025-03-15 23:04:17,150] [MainThread] [INFO] [main_window.py:closeEvent:347] MainWindow: 종료 전 cleanup 시작
[2025-03-15 23:05:53,183] [MainThread] [DEBUG] [sms_worker.py:run:27] Worker: run() started (async)
[2025-03-15 23:05:53,184] [MainThread] [DEBUG] [sms_module_Thread.py:connect:47] 시작 중...
[2025-03-15 23:05:53,409] [MainThread] [DEBUG] [sms_module_Thread.py:connect:52] base_path: D:\py\Mycar_SMS_Sender2\src
[2025-03-15 23:05:53,411] [MainThread] [DEBUG] [sms_module_Thread.py:connect:57] 브라우저 경로: D:\py\Mycar_SMS_Sender2\src\browsers\chromium-1140\chrome-win\chrome.exe
[2025-03-15 23:05:53,411] [MainThread] [DEBUG] [sms_module_Thread.py:connect:58] 사용자 폴더 경로: D:\py\Mycar_SMS_Sender2\src\browsers\user_data
[2025-03-15 23:05:53,625] [MainThread] [INFO] [sms_module_Thread.py:connect:88] 브라우저와 페이지 연결 완료.
[2025-03-15 23:05:54,372] [MainThread] [DEBUG] [sms_worker.py:run:29] Worker: Browser initialized. Waiting for login command (async).
[2025-03-15 23:05:55,189] [MainThread] [INFO] [main_window.py:start_login:132] Google Messages 로그인 시작
[2025-03-15 23:05:55,190] [MainThread] [DEBUG] [sms_worker.py:do_login:34] Worker: do_login() started (async)
[2025-03-15 23:05:55,190] [MainThread] [DEBUG] [sms_module_Thread.py:login:99] current page : https://messages.google.com/web/authentication
[2025-03-15 23:05:56,548] [MainThread] [DEBUG] [sms_module_Thread.py:login:135] qr코드가 변경됨.
[2025-03-15 23:05:57,638] [MainThread] [DEBUG] [sms_worker.py:handle_qr_found:64] Worker: QR code detected, emitting qrCodeFound signal : qr_code.png
[2025-03-15 23:05:57,639] [MainThread] [INFO] [main_window.py:show_qr_dialog:323] MainWindow: QR 다이얼로그 표시
[2025-03-15 23:06:22,323] [MainThread] [INFO] [template_management_dialog.py:on_step_changed:94] 주문 단계 변경: 1 - 통관번호 요청
[2025-03-15 23:06:22,329] [MainThread] [INFO] [template_management_dialog.py:on_template_selected:153] 템플릿 선택됨: ID 1
[2025-03-15 23:06:22,332] [MainThread] [INFO] [template_management_dialog.py:on_template_selected:153] 템플릿 선택됨: ID 1
[2025-03-15 23:06:22,334] [MainThread] [INFO] [template_management_dialog.py:restore_settings:192] 템플릿 설정 복원 완료
[2025-03-15 23:06:23,891] [MainThread] [INFO] [template_management_dialog.py:on_template_selected:153] 템플릿 선택됨: ID 1
[2025-03-15 23:06:31,929] [MainThread] [INFO] [main_window.py:closeEvent:347] MainWindow: 종료 전 cleanup 시작
[2025-03-15 23:06:49,879] [MainThread] [DEBUG] [sms_worker.py:run:27] Worker: run() started (async)
[2025-03-15 23:06:49,880] [MainThread] [DEBUG] [sms_module_Thread.py:connect:47] 시작 중...
[2025-03-15 23:06:50,095] [MainThread] [DEBUG] [sms_module_Thread.py:connect:52] base_path: D:\py\Mycar_SMS_Sender2\src
[2025-03-15 23:06:50,096] [MainThread] [DEBUG] [sms_module_Thread.py:connect:57] 브라우저 경로: D:\py\Mycar_SMS_Sender2\src\browsers\chromium-1140\chrome-win\chrome.exe
[2025-03-15 23:06:50,097] [MainThread] [DEBUG] [sms_module_Thread.py:connect:58] 사용자 폴더 경로: D:\py\Mycar_SMS_Sender2\src\browsers\user_data
[2025-03-15 23:06:50,327] [MainThread] [INFO] [sms_module_Thread.py:connect:88] 브라우저와 페이지 연결 완료.
[2025-03-15 23:06:51,194] [MainThread] [DEBUG] [sms_worker.py:run:29] Worker: Browser initialized. Waiting for login command (async).
[2025-03-15 23:06:58,421] [MainThread] [INFO] [main_window.py:closeEvent:347] MainWindow: 종료 전 cleanup 시작
[2025-03-15 23:07:34,437] [INFO] 브라우저와 페이지 연결 완료.
[2025-03-15 23:07:39,572] [ERROR] DB에서 통신사 목록을 가져올 수 없습니다.
NoneType: None
[2025-03-15 23:07:59,879] [INFO] MainWindow: 종료 전 cleanup 시작
[2025-03-15 23:12:44,743] [INFO] 브라우저와 페이지 연결 완료.
[2025-03-15 23:12:46,334] [INFO] 주문 단계 변경: 1 - 통관번호 요청
[2025-03-15 23:12:46,340] [INFO] 템플릿 선택됨: ID 1
[2025-03-15 23:12:46,342] [INFO] 템플릿 선택됨: ID 1
[2025-03-15 23:12:46,343] [INFO] 템플릿 설정 복원 완료
[2025-03-15 23:12:47,983] [INFO] 템플릿 선택됨: ID 1
[2025-03-15 23:12:55,792] [INFO] 주문 단계 변경: 1 - 통관번호 요청
[2025-03-15 23:12:55,795] [INFO] 템플릿 선택됨: ID 1
[2025-03-15 23:12:55,797] [INFO] 템플릿 선택됨: ID 1
[2025-03-15 23:12:55,799] [INFO] 템플릿 설정 복원 완료
[2025-03-15 23:14:57,686] [INFO] MainWindow: 종료 전 cleanup 시작
[2025-03-15 23:15:26,423] [INFO] 브라우저와 페이지 연결 완료.
[2025-03-15 23:17:09,307] [INFO] MainWindow: 종료 전 cleanup 시작
[2025-03-15 23:18:14,696] [INFO] 브라우저와 페이지 연결 완료.
[2025-03-15 23:18:24,959] [INFO] MainWindow: 종료 전 cleanup 시작
[2025-03-15 23:22:51,881] [INFO] 브라우저와 페이지 연결 완료.
[2025-03-15 23:22:55,989] [ERROR] 샵 이름 삭제 에러: invalid literal for int() with base 10: '3업자'
Traceback (most recent call last):
File "D:\py\Mycar_SMS_Sender2\gui\settings_dialog.py", line 355, in delete_item
tag_num = int(tag_str.replace("사", ""))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: invalid literal for int() with base 10: '3업자'
[2025-03-15 23:23:16,072] [INFO] MainWindow: 종료 전 cleanup 시작
[2025-03-15 23:23:44,407] [INFO] 브라우저와 페이지 연결 완료.
[2025-03-15 23:24:15,236] [INFO] 주문 단계 변경: 1 - 통관번호 요청
[2025-03-15 23:24:15,241] [INFO] 템플릿 선택됨: ID 1
[2025-03-15 23:24:15,243] [INFO] 템플릿 선택됨: ID 1
[2025-03-15 23:24:15,244] [INFO] 템플릿 설정 복원 완료
[2025-03-15 23:24:16,665] [INFO] 템플릿 선택됨: ID 1
[2025-03-15 23:24:46,453] [INFO] MainWindow: 종료 전 cleanup 시작

View File

@ -19,19 +19,21 @@ import logging
import asyncio
class MainWindow(QMainWindow):
def __init__(self):
def __init__(self, loop):
super().__init__()
self.logger = Logger(gui_logger=self.append_log, log_file="SMS_Sender.log", logger_name="SMS_Sender_Logger", level=logging.DEBUG)
self.logger = Logger(gui_logger=self.append_log, log_file="SMS_Sender.log", logger_name="SMS_Sender_Logger", level=logging.INFO)
self.settings = QSettings("When_Ride_Mycar", "SMS_Sender")
self.db_manager = DatabaseManager(self.logger) # SQLite, SQLAlchemy 기반 DB 관리자
self.setWindowTitle("주문 알림 SMS 전송 프로그램")
self.setWindowTitle("내차는 언제타냐!! 주문 알림 SMS 전송 프로그램")
self.resize(900, 700)
self.setup_menu()
self.setup_ui()
self.apply_styles()
self.loop = loop
# 매달 1일(또는 저장된 월과 현재 월이 다르면) SMS 카운트 초기화
self.check_and_reset_sms_count()
self.update_sms_count_label()
@ -39,7 +41,7 @@ class MainWindow(QMainWindow):
self.refresh_order_list()
# SMSMessengerWorker 생성 (async 방식)
self.sms_worker = SMSMessengerWorker(self.logger, headless=False, delay=1)
self.sms_worker = SMSMessengerWorker(self.logger, headless=True, delay=1)
self.qr_dialog = None
# 시그널 연결: Worker에서 QR 코드 감지 및 로그인 성공 시 UI 업데이트
@ -118,7 +120,7 @@ class MainWindow(QMainWindow):
main_layout.addWidget(QLabel("로그:"))
main_layout.addWidget(self.log_display)
self.logger.log_signal.connect(self.append_log)
# self.logger.log_signal.connect(self.append_log)
self.order_table.itemChanged.connect(self.item_changed_slot)
@Slot(str)
@ -341,6 +343,35 @@ class MainWindow(QMainWindow):
success_dialog.exec()
# (추가: 메시지 전송 페이지로 이동하는 등 후속 처리 가능)
def closeEvent(self, event):
self.logger.log("MainWindow: 종료 전 cleanup 시작", level=logging.INFO)
# cleanup()를 비동기로 실행한 후, 일정 시간 후 강제로 이벤트 루프 종료를 시도합니다.
asyncio.create_task(self.cleanup())
event.accept()
async def cleanup(self):
try:
self.loop.stop()
self.loop.close()
# disconnect()에 5초 timeout 적용
await asyncio.wait_for(self.sms_worker.sms_messenger.disconnect(), timeout=5)
self.logger.log("MainWindow: disconnect 완료", level=logging.INFO)
except asyncio.TimeoutError:
self.logger.error("MainWindow: disconnect 타임아웃 발생", exc_info=True)
except Exception as e:
self.logger.error(f"MainWindow: disconnect 중 에러 발생: {e}", exc_info=True)
finally:
# 미완료 태스크 취소
tasks = [t for t in asyncio.all_tasks() if t is not asyncio.current_task()]
for task in tasks:
task.cancel()
await asyncio.gather(*tasks, return_exceptions=True)
self.logger.log("MainWindow: 모든 태스크 취소 완료", level=logging.INFO)
# 이벤트 루프 종료 요청
QCoreApplication.quit()
import sys
sys.exit(0)
class QRDialog(QDialog):
"""

View File

@ -3,7 +3,7 @@ from PySide6.QtWidgets import (
QDialog, QVBoxLayout, QHBoxLayout, QLineEdit, QPushButton,
QListWidget, QLabel, QMessageBox, QTabWidget, QWidget, QComboBox
)
from PySide6.QtCore import Qt
from PySide6.QtCore import Qt, QEvent, Signal
import logging
class ShopTagDialog(QDialog):
@ -20,12 +20,14 @@ class ShopTagDialog(QDialog):
layout.addWidget(label)
self.combo = QComboBox()
self.combo.setEditable(True)
# available_tags가 예: [3, 4, 5, 6, 7]라면 콤보박스에는 "3사", "4사", ... 로 표시
for tag in available_tags:
self.combo.addItem(f"{tag}", tag)
layout.addWidget(self.combo)
# 엔터키를 누르면 다이얼로그를 수락하도록 연결합니다.
# 엔터키를 누르면 다이얼로그를 수락
if self.combo.lineEdit() is not None:
self.combo.lineEdit().returnPressed.connect(self.accept)
button_layout = QHBoxLayout()
@ -43,6 +45,18 @@ class ShopTagDialog(QDialog):
self.selected_tag = self.combo.currentData()
return result
class setListWidget(QListWidget):
# DEL 키 입력 시 발생시키는 커스텀 시그널
deletePressed = Signal()
def keyPressEvent(self, event):
if event.key() == Qt.Key_Delete:
# DEL 키가 눌리면 시그널을 emit하고 기본 동작(선택 해제 등)은 하지 않음.
self.deletePressed.emit()
event.accept()
else:
super().keyPressEvent(event)
class SettingsDialog(QDialog):
def __init__(self, logger, db_manager, parent=None):
"""
@ -85,8 +99,11 @@ class SettingsDialog(QDialog):
tab_layout = QVBoxLayout(tab)
# 저장된 항목을 표시하는 리스트 위젯
list_widget = QListWidget()
list_widget = setListWidget()
list_widget.setToolTip(f"저장된 {display_name} 목록을 확인하세요.")
# 리스트 위젯에 이벤트 필터 설치 (DEL 키 처리용)
list_widget.installEventFilter(self)
tab_layout.addWidget(list_widget)
# 입력창과 추가 버튼을 담는 수평 레이아웃
@ -133,6 +150,15 @@ class SettingsDialog(QDialog):
button_layout.addWidget(close_button)
main_layout.addLayout(button_layout)
def eventFilter(self, obj, event):
# 리스트 위젯에서 Delete 키 누르면 삭제 처리
if event.type() == QEvent.KeyPress and event.key() == Qt.Key_Delete:
# widgets 딕셔너리에서 해당 리스트 위젯을 찾습니다.
for category, widget_dict in self.widgets.items():
if widget_dict.get("list") == obj:
self.delete_item(category)
return True
return super().eventFilter(obj, event)
def setup_sms_quota_tab(self):
@ -326,11 +352,11 @@ class SettingsDialog(QDialog):
try:
tag_str = text.split("]")[0][1:] # 예: "[3사" -> "3사"
# tag_str이 "3사"이면 tag를 정수로 변환
tag_num = int(tag_str.replace("", ""))
tag_num = int(tag_str.replace("업자", ""))
shop_name = text.split("]", 1)[1].strip()
self.db_manager.delete_shop_setting(category, shop_name, tag_num)
except Exception:
pass
except Exception as e:
self.logger.log(f"샵 이름 삭제 에러: {e}", level=logging.ERROR, exc_info=True)
else:
self.db_manager.delete_setting(category, item.text())
self.load_all_settings()

View File

@ -10,7 +10,7 @@ def main():
loop = QEventLoop(app)
asyncio.set_event_loop(loop)
window = MainWindow()
window = MainWindow(loop)
window.show()
with loop:

BIN
orders.db

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View File

@ -1 +0,0 @@
MANIFEST-000001

View File

@ -1,2 +0,0 @@
2025/02/11-17:06:53.627 1dac Creating DB D:\py\Mycar_SMS_Sender2\src\browsers\user_data\Default\Extension Rules since it was missing.
2025/02/11-17:06:53.636 1dac Reusing MANIFEST D:\py\Mycar_SMS_Sender2\src\browsers\user_data\Default\Extension Rules/MANIFEST-000001

View File

@ -1 +0,0 @@
MANIFEST-000001

View File

@ -1,2 +0,0 @@
2025/02/11-17:06:53.644 1dac Creating DB D:\py\Mycar_SMS_Sender2\src\browsers\user_data\Default\Extension Scripts since it was missing.
2025/02/11-17:06:53.647 1dac Reusing MANIFEST D:\py\Mycar_SMS_Sender2\src\browsers\user_data\Default\Extension Scripts/MANIFEST-000001

View File

@ -1 +0,0 @@
MANIFEST-000001

View File

@ -1 +0,0 @@
MANIFEST-000001

Some files were not shown because too many files have changed in this diff Show More