From f4fe20a3c0d5d6658460f0db2ef88edba15380e8 Mon Sep 17 00:00:00 2001 From: R5600U_PC Date: Wed, 23 Oct 2024 16:04:48 +0900 Subject: [PATCH] WTERmARK aDD --- Todo.List | 25 + __pycache__/browser_control.cpython-311.pyc | Bin 46278 -> 46411 bytes .../clipboardImageManager.cpython-311.pyc | Bin 17915 -> 21696 bytes __pycache__/gui.cpython-311.pyc | Bin 52481 -> 58732 bytes __pycache__/logger_module.cpython-311.pyc | Bin 3721 -> 3721 bytes __pycache__/option.cpython-311.pyc | Bin 41542 -> 41542 bytes appTranslator.log | 2637 +++++++++++++++++ browser_control.py | 4 +- clipboardImageManager.py | 125 +- gui.py | 166 +- 10 files changed, 2849 insertions(+), 108 deletions(-) diff --git a/Todo.List b/Todo.List index 05894640..236a0519 100644 --- a/Todo.List +++ b/Todo.List @@ -31,3 +31,28 @@ FastAPI연동 프로그레스 업데이트 옵션명 AI 서버 구축 + + + + + +이미지번역이 안됨. +상세페이지 옵션명 시물레이션 필요 목록이 제대로 안됨. +버텍스 실패 후 퍼센티 자차AI 실행시 현재 옵션 수집 + +max 옵션값 제한 +단일옵션일때 상세페이지 옵션목록 + +수정시도한 상품의 상품명, 해당상품의 선택옵션갯수, 해당상품의 총이미지갯수와 번역이미지갯수, 실패한 이미지 갯수. + +마지막 이미지가 붙여넣기가 안됨. + + +이미지번역 후 붙여넣기 프로세스가 이상함. + +옵션데이터를 0,0,0,으로 입력함 + +이미지번역 감지 프로세스가 이상함. + + +단일상품의 상품가격 수정이 안됨. \ No newline at end of file diff --git a/__pycache__/browser_control.cpython-311.pyc b/__pycache__/browser_control.cpython-311.pyc index f62e87e53aa0f54fd2c528d2cf6bdd99a06d09b9..1ef976be5f328c10ccac2d0aca8a49705c5673d5 100644 GIT binary patch delta 676 zcmX|;O=wd=5XX1kOVgL|lGcL#$Vc?|{|FE*5y?-lQT zkH<|gMk<}Tp=!nZ2I`ehVMy{8$Q@16_7aSD&|cbw+DUySGTue~NFNO#{WOSlQG-VC zK7blU4bnauN9{&UpoVDA7%_H<=dgYy!EWNPjV{E5Cg=VOC#s6)>qUi-1s?Io`TEt9 zdeKpAeh4)OA&U+%bZr5ev?4i0_?_D!)m_y1kLy8?c3GpYF+%lA=y@4=PDU+RU zc>mk1ZJoE-Z`oHx6kLcf22Yen!Q|)4!?DkV99BjZ6jRA7bv^Zk5YJiV+cvR^UM!cJ z!LMhWWTnrCTy?rLX?3+Vlo?Q02bwZz{>tnSTXVAx(0O5g4|v7B`Ron|2)H|^9SHz# zs2w+RR%T{)`WOq#+$r-Dc^1Khy_O3`(HR=sD}9TszLhQ}U0fo;>$RP&J<=v6dL<08 zS^KHB{cXU)0|!gVXGsBz?^I_>_UsoQ9+?mx+5SWJ9j^_Q$)#9Oq8niV>*v|WJnoj2 tR*5zVpTus7eG&&G26_8Z1O~;yrCY$4pR9q(tD+m?{F&&7Vg6C9{Q)oGw{`#k delta 574 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 delta 2991 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 I85i{aAAf5%xBvhE diff --git a/__pycache__/logger_module.cpython-311.pyc b/__pycache__/logger_module.cpython-311.pyc index 8395ddae01c6b85d62a67fd1d599129e78b0e990..7575bedd073f1c0a284ff969af726dd07d8239e2 100644 GIT binary patch delta 27 hcmeB_?UdzS&dbZi00c`LBsOw0voLyW=4Ywm0svDf1-1YH delta 27 hcmeB_?UdzS&dbZi00bM`MK*FXvoJbu=4Ywm0svFq1;79R diff --git a/__pycache__/option.cpython-311.pyc b/__pycache__/option.cpython-311.pyc index d3ece332bd7c0d32d5bbb0a69bd7dd357b16ddf1..9a54d938cfbaa6fa68978f99c05fc2491602bcfa 100644 GIT binary patch delta 29 jcmX?hgz4B3Chq0Dyj%=G@QGV=BX=MdqsQi0u9wpRi1i5j delta 29 jcmX?hgz4B3Chq0Dyj%=G;Ls|vkvou!(Rp($*URYug+U0t diff --git a/appTranslator.log b/appTranslator.log index b46fb431..2249e724 100644 --- a/appTranslator.log +++ b/appTranslator.log @@ -122306,3 +122306,2640 @@ attempting click action OR category3 LIKE :search_text OR category4 LIKE :search_text with params: {'search_text': '%정자%'}, result count: 1 >>>>>>> b93ff6783dd1103e8c8c274f6b90a51322280ef6 +2024-10-23 14:32:59,592 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 14:32:59,592 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 14:32:59,621 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 14:32:59,621 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 14:32:59,632 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 14:32:59,761 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 14:32:59,776 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 14:32:59,776 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 14:32:59,792 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 14:32:59,881 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 14:32:59,881 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 14:32:59,881 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 14:32:59,881 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 14:32:59,887 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 14:32:59,887 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 14:32:59,888 - main.py:67 - default_logger - ERROR - Main function error: font size must be greater than 0 +Traceback (most recent call last): + File "H:\py\autoTrans\main.py", line 54, in main + window = TranslationApp(logger, app) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\gui.py", line 57, in __init__ + self.clipboardImageManager = ClipboardImageManager(self, logger, self.browser_controller, self.debug) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\clipboardImageManager.py", line 27, in __init__ + self.font = ImageFont.truetype(self.font_path, watermark_font_size) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\PIL\ImageFont.py", line 834, in truetype + return freetype(font) + ^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\PIL\ImageFont.py", line 831, in freetype + return FreeTypeFont(font, size, index, encoding, layout_engine) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\PIL\ImageFont.py", line 219, in __init__ + raise ValueError(msg) +ValueError: font size must be greater than 0 +2024-10-23 14:34:34,420 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 14:34:34,420 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 14:34:34,431 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 14:34:34,431 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 14:34:34,431 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 14:34:34,445 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 14:34:34,452 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 14:34:34,452 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 14:34:34,462 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 14:34:34,558 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 14:34:34,559 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 14:34:34,560 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 14:34:34,560 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 14:34:34,560 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 14:34:34,561 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 14:34:34,562 - main.py:67 - default_logger - ERROR - Main function error: font size must be greater than 0 +Traceback (most recent call last): + File "H:\py\autoTrans\main.py", line 54, in main + window = TranslationApp(logger, app) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\gui.py", line 57, in __init__ + self.clipboardImageManager = ClipboardImageManager(self, logger, self.browser_controller, self.debug) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\clipboardImageManager.py", line 27, in __init__ + self.font = ImageFont.truetype(self.font_path, watermark_font_size) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\PIL\ImageFont.py", line 834, in truetype + return freetype(font) + ^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\PIL\ImageFont.py", line 831, in freetype + return FreeTypeFont(font, size, index, encoding, layout_engine) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\PIL\ImageFont.py", line 219, in __init__ + raise ValueError(msg) +ValueError: font size must be greater than 0 +2024-10-23 14:40:31,279 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 14:40:31,279 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 14:40:31,286 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 14:40:31,286 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 14:40:31,292 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 14:40:31,302 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 14:40:31,317 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 14:40:31,318 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 14:40:31,329 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 14:40:31,465 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 14:40:31,465 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 14:40:31,465 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 14:40:31,465 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 14:40:31,465 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 14:40:31,470 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 14:40:31,470 - main.py:67 - default_logger - ERROR - Main function error: font size must be greater than 0 +Traceback (most recent call last): + File "H:\py\autoTrans\main.py", line 54, in main + window = TranslationApp(logger, app) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\gui.py", line 57, in __init__ + self.clipboardImageManager = ClipboardImageManager(self, logger, self.browser_controller, self.debug) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\clipboardImageManager.py", line 27, in __init__ + self.font = ImageFont.truetype(self.font_path, watermark_font_size) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\PIL\ImageFont.py", line 834, in truetype + return freetype(font) + ^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\PIL\ImageFont.py", line 831, in freetype + return FreeTypeFont(font, size, index, encoding, layout_engine) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\PIL\ImageFont.py", line 219, in __init__ + raise ValueError(msg) +ValueError: font size must be greater than 0 +2024-10-23 14:44:14,525 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 14:44:14,527 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 14:44:14,538 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 14:44:14,538 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 14:44:14,540 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 14:44:14,555 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 14:44:14,563 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 14:44:14,563 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 14:44:14,572 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 14:44:14,700 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 14:44:14,700 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 14:44:14,700 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 14:44:14,700 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 14:44:14,700 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 14:44:14,705 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 14:44:14,705 - main.py:67 - default_logger - ERROR - Main function error: font size must be greater than 0 +Traceback (most recent call last): + File "H:\py\autoTrans\main.py", line 54, in main + window = TranslationApp(logger, app) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\gui.py", line 57, in __init__ + self.clipboardImageManager = ClipboardImageManager(self, logger, self.browser_controller, self.debug) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\clipboardImageManager.py", line 28, in __init__ + self.font = ImageFont.truetype(self.font_path, watermark_font_size) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\PIL\ImageFont.py", line 834, in truetype + return freetype(font) + ^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\PIL\ImageFont.py", line 831, in freetype + return FreeTypeFont(font, size, index, encoding, layout_engine) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\PIL\ImageFont.py", line 219, in __init__ + raise ValueError(msg) +ValueError: font size must be greater than 0 +2024-10-23 14:56:05,809 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 14:56:05,810 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 14:56:05,820 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 14:56:05,820 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 14:56:05,820 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 14:56:05,835 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 14:56:05,835 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 14:56:05,835 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 14:56:05,852 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 14:56:05,967 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 14:56:05,967 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 14:56:05,967 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 14:56:05,967 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 14:56:05,967 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 14:56:05,967 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 14:56:05,967 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 14:56:05,967 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 14:56:05,967 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 14:56:05,974 - gui.py:158 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 14:56:18,204 - gui.py:505 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 활성화 선택 +2024-10-23 14:56:20,286 - gui.py:505 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 비활성화 선택 +2024-10-23 14:56:20,867 - gui.py:505 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 활성화 선택 +2024-10-23 14:56:21,286 - gui.py:505 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 비활성화 선택 +2024-10-23 14:56:22,022 - gui.py:505 - default_logger - DEBUG - 워터마크 버튼 - 활성화 선택 +2024-10-23 14:56:24,490 - gui.py:505 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 활성화 선택 +2024-10-23 14:58:13,678 - gui.py:789 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 15:04:03,020 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 15:04:03,020 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 15:04:03,037 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 15:04:03,037 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 15:04:03,037 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 15:04:03,050 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 15:04:03,057 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 15:04:03,057 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:04:03,069 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 15:04:03,185 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:04:03,187 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 15:04:03,188 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 15:04:03,188 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 15:04:03,188 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:04:03,189 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 15:04:03,190 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 15:04:03,190 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 15:04:03,190 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 15:04:03,191 - gui.py:158 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 15:05:53,385 - gui.py:505 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:05:54,336 - gui.py:505 - default_logger - DEBUG - 워터마크 버튼 - 활성화 선택 +2024-10-23 15:05:55,102 - gui.py:505 - default_logger - DEBUG - 워터마크 버튼 - 비활성화 선택 +2024-10-23 15:05:55,758 - gui.py:505 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:05:56,631 - gui.py:505 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:05:57,191 - gui.py:505 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:05:57,944 - gui.py:505 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:05:59,496 - gui.py:505 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:10:09,976 - gui.py:505 - default_logger - DEBUG - 옵션명 AI번역 버튼 - 활성화 선택 +2024-10-23 15:10:10,454 - gui.py:505 - default_logger - DEBUG - 옵션 Auto선택 버튼 - 활성화 선택 +2024-10-23 15:10:10,823 - gui.py:505 - default_logger - DEBUG - 상세 옵션명 삽입 버튼 - 활성화 선택 +2024-10-23 15:10:13,593 - gui.py:789 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 15:10:19,269 - main.py:67 - default_logger - ERROR - Main function error: 'TranslationApp' object has no attribute 'toggle_states' +Traceback (most recent call last): + File "H:\py\autoTrans\main.py", line 54, in main + window = TranslationApp(logger, app) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\gui.py", line 23, in __init__ + self.load_toggle_settings() + File "H:\py\autoTrans\gui.py", line 450, in load_toggle_settings + for key in self.toggle_states.keys(): + ^^^^^^^^^^^^^^^^^^ +AttributeError: 'TranslationApp' object has no attribute 'toggle_states' +2024-10-23 15:11:13,688 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 15:11:13,688 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 15:11:13,699 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 15:11:13,699 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 15:11:13,700 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 15:11:13,713 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 15:11:13,717 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 15:11:13,717 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:11:13,731 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 15:11:13,839 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:11:13,839 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 15:11:13,839 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 15:11:13,839 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 15:11:13,839 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:11:13,842 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 15:11:13,842 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 15:11:13,844 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 15:11:13,844 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 15:11:13,846 - gui.py:158 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 15:11:16,805 - gui.py:505 - default_logger - DEBUG - 가격 수정 버튼 - 활성화 선택 +2024-10-23 15:11:17,909 - gui.py:505 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:11:20,307 - gui.py:791 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 15:11:26,551 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 15:11:26,551 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 15:11:26,565 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 15:11:26,566 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 15:11:26,566 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 15:11:26,581 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 15:11:26,588 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 15:11:26,588 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:11:26,596 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 15:11:26,709 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:11:26,710 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 15:11:26,711 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 15:11:26,711 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 15:11:26,711 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:11:26,713 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 15:11:26,715 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 15:11:26,715 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 15:11:26,715 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 15:11:26,716 - gui.py:158 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 15:12:50,750 - gui.py:791 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 15:13:09,280 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 15:13:09,280 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 15:13:09,290 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 15:13:09,290 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 15:13:09,290 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 15:13:09,308 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 15:13:09,315 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 15:13:09,315 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:13:09,325 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 15:13:09,440 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:13:09,445 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 15:13:09,445 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 15:13:09,445 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 15:13:09,445 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:13:09,445 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 15:13:09,445 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 15:13:09,449 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 15:13:09,449 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 15:13:09,452 - gui.py:158 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 15:13:14,713 - gui.py:513 - default_logger - DEBUG - 가격 수정 버튼 - 비활성화 선택 +2024-10-23 15:13:15,283 - gui.py:513 - default_logger - DEBUG - 옵션명 AI번역 버튼 - 비활성화 선택 +2024-10-23 15:13:15,545 - gui.py:513 - default_logger - DEBUG - 옵션 Auto선택 버튼 - 비활성화 선택 +2024-10-23 15:13:16,017 - gui.py:513 - default_logger - DEBUG - 상세 옵션명 삽입 버튼 - 비활성화 선택 +2024-10-23 15:13:16,280 - gui.py:513 - default_logger - DEBUG - 상세 옵션명 삽입 버튼 - 활성화 선택 +2024-10-23 15:13:16,667 - gui.py:513 - default_logger - DEBUG - 상세 옵션명 삽입 버튼 - 비활성화 선택 +2024-10-23 15:13:18,017 - gui.py:513 - default_logger - DEBUG - 워터마크 버튼 - 활성화 선택 +2024-10-23 15:13:24,629 - gui.py:571 - default_logger - DEBUG - 크롬 실행 버튼 클릭됨 +2024-10-23 15:13:24,631 - gui.py:572 - default_logger - DEBUG - self.browser_controller.page : None +2024-10-23 15:13:24,631 - gui.py:579 - default_logger - DEBUG - optionIMGTrans_status : False, detail_IMGTrans_status : True +2024-10-23 15:13:26,637 - whale_translator.py:57 - default_logger - DEBUG - Whale 브라우저 실행, PID: 20484 +2024-10-23 15:13:26,637 - whale_translator.py:65 - default_logger - DEBUG - Whale 창을 찾았습니다: 9833314 +2024-10-23 15:13:26,643 - whale_translator.py:552 - default_logger - DEBUG - 창 위치 및 크기 설정: 위치(1, 1), 크기(1280x720) +2024-10-23 15:13:26,643 - whale_translator.py:161 - default_logger - DEBUG - 웨일 창 크기 및 위치 저장: (1, 1, 1281, 721) +2024-10-23 15:13:30,262 - whale_translator.py:452 - default_logger - DEBUG - 영어로 전환하는데 실패했습니다. +2024-10-23 15:13:32,071 - whale_translator.py:90 - default_logger - DEBUG - URL 입력 완료 +2024-10-23 15:13:32,073 - gui.py:608 - default_logger - DEBUG - 크롬 브라우저를 실행합니다... +2024-10-23 15:13:32,074 - browser_control.py:63 - default_logger - DEBUG - 크롬 브라우저 실행 중... +2024-10-23 15:13:36,366 - browser_control.py:79 - default_logger - DEBUG - 브라우저 경로: H:\py\autoTrans\browsers\chromium-1112\chrome-win\chrome.exe +2024-10-23 15:13:36,367 - browser_control.py:80 - default_logger - DEBUG - 확장 프로그램 경로: H:\py\autoTrans\browsers\extensions\1.1.100_0 +2024-10-23 15:13:36,368 - browser_control.py:81 - default_logger - DEBUG - 사용자 폴더 경로: H:\py\autoTrans\browsers\user_data +2024-10-23 15:13:36,369 - browser_control.py:97 - default_logger - DEBUG - user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:108.0) Gecko/20100101 Firefox/108.0 +2024-10-23 15:13:39,703 - browser_control.py:119 - default_logger - INFO - 새 페이지 로딩 중... +2024-10-23 15:13:43,079 - browser_control.py:122 - default_logger - INFO - percenty.co.kr/signin 로딩 완료 +2024-10-23 15:13:43,101 - browser_control.py:130 - default_logger - DEBUG - 페이지 제목: 퍼센티 - 셀러들을 위한 AI 구매대행 솔루션 +2024-10-23 15:13:43,103 - browser_control.py:137 - default_logger - DEBUG - 크롬 창 핸들: 10029824 +2024-10-23 15:13:43,105 - browser_control.py:143 - default_logger - INFO - 로그인 시도 중: 직원 계정 +2024-10-23 15:13:43,359 - browser_control.py:161 - default_logger - INFO - 로그인 완료: 직원 계정 +2024-10-23 15:13:48,369 - browser_control.py:305 - default_logger - ERROR - 다이얼로그가 발견되지 않았거나 오류 발생: Page.wait_for_selector: Timeout 5000ms exceeded. +Call log: +waiting for locator("div[role=\"dialog\"]") to be visible +Traceback (most recent call last): + File "H:\py\autoTrans\browser_control.py", line 292, in close_ad_if_exists + await self.page.wait_for_selector(self.close_ad_dialog_locator, timeout=5000, state='visible') + File "H:\py\autoTrans\Lib\site-packages\playwright\async_api\_generated.py", line 7999, in wait_for_selector + await self._impl_obj.wait_for_selector( + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_page.py", line 397, in wait_for_selector + return await self._main_frame.wait_for_selector(**locals_to_params(locals())) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_frame.py", line 323, in wait_for_selector + await self._channel.send("waitForSelector", locals_to_params(locals())) + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 59, in send + return await self._connection.wrap_api_call( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 514, in wrap_api_call + raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None +playwright._impl._errors.TimeoutError: Page.wait_for_selector: Timeout 5000ms exceeded. +Call log: +waiting for locator("div[role=\"dialog\"]") to be visible + +2024-10-23 15:13:48,373 - gui.py:632 - default_logger - DEBUG - 신규 상품 등록 페이지로 이동 중... +2024-10-23 15:13:48,791 - browser_control.py:312 - default_logger - INFO - 신규 상품 등록 페이지로 이동 완료. +2024-10-23 15:13:48,792 - option.py:43 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:13:48,794 - title.py:31 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:13:48,796 - price.py:52 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:13:56,117 - gui.py:684 - default_logger - DEBUG - 번역 작업 버튼 클릭됨 +2024-10-23 15:13:56,118 - gui.py:689 - default_logger - DEBUG - 번역 작업을 시작합니다... +2024-10-23 15:13:56,118 - browser_control.py:747 - default_logger - INFO - 페이지 스크롤 시작... +2024-10-23 15:13:56,524 - browser_control.py:757 - default_logger - INFO - 페이지 스크롤 완료. +2024-10-23 15:13:56,529 - browser_control.py:222 - default_logger - INFO - 총 상품수 확인: 총 12개 상품 +2024-10-23 15:13:56,530 - gui.py:713 - default_logger - DEBUG - 현재 페이지: 1 +2024-10-23 15:13:56,538 - browser_control.py:369 - default_logger - INFO - 현재 페이지의 수정할 상품 개수: 12 +2024-10-23 15:13:56,539 - gui.py:731 - default_logger - DEBUG - 1/12 버튼의 활성상태 확인 중... +2024-10-23 15:13:56,544 - gui.py:738 - default_logger - DEBUG - 1/12: 세부사항 수정 작업 중... +2024-10-23 15:13:56,590 - browser_control.py:404 - default_logger - DEBUG - 상품의 '세부사항 수정 및 업로드' 버튼을 화면에 보이도록 스크롤. +2024-10-23 15:13:57,140 - browser_control.py:407 - default_logger - INFO - 세부사항 수정 다이얼로그 열기 완료. +2024-10-23 15:13:57,764 - title.py:91 - default_logger - DEBUG - 원본 상품명을 가져오는 중입니다. +2024-10-23 15:13:57,776 - title.py:94 - default_logger - DEBUG - 원본 상품명: 喷砂机小型高压除锈翻新除油除杂质高速磨砂玻璃刻字去皮立式90升 +2024-10-23 15:13:58,237 - title.py:179 - default_logger - DEBUG - 마켓 : ss - 카테고리 텍스트를 가져오는 중입니다. +2024-10-23 15:13:58,238 - title.py:188 - default_logger - DEBUG - category_locator : div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 +2024-10-23 15:13:58,248 - title.py:192 - default_logger - DEBUG - main_category_element : selector='div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2'> +2024-10-23 15:13:58,256 - title.py:201 - default_logger - DEBUG - category_text_element : selector='div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 >> div.ant-col.css-1li46mu:nth-child(1)'> +2024-10-23 15:13:58,268 - title.py:221 - default_logger - DEBUG - 카테고리 text = 공구설비/자재-작업공구-에어/유압공구-에어스프레이건 +2024-10-23 15:13:58,270 - gui.py:774 - default_logger - DEBUG - 상세페이지 수정 : False + True +2024-10-23 15:13:58,686 - browser_control.py:416 - default_logger - INFO - 상세페이지 탭 클릭 완료. +2024-10-23 15:13:58,989 - browser_control.py:453 - default_logger - DEBUG - 소스 버튼 클릭 완료. +2024-10-23 15:13:59,010 - browser_control.py:281 - default_logger - DEBUG - fetch_image_urls 에서 추출한 이미지URL 갯수 : 4 개 +2024-10-23 15:13:59,010 - browser_control.py:283 - default_logger - DEBUG - fetch_image_urls 에서 추출한 이미지URL 목록 : ['https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/a00a73e4-2b62-49fd-9736-4b06193d03d8.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/019d01c0-f47e-457e-af01-cafd34921a9f.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/c010b4e2-607b-4a53-9b53-f1618c5521a6.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/9d9cff04-e0d0-429b-a884-aa8c7a526210.jpg'] +2024-10-23 15:13:59,012 - browser_control.py:463 - default_logger - INFO - 추출된 이미지 URL 수: 4 +2024-10-23 15:13:59,013 - browser_control.py:466 - default_logger - DEBUG - img 태그를 삭제 중... +2024-10-23 15:13:59,034 - browser_control.py:472 - default_logger - DEBUG - Updated data-value: +2024-10-23 15:13:59,035 - browser_control.py:475 - default_logger - DEBUG - img 태그 삭제 완료. +2024-10-23 15:13:59,130 - browser_control.py:479 - default_logger - DEBUG - 소스 버튼 재 클릭 완료. +2024-10-23 15:13:59,132 - browser_control.py:483 - default_logger - DEBUG - 옵션 데이터 입력 시작 +2024-10-23 15:13:59,132 - browser_control.py:489 - default_logger - DEBUG - 옵션입력 일단 제외 +2024-10-23 15:13:59,133 - browser_control.py:491 - default_logger - DEBUG - 가져온 옵션 데이터 +2024-10-23 15:13:59,133 - browser_control.py:492 - default_logger - DEBUG - {} +2024-10-23 15:13:59,266 - browser_control.py:504 - default_logger - INFO - leading_text_1 텍스트 입력 완료: --- +2024-10-23 15:13:59,813 - browser_control.py:504 - default_logger - INFO - leading_text_2 텍스트 입력 완료: # 안녕하세요 혜리수샵입니다. +2024-10-23 15:14:00,330 - browser_control.py:504 - default_logger - INFO - leading_text_3 텍스트 입력 완료: ### 마켓정책으로 인해 모든 옵션이 노출되지 않을수도 있습니다. +2024-10-23 15:14:00,833 - browser_control.py:504 - default_logger - INFO - leading_text_4 텍스트 입력 완료: ### 반드시 옵션사진과 옵션이름을 확인하시고 구매하시기 바랍니다. +2024-10-23 15:14:00,906 - browser_control.py:504 - default_logger - INFO - leading_text_5 텍스트 입력 완료: --- +2024-10-23 15:14:00,907 - gui.py:832 - default_logger - DEBUG - 현재 상품의 총 이미지 수 : 4개 +2024-10-23 15:14:00,908 - gui.py:844 - default_logger - DEBUG - 웨일 브라우저를 활용한 이미지 번역 프로세스 +2024-10-23 15:14:00,908 - whale_translator.py:270 - default_logger - DEBUG - 웨일 창을 찾았습니다.9833314 +2024-10-23 15:14:00,914 - whale_translator.py:276 - default_logger - DEBUG - 이미지 URL 주소 https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/a00a73e4-2b62-49fd-9736-4b06193d03d8.jpg 입력 +2024-10-23 15:14:04,835 - whale_translator.py:561 - default_logger - DEBUG - 현재 웨일 창의 제목: a00a73e4-2b62-49fd-9736-4b06193d03d8.jpg (596×596) - Whale +2024-10-23 15:14:04,835 - whale_translator.py:585 - default_logger - DEBUG - 이미지 해상도: 596×596 +2024-10-23 15:14:04,836 - whale_translator.py:294 - default_logger - DEBUG - 페이지 로딩 완료 후 웨일 창의 가운데로 마우스 커서 이동 +2024-10-23 15:14:04,837 - whale_translator.py:621 - default_logger - DEBUG - 마우스 커서를 추가로 50px 내림 +2024-10-23 15:14:04,939 - whale_translator.py:625 - default_logger - DEBUG - 마우스 커서를 창 중앙으로 이동: (641, 411) +2024-10-23 15:14:05,940 - whale_translator.py:303 - default_logger - DEBUG - 번역 작업을 위한 마우스 오른쪽 클릭 및 R 전송 +2024-10-23 15:14:05,941 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:14:07,146 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'r' 전송 준비. +2024-10-23 15:14:07,147 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'r' 전송 +2024-10-23 15:14:13,749 - whale_translator.py:325 - default_logger - DEBUG - 이미지 복사를 위한 마우스 오른쪽 클릭 및 C 전송 +2024-10-23 15:14:13,750 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:14:14,955 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'c' 전송 준비. +2024-10-23 15:14:14,956 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'c' 전송 +2024-10-23 15:14:15,559 - whale_translator.py:330 - default_logger - DEBUG - 클립보드에 번역된이미지 복사 대기 1s +2024-10-23 15:14:16,560 - whale_translator.py:333 - default_logger - DEBUG - 클립보드에 이미지 데이터가 존재하는지 확인 중..... +2024-10-23 15:14:16,569 - whale_translator.py:129 - default_logger - DEBUG - 클립보드에 이미지 데이터가 확인되었습니다. +2024-10-23 15:14:16,569 - whale_translator.py:336 - default_logger - INFO - 번역 성공: https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/a00a73e4-2b62-49fd-9736-4b06193d03d8.jpg +2024-10-23 15:14:16,570 - whale_translator.py:342 - default_logger - INFO - 번역 프로세스 완료. 웨일 기본페이지로 돌아감 +2024-10-23 15:14:16,673 - browser_control.py:543 - default_logger - DEBUG - 크롬으로 포커스를 옮기고 클립보드의 이미지를 붙여넣고 엔터 입력 +2024-10-23 15:14:16,675 - browser_control.py:619 - default_logger - DEBUG - 크롬 창으로 포커스 이동. +2024-10-23 15:14:16,676 - clipboardImageManager.py:204 - default_logger - DEBUG - is_watermark : True +2024-10-23 15:14:16,677 - clipboardImageManager.py:207 - default_logger - DEBUG - watermark_text : False +2024-10-23 15:14:16,677 - clipboardImageManager.py:33 - default_logger - DEBUG - 클립보드의 텍스트 또는 이미지 데이터를 가져옵니다 +2024-10-23 15:14:16,679 - clipboardImageManager.py:41 - default_logger - DEBUG - 텍스트 데이터가 없어 이미지 데이터 확인 시도 +2024-10-23 15:14:16,682 - clipboardImageManager.py:44 - default_logger - DEBUG - 클립보드에 이미지 데이터가 확인되었습니다. +2024-10-23 15:14:16,685 - clipboardImageManager.py:211 - default_logger - DEBUG - clipboard_data +2024-10-23 15:14:16,685 - clipboardImageManager.py:212 - default_logger - DEBUG - +2024-10-23 15:14:16,686 - clipboardImageManager.py:213 - default_logger - DEBUG - ============================ +2024-10-23 15:14:16,686 - clipboardImageManager.py:246 - default_logger - INFO - [process_clipboard] 클립보드 이미지 확인 +2024-10-23 15:14:16,687 - clipboardImageManager.py:250 - default_logger - DEBUG - 클립보드에 있는 이미지 크기: 596px +2024-10-23 15:14:16,687 - clipboardImageManager.py:253 - default_logger - DEBUG - 이미지 가로 크기 200픽셀 이상: 크롭 진행 중... +2024-10-23 15:14:16,693 - clipboardImageManager.py:258 - default_logger - DEBUG - 워터마크 추가 중... +2024-10-23 15:14:16,696 - clipboardImageManager.py:300 - default_logger - ERROR - 클립보드에서 이미지를 처리하는 중 오류 발생: 'ImageDraw' object has no attribute 'textsize' +Traceback (most recent call last): + File "H:\py\autoTrans\clipboardImageManager.py", line 259, in process_clipboard + cropped_watermark_image = self.add_watermark(cropped_image, watermark_text, opacity_percent) # 워터마크 추가 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\clipboardImageManager.py", line 111, in add_watermark + text_width, text_height = draw.textsize(watermark_text, font=font) + ^^^^^^^^^^^^^ +AttributeError: 'ImageDraw' object has no attribute 'textsize' +2024-10-23 15:14:16,700 - clipboardImageManager.py:307 - default_logger - DEBUG - 클립보드에 이미지가 존재합니다. +2024-10-23 15:14:16,807 - browser_control.py:550 - default_logger - INFO - 이미지 붙여넣기 완료. +2024-10-23 15:14:16,909 - browser_control.py:552 - default_logger - DEBUG - 이미지 붙여넣기 완료. +2024-10-23 15:14:16,910 - clipboardImageManager.py:335 - default_logger - DEBUG - 클립보드가 비워졌습니다. +2024-10-23 15:14:16,912 - browser_control.py:554 - default_logger - INFO - 이미지 붙여넣기 완료로 클립보드 비우기. +2024-10-23 15:14:16,913 - gui.py:849 - default_logger - DEBUG - https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/a00a73e4-2b62-49fd-9736-4b06193d03d8.jpg gui 이미지 붙여넣기 성공 +2024-10-23 15:14:16,914 - gui.py:853 - default_logger - DEBUG - Progress Update +2024-10-23 15:14:16,914 - gui.py:844 - default_logger - DEBUG - 웨일 브라우저를 활용한 이미지 번역 프로세스 +2024-10-23 15:14:16,916 - whale_translator.py:270 - default_logger - DEBUG - 웨일 창을 찾았습니다.9833314 +2024-10-23 15:14:16,918 - whale_translator.py:276 - default_logger - DEBUG - 이미지 URL 주소 https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/019d01c0-f47e-457e-af01-cafd34921a9f.jpg 입력 +2024-10-23 15:14:20,836 - whale_translator.py:561 - default_logger - DEBUG - 현재 웨일 창의 제목: 019d01c0-f47e-457e-af01-cafd34921a9f.jpg (750×497) - Whale +2024-10-23 15:14:20,838 - whale_translator.py:585 - default_logger - DEBUG - 이미지 해상도: 750×497 +2024-10-23 15:14:20,839 - whale_translator.py:294 - default_logger - DEBUG - 페이지 로딩 완료 후 웨일 창의 가운데로 마우스 커서 이동 +2024-10-23 15:14:20,839 - whale_translator.py:621 - default_logger - DEBUG - 마우스 커서를 추가로 50px 내림 +2024-10-23 15:14:20,941 - whale_translator.py:625 - default_logger - DEBUG - 마우스 커서를 창 중앙으로 이동: (641, 411) +2024-10-23 15:14:21,943 - whale_translator.py:303 - default_logger - DEBUG - 번역 작업을 위한 마우스 오른쪽 클릭 및 R 전송 +2024-10-23 15:14:21,944 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:14:23,147 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'r' 전송 준비. +2024-10-23 15:14:23,148 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'r' 전송 +2024-10-23 15:14:29,751 - whale_translator.py:325 - default_logger - DEBUG - 이미지 복사를 위한 마우스 오른쪽 클릭 및 C 전송 +2024-10-23 15:14:29,751 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:14:30,955 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'c' 전송 준비. +2024-10-23 15:14:30,955 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'c' 전송 +2024-10-23 15:14:31,558 - whale_translator.py:330 - default_logger - DEBUG - 클립보드에 번역된이미지 복사 대기 1s +2024-10-23 15:14:32,559 - whale_translator.py:333 - default_logger - DEBUG - 클립보드에 이미지 데이터가 존재하는지 확인 중..... +2024-10-23 15:14:32,560 - whale_translator.py:129 - default_logger - DEBUG - 클립보드에 이미지 데이터가 확인되었습니다. +2024-10-23 15:14:32,561 - whale_translator.py:336 - default_logger - INFO - 번역 성공: https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/019d01c0-f47e-457e-af01-cafd34921a9f.jpg +2024-10-23 15:14:32,562 - whale_translator.py:342 - default_logger - INFO - 번역 프로세스 완료. 웨일 기본페이지로 돌아감 +2024-10-23 15:14:32,664 - browser_control.py:543 - default_logger - DEBUG - 크롬으로 포커스를 옮기고 클립보드의 이미지를 붙여넣고 엔터 입력 +2024-10-23 15:14:32,665 - browser_control.py:619 - default_logger - DEBUG - 크롬 창으로 포커스 이동. +2024-10-23 15:14:32,667 - clipboardImageManager.py:204 - default_logger - DEBUG - is_watermark : True +2024-10-23 15:14:32,667 - clipboardImageManager.py:207 - default_logger - DEBUG - watermark_text : False +2024-10-23 15:14:32,668 - clipboardImageManager.py:33 - default_logger - DEBUG - 클립보드의 텍스트 또는 이미지 데이터를 가져옵니다 +2024-10-23 15:14:32,670 - clipboardImageManager.py:41 - default_logger - DEBUG - 텍스트 데이터가 없어 이미지 데이터 확인 시도 +2024-10-23 15:14:32,672 - clipboardImageManager.py:44 - default_logger - DEBUG - 클립보드에 이미지 데이터가 확인되었습니다. +2024-10-23 15:14:32,672 - clipboardImageManager.py:211 - default_logger - DEBUG - clipboard_data +2024-10-23 15:14:32,673 - clipboardImageManager.py:212 - default_logger - DEBUG - +2024-10-23 15:14:32,674 - clipboardImageManager.py:213 - default_logger - DEBUG - ============================ +2024-10-23 15:14:32,674 - clipboardImageManager.py:246 - default_logger - INFO - [process_clipboard] 클립보드 이미지 확인 +2024-10-23 15:14:32,675 - clipboardImageManager.py:250 - default_logger - DEBUG - 클립보드에 있는 이미지 크기: 750px +2024-10-23 15:14:32,675 - clipboardImageManager.py:253 - default_logger - DEBUG - 이미지 가로 크기 200픽셀 이상: 크롭 진행 중... +2024-10-23 15:14:32,680 - clipboardImageManager.py:258 - default_logger - DEBUG - 워터마크 추가 중... +2024-10-23 15:14:32,682 - clipboardImageManager.py:300 - default_logger - ERROR - 클립보드에서 이미지를 처리하는 중 오류 발생: 'ImageDraw' object has no attribute 'textsize' +Traceback (most recent call last): + File "H:\py\autoTrans\clipboardImageManager.py", line 259, in process_clipboard + cropped_watermark_image = self.add_watermark(cropped_image, watermark_text, opacity_percent) # 워터마크 추가 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\clipboardImageManager.py", line 111, in add_watermark + text_width, text_height = draw.textsize(watermark_text, font=font) + ^^^^^^^^^^^^^ +AttributeError: 'ImageDraw' object has no attribute 'textsize' +2024-10-23 15:14:32,685 - clipboardImageManager.py:307 - default_logger - DEBUG - 클립보드에 이미지가 존재합니다. +2024-10-23 15:14:32,793 - browser_control.py:550 - default_logger - INFO - 이미지 붙여넣기 완료. +2024-10-23 15:14:32,895 - browser_control.py:552 - default_logger - DEBUG - 이미지 붙여넣기 완료. +2024-10-23 15:14:32,895 - clipboardImageManager.py:335 - default_logger - DEBUG - 클립보드가 비워졌습니다. +2024-10-23 15:14:32,896 - browser_control.py:554 - default_logger - INFO - 이미지 붙여넣기 완료로 클립보드 비우기. +2024-10-23 15:14:32,898 - gui.py:849 - default_logger - DEBUG - https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/019d01c0-f47e-457e-af01-cafd34921a9f.jpg gui 이미지 붙여넣기 성공 +2024-10-23 15:14:32,898 - gui.py:853 - default_logger - DEBUG - Progress Update +2024-10-23 15:14:32,904 - gui.py:844 - default_logger - DEBUG - 웨일 브라우저를 활용한 이미지 번역 프로세스 +2024-10-23 15:14:32,905 - whale_translator.py:270 - default_logger - DEBUG - 웨일 창을 찾았습니다.9833314 +2024-10-23 15:14:32,906 - whale_translator.py:276 - default_logger - DEBUG - 이미지 URL 주소 https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/c010b4e2-607b-4a53-9b53-f1618c5521a6.jpg 입력 +2024-10-23 15:14:36,822 - whale_translator.py:561 - default_logger - DEBUG - 현재 웨일 창의 제목: c010b4e2-607b-4a53-9b53-f1618c5521a6.jpg (690×605) - Whale +2024-10-23 15:14:36,822 - whale_translator.py:585 - default_logger - DEBUG - 이미지 해상도: 690×605 +2024-10-23 15:14:36,823 - whale_translator.py:294 - default_logger - DEBUG - 페이지 로딩 완료 후 웨일 창의 가운데로 마우스 커서 이동 +2024-10-23 15:14:36,824 - whale_translator.py:621 - default_logger - DEBUG - 마우스 커서를 추가로 50px 내림 +2024-10-23 15:14:36,926 - whale_translator.py:625 - default_logger - DEBUG - 마우스 커서를 창 중앙으로 이동: (641, 411) +2024-10-23 15:14:37,927 - whale_translator.py:303 - default_logger - DEBUG - 번역 작업을 위한 마우스 오른쪽 클릭 및 R 전송 +2024-10-23 15:14:37,928 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:14:39,132 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'r' 전송 준비. +2024-10-23 15:14:39,133 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'r' 전송 +2024-10-23 15:14:45,736 - whale_translator.py:325 - default_logger - DEBUG - 이미지 복사를 위한 마우스 오른쪽 클릭 및 C 전송 +2024-10-23 15:14:45,737 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:14:46,941 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'c' 전송 준비. +2024-10-23 15:14:46,942 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'c' 전송 +2024-10-23 15:14:47,544 - whale_translator.py:330 - default_logger - DEBUG - 클립보드에 번역된이미지 복사 대기 1s +2024-10-23 15:14:48,545 - whale_translator.py:333 - default_logger - DEBUG - 클립보드에 이미지 데이터가 존재하는지 확인 중..... +2024-10-23 15:14:48,546 - whale_translator.py:129 - default_logger - DEBUG - 클립보드에 이미지 데이터가 확인되었습니다. +2024-10-23 15:14:48,547 - whale_translator.py:336 - default_logger - INFO - 번역 성공: https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/c010b4e2-607b-4a53-9b53-f1618c5521a6.jpg +2024-10-23 15:14:48,547 - whale_translator.py:342 - default_logger - INFO - 번역 프로세스 완료. 웨일 기본페이지로 돌아감 +2024-10-23 15:14:48,650 - browser_control.py:543 - default_logger - DEBUG - 크롬으로 포커스를 옮기고 클립보드의 이미지를 붙여넣고 엔터 입력 +2024-10-23 15:14:48,651 - browser_control.py:619 - default_logger - DEBUG - 크롬 창으로 포커스 이동. +2024-10-23 15:14:48,652 - clipboardImageManager.py:204 - default_logger - DEBUG - is_watermark : True +2024-10-23 15:14:48,652 - clipboardImageManager.py:207 - default_logger - DEBUG - watermark_text : False +2024-10-23 15:14:48,653 - clipboardImageManager.py:33 - default_logger - DEBUG - 클립보드의 텍스트 또는 이미지 데이터를 가져옵니다 +2024-10-23 15:14:48,653 - clipboardImageManager.py:41 - default_logger - DEBUG - 텍스트 데이터가 없어 이미지 데이터 확인 시도 +2024-10-23 15:14:48,656 - clipboardImageManager.py:44 - default_logger - DEBUG - 클립보드에 이미지 데이터가 확인되었습니다. +2024-10-23 15:14:48,657 - clipboardImageManager.py:211 - default_logger - DEBUG - clipboard_data +2024-10-23 15:14:48,658 - clipboardImageManager.py:212 - default_logger - DEBUG - +2024-10-23 15:14:48,658 - clipboardImageManager.py:213 - default_logger - DEBUG - ============================ +2024-10-23 15:14:48,659 - clipboardImageManager.py:246 - default_logger - INFO - [process_clipboard] 클립보드 이미지 확인 +2024-10-23 15:14:48,660 - clipboardImageManager.py:250 - default_logger - DEBUG - 클립보드에 있는 이미지 크기: 690px +2024-10-23 15:14:48,661 - clipboardImageManager.py:253 - default_logger - DEBUG - 이미지 가로 크기 200픽셀 이상: 크롭 진행 중... +2024-10-23 15:14:48,666 - clipboardImageManager.py:258 - default_logger - DEBUG - 워터마크 추가 중... +2024-10-23 15:14:48,668 - clipboardImageManager.py:300 - default_logger - ERROR - 클립보드에서 이미지를 처리하는 중 오류 발생: 'ImageDraw' object has no attribute 'textsize' +Traceback (most recent call last): + File "H:\py\autoTrans\clipboardImageManager.py", line 259, in process_clipboard + cropped_watermark_image = self.add_watermark(cropped_image, watermark_text, opacity_percent) # 워터마크 추가 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\clipboardImageManager.py", line 111, in add_watermark + text_width, text_height = draw.textsize(watermark_text, font=font) + ^^^^^^^^^^^^^ +AttributeError: 'ImageDraw' object has no attribute 'textsize' +2024-10-23 15:14:48,670 - clipboardImageManager.py:307 - default_logger - DEBUG - 클립보드에 이미지가 존재합니다. +2024-10-23 15:14:48,773 - browser_control.py:550 - default_logger - INFO - 이미지 붙여넣기 완료. +2024-10-23 15:14:48,875 - browser_control.py:552 - default_logger - DEBUG - 이미지 붙여넣기 완료. +2024-10-23 15:14:48,876 - clipboardImageManager.py:335 - default_logger - DEBUG - 클립보드가 비워졌습니다. +2024-10-23 15:14:48,877 - browser_control.py:554 - default_logger - INFO - 이미지 붙여넣기 완료로 클립보드 비우기. +2024-10-23 15:14:48,879 - gui.py:849 - default_logger - DEBUG - https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/c010b4e2-607b-4a53-9b53-f1618c5521a6.jpg gui 이미지 붙여넣기 성공 +2024-10-23 15:14:48,880 - gui.py:853 - default_logger - DEBUG - Progress Update +2024-10-23 15:14:48,882 - gui.py:844 - default_logger - DEBUG - 웨일 브라우저를 활용한 이미지 번역 프로세스 +2024-10-23 15:14:48,883 - whale_translator.py:270 - default_logger - DEBUG - 웨일 창을 찾았습니다.9833314 +2024-10-23 15:14:48,885 - whale_translator.py:276 - default_logger - DEBUG - 이미지 URL 주소 https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/9d9cff04-e0d0-429b-a884-aa8c7a526210.jpg 입력 +2024-10-23 15:14:52,795 - whale_translator.py:561 - default_logger - DEBUG - 현재 웨일 창의 제목: 9d9cff04-e0d0-429b-a884-aa8c7a526210.jpg (1479×682) - Whale +2024-10-23 15:14:52,796 - whale_translator.py:585 - default_logger - DEBUG - 이미지 해상도: 1479×682 +2024-10-23 15:14:52,796 - whale_translator.py:294 - default_logger - DEBUG - 페이지 로딩 완료 후 웨일 창의 가운데로 마우스 커서 이동 +2024-10-23 15:14:52,797 - whale_translator.py:621 - default_logger - DEBUG - 마우스 커서를 추가로 50px 내림 +2024-10-23 15:14:52,899 - whale_translator.py:625 - default_logger - DEBUG - 마우스 커서를 창 중앙으로 이동: (641, 411) +2024-10-23 15:14:53,900 - whale_translator.py:303 - default_logger - DEBUG - 번역 작업을 위한 마우스 오른쪽 클릭 및 R 전송 +2024-10-23 15:14:53,902 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:14:55,105 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'r' 전송 준비. +2024-10-23 15:14:55,106 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'r' 전송 +2024-10-23 15:15:01,708 - whale_translator.py:325 - default_logger - DEBUG - 이미지 복사를 위한 마우스 오른쪽 클릭 및 C 전송 +2024-10-23 15:15:01,709 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:15:02,914 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'c' 전송 준비. +2024-10-23 15:15:02,914 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'c' 전송 +2024-10-23 15:15:03,517 - whale_translator.py:330 - default_logger - DEBUG - 클립보드에 번역된이미지 복사 대기 1s +2024-10-23 15:15:04,517 - whale_translator.py:333 - default_logger - DEBUG - 클립보드에 이미지 데이터가 존재하는지 확인 중..... +2024-10-23 15:15:04,518 - whale_translator.py:132 - default_logger - DEBUG - 클립보드에 이미지 데이터가 없습니다. +2024-10-23 15:15:04,519 - whale_translator.py:339 - default_logger - ERROR - 번역 실패: 클립보드에 이미지 데이터가 없음 +2024-10-23 15:15:04,521 - whale_translator.py:342 - default_logger - INFO - 번역 프로세스 완료. 웨일 기본페이지로 돌아감 +2024-10-23 15:15:04,623 - browser_control.py:543 - default_logger - DEBUG - 크롬으로 포커스를 옮기고 클립보드의 이미지를 붙여넣고 엔터 입력 +2024-10-23 15:15:04,624 - browser_control.py:619 - default_logger - DEBUG - 크롬 창으로 포커스 이동. +2024-10-23 15:15:04,625 - clipboardImageManager.py:204 - default_logger - DEBUG - is_watermark : True +2024-10-23 15:15:04,626 - clipboardImageManager.py:207 - default_logger - DEBUG - watermark_text : False +2024-10-23 15:15:04,626 - clipboardImageManager.py:33 - default_logger - DEBUG - 클립보드의 텍스트 또는 이미지 데이터를 가져옵니다 +2024-10-23 15:15:04,630 - clipboardImageManager.py:211 - default_logger - DEBUG - clipboard_data +2024-10-23 15:15:04,631 - clipboardImageManager.py:212 - default_logger - DEBUG - https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/9d9cff04-e0d0-429b-a884-aa8c7a526210.jpg +2024-10-23 15:15:04,631 - clipboardImageManager.py:213 - default_logger - DEBUG - ============================ +2024-10-23 15:15:04,632 - clipboardImageManager.py:168 - default_logger - DEBUG - 이미지 URL 다운로드 중: https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/9d9cff04-e0d0-429b-a884-aa8c7a526210.jpg +2024-10-23 15:15:04,778 - clipboardImageManager.py:283 - default_logger - DEBUG - 원본 이미지 다운로드 성공! +2024-10-23 15:15:04,780 - clipboardImageManager.py:287 - default_logger - DEBUG - 워터마크 추가 중... +2024-10-23 15:15:04,781 - clipboardImageManager.py:300 - default_logger - ERROR - 클립보드에서 이미지를 처리하는 중 오류 발생: 'ImageDraw' object has no attribute 'textsize' +Traceback (most recent call last): + File "H:\py\autoTrans\clipboardImageManager.py", line 288, in process_clipboard + image = self.add_watermark(image, watermark_text, opacity_percent) # 워터마크 추가 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\clipboardImageManager.py", line 111, in add_watermark + text_width, text_height = draw.textsize(watermark_text, font=font) + ^^^^^^^^^^^^^ +AttributeError: 'ImageDraw' object has no attribute 'textsize' +2024-10-23 15:15:04,784 - clipboardImageManager.py:309 - default_logger - DEBUG - 클립보드에 이미지가 없습니다. +2024-10-23 15:15:04,785 - browser_control.py:557 - default_logger - WARNING - 클립보드가 비어있습니다. +2024-10-23 15:15:04,785 - gui.py:851 - default_logger - DEBUG - https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/9d9cff04-e0d0-429b-a884-aa8c7a526210.jpg gui 이미지 붙여넣기 실패 +2024-10-23 15:15:04,787 - gui.py:853 - default_logger - DEBUG - Progress Update +2024-10-23 15:15:04,789 - gui.py:859 - default_logger - DEBUG - 상품 세부사항 저장 중... +2024-10-23 15:15:04,929 - browser_control.py:576 - default_logger - INFO - 상품 수정 내용 저장 완료. +2024-10-23 15:15:04,931 - gui.py:782 - default_logger - DEBUG - 상품 세부사항 저장 중... +2024-10-23 15:15:05,296 - browser_control.py:568 - default_logger - INFO - 상품 수정 내용 저장 및 ECS 완료. +2024-10-23 15:15:05,299 - gui.py:787 - default_logger - DEBUG - 1/[12]개 상품 수정 완료. +2024-10-23 15:15:05,300 - gui.py:731 - default_logger - DEBUG - 2/12 버튼의 활성상태 확인 중... +2024-10-23 15:15:05,369 - gui.py:738 - default_logger - DEBUG - 2/12: 세부사항 수정 작업 중... +2024-10-23 15:15:05,426 - browser_control.py:404 - default_logger - DEBUG - 상품의 '세부사항 수정 및 업로드' 버튼을 화면에 보이도록 스크롤. +2024-10-23 15:15:05,900 - browser_control.py:407 - default_logger - INFO - 세부사항 수정 다이얼로그 열기 완료. +2024-10-23 15:15:06,441 - title.py:91 - default_logger - DEBUG - 원본 상품명을 가져오는 중입니다. +2024-10-23 15:15:06,454 - title.py:94 - default_logger - DEBUG - 원본 상품명: 手持式喷砂枪气动高压小型喷沙机汽车喷沙枪喷砂机翻新除锈机设备 +2024-10-23 15:15:06,455 - title.py:179 - default_logger - DEBUG - 마켓 : ss - 카테고리 텍스트를 가져오는 중입니다. +2024-10-23 15:15:06,456 - title.py:188 - default_logger - DEBUG - category_locator : div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 +2024-10-23 15:15:06,466 - title.py:192 - default_logger - DEBUG - main_category_element : selector='div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2'> +2024-10-23 15:15:06,472 - title.py:201 - default_logger - DEBUG - category_text_element : selector='div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 >> div.ant-col.css-1li46mu:nth-child(1)'> +2024-10-23 15:15:06,486 - title.py:221 - default_logger - DEBUG - 카테고리 text = 공구설비/자재-작업공구-에어/유압공구-에어스프레이건 +2024-10-23 15:15:06,488 - gui.py:774 - default_logger - DEBUG - 상세페이지 수정 : False + True +2024-10-23 15:15:06,840 - browser_control.py:416 - default_logger - INFO - 상세페이지 탭 클릭 완료. +2024-10-23 15:15:07,104 - browser_control.py:453 - default_logger - DEBUG - 소스 버튼 클릭 완료. +2024-10-23 15:15:07,133 - browser_control.py:281 - default_logger - DEBUG - fetch_image_urls 에서 추출한 이미지URL 갯수 : 6 개 +2024-10-23 15:15:07,135 - browser_control.py:283 - default_logger - DEBUG - fetch_image_urls 에서 추출한 이미지URL 목록 : ['https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37dde73994c46d385c3fb/ce86fe1a-4840-481b-afab-0bba0321c4bd.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37dde73994c46d385c3fb/97a107a2-1b66-4168-9484-b2855cdabaa1.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37dde73994c46d385c3fb/047cfcaf-8bdc-4c80-9c2e-d3f3c90086d4.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37dde73994c46d385c3fb/3ffdc27f-61af-4efb-abf8-6717a56ff700.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37dde73994c46d385c3fb/2fb673c6-69d9-4612-9220-7a68ab69b6e2.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37dde73994c46d385c3fb/e2b95e8d-a9e0-4742-b5a9-bfd87be4787f.jpg'] +2024-10-23 15:15:07,136 - browser_control.py:463 - default_logger - INFO - 추출된 이미지 URL 수: 6 +2024-10-23 15:15:07,138 - browser_control.py:466 - default_logger - DEBUG - img 태그를 삭제 중... +2024-10-23 15:15:07,166 - browser_control.py:472 - default_logger - DEBUG - Updated data-value: +2024-10-23 15:15:07,167 - browser_control.py:475 - default_logger - DEBUG - img 태그 삭제 완료. +2024-10-23 15:15:07,235 - gui.py:812 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 15:15:07,247 - browser_control.py:538 - default_logger - ERROR - 이미지 URL 추출 & 옵션데이터 입력 처리 중 오류: Page.click: Target page, context or browser has been closed +Call log: +waiting for locator("button[data-cke-tooltip-text=\"소스\"]") + - locator resolved to + - attempting click action + - waiting for element to be visible, enabled and stable + - element is visible, enabled and stable + - scrolling into view if needed + - done scrolling + - performing click action +Traceback (most recent call last): + File "H:\py\autoTrans\browser_control.py", line 478, in extract_image_urls + await self.page.click(source_button_locator) + File "H:\py\autoTrans\Lib\site-packages\playwright\async_api\_generated.py", line 9625, in click + await self._impl_obj.click( + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_page.py", line 777, in click + return await self._main_frame.click(**locals_to_params(locals())) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_frame.py", line 488, in click + await self._channel.send("click", locals_to_params(locals())) + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 59, in send + return await self._connection.wrap_api_call( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 514, in wrap_api_call + raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None +playwright._impl._errors.TargetClosedError: Page.click: Target page, context or browser has been closed +Call log: +waiting for locator("button[data-cke-tooltip-text=\"소스\"]") + - locator resolved to + - attempting click action + - waiting for element to be visible, enabled and stable + - element is visible, enabled and stable + - scrolling into view if needed + - done scrolling + - performing click action + +2024-10-23 15:15:07,251 - gui.py:832 - default_logger - DEBUG - 현재 상품의 총 이미지 수 : 6개 +2024-10-23 15:15:07,254 - gui.py:844 - default_logger - DEBUG - 웨일 브라우저를 활용한 이미지 번역 프로세스 +2024-10-23 15:15:07,257 - whale_translator.py:270 - default_logger - DEBUG - 웨일 창을 찾았습니다.9833314 +2024-10-23 15:15:07,259 - whale_translator.py:276 - default_logger - DEBUG - 이미지 URL 주소 https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37dde73994c46d385c3fb/ce86fe1a-4840-481b-afab-0bba0321c4bd.jpg 입력 +2024-10-23 15:17:04,701 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 15:17:04,701 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 15:17:04,712 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 15:17:04,712 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 15:17:04,713 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 15:17:04,727 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 15:17:04,735 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 15:17:04,736 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:17:04,744 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 15:17:04,845 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:17:04,846 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 15:17:04,846 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 15:17:04,846 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 15:17:04,847 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:17:04,848 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 15:17:04,848 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 15:17:04,848 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 15:17:04,850 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 15:17:04,851 - gui.py:158 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 15:17:06,132 - gui.py:571 - default_logger - DEBUG - 크롬 실행 버튼 클릭됨 +2024-10-23 15:17:06,133 - gui.py:572 - default_logger - DEBUG - self.browser_controller.page : None +2024-10-23 15:17:06,134 - gui.py:579 - default_logger - DEBUG - optionIMGTrans_status : False, detail_IMGTrans_status : True +2024-10-23 15:17:08,139 - whale_translator.py:57 - default_logger - DEBUG - Whale 브라우저 실행, PID: 22500 +2024-10-23 15:17:08,139 - whale_translator.py:65 - default_logger - DEBUG - Whale 창을 찾았습니다: 7080850 +2024-10-23 15:17:08,146 - whale_translator.py:552 - default_logger - DEBUG - 창 위치 및 크기 설정: 위치(1, 1), 크기(1280x720) +2024-10-23 15:17:08,148 - whale_translator.py:161 - default_logger - DEBUG - 웨일 창 크기 및 위치 저장: (1, 1, 1281, 721) +2024-10-23 15:17:11,766 - whale_translator.py:452 - default_logger - DEBUG - 영어로 전환하는데 실패했습니다. +2024-10-23 15:17:13,574 - whale_translator.py:90 - default_logger - DEBUG - URL 입력 완료 +2024-10-23 15:17:13,576 - gui.py:608 - default_logger - DEBUG - 크롬 브라우저를 실행합니다... +2024-10-23 15:17:13,578 - browser_control.py:63 - default_logger - DEBUG - 크롬 브라우저 실행 중... +2024-10-23 15:17:14,242 - browser_control.py:79 - default_logger - DEBUG - 브라우저 경로: H:\py\autoTrans\browsers\chromium-1112\chrome-win\chrome.exe +2024-10-23 15:17:14,243 - browser_control.py:80 - default_logger - DEBUG - 확장 프로그램 경로: H:\py\autoTrans\browsers\extensions\1.1.100_0 +2024-10-23 15:17:14,244 - browser_control.py:81 - default_logger - DEBUG - 사용자 폴더 경로: H:\py\autoTrans\browsers\user_data +2024-10-23 15:17:14,244 - browser_control.py:97 - default_logger - DEBUG - user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 OPR/85.0.0.0 +2024-10-23 15:17:14,904 - browser_control.py:119 - default_logger - INFO - 새 페이지 로딩 중... +2024-10-23 15:17:17,535 - browser_control.py:122 - default_logger - INFO - percenty.co.kr/signin 로딩 완료 +2024-10-23 15:17:17,556 - browser_control.py:130 - default_logger - DEBUG - 페이지 제목: 퍼센티 - 셀러들을 위한 AI 구매대행 솔루션 +2024-10-23 15:17:17,559 - browser_control.py:137 - default_logger - DEBUG - 크롬 창 핸들: 5639192 +2024-10-23 15:17:17,560 - browser_control.py:143 - default_logger - INFO - 로그인 시도 중: 직원 계정 +2024-10-23 15:17:17,794 - browser_control.py:161 - default_logger - INFO - 로그인 완료: 직원 계정 +2024-10-23 15:17:22,800 - browser_control.py:305 - default_logger - ERROR - 다이얼로그가 발견되지 않았거나 오류 발생: Page.wait_for_selector: Timeout 5000ms exceeded. +Call log: +waiting for locator("div[role=\"dialog\"]") to be visible +Traceback (most recent call last): + File "H:\py\autoTrans\browser_control.py", line 292, in close_ad_if_exists + await self.page.wait_for_selector(self.close_ad_dialog_locator, timeout=5000, state='visible') + File "H:\py\autoTrans\Lib\site-packages\playwright\async_api\_generated.py", line 7999, in wait_for_selector + await self._impl_obj.wait_for_selector( + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_page.py", line 397, in wait_for_selector + return await self._main_frame.wait_for_selector(**locals_to_params(locals())) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_frame.py", line 323, in wait_for_selector + await self._channel.send("waitForSelector", locals_to_params(locals())) + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 59, in send + return await self._connection.wrap_api_call( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 514, in wrap_api_call + raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None +playwright._impl._errors.TimeoutError: Page.wait_for_selector: Timeout 5000ms exceeded. +Call log: +waiting for locator("div[role=\"dialog\"]") to be visible + +2024-10-23 15:17:22,804 - gui.py:632 - default_logger - DEBUG - 신규 상품 등록 페이지로 이동 중... +2024-10-23 15:17:23,140 - browser_control.py:312 - default_logger - INFO - 신규 상품 등록 페이지로 이동 완료. +2024-10-23 15:17:23,141 - option.py:43 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:17:23,142 - title.py:31 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:17:23,142 - price.py:52 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:17:30,202 - gui.py:684 - default_logger - DEBUG - 번역 작업 버튼 클릭됨 +2024-10-23 15:17:30,204 - gui.py:689 - default_logger - DEBUG - 번역 작업을 시작합니다... +2024-10-23 15:17:30,204 - browser_control.py:747 - default_logger - INFO - 페이지 스크롤 시작... +2024-10-23 15:17:30,612 - browser_control.py:757 - default_logger - INFO - 페이지 스크롤 완료. +2024-10-23 15:17:30,617 - browser_control.py:222 - default_logger - INFO - 총 상품수 확인: 총 12개 상품 +2024-10-23 15:17:30,619 - gui.py:713 - default_logger - DEBUG - 현재 페이지: 1 +2024-10-23 15:17:30,625 - browser_control.py:369 - default_logger - INFO - 현재 페이지의 수정할 상품 개수: 12 +2024-10-23 15:17:30,625 - gui.py:731 - default_logger - DEBUG - 1/12 버튼의 활성상태 확인 중... +2024-10-23 15:17:30,631 - gui.py:738 - default_logger - DEBUG - 1/12: 세부사항 수정 작업 중... +2024-10-23 15:17:30,682 - browser_control.py:404 - default_logger - DEBUG - 상품의 '세부사항 수정 및 업로드' 버튼을 화면에 보이도록 스크롤. +2024-10-23 15:17:31,272 - browser_control.py:407 - default_logger - INFO - 세부사항 수정 다이얼로그 열기 완료. +2024-10-23 15:17:31,889 - title.py:91 - default_logger - DEBUG - 원본 상품명을 가져오는 중입니다. +2024-10-23 15:17:31,902 - title.py:94 - default_logger - DEBUG - 원본 상품명: 喷砂机小型高压除锈翻新除油除杂质高速磨砂玻璃刻字去皮立式90升 +2024-10-23 15:17:32,149 - title.py:179 - default_logger - DEBUG - 마켓 : ss - 카테고리 텍스트를 가져오는 중입니다. +2024-10-23 15:17:32,150 - title.py:188 - default_logger - DEBUG - category_locator : div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 +2024-10-23 15:17:32,162 - title.py:192 - default_logger - DEBUG - main_category_element : selector='div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2'> +2024-10-23 15:17:32,168 - title.py:201 - default_logger - DEBUG - category_text_element : selector='div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 >> div.ant-col.css-1li46mu:nth-child(1)'> +2024-10-23 15:17:32,181 - title.py:221 - default_logger - DEBUG - 카테고리 text = 공구설비/자재-작업공구-에어/유압공구-에어스프레이건 +2024-10-23 15:17:32,182 - gui.py:774 - default_logger - DEBUG - 상세페이지 수정 : False + True +2024-10-23 15:17:32,570 - browser_control.py:416 - default_logger - INFO - 상세페이지 탭 클릭 완료. +2024-10-23 15:17:32,874 - browser_control.py:453 - default_logger - DEBUG - 소스 버튼 클릭 완료. +2024-10-23 15:17:32,904 - browser_control.py:281 - default_logger - DEBUG - fetch_image_urls 에서 추출한 이미지URL 갯수 : 3 개 +2024-10-23 15:17:32,904 - browser_control.py:283 - default_logger - DEBUG - fetch_image_urls 에서 추출한 이미지URL 목록 : ['https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/62494961-d8c0-4224-9d54-a3a2a4b99ff4.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/019d01c0-f47e-457e-af01-cafd34921a9f.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/c010b4e2-607b-4a53-9b53-f1618c5521a6.jpg'] +2024-10-23 15:17:32,905 - browser_control.py:463 - default_logger - INFO - 추출된 이미지 URL 수: 3 +2024-10-23 15:17:32,906 - browser_control.py:466 - default_logger - DEBUG - img 태그를 삭제 중... +2024-10-23 15:17:32,934 - browser_control.py:472 - default_logger - DEBUG - Updated data-value: +2024-10-23 15:17:32,936 - browser_control.py:475 - default_logger - DEBUG - img 태그 삭제 완료. +2024-10-23 15:17:33,046 - browser_control.py:479 - default_logger - DEBUG - 소스 버튼 재 클릭 완료. +2024-10-23 15:17:33,046 - browser_control.py:483 - default_logger - DEBUG - 옵션 데이터 입력 시작 +2024-10-23 15:17:33,048 - browser_control.py:489 - default_logger - DEBUG - 옵션입력 일단 제외 +2024-10-23 15:17:33,048 - browser_control.py:491 - default_logger - DEBUG - 가져온 옵션 데이터 +2024-10-23 15:17:33,049 - browser_control.py:492 - default_logger - DEBUG - {} +2024-10-23 15:17:33,195 - browser_control.py:504 - default_logger - INFO - leading_text_1 텍스트 입력 완료: --- +2024-10-23 15:17:33,742 - browser_control.py:504 - default_logger - INFO - leading_text_2 텍스트 입력 완료: # 안녕하세요 혜리수샵입니다. +2024-10-23 15:17:34,243 - browser_control.py:504 - default_logger - INFO - leading_text_3 텍스트 입력 완료: ### 마켓정책으로 인해 모든 옵션이 노출되지 않을수도 있습니다. +2024-10-23 15:17:34,710 - browser_control.py:504 - default_logger - INFO - leading_text_4 텍스트 입력 완료: ### 반드시 옵션사진과 옵션이름을 확인하시고 구매하시기 바랍니다. +2024-10-23 15:17:34,781 - browser_control.py:504 - default_logger - INFO - leading_text_5 텍스트 입력 완료: --- +2024-10-23 15:17:34,782 - gui.py:832 - default_logger - DEBUG - 현재 상품의 총 이미지 수 : 3개 +2024-10-23 15:17:34,782 - gui.py:844 - default_logger - DEBUG - 웨일 브라우저를 활용한 이미지 번역 프로세스 +2024-10-23 15:17:34,783 - whale_translator.py:270 - default_logger - DEBUG - 웨일 창을 찾았습니다.7080850 +2024-10-23 15:17:34,789 - whale_translator.py:276 - default_logger - DEBUG - 이미지 URL 주소 https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/62494961-d8c0-4224-9d54-a3a2a4b99ff4.jpg 입력 +2024-10-23 15:17:38,708 - whale_translator.py:561 - default_logger - DEBUG - 현재 웨일 창의 제목: 62494961-d8c0-4224-9d54-a3a2a4b99ff4.jpg (596×596) - Whale +2024-10-23 15:17:38,710 - whale_translator.py:585 - default_logger - DEBUG - 이미지 해상도: 596×596 +2024-10-23 15:17:38,710 - whale_translator.py:294 - default_logger - DEBUG - 페이지 로딩 완료 후 웨일 창의 가운데로 마우스 커서 이동 +2024-10-23 15:17:38,711 - whale_translator.py:621 - default_logger - DEBUG - 마우스 커서를 추가로 50px 내림 +2024-10-23 15:17:38,812 - whale_translator.py:625 - default_logger - DEBUG - 마우스 커서를 창 중앙으로 이동: (641, 411) +2024-10-23 15:17:39,814 - whale_translator.py:303 - default_logger - DEBUG - 번역 작업을 위한 마우스 오른쪽 클릭 및 R 전송 +2024-10-23 15:17:39,815 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:17:41,019 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'r' 전송 준비. +2024-10-23 15:17:41,021 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'r' 전송 +2024-10-23 15:17:47,624 - whale_translator.py:325 - default_logger - DEBUG - 이미지 복사를 위한 마우스 오른쪽 클릭 및 C 전송 +2024-10-23 15:17:47,625 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:17:48,829 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'c' 전송 준비. +2024-10-23 15:17:48,830 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'c' 전송 +2024-10-23 15:17:49,432 - whale_translator.py:330 - default_logger - DEBUG - 클립보드에 번역된이미지 복사 대기 1s +2024-10-23 15:17:50,434 - whale_translator.py:333 - default_logger - DEBUG - 클립보드에 이미지 데이터가 존재하는지 확인 중..... +2024-10-23 15:17:50,439 - whale_translator.py:129 - default_logger - DEBUG - 클립보드에 이미지 데이터가 확인되었습니다. +2024-10-23 15:17:50,440 - whale_translator.py:336 - default_logger - INFO - 번역 성공: https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/62494961-d8c0-4224-9d54-a3a2a4b99ff4.jpg +2024-10-23 15:17:50,441 - whale_translator.py:342 - default_logger - INFO - 번역 프로세스 완료. 웨일 기본페이지로 돌아감 +2024-10-23 15:17:50,544 - browser_control.py:543 - default_logger - DEBUG - 크롬으로 포커스를 옮기고 클립보드의 이미지를 붙여넣고 엔터 입력 +2024-10-23 15:17:50,546 - browser_control.py:619 - default_logger - DEBUG - 크롬 창으로 포커스 이동. +2024-10-23 15:17:50,547 - clipboardImageManager.py:205 - default_logger - DEBUG - is_watermark : True +2024-10-23 15:17:50,547 - clipboardImageManager.py:208 - default_logger - DEBUG - watermark_text : False +2024-10-23 15:17:50,548 - clipboardImageManager.py:33 - default_logger - DEBUG - 클립보드의 텍스트 또는 이미지 데이터를 가져옵니다 +2024-10-23 15:17:50,550 - clipboardImageManager.py:41 - default_logger - DEBUG - 텍스트 데이터가 없어 이미지 데이터 확인 시도 +2024-10-23 15:17:50,551 - clipboardImageManager.py:44 - default_logger - DEBUG - 클립보드에 이미지 데이터가 확인되었습니다. +2024-10-23 15:17:50,553 - clipboardImageManager.py:212 - default_logger - DEBUG - clipboard_data +2024-10-23 15:17:50,554 - clipboardImageManager.py:213 - default_logger - DEBUG - +2024-10-23 15:17:50,555 - clipboardImageManager.py:214 - default_logger - DEBUG - ============================ +2024-10-23 15:17:50,555 - clipboardImageManager.py:247 - default_logger - INFO - [process_clipboard] 클립보드 이미지 확인 +2024-10-23 15:17:50,556 - clipboardImageManager.py:251 - default_logger - DEBUG - 클립보드에 있는 이미지 크기: 596px +2024-10-23 15:17:50,557 - clipboardImageManager.py:254 - default_logger - DEBUG - 이미지 가로 크기 200픽셀 이상: 크롭 진행 중... +2024-10-23 15:17:50,562 - clipboardImageManager.py:259 - default_logger - DEBUG - 워터마크 추가 중... +2024-10-23 15:17:50,565 - clipboardImageManager.py:301 - default_logger - ERROR - 클립보드에서 이미지를 처리하는 중 오류 발생: argument of type 'bool' is not iterable +Traceback (most recent call last): + File "H:\py\autoTrans\clipboardImageManager.py", line 260, in process_clipboard + cropped_watermark_image = self.add_watermark(cropped_image, watermark_text, opacity_percent) # 워터마크 추가 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\clipboardImageManager.py", line 111, in add_watermark + bbox = draw.textbbox((0, 0), watermark_text, font=font) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\PIL\ImageDraw.py", line 843, in textbbox + if self._multiline_check(text): + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\PIL\ImageDraw.py", line 558, in _multiline_check + return split_character in text + ^^^^^^^^^^^^^^^^^^^^^^^ +TypeError: argument of type 'bool' is not iterable +2024-10-23 15:17:50,568 - clipboardImageManager.py:308 - default_logger - DEBUG - 클립보드에 이미지가 존재합니다. +2024-10-23 15:17:50,674 - browser_control.py:550 - default_logger - INFO - 이미지 붙여넣기 완료. +2024-10-23 15:17:50,776 - browser_control.py:552 - default_logger - DEBUG - 이미지 붙여넣기 완료. +2024-10-23 15:17:50,777 - clipboardImageManager.py:336 - default_logger - DEBUG - 클립보드가 비워졌습니다. +2024-10-23 15:17:50,778 - browser_control.py:554 - default_logger - INFO - 이미지 붙여넣기 완료로 클립보드 비우기. +2024-10-23 15:17:50,780 - gui.py:849 - default_logger - DEBUG - https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/62494961-d8c0-4224-9d54-a3a2a4b99ff4.jpg gui 이미지 붙여넣기 성공 +2024-10-23 15:17:50,780 - gui.py:853 - default_logger - DEBUG - Progress Update +2024-10-23 15:17:50,782 - gui.py:844 - default_logger - DEBUG - 웨일 브라우저를 활용한 이미지 번역 프로세스 +2024-10-23 15:17:50,783 - whale_translator.py:270 - default_logger - DEBUG - 웨일 창을 찾았습니다.7080850 +2024-10-23 15:17:50,784 - whale_translator.py:276 - default_logger - DEBUG - 이미지 URL 주소 https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/019d01c0-f47e-457e-af01-cafd34921a9f.jpg 입력 +2024-10-23 15:17:54,701 - whale_translator.py:561 - default_logger - DEBUG - 현재 웨일 창의 제목: 019d01c0-f47e-457e-af01-cafd34921a9f.jpg (750×497) - Whale +2024-10-23 15:17:54,703 - whale_translator.py:585 - default_logger - DEBUG - 이미지 해상도: 750×497 +2024-10-23 15:17:54,703 - whale_translator.py:294 - default_logger - DEBUG - 페이지 로딩 완료 후 웨일 창의 가운데로 마우스 커서 이동 +2024-10-23 15:17:54,704 - whale_translator.py:621 - default_logger - DEBUG - 마우스 커서를 추가로 50px 내림 +2024-10-23 15:17:54,806 - whale_translator.py:625 - default_logger - DEBUG - 마우스 커서를 창 중앙으로 이동: (641, 411) +2024-10-23 15:17:55,808 - whale_translator.py:303 - default_logger - DEBUG - 번역 작업을 위한 마우스 오른쪽 클릭 및 R 전송 +2024-10-23 15:17:55,809 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:17:57,013 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'r' 전송 준비. +2024-10-23 15:17:57,014 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'r' 전송 +2024-10-23 15:18:03,616 - whale_translator.py:325 - default_logger - DEBUG - 이미지 복사를 위한 마우스 오른쪽 클릭 및 C 전송 +2024-10-23 15:18:03,616 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:18:04,820 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'c' 전송 준비. +2024-10-23 15:18:04,820 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'c' 전송 +2024-10-23 15:18:05,423 - whale_translator.py:330 - default_logger - DEBUG - 클립보드에 번역된이미지 복사 대기 1s +2024-10-23 15:18:06,424 - whale_translator.py:333 - default_logger - DEBUG - 클립보드에 이미지 데이터가 존재하는지 확인 중..... +2024-10-23 15:18:06,425 - whale_translator.py:132 - default_logger - DEBUG - 클립보드에 이미지 데이터가 없습니다. +2024-10-23 15:18:06,426 - whale_translator.py:339 - default_logger - ERROR - 번역 실패: 클립보드에 이미지 데이터가 없음 +2024-10-23 15:18:06,427 - whale_translator.py:342 - default_logger - INFO - 번역 프로세스 완료. 웨일 기본페이지로 돌아감 +2024-10-23 15:18:06,529 - browser_control.py:543 - default_logger - DEBUG - 크롬으로 포커스를 옮기고 클립보드의 이미지를 붙여넣고 엔터 입력 +2024-10-23 15:18:06,531 - browser_control.py:619 - default_logger - DEBUG - 크롬 창으로 포커스 이동. +2024-10-23 15:18:06,531 - clipboardImageManager.py:205 - default_logger - DEBUG - is_watermark : True +2024-10-23 15:18:06,533 - clipboardImageManager.py:208 - default_logger - DEBUG - watermark_text : False +2024-10-23 15:18:06,534 - clipboardImageManager.py:33 - default_logger - DEBUG - 클립보드의 텍스트 또는 이미지 데이터를 가져옵니다 +2024-10-23 15:18:06,537 - clipboardImageManager.py:212 - default_logger - DEBUG - clipboard_data +2024-10-23 15:18:06,538 - clipboardImageManager.py:213 - default_logger - DEBUG - https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/019d01c0-f47e-457e-af01-cafd34921a9f.jpg +2024-10-23 15:18:06,538 - clipboardImageManager.py:214 - default_logger - DEBUG - ============================ +2024-10-23 15:18:06,538 - clipboardImageManager.py:169 - default_logger - DEBUG - 이미지 URL 다운로드 중: https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/019d01c0-f47e-457e-af01-cafd34921a9f.jpg +2024-10-23 15:18:06,642 - clipboardImageManager.py:284 - default_logger - DEBUG - 원본 이미지 다운로드 성공! +2024-10-23 15:18:06,643 - clipboardImageManager.py:288 - default_logger - DEBUG - 워터마크 추가 중... +2024-10-23 15:18:06,645 - clipboardImageManager.py:301 - default_logger - ERROR - 클립보드에서 이미지를 처리하는 중 오류 발생: argument of type 'bool' is not iterable +Traceback (most recent call last): + File "H:\py\autoTrans\clipboardImageManager.py", line 289, in process_clipboard + image = self.add_watermark(image, watermark_text, opacity_percent) # 워터마크 추가 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\clipboardImageManager.py", line 111, in add_watermark + bbox = draw.textbbox((0, 0), watermark_text, font=font) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\PIL\ImageDraw.py", line 843, in textbbox + if self._multiline_check(text): + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\PIL\ImageDraw.py", line 558, in _multiline_check + return split_character in text + ^^^^^^^^^^^^^^^^^^^^^^^ +TypeError: argument of type 'bool' is not iterable +2024-10-23 15:18:06,647 - clipboardImageManager.py:310 - default_logger - DEBUG - 클립보드에 이미지가 없습니다. +2024-10-23 15:18:06,649 - browser_control.py:557 - default_logger - WARNING - 클립보드가 비어있습니다. +2024-10-23 15:18:06,649 - gui.py:851 - default_logger - DEBUG - https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/019d01c0-f47e-457e-af01-cafd34921a9f.jpg gui 이미지 붙여넣기 실패 +2024-10-23 15:18:06,651 - gui.py:853 - default_logger - DEBUG - Progress Update +2024-10-23 15:18:06,656 - gui.py:844 - default_logger - DEBUG - 웨일 브라우저를 활용한 이미지 번역 프로세스 +2024-10-23 15:18:06,656 - whale_translator.py:270 - default_logger - DEBUG - 웨일 창을 찾았습니다.7080850 +2024-10-23 15:18:06,658 - whale_translator.py:276 - default_logger - DEBUG - 이미지 URL 주소 https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/c010b4e2-607b-4a53-9b53-f1618c5521a6.jpg 입력 +2024-10-23 15:18:10,576 - whale_translator.py:561 - default_logger - DEBUG - 현재 웨일 창의 제목: c010b4e2-607b-4a53-9b53-f1618c5521a6.jpg (690×605) - Whale +2024-10-23 15:18:10,576 - whale_translator.py:585 - default_logger - DEBUG - 이미지 해상도: 690×605 +2024-10-23 15:18:10,576 - whale_translator.py:294 - default_logger - DEBUG - 페이지 로딩 완료 후 웨일 창의 가운데로 마우스 커서 이동 +2024-10-23 15:18:10,578 - whale_translator.py:621 - default_logger - DEBUG - 마우스 커서를 추가로 50px 내림 +2024-10-23 15:18:10,680 - whale_translator.py:625 - default_logger - DEBUG - 마우스 커서를 창 중앙으로 이동: (641, 411) +2024-10-23 15:18:11,681 - whale_translator.py:303 - default_logger - DEBUG - 번역 작업을 위한 마우스 오른쪽 클릭 및 R 전송 +2024-10-23 15:18:11,681 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:18:12,886 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'r' 전송 준비. +2024-10-23 15:18:12,886 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'r' 전송 +2024-10-23 15:18:19,490 - whale_translator.py:325 - default_logger - DEBUG - 이미지 복사를 위한 마우스 오른쪽 클릭 및 C 전송 +2024-10-23 15:18:19,490 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:18:20,693 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'c' 전송 준비. +2024-10-23 15:18:20,695 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'c' 전송 +2024-10-23 15:18:21,296 - whale_translator.py:330 - default_logger - DEBUG - 클립보드에 번역된이미지 복사 대기 1s +2024-10-23 15:18:22,297 - whale_translator.py:333 - default_logger - DEBUG - 클립보드에 이미지 데이터가 존재하는지 확인 중..... +2024-10-23 15:18:22,298 - whale_translator.py:132 - default_logger - DEBUG - 클립보드에 이미지 데이터가 없습니다. +2024-10-23 15:18:22,299 - whale_translator.py:339 - default_logger - ERROR - 번역 실패: 클립보드에 이미지 데이터가 없음 +2024-10-23 15:18:22,300 - whale_translator.py:342 - default_logger - INFO - 번역 프로세스 완료. 웨일 기본페이지로 돌아감 +2024-10-23 15:18:22,403 - browser_control.py:543 - default_logger - DEBUG - 크롬으로 포커스를 옮기고 클립보드의 이미지를 붙여넣고 엔터 입력 +2024-10-23 15:18:22,404 - browser_control.py:619 - default_logger - DEBUG - 크롬 창으로 포커스 이동. +2024-10-23 15:18:22,405 - clipboardImageManager.py:205 - default_logger - DEBUG - is_watermark : True +2024-10-23 15:18:22,405 - clipboardImageManager.py:208 - default_logger - DEBUG - watermark_text : False +2024-10-23 15:18:22,407 - clipboardImageManager.py:33 - default_logger - DEBUG - 클립보드의 텍스트 또는 이미지 데이터를 가져옵니다 +2024-10-23 15:18:22,409 - clipboardImageManager.py:212 - default_logger - DEBUG - clipboard_data +2024-10-23 15:18:22,409 - clipboardImageManager.py:213 - default_logger - DEBUG - https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/c010b4e2-607b-4a53-9b53-f1618c5521a6.jpg +2024-10-23 15:18:22,410 - clipboardImageManager.py:214 - default_logger - DEBUG - ============================ +2024-10-23 15:18:22,410 - clipboardImageManager.py:169 - default_logger - DEBUG - 이미지 URL 다운로드 중: https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/c010b4e2-607b-4a53-9b53-f1618c5521a6.jpg +2024-10-23 15:18:22,458 - clipboardImageManager.py:284 - default_logger - DEBUG - 원본 이미지 다운로드 성공! +2024-10-23 15:18:22,459 - clipboardImageManager.py:288 - default_logger - DEBUG - 워터마크 추가 중... +2024-10-23 15:18:22,461 - clipboardImageManager.py:301 - default_logger - ERROR - 클립보드에서 이미지를 처리하는 중 오류 발생: argument of type 'bool' is not iterable +Traceback (most recent call last): + File "H:\py\autoTrans\clipboardImageManager.py", line 289, in process_clipboard + image = self.add_watermark(image, watermark_text, opacity_percent) # 워터마크 추가 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\clipboardImageManager.py", line 111, in add_watermark + bbox = draw.textbbox((0, 0), watermark_text, font=font) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\PIL\ImageDraw.py", line 843, in textbbox + if self._multiline_check(text): + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\PIL\ImageDraw.py", line 558, in _multiline_check + return split_character in text + ^^^^^^^^^^^^^^^^^^^^^^^ +TypeError: argument of type 'bool' is not iterable +2024-10-23 15:18:22,463 - clipboardImageManager.py:310 - default_logger - DEBUG - 클립보드에 이미지가 없습니다. +2024-10-23 15:18:22,465 - browser_control.py:557 - default_logger - WARNING - 클립보드가 비어있습니다. +2024-10-23 15:18:22,466 - gui.py:851 - default_logger - DEBUG - https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/c010b4e2-607b-4a53-9b53-f1618c5521a6.jpg gui 이미지 붙여넣기 실패 +2024-10-23 15:18:22,467 - gui.py:853 - default_logger - DEBUG - Progress Update +2024-10-23 15:18:22,469 - gui.py:859 - default_logger - DEBUG - 상품 세부사항 저장 중... +2024-10-23 15:18:22,613 - browser_control.py:576 - default_logger - INFO - 상품 수정 내용 저장 완료. +2024-10-23 15:18:22,614 - gui.py:782 - default_logger - DEBUG - 상품 세부사항 저장 중... +2024-10-23 15:18:23,025 - browser_control.py:568 - default_logger - INFO - 상품 수정 내용 저장 및 ECS 완료. +2024-10-23 15:18:23,028 - gui.py:787 - default_logger - DEBUG - 1/[12]개 상품 수정 완료. +2024-10-23 15:18:23,029 - gui.py:731 - default_logger - DEBUG - 2/12 버튼의 활성상태 확인 중... +2024-10-23 15:18:23,063 - gui.py:738 - default_logger - DEBUG - 2/12: 세부사항 수정 작업 중... +2024-10-23 15:18:23,120 - browser_control.py:404 - default_logger - DEBUG - 상품의 '세부사항 수정 및 업로드' 버튼을 화면에 보이도록 스크롤. +2024-10-23 15:18:23,616 - browser_control.py:407 - default_logger - INFO - 세부사항 수정 다이얼로그 열기 완료. +2024-10-23 15:18:23,965 - gui.py:812 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 15:18:23,975 - browser_control.py:410 - default_logger - ERROR - 세부사항 수정 다이얼로그 열기 중 오류: Page.wait_for_selector: Target page, context or browser has been closed +Call log: +waiting for locator("div.ant-tabs-nav") to be visible +Traceback (most recent call last): + File "H:\py\autoTrans\browser_control.py", line 408, in open_product_edit_dialog + await self.page.wait_for_selector('div.ant-tabs-nav') # 다이얼로그가 완전히 로딩될 때까지 기다림 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\async_api\_generated.py", line 7999, in wait_for_selector + await self._impl_obj.wait_for_selector( + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_page.py", line 397, in wait_for_selector + return await self._main_frame.wait_for_selector(**locals_to_params(locals())) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_frame.py", line 323, in wait_for_selector + await self._channel.send("waitForSelector", locals_to_params(locals())) + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 59, in send + return await self._connection.wrap_api_call( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 514, in wrap_api_call + raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None +playwright._impl._errors.TargetClosedError: Page.wait_for_selector: Target page, context or browser has been closed +Call log: +waiting for locator("div.ant-tabs-nav") to be visible + +2024-10-23 15:18:23,979 - title.py:91 - default_logger - DEBUG - 원본 상품명을 가져오는 중입니다. +2024-10-23 15:18:24,139 - title.py:97 - default_logger - ERROR - 원본 상품명 가져오기 중 오류 발생: Page.query_selector: Target page, context or browser has been closed +Traceback (most recent call last): + File "H:\py\autoTrans\title.py", line 92, in get_original_product_name + original_name_element = await self.page.query_selector(self.original_product_name_locator) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\async_api\_generated.py", line 7905, in query_selector + await self._impl_obj.query_selector(selector=selector, strict=strict) + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_page.py", line 385, in query_selector + return await self._main_frame.query_selector(selector, strict) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_frame.py", line 304, in query_selector + await self._channel.send("querySelector", locals_to_params(locals())) + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 59, in send + return await self._connection.wrap_api_call( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 514, in wrap_api_call + raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None +playwright._impl._errors.TargetClosedError: Page.query_selector: Target page, context or browser has been closed +2024-10-23 15:18:24,142 - title.py:179 - default_logger - DEBUG - 마켓 : ss - 카테고리 텍스트를 가져오는 중입니다. +2024-10-23 15:18:24,144 - title.py:188 - default_logger - DEBUG - category_locator : div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 +2024-10-23 15:19:14,365 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 15:19:14,365 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 15:19:14,376 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 15:19:14,376 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 15:19:14,377 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 15:19:14,392 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 15:19:14,399 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 15:19:14,399 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:19:14,409 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 15:19:14,531 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:19:14,532 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 15:19:14,532 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 15:19:14,533 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 15:19:14,533 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:19:14,534 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 15:19:14,535 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 15:19:14,535 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 15:19:14,535 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 15:19:14,537 - gui.py:158 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 15:19:17,091 - gui.py:513 - default_logger - DEBUG - 워터마크 버튼 - 비활성화 선택 +2024-10-23 15:19:17,270 - gui.py:513 - default_logger - DEBUG - 워터마크 버튼 - 활성화 선택 +2024-10-23 15:21:08,651 - gui.py:513 - default_logger - DEBUG - 워터마크 버튼 - 비활성화 선택 +2024-10-23 15:21:09,633 - gui.py:513 - default_logger - DEBUG - 워터마크 버튼 - 활성화 선택 +2024-10-23 15:21:10,594 - gui.py:513 - default_logger - DEBUG - 워터마크 버튼 - 비활성화 선택 +2024-10-23 15:21:13,298 - gui.py:513 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:21:15,480 - gui.py:513 - default_logger - DEBUG - 옵션명 AI번역 버튼 - 활성화 선택 +2024-10-23 15:21:16,369 - gui.py:513 - default_logger - DEBUG - 옵션명 AI번역 버튼 - 비활성화 선택 +2024-10-23 15:21:17,278 - gui.py:513 - default_logger - DEBUG - 옵션 Auto선택 버튼 - 활성화 선택 +2024-10-23 15:21:17,636 - gui.py:513 - default_logger - DEBUG - 옵션 Auto선택 버튼 - 비활성화 선택 +2024-10-23 15:21:18,071 - gui.py:513 - default_logger - DEBUG - 썸네일 AI수정 버튼 - 활성화 선택 +2024-10-23 15:21:21,178 - gui.py:513 - default_logger - DEBUG - 썸네일 AI수정 버튼 - 비활성화 선택 +2024-10-23 15:21:22,622 - gui.py:513 - default_logger - DEBUG - 옵션이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:21:23,431 - gui.py:513 - default_logger - DEBUG - 옵션이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:21:24,190 - gui.py:513 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:21:25,742 - gui.py:513 - default_logger - DEBUG - 워터마크 버튼 - 활성화 선택 +2024-10-23 15:23:19,788 - gui.py:812 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 15:23:24,095 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 15:23:24,096 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 15:23:24,105 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 15:23:24,105 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 15:23:24,107 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 15:23:24,118 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 15:23:24,126 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 15:23:24,126 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:23:24,135 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 15:23:24,237 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:23:24,237 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 15:23:24,237 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 15:23:24,237 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 15:23:24,237 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:23:24,237 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 15:23:24,237 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 15:23:24,237 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 15:23:24,237 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 15:23:24,245 - gui.py:158 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 15:23:26,240 - gui.py:517 - default_logger - DEBUG - 워터마크 버튼 - 비활성화 선택 +2024-10-23 15:23:30,124 - gui.py:816 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 15:23:35,179 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 15:23:35,180 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 15:23:35,197 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 15:23:35,197 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 15:23:35,199 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 15:23:35,215 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 15:23:35,222 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 15:23:35,222 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:23:35,231 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 15:23:35,327 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:23:35,327 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 15:23:35,327 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 15:23:35,327 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 15:23:35,327 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:23:35,327 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 15:23:35,327 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 15:23:35,327 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 15:23:35,336 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 15:23:35,337 - gui.py:158 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 15:23:40,186 - gui.py:517 - default_logger - DEBUG - 워터마크 버튼 - 활성화 선택 +2024-10-23 15:23:48,975 - gui.py:575 - default_logger - DEBUG - 크롬 실행 버튼 클릭됨 +2024-10-23 15:23:48,977 - gui.py:576 - default_logger - DEBUG - self.browser_controller.page : None +2024-10-23 15:23:48,977 - gui.py:583 - default_logger - DEBUG - optionIMGTrans_status : False, detail_IMGTrans_status : True +2024-10-23 15:23:50,982 - whale_translator.py:57 - default_logger - DEBUG - Whale 브라우저 실행, PID: 18328 +2024-10-23 15:23:50,982 - whale_translator.py:65 - default_logger - DEBUG - Whale 창을 찾았습니다: 14617452 +2024-10-23 15:23:51,998 - whale_translator.py:552 - default_logger - DEBUG - 창 위치 및 크기 설정: 위치(1, 1), 크기(1280x720) +2024-10-23 15:23:51,998 - whale_translator.py:161 - default_logger - DEBUG - 웨일 창 크기 및 위치 저장: (1, 1, 1281, 721) +2024-10-23 15:23:55,618 - whale_translator.py:452 - default_logger - DEBUG - 영어로 전환하는데 실패했습니다. +2024-10-23 15:23:57,425 - whale_translator.py:90 - default_logger - DEBUG - URL 입력 완료 +2024-10-23 15:23:57,442 - gui.py:612 - default_logger - DEBUG - 크롬 브라우저를 실행합니다... +2024-10-23 15:23:57,444 - browser_control.py:63 - default_logger - DEBUG - 크롬 브라우저 실행 중... +2024-10-23 15:23:57,884 - browser_control.py:79 - default_logger - DEBUG - 브라우저 경로: H:\py\autoTrans\browsers\chromium-1112\chrome-win\chrome.exe +2024-10-23 15:23:57,885 - browser_control.py:80 - default_logger - DEBUG - 확장 프로그램 경로: H:\py\autoTrans\browsers\extensions\1.1.100_0 +2024-10-23 15:23:57,885 - browser_control.py:81 - default_logger - DEBUG - 사용자 폴더 경로: H:\py\autoTrans\browsers\user_data +2024-10-23 15:23:57,885 - browser_control.py:97 - default_logger - DEBUG - user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 OPR/85.0.0.0 +2024-10-23 15:23:58,484 - browser_control.py:119 - default_logger - INFO - 새 페이지 로딩 중... +2024-10-23 15:24:01,406 - browser_control.py:122 - default_logger - INFO - percenty.co.kr/signin 로딩 완료 +2024-10-23 15:24:01,423 - browser_control.py:130 - default_logger - DEBUG - 페이지 제목: 퍼센티 - 셀러들을 위한 AI 구매대행 솔루션 +2024-10-23 15:24:01,424 - browser_control.py:137 - default_logger - DEBUG - 크롬 창 핸들: 8063980 +2024-10-23 15:24:01,425 - browser_control.py:143 - default_logger - INFO - 로그인 시도 중: 직원 계정 +2024-10-23 15:24:01,629 - browser_control.py:161 - default_logger - INFO - 로그인 완료: 직원 계정 +2024-10-23 15:24:06,643 - browser_control.py:305 - default_logger - ERROR - 다이얼로그가 발견되지 않았거나 오류 발생: Page.wait_for_selector: Timeout 5000ms exceeded. +Call log: +waiting for locator("div[role=\"dialog\"]") to be visible +Traceback (most recent call last): + File "H:\py\autoTrans\browser_control.py", line 292, in close_ad_if_exists + await self.page.wait_for_selector(self.close_ad_dialog_locator, timeout=5000, state='visible') + File "H:\py\autoTrans\Lib\site-packages\playwright\async_api\_generated.py", line 7999, in wait_for_selector + await self._impl_obj.wait_for_selector( + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_page.py", line 397, in wait_for_selector + return await self._main_frame.wait_for_selector(**locals_to_params(locals())) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_frame.py", line 323, in wait_for_selector + await self._channel.send("waitForSelector", locals_to_params(locals())) + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 59, in send + return await self._connection.wrap_api_call( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 514, in wrap_api_call + raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None +playwright._impl._errors.TimeoutError: Page.wait_for_selector: Timeout 5000ms exceeded. +Call log: +waiting for locator("div[role=\"dialog\"]") to be visible + +2024-10-23 15:24:06,646 - gui.py:636 - default_logger - DEBUG - 신규 상품 등록 페이지로 이동 중... +2024-10-23 15:24:06,975 - browser_control.py:312 - default_logger - INFO - 신규 상품 등록 페이지로 이동 완료. +2024-10-23 15:24:06,977 - option.py:43 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:24:06,977 - title.py:31 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:24:06,978 - price.py:52 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:24:14,252 - gui.py:688 - default_logger - DEBUG - 번역 작업 버튼 클릭됨 +2024-10-23 15:24:14,254 - gui.py:693 - default_logger - DEBUG - 번역 작업을 시작합니다... +2024-10-23 15:24:14,255 - browser_control.py:747 - default_logger - INFO - 페이지 스크롤 시작... +2024-10-23 15:24:14,661 - browser_control.py:757 - default_logger - INFO - 페이지 스크롤 완료. +2024-10-23 15:24:14,667 - browser_control.py:222 - default_logger - INFO - 총 상품수 확인: 총 12개 상품 +2024-10-23 15:24:14,668 - gui.py:717 - default_logger - DEBUG - 현재 페이지: 1 +2024-10-23 15:24:14,674 - browser_control.py:369 - default_logger - INFO - 현재 페이지의 수정할 상품 개수: 12 +2024-10-23 15:24:14,675 - gui.py:735 - default_logger - DEBUG - 1/12 버튼의 활성상태 확인 중... +2024-10-23 15:24:14,682 - gui.py:742 - default_logger - DEBUG - 1/12: 세부사항 수정 작업 중... +2024-10-23 15:24:14,731 - browser_control.py:404 - default_logger - DEBUG - 상품의 '세부사항 수정 및 업로드' 버튼을 화면에 보이도록 스크롤. +2024-10-23 15:24:15,319 - browser_control.py:407 - default_logger - INFO - 세부사항 수정 다이얼로그 열기 완료. +2024-10-23 15:24:15,932 - title.py:91 - default_logger - DEBUG - 원본 상품명을 가져오는 중입니다. +2024-10-23 15:24:15,947 - title.py:94 - default_logger - DEBUG - 원본 상품명: 喷砂机小型高压除锈翻新除油除杂质高速磨砂玻璃刻字去皮立式90升 +2024-10-23 15:24:16,219 - title.py:179 - default_logger - DEBUG - 마켓 : ss - 카테고리 텍스트를 가져오는 중입니다. +2024-10-23 15:24:16,219 - title.py:188 - default_logger - DEBUG - category_locator : div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 +2024-10-23 15:24:16,231 - title.py:192 - default_logger - DEBUG - main_category_element : selector='div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2'> +2024-10-23 15:24:16,238 - title.py:201 - default_logger - DEBUG - category_text_element : selector='div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 >> div.ant-col.css-1li46mu:nth-child(1)'> +2024-10-23 15:24:16,254 - title.py:221 - default_logger - DEBUG - 카테고리 text = 공구설비/자재-작업공구-에어/유압공구-에어스프레이건 +2024-10-23 15:24:16,255 - gui.py:778 - default_logger - DEBUG - 상세페이지 수정 : False + True +2024-10-23 15:24:16,675 - browser_control.py:416 - default_logger - INFO - 상세페이지 탭 클릭 완료. +2024-10-23 15:24:16,974 - browser_control.py:453 - default_logger - DEBUG - 소스 버튼 클릭 완료. +2024-10-23 15:24:17,001 - browser_control.py:281 - default_logger - DEBUG - fetch_image_urls 에서 추출한 이미지URL 갯수 : 1 개 +2024-10-23 15:24:17,002 - browser_control.py:283 - default_logger - DEBUG - fetch_image_urls 에서 추출한 이미지URL 목록 : ['https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/36307b14-74a3-4e06-979f-7ffc6669d856.jpg'] +2024-10-23 15:24:17,002 - browser_control.py:463 - default_logger - INFO - 추출된 이미지 URL 수: 1 +2024-10-23 15:24:17,003 - browser_control.py:466 - default_logger - DEBUG - img 태그를 삭제 중... +2024-10-23 15:24:17,027 - browser_control.py:472 - default_logger - DEBUG - Updated data-value: +2024-10-23 15:24:17,028 - browser_control.py:475 - default_logger - DEBUG - img 태그 삭제 완료. +2024-10-23 15:24:17,135 - browser_control.py:479 - default_logger - DEBUG - 소스 버튼 재 클릭 완료. +2024-10-23 15:24:17,135 - browser_control.py:483 - default_logger - DEBUG - 옵션 데이터 입력 시작 +2024-10-23 15:24:17,136 - browser_control.py:489 - default_logger - DEBUG - 옵션입력 일단 제외 +2024-10-23 15:24:17,136 - browser_control.py:491 - default_logger - DEBUG - 가져온 옵션 데이터 +2024-10-23 15:24:17,136 - browser_control.py:492 - default_logger - DEBUG - {} +2024-10-23 15:24:17,271 - browser_control.py:504 - default_logger - INFO - leading_text_1 텍스트 입력 완료: --- +2024-10-23 15:24:17,804 - browser_control.py:504 - default_logger - INFO - leading_text_2 텍스트 입력 완료: # 안녕하세요 혜리수샵입니다. +2024-10-23 15:24:18,273 - browser_control.py:504 - default_logger - INFO - leading_text_3 텍스트 입력 완료: ### 마켓정책으로 인해 모든 옵션이 노출되지 않을수도 있습니다. +2024-10-23 15:24:18,768 - browser_control.py:504 - default_logger - INFO - leading_text_4 텍스트 입력 완료: ### 반드시 옵션사진과 옵션이름을 확인하시고 구매하시기 바랍니다. +2024-10-23 15:24:18,840 - browser_control.py:504 - default_logger - INFO - leading_text_5 텍스트 입력 완료: --- +2024-10-23 15:24:18,841 - gui.py:836 - default_logger - DEBUG - 현재 상품의 총 이미지 수 : 1개 +2024-10-23 15:24:18,842 - gui.py:848 - default_logger - DEBUG - 웨일 브라우저를 활용한 이미지 번역 프로세스 +2024-10-23 15:24:18,844 - whale_translator.py:270 - default_logger - DEBUG - 웨일 창을 찾았습니다.14617452 +2024-10-23 15:24:18,849 - whale_translator.py:276 - default_logger - DEBUG - 이미지 URL 주소 https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/36307b14-74a3-4e06-979f-7ffc6669d856.jpg 입력 +2024-10-23 15:24:22,760 - whale_translator.py:561 - default_logger - DEBUG - 현재 웨일 창의 제목: 36307b14-74a3-4e06-979f-7ffc6669d856.jpg (596×596) - Whale +2024-10-23 15:24:22,761 - whale_translator.py:585 - default_logger - DEBUG - 이미지 해상도: 596×596 +2024-10-23 15:24:22,761 - whale_translator.py:294 - default_logger - DEBUG - 페이지 로딩 완료 후 웨일 창의 가운데로 마우스 커서 이동 +2024-10-23 15:24:22,762 - whale_translator.py:621 - default_logger - DEBUG - 마우스 커서를 추가로 50px 내림 +2024-10-23 15:24:22,864 - whale_translator.py:625 - default_logger - DEBUG - 마우스 커서를 창 중앙으로 이동: (641, 411) +2024-10-23 15:24:23,866 - whale_translator.py:303 - default_logger - DEBUG - 번역 작업을 위한 마우스 오른쪽 클릭 및 R 전송 +2024-10-23 15:24:23,867 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:24:25,071 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'r' 전송 준비. +2024-10-23 15:24:25,072 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'r' 전송 +2024-10-23 15:24:31,674 - whale_translator.py:325 - default_logger - DEBUG - 이미지 복사를 위한 마우스 오른쪽 클릭 및 C 전송 +2024-10-23 15:24:31,675 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:24:32,879 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'c' 전송 준비. +2024-10-23 15:24:32,880 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'c' 전송 +2024-10-23 15:24:33,483 - whale_translator.py:330 - default_logger - DEBUG - 클립보드에 번역된이미지 복사 대기 1s +2024-10-23 15:24:34,484 - whale_translator.py:333 - default_logger - DEBUG - 클립보드에 이미지 데이터가 존재하는지 확인 중..... +2024-10-23 15:24:34,490 - whale_translator.py:129 - default_logger - DEBUG - 클립보드에 이미지 데이터가 확인되었습니다. +2024-10-23 15:24:34,491 - whale_translator.py:336 - default_logger - INFO - 번역 성공: https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/36307b14-74a3-4e06-979f-7ffc6669d856.jpg +2024-10-23 15:24:34,492 - whale_translator.py:342 - default_logger - INFO - 번역 프로세스 완료. 웨일 기본페이지로 돌아감 +2024-10-23 15:24:34,595 - browser_control.py:543 - default_logger - DEBUG - 크롬으로 포커스를 옮기고 클립보드의 이미지를 붙여넣고 엔터 입력 +2024-10-23 15:24:34,595 - browser_control.py:619 - default_logger - DEBUG - 크롬 창으로 포커스 이동. +2024-10-23 15:24:34,597 - clipboardImageManager.py:205 - default_logger - DEBUG - is_watermark : True +2024-10-23 15:24:34,598 - clipboardImageManager.py:208 - default_logger - DEBUG - watermark_text : False +2024-10-23 15:24:34,599 - clipboardImageManager.py:33 - default_logger - DEBUG - 클립보드의 텍스트 또는 이미지 데이터를 가져옵니다 +2024-10-23 15:24:34,601 - clipboardImageManager.py:41 - default_logger - DEBUG - 텍스트 데이터가 없어 이미지 데이터 확인 시도 +2024-10-23 15:24:34,602 - clipboardImageManager.py:44 - default_logger - DEBUG - 클립보드에 이미지 데이터가 확인되었습니다. +2024-10-23 15:24:34,603 - clipboardImageManager.py:212 - default_logger - DEBUG - clipboard_data +2024-10-23 15:24:34,604 - clipboardImageManager.py:213 - default_logger - DEBUG - +2024-10-23 15:24:34,605 - clipboardImageManager.py:214 - default_logger - DEBUG - ============================ +2024-10-23 15:24:34,605 - clipboardImageManager.py:247 - default_logger - INFO - [process_clipboard] 클립보드 이미지 확인 +2024-10-23 15:24:34,605 - clipboardImageManager.py:251 - default_logger - DEBUG - 클립보드에 있는 이미지 크기: 596px +2024-10-23 15:24:34,607 - clipboardImageManager.py:254 - default_logger - DEBUG - 이미지 가로 크기 200픽셀 이상: 크롭 진행 중... +2024-10-23 15:24:34,611 - clipboardImageManager.py:259 - default_logger - DEBUG - 워터마크 추가 중... +2024-10-23 15:24:34,614 - clipboardImageManager.py:301 - default_logger - ERROR - 클립보드에서 이미지를 처리하는 중 오류 발생: argument of type 'bool' is not iterable +Traceback (most recent call last): + File "H:\py\autoTrans\clipboardImageManager.py", line 260, in process_clipboard + cropped_watermark_image = self.add_watermark(cropped_image, watermark_text, opacity_percent) # 워터마크 추가 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\clipboardImageManager.py", line 111, in add_watermark + bbox = draw.textbbox((0, 0), watermark_text, font=font) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\PIL\ImageDraw.py", line 843, in textbbox + if self._multiline_check(text): + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\PIL\ImageDraw.py", line 558, in _multiline_check + return split_character in text + ^^^^^^^^^^^^^^^^^^^^^^^ +TypeError: argument of type 'bool' is not iterable +2024-10-23 15:24:34,617 - clipboardImageManager.py:308 - default_logger - DEBUG - 클립보드에 이미지가 존재합니다. +2024-10-23 15:24:34,723 - browser_control.py:550 - default_logger - INFO - 이미지 붙여넣기 완료. +2024-10-23 15:24:34,826 - browser_control.py:552 - default_logger - DEBUG - 이미지 붙여넣기 완료. +2024-10-23 15:24:34,828 - clipboardImageManager.py:336 - default_logger - DEBUG - 클립보드가 비워졌습니다. +2024-10-23 15:24:34,830 - browser_control.py:554 - default_logger - INFO - 이미지 붙여넣기 완료로 클립보드 비우기. +2024-10-23 15:24:34,831 - gui.py:853 - default_logger - DEBUG - https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/36307b14-74a3-4e06-979f-7ffc6669d856.jpg gui 이미지 붙여넣기 성공 +2024-10-23 15:24:34,832 - gui.py:857 - default_logger - DEBUG - Progress Update +2024-10-23 15:24:34,832 - gui.py:863 - default_logger - DEBUG - 상품 세부사항 저장 중... +2024-10-23 15:24:35,023 - browser_control.py:576 - default_logger - INFO - 상품 수정 내용 저장 완료. +2024-10-23 15:24:35,026 - gui.py:786 - default_logger - DEBUG - 상품 세부사항 저장 중... +2024-10-23 15:24:35,351 - browser_control.py:568 - default_logger - INFO - 상품 수정 내용 저장 및 ECS 완료. +2024-10-23 15:24:35,354 - gui.py:791 - default_logger - DEBUG - 1/[12]개 상품 수정 완료. +2024-10-23 15:24:35,355 - gui.py:735 - default_logger - DEBUG - 2/12 버튼의 활성상태 확인 중... +2024-10-23 15:24:35,362 - gui.py:742 - default_logger - DEBUG - 2/12: 세부사항 수정 작업 중... +2024-10-23 15:24:35,422 - browser_control.py:404 - default_logger - DEBUG - 상품의 '세부사항 수정 및 업로드' 버튼을 화면에 보이도록 스크롤. +2024-10-23 15:24:36,134 - browser_control.py:407 - default_logger - INFO - 세부사항 수정 다이얼로그 열기 완료. +2024-10-23 15:24:36,772 - title.py:91 - default_logger - DEBUG - 원본 상품명을 가져오는 중입니다. +2024-10-23 15:24:36,790 - title.py:94 - default_logger - DEBUG - 원본 상품명: 手持式喷砂枪气动高压小型喷沙机汽车喷沙枪喷砂机翻新除锈机设备 +2024-10-23 15:24:36,792 - title.py:179 - default_logger - DEBUG - 마켓 : ss - 카테고리 텍스트를 가져오는 중입니다. +2024-10-23 15:24:36,793 - title.py:188 - default_logger - DEBUG - category_locator : div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 +2024-10-23 15:24:36,805 - title.py:192 - default_logger - DEBUG - main_category_element : selector='div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2'> +2024-10-23 15:24:36,813 - title.py:201 - default_logger - DEBUG - category_text_element : selector='div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 >> div.ant-col.css-1li46mu:nth-child(1)'> +2024-10-23 15:24:36,829 - title.py:221 - default_logger - DEBUG - 카테고리 text = 공구설비/자재-작업공구-에어/유압공구-에어스프레이건 +2024-10-23 15:24:36,831 - gui.py:778 - default_logger - DEBUG - 상세페이지 수정 : False + True +2024-10-23 15:24:37,220 - browser_control.py:416 - default_logger - INFO - 상세페이지 탭 클릭 완료. +2024-10-23 15:24:37,453 - gui.py:816 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 15:24:37,466 - browser_control.py:538 - default_logger - ERROR - 이미지 URL 추출 & 옵션데이터 입력 처리 중 오류: Page.click: Target page, context or browser has been closed +Call log: +waiting for locator("button[data-cke-tooltip-text=\"소스\"]") + - locator resolved to + - attempting click action + - waiting for element to be visible, enabled and stable + - element is visible, enabled and stable + - scrolling into view if needed + - done scrolling + - performing click action +Traceback (most recent call last): + File "H:\py\autoTrans\browser_control.py", line 452, in extract_image_urls + await self.page.click(source_button_locator) + File "H:\py\autoTrans\Lib\site-packages\playwright\async_api\_generated.py", line 9625, in click + await self._impl_obj.click( + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_page.py", line 777, in click + return await self._main_frame.click(**locals_to_params(locals())) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_frame.py", line 488, in click + await self._channel.send("click", locals_to_params(locals())) + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 59, in send + return await self._connection.wrap_api_call( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 514, in wrap_api_call + raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None +playwright._impl._errors.TargetClosedError: Page.click: Target page, context or browser has been closed +Call log: +waiting for locator("button[data-cke-tooltip-text=\"소스\"]") + - locator resolved to + - attempting click action + - waiting for element to be visible, enabled and stable + - element is visible, enabled and stable + - scrolling into view if needed + - done scrolling + - performing click action + +2024-10-23 15:24:37,470 - gui.py:808 - default_logger - DEBUG - 번역 작업 중 오류 발생: cannot access local variable 'image_urls' where it is not associated with a value +Traceback (most recent call last): + File "H:\py\autoTrans\browser_control.py", line 452, in extract_image_urls + await self.page.click(source_button_locator) + File "H:\py\autoTrans\Lib\site-packages\playwright\async_api\_generated.py", line 9625, in click + await self._impl_obj.click( + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_page.py", line 777, in click + return await self._main_frame.click(**locals_to_params(locals())) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_frame.py", line 488, in click + await self._channel.send("click", locals_to_params(locals())) + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 59, in send + return await self._connection.wrap_api_call( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 514, in wrap_api_call + raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None +playwright._impl._errors.TargetClosedError: Page.click: Target page, context or browser has been closed +Call log: +waiting for locator("button[data-cke-tooltip-text=\"소스\"]") + - locator resolved to + - attempting click action + - waiting for element to be visible, enabled and stable + - element is visible, enabled and stable + - scrolling into view if needed + - done scrolling + - performing click action + + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "H:\py\autoTrans\gui.py", line 782, in start_translation + await self.detail_trans() + File "H:\py\autoTrans\gui.py", line 834, in detail_trans + image_urls = await self.browser_controller.extract_image_urls(self.optionHandler, is_option_data=True) # 코루틴 실행 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\browser_control.py", line 539, in extract_image_urls + return image_urls if image_urls else [] + ^^^^^^^^^^ +UnboundLocalError: cannot access local variable 'image_urls' where it is not associated with a value +2024-10-23 15:31:03,894 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 15:31:03,894 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 15:31:03,896 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 15:31:03,896 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 15:31:03,896 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 15:31:03,918 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 15:31:03,927 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 15:31:03,927 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:31:03,936 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 15:31:04,039 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:31:04,039 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 15:31:04,039 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 15:31:04,039 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 15:31:04,039 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:31:04,041 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 15:31:04,042 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 15:31:04,042 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 15:31:04,042 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 15:31:04,044 - gui.py:158 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 15:31:07,001 - gui.py:529 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:31:08,602 - gui.py:529 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:31:08,891 - gui.py:529 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:31:09,965 - gui.py:529 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:31:11,553 - gui.py:529 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:33:26,723 - gui.py:836 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 15:33:30,925 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 15:33:30,925 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 15:33:30,936 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 15:33:30,936 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 15:33:30,937 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 15:33:30,950 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 15:33:30,958 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 15:33:30,958 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:33:30,967 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 15:33:31,068 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:33:31,068 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 15:33:31,070 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 15:33:31,070 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 15:33:31,071 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:33:31,071 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 15:33:31,072 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 15:33:31,072 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 15:33:31,073 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 15:33:31,074 - gui.py:158 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 15:33:32,788 - gui.py:529 - default_logger - DEBUG - 워터마크 버튼 - 비활성화 선택 +2024-10-23 15:33:33,983 - gui.py:529 - default_logger - DEBUG - 워터마크 버튼 - 활성화 선택 +2024-10-23 15:33:36,342 - gui.py:529 - default_logger - DEBUG - 워터마크 버튼 - 비활성화 선택 +2024-10-23 15:33:39,436 - gui.py:529 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:33:40,521 - gui.py:529 - default_logger - DEBUG - 옵션이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:33:41,547 - gui.py:529 - default_logger - DEBUG - 옵션이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:33:42,013 - gui.py:529 - default_logger - DEBUG - 옵션이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:33:43,989 - gui.py:529 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:33:44,613 - gui.py:529 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:33:45,809 - gui.py:529 - default_logger - DEBUG - 워터마크 버튼 - 활성화 선택 +2024-10-23 15:33:46,853 - gui.py:529 - default_logger - DEBUG - 옵션이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:33:47,366 - gui.py:529 - default_logger - DEBUG - 옵션이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:33:48,626 - gui.py:529 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:33:48,935 - gui.py:529 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:33:51,702 - gui.py:529 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:33:52,356 - gui.py:529 - default_logger - DEBUG - 옵션이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:33:53,944 - gui.py:529 - default_logger - DEBUG - 옵션이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:33:56,982 - gui.py:529 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:33:58,302 - gui.py:529 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:34:01,820 - gui.py:529 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:36:45,224 - gui.py:836 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 15:36:50,016 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 15:36:50,016 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 15:36:50,026 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 15:36:50,027 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 15:36:50,027 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 15:36:50,041 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 15:36:50,049 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 15:36:50,049 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:36:50,057 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 15:36:50,167 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:36:50,168 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 15:36:50,169 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 15:36:50,169 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 15:36:50,169 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:36:50,170 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 15:36:50,171 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 15:36:50,171 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 15:36:50,171 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 15:36:50,172 - gui.py:158 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 15:36:52,744 - gui.py:539 - default_logger - DEBUG - 옵션이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:36:53,687 - gui.py:539 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:37:00,312 - gui.py:539 - default_logger - DEBUG - 썸네일 AI수정 버튼 - 활성화 선택 +2024-10-23 15:37:02,060 - gui.py:539 - default_logger - DEBUG - 워터마크 버튼 - 비활성화 선택 +2024-10-23 15:37:02,493 - gui.py:539 - default_logger - DEBUG - 워터마크 버튼 - 활성화 선택 +2024-10-23 15:37:04,043 - gui.py:539 - default_logger - DEBUG - 워터마크 버튼 - 비활성화 선택 +2024-10-23 15:37:04,347 - gui.py:539 - default_logger - DEBUG - 워터마크 버튼 - 활성화 선택 +2024-10-23 15:37:05,274 - gui.py:539 - default_logger - DEBUG - 워터마크 버튼 - 비활성화 선택 +2024-10-23 15:37:06,200 - gui.py:539 - default_logger - DEBUG - 썸네일 AI수정 버튼 - 비활성화 선택 +2024-10-23 15:37:06,839 - gui.py:539 - default_logger - DEBUG - 썸네일 AI수정 버튼 - 활성화 선택 +2024-10-23 15:37:07,740 - gui.py:539 - default_logger - DEBUG - 워터마크 버튼 - 활성화 선택 +2024-10-23 15:37:08,846 - gui.py:539 - default_logger - DEBUG - 썸네일 AI수정 버튼 - 비활성화 선택 +2024-10-23 15:37:09,639 - gui.py:539 - default_logger - DEBUG - 옵션이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:37:11,694 - gui.py:539 - default_logger - DEBUG - 옵션이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:37:12,350 - gui.py:539 - default_logger - DEBUG - 옵션이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:37:15,233 - gui.py:539 - default_logger - DEBUG - 옵션이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:38:17,548 - gui.py:842 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 15:38:56,795 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 15:38:56,795 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 15:38:56,807 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 15:38:56,807 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 15:38:56,808 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 15:38:56,818 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 15:38:56,829 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 15:38:56,829 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:38:56,838 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 15:38:56,950 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:38:56,952 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 15:38:56,952 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 15:38:56,952 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 15:38:56,952 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:38:56,954 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 15:38:56,954 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 15:38:56,956 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 15:38:56,956 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 15:38:56,958 - gui.py:158 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 15:38:59,684 - gui.py:547 - default_logger - DEBUG - 워터마크 버튼 - 비활성화 선택 +2024-10-23 15:39:00,529 - gui.py:547 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:39:02,556 - gui.py:547 - default_logger - DEBUG - 워터마크 버튼 - 활성화 선택 +2024-10-23 15:39:03,336 - gui.py:547 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:39:03,912 - gui.py:547 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:39:04,970 - gui.py:547 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:39:06,914 - gui.py:547 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:39:08,445 - gui.py:547 - default_logger - DEBUG - 옵션이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:39:12,885 - gui.py:547 - default_logger - DEBUG - 워터마크 버튼 - 비활성화 선택 +2024-10-23 15:39:13,570 - gui.py:547 - default_logger - DEBUG - 워터마크 버튼 - 활성화 선택 +2024-10-23 15:39:19,445 - gui.py:547 - default_logger - DEBUG - 옵션이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:39:37,889 - gui.py:850 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 15:40:02,511 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 15:40:02,511 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 15:40:02,519 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 15:40:02,519 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 15:40:02,524 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 15:40:02,536 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 15:40:02,540 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 15:40:02,545 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:40:02,553 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 15:40:02,670 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:40:02,670 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 15:40:02,670 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 15:40:02,670 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 15:40:02,670 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:40:02,670 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 15:40:02,670 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 15:40:02,670 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 15:40:02,675 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 15:40:02,676 - gui.py:158 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 15:43:53,279 - gui.py:850 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 15:43:57,485 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 15:43:57,487 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 15:43:57,497 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 15:43:57,497 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 15:43:57,497 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 15:43:57,510 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 15:43:57,515 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 15:43:57,515 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:43:57,525 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 15:43:57,641 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:43:57,641 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 15:43:57,642 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 15:43:57,642 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 15:43:57,642 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:43:57,643 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 15:43:57,644 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 15:43:57,644 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 15:43:57,644 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 15:43:57,645 - gui.py:158 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 15:43:59,848 - gui.py:547 - default_logger - DEBUG - 워터마크 버튼 - 비활성화 선택 +2024-10-23 15:44:00,357 - gui.py:547 - default_logger - DEBUG - 워터마크 버튼 - 활성화 선택 +2024-10-23 15:44:00,964 - gui.py:547 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:44:01,901 - gui.py:547 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:44:02,606 - gui.py:547 - default_logger - DEBUG - 워터마크 버튼 - 비활성화 선택 +2024-10-23 15:44:03,133 - gui.py:547 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 비활성화 선택 +2024-10-23 15:44:03,791 - gui.py:547 - default_logger - DEBUG - 상세 이미지 번역 버튼 - 활성화 선택 +2024-10-23 15:44:04,283 - gui.py:547 - default_logger - DEBUG - 워터마크 버튼 - 활성화 선택 +2024-10-23 15:44:12,105 - gui.py:580 - default_logger - DEBUG - Updated watermark text: 혜리수 +2024-10-23 15:45:04,532 - gui.py:853 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 15:45:10,907 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 15:45:10,907 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 15:45:10,924 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 15:45:10,924 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 15:45:10,924 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 15:45:10,945 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 15:45:10,958 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 15:45:10,958 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:45:10,972 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 15:45:11,192 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:45:11,193 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 15:45:11,195 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 15:45:11,195 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 15:45:11,196 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:45:11,197 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 15:45:11,199 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 15:45:11,199 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 15:45:11,200 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 15:45:11,202 - gui.py:158 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 15:45:16,407 - gui.py:581 - default_logger - DEBUG - Updated watermark text: gP +2024-10-23 15:45:21,923 - gui.py:581 - default_logger - DEBUG - Updated watermark text: 혜리수샵 +2024-10-23 15:45:26,189 - gui.py:581 - default_logger - DEBUG - Updated watermark text: 혜리수샵1 +2024-10-23 15:45:30,458 - gui.py:613 - default_logger - DEBUG - 크롬 실행 버튼 클릭됨 +2024-10-23 15:45:30,458 - gui.py:614 - default_logger - DEBUG - self.browser_controller.page : None +2024-10-23 15:45:30,458 - gui.py:621 - default_logger - DEBUG - optionIMGTrans_status : False, detail_IMGTrans_status : True +2024-10-23 15:45:32,464 - whale_translator.py:57 - default_logger - DEBUG - Whale 브라우저 실행, PID: 22756 +2024-10-23 15:45:32,464 - whale_translator.py:65 - default_logger - DEBUG - Whale 창을 찾았습니다: 789526 +2024-10-23 15:45:32,468 - whale_translator.py:552 - default_logger - DEBUG - 창 위치 및 크기 설정: 위치(1, 1), 크기(1280x720) +2024-10-23 15:45:32,468 - whale_translator.py:161 - default_logger - DEBUG - 웨일 창 크기 및 위치 저장: (1, 1, 1281, 721) +2024-10-23 15:45:36,090 - whale_translator.py:452 - default_logger - DEBUG - 영어로 전환하는데 실패했습니다. +2024-10-23 15:45:37,897 - whale_translator.py:90 - default_logger - DEBUG - URL 입력 완료 +2024-10-23 15:45:37,936 - gui.py:650 - default_logger - DEBUG - 크롬 브라우저를 실행합니다... +2024-10-23 15:45:37,936 - browser_control.py:63 - default_logger - DEBUG - 크롬 브라우저 실행 중... +2024-10-23 15:45:38,433 - browser_control.py:79 - default_logger - DEBUG - 브라우저 경로: H:\py\autoTrans\browsers\chromium-1112\chrome-win\chrome.exe +2024-10-23 15:45:38,434 - browser_control.py:80 - default_logger - DEBUG - 확장 프로그램 경로: H:\py\autoTrans\browsers\extensions\1.1.100_0 +2024-10-23 15:45:38,434 - browser_control.py:81 - default_logger - DEBUG - 사용자 폴더 경로: H:\py\autoTrans\browsers\user_data +2024-10-23 15:45:38,435 - browser_control.py:97 - default_logger - DEBUG - user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:108.0) Gecko/20100101 Firefox/108.0 +2024-10-23 15:45:39,186 - browser_control.py:119 - default_logger - INFO - 새 페이지 로딩 중... +2024-10-23 15:45:42,508 - browser_control.py:122 - default_logger - INFO - percenty.co.kr/signin 로딩 완료 +2024-10-23 15:45:42,524 - browser_control.py:130 - default_logger - DEBUG - 페이지 제목: 퍼센티 - 셀러들을 위한 AI 구매대행 솔루션 +2024-10-23 15:45:42,526 - browser_control.py:137 - default_logger - DEBUG - 크롬 창 핸들: 15076202 +2024-10-23 15:45:42,527 - browser_control.py:143 - default_logger - INFO - 로그인 시도 중: 직원 계정 +2024-10-23 15:45:42,764 - browser_control.py:161 - default_logger - INFO - 로그인 완료: 직원 계정 +2024-10-23 15:45:47,779 - browser_control.py:305 - default_logger - ERROR - 다이얼로그가 발견되지 않았거나 오류 발생: Page.wait_for_selector: Timeout 5000ms exceeded. +Call log: +waiting for locator("div[role=\"dialog\"]") to be visible +Traceback (most recent call last): + File "H:\py\autoTrans\browser_control.py", line 292, in close_ad_if_exists + await self.page.wait_for_selector(self.close_ad_dialog_locator, timeout=5000, state='visible') + File "H:\py\autoTrans\Lib\site-packages\playwright\async_api\_generated.py", line 7999, in wait_for_selector + await self._impl_obj.wait_for_selector( + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_page.py", line 397, in wait_for_selector + return await self._main_frame.wait_for_selector(**locals_to_params(locals())) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_frame.py", line 323, in wait_for_selector + await self._channel.send("waitForSelector", locals_to_params(locals())) + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 59, in send + return await self._connection.wrap_api_call( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 514, in wrap_api_call + raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None +playwright._impl._errors.TimeoutError: Page.wait_for_selector: Timeout 5000ms exceeded. +Call log: +waiting for locator("div[role=\"dialog\"]") to be visible + +2024-10-23 15:45:47,782 - gui.py:674 - default_logger - DEBUG - 신규 상품 등록 페이지로 이동 중... +2024-10-23 15:45:48,159 - browser_control.py:312 - default_logger - INFO - 신규 상품 등록 페이지로 이동 완료. +2024-10-23 15:45:48,161 - option.py:43 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:45:48,162 - title.py:31 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:45:48,163 - price.py:52 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:45:54,319 - gui.py:726 - default_logger - DEBUG - 번역 작업 버튼 클릭됨 +2024-10-23 15:45:54,321 - gui.py:731 - default_logger - DEBUG - 번역 작업을 시작합니다... +2024-10-23 15:45:54,321 - browser_control.py:747 - default_logger - INFO - 페이지 스크롤 시작... +2024-10-23 15:45:54,727 - browser_control.py:757 - default_logger - INFO - 페이지 스크롤 완료. +2024-10-23 15:45:54,732 - browser_control.py:222 - default_logger - INFO - 총 상품수 확인: 총 12개 상품 +2024-10-23 15:45:54,733 - gui.py:755 - default_logger - DEBUG - 현재 페이지: 1 +2024-10-23 15:45:54,737 - browser_control.py:369 - default_logger - INFO - 현재 페이지의 수정할 상품 개수: 12 +2024-10-23 15:45:54,738 - gui.py:773 - default_logger - DEBUG - 1/12 버튼의 활성상태 확인 중... +2024-10-23 15:45:54,746 - gui.py:780 - default_logger - DEBUG - 1/12: 세부사항 수정 작업 중... +2024-10-23 15:45:54,780 - browser_control.py:404 - default_logger - DEBUG - 상품의 '세부사항 수정 및 업로드' 버튼을 화면에 보이도록 스크롤. +2024-10-23 15:45:55,392 - browser_control.py:407 - default_logger - INFO - 세부사항 수정 다이얼로그 열기 완료. +2024-10-23 15:45:56,019 - title.py:91 - default_logger - DEBUG - 원본 상품명을 가져오는 중입니다. +2024-10-23 15:45:56,031 - title.py:94 - default_logger - DEBUG - 원본 상품명: 喷砂机小型高压除锈翻新除油除杂质高速磨砂玻璃刻字去皮立式90升 +2024-10-23 15:45:56,271 - title.py:179 - default_logger - DEBUG - 마켓 : ss - 카테고리 텍스트를 가져오는 중입니다. +2024-10-23 15:45:56,273 - title.py:188 - default_logger - DEBUG - category_locator : div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 +2024-10-23 15:45:56,285 - title.py:192 - default_logger - DEBUG - main_category_element : selector='div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2'> +2024-10-23 15:45:56,293 - title.py:201 - default_logger - DEBUG - category_text_element : selector='div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 >> div.ant-col.css-1li46mu:nth-child(1)'> +2024-10-23 15:45:56,306 - title.py:221 - default_logger - DEBUG - 카테고리 text = 공구설비/자재-작업공구-에어/유압공구-에어스프레이건 +2024-10-23 15:45:56,308 - gui.py:816 - default_logger - DEBUG - 상세페이지 수정 : False + True +2024-10-23 15:45:56,702 - browser_control.py:416 - default_logger - INFO - 상세페이지 탭 클릭 완료. +2024-10-23 15:45:57,009 - browser_control.py:453 - default_logger - DEBUG - 소스 버튼 클릭 완료. +2024-10-23 15:45:57,033 - browser_control.py:281 - default_logger - DEBUG - fetch_image_urls 에서 추출한 이미지URL 갯수 : 1 개 +2024-10-23 15:45:57,034 - browser_control.py:283 - default_logger - DEBUG - fetch_image_urls 에서 추출한 이미지URL 목록 : ['https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/7eabee13-c992-467f-8ee6-bb75664f334f.jpg'] +2024-10-23 15:45:57,035 - browser_control.py:463 - default_logger - INFO - 추출된 이미지 URL 수: 1 +2024-10-23 15:45:57,035 - browser_control.py:466 - default_logger - DEBUG - img 태그를 삭제 중... +2024-10-23 15:45:57,059 - browser_control.py:472 - default_logger - DEBUG - Updated data-value: +2024-10-23 15:45:57,060 - browser_control.py:475 - default_logger - DEBUG - img 태그 삭제 완료. +2024-10-23 15:45:57,158 - browser_control.py:479 - default_logger - DEBUG - 소스 버튼 재 클릭 완료. +2024-10-23 15:45:57,160 - browser_control.py:483 - default_logger - DEBUG - 옵션 데이터 입력 시작 +2024-10-23 15:45:57,161 - browser_control.py:489 - default_logger - DEBUG - 옵션입력 일단 제외 +2024-10-23 15:45:57,162 - browser_control.py:491 - default_logger - DEBUG - 가져온 옵션 데이터 +2024-10-23 15:45:57,162 - browser_control.py:492 - default_logger - DEBUG - {} +2024-10-23 15:45:57,294 - browser_control.py:504 - default_logger - INFO - leading_text_1 텍스트 입력 완료: --- +2024-10-23 15:45:57,847 - browser_control.py:504 - default_logger - INFO - leading_text_2 텍스트 입력 완료: # 안녕하세요 혜리수샵입니다. +2024-10-23 15:45:58,453 - browser_control.py:504 - default_logger - INFO - leading_text_3 텍스트 입력 완료: ### 마켓정책으로 인해 모든 옵션이 노출되지 않을수도 있습니다. +2024-10-23 15:45:58,954 - browser_control.py:504 - default_logger - INFO - leading_text_4 텍스트 입력 완료: ### 반드시 옵션사진과 옵션이름을 확인하시고 구매하시기 바랍니다. +2024-10-23 15:45:59,035 - browser_control.py:504 - default_logger - INFO - leading_text_5 텍스트 입력 완료: --- +2024-10-23 15:45:59,036 - gui.py:874 - default_logger - DEBUG - 현재 상품의 총 이미지 수 : 1개 +2024-10-23 15:45:59,036 - gui.py:886 - default_logger - DEBUG - 웨일 브라우저를 활용한 이미지 번역 프로세스 +2024-10-23 15:45:59,037 - whale_translator.py:270 - default_logger - DEBUG - 웨일 창을 찾았습니다.789526 +2024-10-23 15:45:59,044 - whale_translator.py:276 - default_logger - DEBUG - 이미지 URL 주소 https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/7eabee13-c992-467f-8ee6-bb75664f334f.jpg 입력 +2024-10-23 15:46:02,955 - whale_translator.py:561 - default_logger - DEBUG - 현재 웨일 창의 제목: 7eabee13-c992-467f-8ee6-bb75664f334f.jpg (596×596) - Whale +2024-10-23 15:46:02,956 - whale_translator.py:585 - default_logger - DEBUG - 이미지 해상도: 596×596 +2024-10-23 15:46:02,957 - whale_translator.py:294 - default_logger - DEBUG - 페이지 로딩 완료 후 웨일 창의 가운데로 마우스 커서 이동 +2024-10-23 15:46:02,957 - whale_translator.py:621 - default_logger - DEBUG - 마우스 커서를 추가로 50px 내림 +2024-10-23 15:46:03,059 - whale_translator.py:625 - default_logger - DEBUG - 마우스 커서를 창 중앙으로 이동: (641, 411) +2024-10-23 15:46:04,060 - whale_translator.py:303 - default_logger - DEBUG - 번역 작업을 위한 마우스 오른쪽 클릭 및 R 전송 +2024-10-23 15:46:04,062 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:46:05,279 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'r' 전송 준비. +2024-10-23 15:46:05,280 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'r' 전송 +2024-10-23 15:46:11,883 - whale_translator.py:325 - default_logger - DEBUG - 이미지 복사를 위한 마우스 오른쪽 클릭 및 C 전송 +2024-10-23 15:46:11,883 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:46:13,088 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'c' 전송 준비. +2024-10-23 15:46:13,088 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'c' 전송 +2024-10-23 15:46:13,692 - whale_translator.py:330 - default_logger - DEBUG - 클립보드에 번역된이미지 복사 대기 1s +2024-10-23 15:46:14,694 - whale_translator.py:333 - default_logger - DEBUG - 클립보드에 이미지 데이터가 존재하는지 확인 중..... +2024-10-23 15:46:14,695 - whale_translator.py:132 - default_logger - DEBUG - 클립보드에 이미지 데이터가 없습니다. +2024-10-23 15:46:14,696 - whale_translator.py:339 - default_logger - ERROR - 번역 실패: 클립보드에 이미지 데이터가 없음 +2024-10-23 15:46:14,696 - whale_translator.py:342 - default_logger - INFO - 번역 프로세스 완료. 웨일 기본페이지로 돌아감 +2024-10-23 15:46:14,799 - browser_control.py:543 - default_logger - DEBUG - 크롬으로 포커스를 옮기고 클립보드의 이미지를 붙여넣고 엔터 입력 +2024-10-23 15:46:14,801 - browser_control.py:619 - default_logger - DEBUG - 크롬 창으로 포커스 이동. +2024-10-23 15:46:14,803 - clipboardImageManager.py:205 - default_logger - DEBUG - is_watermark : True +2024-10-23 15:46:14,803 - clipboardImageManager.py:208 - default_logger - DEBUG - watermark_text : 혜리수샵1 +2024-10-23 15:46:14,804 - clipboardImageManager.py:33 - default_logger - DEBUG - 클립보드의 텍스트 또는 이미지 데이터를 가져옵니다 +2024-10-23 15:46:14,807 - clipboardImageManager.py:212 - default_logger - DEBUG - clipboard_data +2024-10-23 15:46:14,809 - clipboardImageManager.py:213 - default_logger - DEBUG - https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/7eabee13-c992-467f-8ee6-bb75664f334f.jpg +2024-10-23 15:46:14,810 - clipboardImageManager.py:214 - default_logger - DEBUG - ============================ +2024-10-23 15:46:14,811 - clipboardImageManager.py:169 - default_logger - DEBUG - 이미지 URL 다운로드 중: https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/7eabee13-c992-467f-8ee6-bb75664f334f.jpg +2024-10-23 15:46:14,872 - clipboardImageManager.py:284 - default_logger - DEBUG - 원본 이미지 다운로드 성공! +2024-10-23 15:46:14,874 - clipboardImageManager.py:288 - default_logger - DEBUG - 워터마크 추가 중... +2024-10-23 15:46:14,942 - clipboardImageManager.py:58 - default_logger - DEBUG - 이미지 데이터 BMP 변환 +2024-10-23 15:46:14,944 - clipboardImageManager.py:62 - default_logger - DEBUG - 이미지 BMP 헤더 제거 +2024-10-23 15:46:15,046 - clipboardImageManager.py:74 - default_logger - DEBUG - 클립보드 데이터 저장 성공 +2024-10-23 15:46:15,046 - clipboardImageManager.py:308 - default_logger - DEBUG - 클립보드에 이미지가 존재합니다. +2024-10-23 15:46:15,149 - browser_control.py:550 - default_logger - INFO - 이미지 붙여넣기 완료. +2024-10-23 15:46:15,251 - browser_control.py:552 - default_logger - DEBUG - 이미지 붙여넣기 완료. +2024-10-23 15:46:15,251 - clipboardImageManager.py:336 - default_logger - DEBUG - 클립보드가 비워졌습니다. +2024-10-23 15:46:15,253 - browser_control.py:554 - default_logger - INFO - 이미지 붙여넣기 완료로 클립보드 비우기. +2024-10-23 15:46:15,254 - gui.py:891 - default_logger - DEBUG - https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/7eabee13-c992-467f-8ee6-bb75664f334f.jpg gui 이미지 붙여넣기 성공 +2024-10-23 15:46:15,254 - gui.py:895 - default_logger - DEBUG - Progress Update +2024-10-23 15:46:15,255 - gui.py:901 - default_logger - DEBUG - 상품 세부사항 저장 중... +2024-10-23 15:46:15,454 - browser_control.py:576 - default_logger - INFO - 상품 수정 내용 저장 완료. +2024-10-23 15:46:15,455 - gui.py:824 - default_logger - DEBUG - 상품 세부사항 저장 중... +2024-10-23 15:46:15,879 - browser_control.py:568 - default_logger - INFO - 상품 수정 내용 저장 및 ECS 완료. +2024-10-23 15:46:15,882 - gui.py:829 - default_logger - DEBUG - 1/[12]개 상품 수정 완료. +2024-10-23 15:46:15,883 - gui.py:773 - default_logger - DEBUG - 2/12 버튼의 활성상태 확인 중... +2024-10-23 15:46:15,904 - gui.py:780 - default_logger - DEBUG - 2/12: 세부사항 수정 작업 중... +2024-10-23 15:46:16,217 - browser_control.py:404 - default_logger - DEBUG - 상품의 '세부사항 수정 및 업로드' 버튼을 화면에 보이도록 스크롤. +2024-10-23 15:46:17,197 - gui.py:854 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 15:46:17,211 - browser_control.py:410 - default_logger - ERROR - 세부사항 수정 다이얼로그 열기 중 오류: Locator.click: Target page, context or browser has been closed +Call log: +waiting for locator("//button[span[text()=\"세부사항 수정 및 업로드\"]]").nth(1) + - locator resolved to + - attempting click action + - waiting for element to be visible, enabled and stable + - element is not stable + - retrying click action, attempt #1 + - waiting for element to be visible, enabled and stable + - element is not stable + - retrying click action, attempt #2 + - waiting 20ms + - waiting for element to be visible, enabled and stable + - element is not stable + - retrying click action, attempt #3 + - waiting 100ms + - waiting for element to be visible, enabled and stable + - element is not stable + - retrying click action, attempt #4 + - waiting 100ms + - waiting for element to be visible, enabled and stable + - element is visible, enabled and stable + - scrolling into view if needed + - done scrolling + -
from
subtree intercepts pointer events + - retrying click action, attempt #5 + - waiting 500ms + - waiting for element to be visible, enabled and stable + - element is visible, enabled and stable + - scrolling into view if needed + - done scrolling + -
intercepts pointer events + - retrying click action, attempt #6 + - waiting 500ms +Traceback (most recent call last): + File "H:\py\autoTrans\browser_control.py", line 406, in open_product_edit_dialog + await button.click() + File "H:\py\autoTrans\Lib\site-packages\playwright\async_api\_generated.py", line 15059, in click + await self._impl_obj.click( + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_locator.py", line 156, in click + return await self._frame.click(self._selector, strict=True, **params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_frame.py", line 488, in click + await self._channel.send("click", locals_to_params(locals())) + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 59, in send + return await self._connection.wrap_api_call( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 514, in wrap_api_call + raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None +playwright._impl._errors.TargetClosedError: Locator.click: Target page, context or browser has been closed +Call log: +waiting for locator("//button[span[text()=\"세부사항 수정 및 업로드\"]]").nth(1) + - locator resolved to + - attempting click action + - waiting for element to be visible, enabled and stable + - element is not stable + - retrying click action, attempt #1 + - waiting for element to be visible, enabled and stable + - element is not stable + - retrying click action, attempt #2 + - waiting 20ms + - waiting for element to be visible, enabled and stable + - element is not stable + - retrying click action, attempt #3 + - waiting 100ms + - waiting for element to be visible, enabled and stable + - element is not stable + - retrying click action, attempt #4 + - waiting 100ms + - waiting for element to be visible, enabled and stable + - element is visible, enabled and stable + - scrolling into view if needed + - done scrolling + -
from
subtree intercepts pointer events + - retrying click action, attempt #5 + - waiting 500ms + - waiting for element to be visible, enabled and stable + - element is visible, enabled and stable + - scrolling into view if needed + - done scrolling + -
intercepts pointer events + - retrying click action, attempt #6 + - waiting 500ms + +2024-10-23 15:46:17,217 - title.py:91 - default_logger - DEBUG - 원본 상품명을 가져오는 중입니다. +2024-10-23 15:46:17,379 - title.py:97 - default_logger - ERROR - 원본 상품명 가져오기 중 오류 발생: Page.query_selector: Target page, context or browser has been closed +Traceback (most recent call last): + File "H:\py\autoTrans\title.py", line 92, in get_original_product_name + original_name_element = await self.page.query_selector(self.original_product_name_locator) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\async_api\_generated.py", line 7905, in query_selector + await self._impl_obj.query_selector(selector=selector, strict=strict) + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_page.py", line 385, in query_selector + return await self._main_frame.query_selector(selector, strict) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_frame.py", line 304, in query_selector + await self._channel.send("querySelector", locals_to_params(locals())) + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 59, in send + return await self._connection.wrap_api_call( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 514, in wrap_api_call + raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None +playwright._impl._errors.TargetClosedError: Page.query_selector: Target page, context or browser has been closed +2024-10-23 15:46:17,379 - title.py:179 - default_logger - DEBUG - 마켓 : ss - 카테고리 텍스트를 가져오는 중입니다. +2024-10-23 15:46:17,389 - title.py:188 - default_logger - DEBUG - category_locator : div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 +2024-10-23 15:46:17,394 - title.py:230 - default_logger - ERROR - 카테고리 텍스트 가져오기 중 오류 발생: Page.wait_for_selector: Target page, context or browser has been closed +Traceback (most recent call last): + File "H:\py\autoTrans\title.py", line 190, in get_category + await self.page.wait_for_selector(category_locator, timeout=5000, state="attached") # 요소가 나타날 때까지 대기 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\async_api\_generated.py", line 7999, in wait_for_selector + await self._impl_obj.wait_for_selector( + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_page.py", line 397, in wait_for_selector + return await self._main_frame.wait_for_selector(**locals_to_params(locals())) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_frame.py", line 323, in wait_for_selector + await self._channel.send("waitForSelector", locals_to_params(locals())) + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 59, in send + return await self._connection.wrap_api_call( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 514, in wrap_api_call + raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None +playwright._impl._errors.TargetClosedError: Page.wait_for_selector: Target page, context or browser has been closed +2024-10-23 15:46:17,395 - gui.py:816 - default_logger - DEBUG - 상세페이지 수정 : False + True +2024-10-23 15:46:17,403 - browser_control.py:418 - default_logger - ERROR - 상세페이지 탭 클릭 중 오류: Page.click: Target page, context or browser has been closed +Traceback (most recent call last): + File "H:\py\autoTrans\browser_control.py", line 415, in click_detail_tab + await self.page.click(self.detail_tab_locator) + File "H:\py\autoTrans\Lib\site-packages\playwright\async_api\_generated.py", line 9625, in click + await self._impl_obj.click( + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_page.py", line 777, in click + return await self._main_frame.click(**locals_to_params(locals())) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_frame.py", line 488, in click + await self._channel.send("click", locals_to_params(locals())) + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 59, in send + return await self._connection.wrap_api_call( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 514, in wrap_api_call + raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None +playwright._impl._errors.TargetClosedError: Page.click: Target page, context or browser has been closed +2024-10-23 15:46:17,410 - browser_control.py:538 - default_logger - ERROR - 이미지 URL 추출 & 옵션데이터 입력 처리 중 오류: Page.click: Connection closed while reading from the driver +Traceback (most recent call last): + File "H:\py\autoTrans\browser_control.py", line 452, in extract_image_urls + await self.page.click(source_button_locator) + File "H:\py\autoTrans\Lib\site-packages\playwright\async_api\_generated.py", line 9625, in click + await self._impl_obj.click( + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_page.py", line 777, in click + return await self._main_frame.click(**locals_to_params(locals())) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_frame.py", line 488, in click + await self._channel.send("click", locals_to_params(locals())) + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 59, in send + return await self._connection.wrap_api_call( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 514, in wrap_api_call + raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None +Exception: Page.click: Connection closed while reading from the driver +2024-10-23 15:46:17,413 - gui.py:846 - default_logger - DEBUG - 번역 작업 중 오류 발생: cannot access local variable 'image_urls' where it is not associated with a value +Traceback (most recent call last): + File "H:\py\autoTrans\browser_control.py", line 452, in extract_image_urls + await self.page.click(source_button_locator) + File "H:\py\autoTrans\Lib\site-packages\playwright\async_api\_generated.py", line 9625, in click + await self._impl_obj.click( + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_page.py", line 777, in click + return await self._main_frame.click(**locals_to_params(locals())) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_frame.py", line 488, in click + await self._channel.send("click", locals_to_params(locals())) + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 59, in send + return await self._connection.wrap_api_call( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 514, in wrap_api_call + raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None +Exception: Page.click: Connection closed while reading from the driver + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "H:\py\autoTrans\gui.py", line 820, in start_translation + await self.detail_trans() + File "H:\py\autoTrans\gui.py", line 872, in detail_trans + image_urls = await self.browser_controller.extract_image_urls(self.optionHandler, is_option_data=True) # 코루틴 실행 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\browser_control.py", line 539, in extract_image_urls + return image_urls if image_urls else [] + ^^^^^^^^^^ +UnboundLocalError: cannot access local variable 'image_urls' where it is not associated with a value +2024-10-23 15:48:57,004 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 15:48:57,004 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 15:48:57,012 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 15:48:57,012 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 15:48:57,012 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 15:48:57,028 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 15:48:57,037 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 15:48:57,037 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:48:57,047 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 15:48:57,145 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:48:57,145 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 15:48:57,145 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 15:48:57,145 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 15:48:57,145 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:48:57,153 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 15:48:57,153 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 15:48:57,153 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 15:48:57,153 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 15:48:57,153 - gui.py:159 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 15:51:30,206 - gui.py:855 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 15:51:34,748 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 15:51:34,748 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 15:51:34,759 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 15:51:34,759 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 15:51:34,759 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 15:51:34,773 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 15:51:34,776 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 15:51:34,776 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:51:34,790 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 15:51:34,889 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:51:34,889 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 15:51:34,889 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 15:51:34,889 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 15:51:34,889 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:51:34,893 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 15:51:34,893 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 15:51:34,893 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 15:51:34,893 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 15:51:34,896 - gui.py:159 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 15:51:37,513 - gui.py:582 - default_logger - DEBUG - Updated watermark text: 213234 +2024-10-23 15:51:39,324 - gui.py:858 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 15:51:44,016 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 15:51:44,016 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 15:51:44,026 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 15:51:44,026 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 15:51:44,026 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 15:51:44,039 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 15:51:44,046 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 15:51:44,046 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:51:44,059 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 15:51:44,193 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:51:44,197 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 15:51:44,197 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 15:51:44,198 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 15:51:44,198 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:51:44,198 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 15:51:44,198 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 15:51:44,198 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 15:51:44,198 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 15:51:44,202 - gui.py:159 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 15:51:51,656 - gui.py:582 - default_logger - DEBUG - Updated watermark text: 혜리수샵 +2024-10-23 15:51:56,762 - gui.py:614 - default_logger - DEBUG - 크롬 실행 버튼 클릭됨 +2024-10-23 15:51:56,762 - gui.py:615 - default_logger - DEBUG - self.browser_controller.page : None +2024-10-23 15:51:56,762 - gui.py:622 - default_logger - DEBUG - optionIMGTrans_status : False, detail_IMGTrans_status : True +2024-10-23 15:51:58,768 - whale_translator.py:57 - default_logger - DEBUG - Whale 브라우저 실행, PID: 4876 +2024-10-23 15:51:58,768 - whale_translator.py:65 - default_logger - DEBUG - Whale 창을 찾았습니다: 8129426 +2024-10-23 15:51:58,776 - whale_translator.py:552 - default_logger - DEBUG - 창 위치 및 크기 설정: 위치(1, 1), 크기(1280x720) +2024-10-23 15:51:58,777 - whale_translator.py:161 - default_logger - DEBUG - 웨일 창 크기 및 위치 저장: (1, 1, 1281, 721) +2024-10-23 15:52:02,397 - whale_translator.py:452 - default_logger - DEBUG - 영어로 전환하는데 실패했습니다. +2024-10-23 15:52:04,205 - whale_translator.py:90 - default_logger - DEBUG - URL 입력 완료 +2024-10-23 15:52:04,207 - gui.py:651 - default_logger - DEBUG - 크롬 브라우저를 실행합니다... +2024-10-23 15:52:04,208 - browser_control.py:63 - default_logger - DEBUG - 크롬 브라우저 실행 중... +2024-10-23 15:52:04,773 - browser_control.py:79 - default_logger - DEBUG - 브라우저 경로: H:\py\autoTrans\browsers\chromium-1112\chrome-win\chrome.exe +2024-10-23 15:52:04,774 - browser_control.py:80 - default_logger - DEBUG - 확장 프로그램 경로: H:\py\autoTrans\browsers\extensions\1.1.100_0 +2024-10-23 15:52:04,775 - browser_control.py:81 - default_logger - DEBUG - 사용자 폴더 경로: H:\py\autoTrans\browsers\user_data +2024-10-23 15:52:04,776 - browser_control.py:97 - default_logger - DEBUG - user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 12_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Safari/605.1.15 +2024-10-23 15:52:05,418 - browser_control.py:119 - default_logger - INFO - 새 페이지 로딩 중... +2024-10-23 15:52:07,960 - browser_control.py:122 - default_logger - INFO - percenty.co.kr/signin 로딩 완료 +2024-10-23 15:52:07,978 - browser_control.py:130 - default_logger - DEBUG - 페이지 제목: 퍼센티 - 셀러들을 위한 AI 구매대행 솔루션 +2024-10-23 15:52:07,980 - browser_control.py:137 - default_logger - DEBUG - 크롬 창 핸들: 1248306 +2024-10-23 15:52:07,980 - browser_control.py:143 - default_logger - INFO - 로그인 시도 중: 직원 계정 +2024-10-23 15:52:08,212 - browser_control.py:161 - default_logger - INFO - 로그인 완료: 직원 계정 +2024-10-23 15:52:13,219 - browser_control.py:305 - default_logger - ERROR - 다이얼로그가 발견되지 않았거나 오류 발생: Page.wait_for_selector: Timeout 5000ms exceeded. +Call log: +waiting for locator("div[role=\"dialog\"]") to be visible +Traceback (most recent call last): + File "H:\py\autoTrans\browser_control.py", line 292, in close_ad_if_exists + await self.page.wait_for_selector(self.close_ad_dialog_locator, timeout=5000, state='visible') + File "H:\py\autoTrans\Lib\site-packages\playwright\async_api\_generated.py", line 7999, in wait_for_selector + await self._impl_obj.wait_for_selector( + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_page.py", line 397, in wait_for_selector + return await self._main_frame.wait_for_selector(**locals_to_params(locals())) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_frame.py", line 323, in wait_for_selector + await self._channel.send("waitForSelector", locals_to_params(locals())) + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 59, in send + return await self._connection.wrap_api_call( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 514, in wrap_api_call + raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None +playwright._impl._errors.TimeoutError: Page.wait_for_selector: Timeout 5000ms exceeded. +Call log: +waiting for locator("div[role=\"dialog\"]") to be visible + +2024-10-23 15:52:13,222 - gui.py:675 - default_logger - DEBUG - 신규 상품 등록 페이지로 이동 중... +2024-10-23 15:52:13,554 - browser_control.py:312 - default_logger - INFO - 신규 상품 등록 페이지로 이동 완료. +2024-10-23 15:52:13,555 - option.py:43 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:52:13,556 - title.py:31 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:52:13,557 - price.py:52 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:52:30,388 - gui.py:730 - default_logger - DEBUG - 번역 작업 버튼 클릭됨 +2024-10-23 15:52:30,389 - gui.py:735 - default_logger - DEBUG - 번역 작업을 시작합니다... +2024-10-23 15:52:30,389 - browser_control.py:747 - default_logger - INFO - 페이지 스크롤 시작... +2024-10-23 15:52:31,445 - browser_control.py:757 - default_logger - INFO - 페이지 스크롤 완료. +2024-10-23 15:52:31,451 - browser_control.py:222 - default_logger - INFO - 총 상품수 확인: 총 79개 상품 +2024-10-23 15:52:31,452 - gui.py:759 - default_logger - DEBUG - 현재 페이지: 1 +2024-10-23 15:52:31,458 - browser_control.py:369 - default_logger - INFO - 현재 페이지의 수정할 상품 개수: 20 +2024-10-23 15:52:31,459 - gui.py:777 - default_logger - DEBUG - 1/20 버튼의 활성상태 확인 중... +2024-10-23 15:52:31,465 - gui.py:784 - default_logger - DEBUG - 1/20: 세부사항 수정 작업 중... +2024-10-23 15:52:31,495 - browser_control.py:404 - default_logger - DEBUG - 상품의 '세부사항 수정 및 업로드' 버튼을 화면에 보이도록 스크롤. +2024-10-23 15:52:32,196 - browser_control.py:407 - default_logger - INFO - 세부사항 수정 다이얼로그 열기 완료. +2024-10-23 15:52:32,822 - title.py:91 - default_logger - DEBUG - 원본 상품명을 가져오는 중입니다. +2024-10-23 15:52:32,836 - title.py:94 - default_logger - DEBUG - 원본 상품명: 凉亭户外庭院遮阳棚农家乐帐篷茅草棚民宿仿真稻草休闲室外遮雨棚 +2024-10-23 15:52:33,082 - title.py:179 - default_logger - DEBUG - 마켓 : ss - 카테고리 텍스트를 가져오는 중입니다. +2024-10-23 15:52:33,084 - title.py:188 - default_logger - DEBUG - category_locator : div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 +2024-10-23 15:52:33,099 - title.py:192 - default_logger - DEBUG - main_category_element : selector='div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2'> +2024-10-23 15:52:33,106 - title.py:201 - default_logger - DEBUG - category_text_element : selector='div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 >> div.ant-col.css-1li46mu:nth-child(1)'> +2024-10-23 15:52:33,121 - title.py:221 - default_logger - DEBUG - 카테고리 text = 홈인테리어/가구-가구-야외가구-원두막/정자 +2024-10-23 15:52:33,123 - gui.py:820 - default_logger - DEBUG - 상세페이지 수정 : False + True +2024-10-23 15:52:33,591 - gui.py:858 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 15:52:33,603 - browser_control.py:416 - default_logger - INFO - 상세페이지 탭 클릭 완료. +2024-10-23 15:52:38,658 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 15:52:38,658 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 15:52:38,668 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 15:52:38,668 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 15:52:38,668 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 15:52:38,684 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 15:52:38,692 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 15:52:38,693 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:52:38,702 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 15:52:38,806 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:52:38,807 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 15:52:38,807 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 15:52:38,808 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 15:52:38,808 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:52:38,808 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 15:52:38,808 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 15:52:38,808 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 15:52:38,808 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 15:52:38,811 - gui.py:159 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 15:52:47,900 - gui.py:614 - default_logger - DEBUG - 크롬 실행 버튼 클릭됨 +2024-10-23 15:52:47,900 - gui.py:615 - default_logger - DEBUG - self.browser_controller.page : None +2024-10-23 15:52:47,900 - gui.py:622 - default_logger - DEBUG - optionIMGTrans_status : False, detail_IMGTrans_status : True +2024-10-23 15:52:49,908 - whale_translator.py:57 - default_logger - DEBUG - Whale 브라우저 실행, PID: 13964 +2024-10-23 15:52:49,908 - whale_translator.py:65 - default_logger - DEBUG - Whale 창을 찾았습니다: 4918242 +2024-10-23 15:52:49,908 - whale_translator.py:552 - default_logger - DEBUG - 창 위치 및 크기 설정: 위치(1, 1), 크기(1280x720) +2024-10-23 15:52:49,908 - whale_translator.py:161 - default_logger - DEBUG - 웨일 창 크기 및 위치 저장: (1, 1, 1281, 721) +2024-10-23 15:52:53,530 - whale_translator.py:452 - default_logger - DEBUG - 영어로 전환하는데 실패했습니다. +2024-10-23 15:52:55,334 - whale_translator.py:90 - default_logger - DEBUG - URL 입력 완료 +2024-10-23 15:52:55,403 - gui.py:651 - default_logger - DEBUG - 크롬 브라우저를 실행합니다... +2024-10-23 15:52:55,404 - browser_control.py:63 - default_logger - DEBUG - 크롬 브라우저 실행 중... +2024-10-23 15:52:55,821 - browser_control.py:79 - default_logger - DEBUG - 브라우저 경로: H:\py\autoTrans\browsers\chromium-1112\chrome-win\chrome.exe +2024-10-23 15:52:55,822 - browser_control.py:80 - default_logger - DEBUG - 확장 프로그램 경로: H:\py\autoTrans\browsers\extensions\1.1.100_0 +2024-10-23 15:52:55,823 - browser_control.py:81 - default_logger - DEBUG - 사용자 폴더 경로: H:\py\autoTrans\browsers\user_data +2024-10-23 15:52:55,823 - browser_control.py:97 - default_logger - DEBUG - user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:108.0) Gecko/20100101 Firefox/108.0 +2024-10-23 15:52:56,369 - browser_control.py:119 - default_logger - INFO - 새 페이지 로딩 중... +2024-10-23 15:52:58,680 - browser_control.py:122 - default_logger - INFO - percenty.co.kr/signin 로딩 완료 +2024-10-23 15:52:58,697 - browser_control.py:130 - default_logger - DEBUG - 페이지 제목: 퍼센티 - 셀러들을 위한 AI 구매대행 솔루션 +2024-10-23 15:52:58,699 - browser_control.py:137 - default_logger - DEBUG - 크롬 창 핸들: 12716984 +2024-10-23 15:52:58,699 - browser_control.py:143 - default_logger - INFO - 로그인 시도 중: 직원 계정 +2024-10-23 15:52:58,924 - browser_control.py:161 - default_logger - INFO - 로그인 완료: 직원 계정 +2024-10-23 15:53:03,936 - browser_control.py:305 - default_logger - ERROR - 다이얼로그가 발견되지 않았거나 오류 발생: Page.wait_for_selector: Timeout 5000ms exceeded. +Call log: +waiting for locator("div[role=\"dialog\"]") to be visible +Traceback (most recent call last): + File "H:\py\autoTrans\browser_control.py", line 292, in close_ad_if_exists + await self.page.wait_for_selector(self.close_ad_dialog_locator, timeout=5000, state='visible') + File "H:\py\autoTrans\Lib\site-packages\playwright\async_api\_generated.py", line 7999, in wait_for_selector + await self._impl_obj.wait_for_selector( + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_page.py", line 397, in wait_for_selector + return await self._main_frame.wait_for_selector(**locals_to_params(locals())) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_frame.py", line 323, in wait_for_selector + await self._channel.send("waitForSelector", locals_to_params(locals())) + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 59, in send + return await self._connection.wrap_api_call( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 514, in wrap_api_call + raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None +playwright._impl._errors.TimeoutError: Page.wait_for_selector: Timeout 5000ms exceeded. +Call log: +waiting for locator("div[role=\"dialog\"]") to be visible + +2024-10-23 15:53:03,938 - gui.py:675 - default_logger - DEBUG - 신규 상품 등록 페이지로 이동 중... +2024-10-23 15:53:04,307 - browser_control.py:312 - default_logger - INFO - 신규 상품 등록 페이지로 이동 완료. +2024-10-23 15:53:04,309 - option.py:43 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:53:04,309 - title.py:31 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:53:04,310 - price.py:52 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:53:09,719 - gui.py:730 - default_logger - DEBUG - 번역 작업 버튼 클릭됨 +2024-10-23 15:53:09,720 - gui.py:735 - default_logger - DEBUG - 번역 작업을 시작합니다... +2024-10-23 15:53:09,720 - browser_control.py:747 - default_logger - INFO - 페이지 스크롤 시작... +2024-10-23 15:53:10,113 - browser_control.py:757 - default_logger - INFO - 페이지 스크롤 완료. +2024-10-23 15:53:10,117 - browser_control.py:222 - default_logger - INFO - 총 상품수 확인: 총 12개 상품 +2024-10-23 15:53:10,117 - gui.py:759 - default_logger - DEBUG - 현재 페이지: 1 +2024-10-23 15:53:10,123 - browser_control.py:369 - default_logger - INFO - 현재 페이지의 수정할 상품 개수: 12 +2024-10-23 15:53:10,124 - gui.py:777 - default_logger - DEBUG - 1/12 버튼의 활성상태 확인 중... +2024-10-23 15:53:10,129 - gui.py:784 - default_logger - DEBUG - 1/12: 세부사항 수정 작업 중... +2024-10-23 15:53:10,164 - browser_control.py:404 - default_logger - DEBUG - 상품의 '세부사항 수정 및 업로드' 버튼을 화면에 보이도록 스크롤. +2024-10-23 15:53:10,741 - browser_control.py:407 - default_logger - INFO - 세부사항 수정 다이얼로그 열기 완료. +2024-10-23 15:53:11,393 - title.py:91 - default_logger - DEBUG - 원본 상품명을 가져오는 중입니다. +2024-10-23 15:53:11,407 - title.py:94 - default_logger - DEBUG - 원본 상품명: 喷砂机小型高压除锈翻新除油除杂质高速磨砂玻璃刻字去皮立式90升 +2024-10-23 15:53:11,695 - title.py:179 - default_logger - DEBUG - 마켓 : ss - 카테고리 텍스트를 가져오는 중입니다. +2024-10-23 15:53:11,696 - title.py:188 - default_logger - DEBUG - category_locator : div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 +2024-10-23 15:53:11,707 - title.py:192 - default_logger - DEBUG - main_category_element : selector='div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2'> +2024-10-23 15:53:11,714 - title.py:201 - default_logger - DEBUG - category_text_element : selector='div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 >> div.ant-col.css-1li46mu:nth-child(1)'> +2024-10-23 15:53:11,727 - title.py:221 - default_logger - DEBUG - 카테고리 text = 공구설비/자재-작업공구-에어/유압공구-에어스프레이건 +2024-10-23 15:53:11,729 - gui.py:820 - default_logger - DEBUG - 상세페이지 수정 : False + True +2024-10-23 15:53:12,137 - browser_control.py:416 - default_logger - INFO - 상세페이지 탭 클릭 완료. +2024-10-23 15:53:12,509 - browser_control.py:453 - default_logger - DEBUG - 소스 버튼 클릭 완료. +2024-10-23 15:53:12,535 - browser_control.py:281 - default_logger - DEBUG - fetch_image_urls 에서 추출한 이미지URL 갯수 : 1 개 +2024-10-23 15:53:12,536 - browser_control.py:283 - default_logger - DEBUG - fetch_image_urls 에서 추출한 이미지URL 목록 : ['https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/5341a531-1665-46b3-a0e0-fa1cf9b80123.jpg'] +2024-10-23 15:53:12,537 - browser_control.py:463 - default_logger - INFO - 추출된 이미지 URL 수: 1 +2024-10-23 15:53:12,539 - browser_control.py:466 - default_logger - DEBUG - img 태그를 삭제 중... +2024-10-23 15:53:12,569 - browser_control.py:472 - default_logger - DEBUG - Updated data-value: +2024-10-23 15:53:12,570 - browser_control.py:475 - default_logger - DEBUG - img 태그 삭제 완료. +2024-10-23 15:53:12,672 - browser_control.py:479 - default_logger - DEBUG - 소스 버튼 재 클릭 완료. +2024-10-23 15:53:12,673 - browser_control.py:483 - default_logger - DEBUG - 옵션 데이터 입력 시작 +2024-10-23 15:53:12,674 - browser_control.py:489 - default_logger - DEBUG - 옵션입력 일단 제외 +2024-10-23 15:53:12,674 - browser_control.py:491 - default_logger - DEBUG - 가져온 옵션 데이터 +2024-10-23 15:53:12,675 - browser_control.py:492 - default_logger - DEBUG - {} +2024-10-23 15:53:12,821 - browser_control.py:504 - default_logger - INFO - leading_text_1 텍스트 입력 완료: --- +2024-10-23 15:53:13,364 - browser_control.py:504 - default_logger - INFO - leading_text_2 텍스트 입력 완료: # 안녕하세요 혜리수샵입니다. +2024-10-23 15:53:13,886 - browser_control.py:504 - default_logger - INFO - leading_text_3 텍스트 입력 완료: ### 마켓정책으로 인해 모든 옵션이 노출되지 않을수도 있습니다. +2024-10-23 15:53:14,391 - browser_control.py:504 - default_logger - INFO - leading_text_4 텍스트 입력 완료: ### 반드시 옵션사진과 옵션이름을 확인하시고 구매하시기 바랍니다. +2024-10-23 15:53:14,464 - browser_control.py:504 - default_logger - INFO - leading_text_5 텍스트 입력 완료: --- +2024-10-23 15:53:14,465 - gui.py:878 - default_logger - DEBUG - 현재 상품의 총 이미지 수 : 1개 +2024-10-23 15:53:14,465 - gui.py:890 - default_logger - DEBUG - 웨일 브라우저를 활용한 이미지 번역 프로세스 +2024-10-23 15:53:14,466 - whale_translator.py:270 - default_logger - DEBUG - 웨일 창을 찾았습니다.4918242 +2024-10-23 15:53:14,471 - whale_translator.py:276 - default_logger - DEBUG - 이미지 URL 주소 https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/5341a531-1665-46b3-a0e0-fa1cf9b80123.jpg 입력 +2024-10-23 15:53:18,384 - whale_translator.py:561 - default_logger - DEBUG - 현재 웨일 창의 제목: 5341a531-1665-46b3-a0e0-fa1cf9b80123.jpg (596×596) - Whale +2024-10-23 15:53:18,385 - whale_translator.py:585 - default_logger - DEBUG - 이미지 해상도: 596×596 +2024-10-23 15:53:18,386 - whale_translator.py:294 - default_logger - DEBUG - 페이지 로딩 완료 후 웨일 창의 가운데로 마우스 커서 이동 +2024-10-23 15:53:18,386 - whale_translator.py:621 - default_logger - DEBUG - 마우스 커서를 추가로 50px 내림 +2024-10-23 15:53:18,489 - whale_translator.py:625 - default_logger - DEBUG - 마우스 커서를 창 중앙으로 이동: (641, 411) +2024-10-23 15:53:19,490 - whale_translator.py:303 - default_logger - DEBUG - 번역 작업을 위한 마우스 오른쪽 클릭 및 R 전송 +2024-10-23 15:53:19,492 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:53:20,695 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'r' 전송 준비. +2024-10-23 15:53:20,696 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'r' 전송 +2024-10-23 15:53:27,298 - whale_translator.py:325 - default_logger - DEBUG - 이미지 복사를 위한 마우스 오른쪽 클릭 및 C 전송 +2024-10-23 15:53:27,299 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:53:28,503 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'c' 전송 준비. +2024-10-23 15:53:28,504 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'c' 전송 +2024-10-23 15:53:29,106 - whale_translator.py:330 - default_logger - DEBUG - 클립보드에 번역된이미지 복사 대기 1s +2024-10-23 15:53:30,108 - whale_translator.py:333 - default_logger - DEBUG - 클립보드에 이미지 데이터가 존재하는지 확인 중..... +2024-10-23 15:53:30,113 - whale_translator.py:129 - default_logger - DEBUG - 클립보드에 이미지 데이터가 확인되었습니다. +2024-10-23 15:53:30,114 - whale_translator.py:336 - default_logger - INFO - 번역 성공: https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66f37de373994c46d385c3fe/5341a531-1665-46b3-a0e0-fa1cf9b80123.jpg +2024-10-23 15:53:30,115 - whale_translator.py:342 - default_logger - INFO - 번역 프로세스 완료. 웨일 기본페이지로 돌아감 +2024-10-23 15:53:30,217 - gui.py:850 - default_logger - DEBUG - 번역 작업 중 오류 발생: name 'opacity_percent' is not defined +Traceback (most recent call last): + File "H:\py\autoTrans\gui.py", line 824, in start_translation + await self.detail_trans() + File "H:\py\autoTrans\gui.py", line 893, in detail_trans + is_paste_success = self.browser_controller.paste_image_in_chrome(self.clipboardImageManager, url, is_success_translated, self.toggle_states, opacity_percent=opacity_percent) + ^^^^^^^^^^^^^^^ +NameError: name 'opacity_percent' is not defined +2024-10-23 15:54:36,379 - gui.py:858 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 15:54:41,076 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 15:54:41,076 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 15:54:41,086 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 15:54:41,086 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 15:54:41,089 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 15:54:41,105 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 15:54:41,113 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 15:54:41,114 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:54:41,122 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 15:54:41,234 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:54:41,234 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 15:54:41,234 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 15:54:41,234 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 15:54:41,234 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:54:41,239 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 15:54:41,239 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 15:54:41,239 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 15:54:41,239 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 15:54:41,242 - gui.py:159 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 15:54:43,791 - gui.py:582 - default_logger - DEBUG - Updated watermark text: 혜리수샵 +2024-10-23 15:54:44,491 - gui.py:614 - default_logger - DEBUG - 크롬 실행 버튼 클릭됨 +2024-10-23 15:54:44,491 - gui.py:615 - default_logger - DEBUG - self.browser_controller.page : None +2024-10-23 15:54:44,491 - gui.py:622 - default_logger - DEBUG - optionIMGTrans_status : False, detail_IMGTrans_status : True +2024-10-23 15:54:46,497 - whale_translator.py:57 - default_logger - DEBUG - Whale 브라우저 실행, PID: 23420 +2024-10-23 15:54:46,497 - whale_translator.py:65 - default_logger - DEBUG - Whale 창을 찾았습니다: 10357604 +2024-10-23 15:54:46,500 - whale_translator.py:552 - default_logger - DEBUG - 창 위치 및 크기 설정: 위치(1, 1), 크기(1280x720) +2024-10-23 15:54:46,500 - whale_translator.py:161 - default_logger - DEBUG - 웨일 창 크기 및 위치 저장: (1, 1, 1281, 721) +2024-10-23 15:54:50,116 - whale_translator.py:452 - default_logger - DEBUG - 영어로 전환하는데 실패했습니다. +2024-10-23 15:54:51,919 - whale_translator.py:90 - default_logger - DEBUG - URL 입력 완료 +2024-10-23 15:54:51,944 - gui.py:651 - default_logger - DEBUG - 크롬 브라우저를 실행합니다... +2024-10-23 15:54:51,945 - browser_control.py:63 - default_logger - DEBUG - 크롬 브라우저 실행 중... +2024-10-23 15:54:52,625 - browser_control.py:79 - default_logger - DEBUG - 브라우저 경로: H:\py\autoTrans\browsers\chromium-1112\chrome-win\chrome.exe +2024-10-23 15:54:52,626 - browser_control.py:80 - default_logger - DEBUG - 확장 프로그램 경로: H:\py\autoTrans\browsers\extensions\1.1.100_0 +2024-10-23 15:54:52,627 - browser_control.py:81 - default_logger - DEBUG - 사용자 폴더 경로: H:\py\autoTrans\browsers\user_data +2024-10-23 15:54:52,628 - browser_control.py:97 - default_logger - DEBUG - user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 12_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Safari/605.1.15 +2024-10-23 15:54:53,333 - browser_control.py:119 - default_logger - INFO - 새 페이지 로딩 중... +2024-10-23 15:54:56,173 - browser_control.py:122 - default_logger - INFO - percenty.co.kr/signin 로딩 완료 +2024-10-23 15:54:56,194 - browser_control.py:130 - default_logger - DEBUG - 페이지 제목: 퍼센티 - 셀러들을 위한 AI 구매대행 솔루션 +2024-10-23 15:54:56,196 - browser_control.py:137 - default_logger - DEBUG - 크롬 창 핸들: 328788 +2024-10-23 15:54:56,197 - browser_control.py:143 - default_logger - INFO - 로그인 시도 중: 직원 계정 +2024-10-23 15:54:56,444 - browser_control.py:161 - default_logger - INFO - 로그인 완료: 직원 계정 +2024-10-23 15:55:01,459 - browser_control.py:305 - default_logger - ERROR - 다이얼로그가 발견되지 않았거나 오류 발생: Page.wait_for_selector: Timeout 5000ms exceeded. +Call log: +waiting for locator("div[role=\"dialog\"]") to be visible +Traceback (most recent call last): + File "H:\py\autoTrans\browser_control.py", line 292, in close_ad_if_exists + await self.page.wait_for_selector(self.close_ad_dialog_locator, timeout=5000, state='visible') + File "H:\py\autoTrans\Lib\site-packages\playwright\async_api\_generated.py", line 7999, in wait_for_selector + await self._impl_obj.wait_for_selector( + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_page.py", line 397, in wait_for_selector + return await self._main_frame.wait_for_selector(**locals_to_params(locals())) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_frame.py", line 323, in wait_for_selector + await self._channel.send("waitForSelector", locals_to_params(locals())) + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 59, in send + return await self._connection.wrap_api_call( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 514, in wrap_api_call + raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None +playwright._impl._errors.TimeoutError: Page.wait_for_selector: Timeout 5000ms exceeded. +Call log: +waiting for locator("div[role=\"dialog\"]") to be visible + +2024-10-23 15:55:01,461 - gui.py:675 - default_logger - DEBUG - 신규 상품 등록 페이지로 이동 중... +2024-10-23 15:55:01,933 - browser_control.py:312 - default_logger - INFO - 신규 상품 등록 페이지로 이동 완료. +2024-10-23 15:55:01,934 - option.py:43 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:55:01,934 - title.py:31 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:55:01,934 - price.py:52 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:55:28,923 - gui.py:858 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 15:55:35,712 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 15:55:35,712 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 15:55:35,725 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 15:55:35,726 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 15:55:35,726 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 15:55:35,742 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 15:55:35,751 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 15:55:35,752 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:55:35,762 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 15:55:35,896 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:55:35,897 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 15:55:35,898 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 15:55:35,898 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 15:55:35,898 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:55:35,901 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 15:55:35,902 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 15:55:35,902 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 15:55:35,902 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 15:55:35,904 - gui.py:159 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 15:55:37,907 - gui.py:614 - default_logger - DEBUG - 크롬 실행 버튼 클릭됨 +2024-10-23 15:55:37,908 - gui.py:615 - default_logger - DEBUG - self.browser_controller.page : None +2024-10-23 15:55:37,909 - gui.py:622 - default_logger - DEBUG - optionIMGTrans_status : False, detail_IMGTrans_status : True +2024-10-23 15:55:39,913 - whale_translator.py:57 - default_logger - DEBUG - Whale 브라우저 실행, PID: 19524 +2024-10-23 15:55:39,913 - whale_translator.py:65 - default_logger - DEBUG - Whale 창을 찾았습니다: 12848044 +2024-10-23 15:55:39,920 - whale_translator.py:552 - default_logger - DEBUG - 창 위치 및 크기 설정: 위치(1, 1), 크기(1280x720) +2024-10-23 15:55:39,921 - whale_translator.py:161 - default_logger - DEBUG - 웨일 창 크기 및 위치 저장: (1, 1, 1281, 721) +2024-10-23 15:55:43,538 - whale_translator.py:452 - default_logger - DEBUG - 영어로 전환하는데 실패했습니다. +2024-10-23 15:55:45,346 - whale_translator.py:90 - default_logger - DEBUG - URL 입력 완료 +2024-10-23 15:55:45,349 - gui.py:651 - default_logger - DEBUG - 크롬 브라우저를 실행합니다... +2024-10-23 15:55:45,350 - browser_control.py:63 - default_logger - DEBUG - 크롬 브라우저 실행 중... +2024-10-23 15:55:46,088 - browser_control.py:79 - default_logger - DEBUG - 브라우저 경로: H:\py\autoTrans\browsers\chromium-1112\chrome-win\chrome.exe +2024-10-23 15:55:46,089 - browser_control.py:80 - default_logger - DEBUG - 확장 프로그램 경로: H:\py\autoTrans\browsers\extensions\1.1.100_0 +2024-10-23 15:55:46,090 - browser_control.py:81 - default_logger - DEBUG - 사용자 폴더 경로: H:\py\autoTrans\browsers\user_data +2024-10-23 15:55:46,091 - browser_control.py:97 - default_logger - DEBUG - user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.0.0 +2024-10-23 15:55:46,773 - browser_control.py:119 - default_logger - INFO - 새 페이지 로딩 중... +2024-10-23 15:55:49,619 - browser_control.py:122 - default_logger - INFO - percenty.co.kr/signin 로딩 완료 +2024-10-23 15:55:49,645 - browser_control.py:130 - default_logger - DEBUG - 페이지 제목: 퍼센티 - 셀러들을 위한 AI 구매대행 솔루션 +2024-10-23 15:55:49,648 - browser_control.py:137 - default_logger - DEBUG - 크롬 창 핸들: 6294504 +2024-10-23 15:55:49,649 - browser_control.py:143 - default_logger - INFO - 로그인 시도 중: 직원 계정 +2024-10-23 15:55:49,891 - browser_control.py:161 - default_logger - INFO - 로그인 완료: 직원 계정 +2024-10-23 15:55:54,899 - browser_control.py:305 - default_logger - ERROR - 다이얼로그가 발견되지 않았거나 오류 발생: Page.wait_for_selector: Timeout 5000ms exceeded. +Call log: +waiting for locator("div[role=\"dialog\"]") to be visible +Traceback (most recent call last): + File "H:\py\autoTrans\browser_control.py", line 292, in close_ad_if_exists + await self.page.wait_for_selector(self.close_ad_dialog_locator, timeout=5000, state='visible') + File "H:\py\autoTrans\Lib\site-packages\playwright\async_api\_generated.py", line 7999, in wait_for_selector + await self._impl_obj.wait_for_selector( + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_page.py", line 397, in wait_for_selector + return await self._main_frame.wait_for_selector(**locals_to_params(locals())) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_frame.py", line 323, in wait_for_selector + await self._channel.send("waitForSelector", locals_to_params(locals())) + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 59, in send + return await self._connection.wrap_api_call( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 514, in wrap_api_call + raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None +playwright._impl._errors.TimeoutError: Page.wait_for_selector: Timeout 5000ms exceeded. +Call log: +waiting for locator("div[role=\"dialog\"]") to be visible + +2024-10-23 15:55:54,901 - gui.py:675 - default_logger - DEBUG - 신규 상품 등록 페이지로 이동 중... +2024-10-23 15:55:55,286 - browser_control.py:312 - default_logger - INFO - 신규 상품 등록 페이지로 이동 완료. +2024-10-23 15:55:55,287 - option.py:43 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:55:55,288 - title.py:31 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:55:55,288 - price.py:52 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:56:00,303 - gui.py:730 - default_logger - DEBUG - 번역 작업 버튼 클릭됨 +2024-10-23 15:56:00,304 - gui.py:735 - default_logger - DEBUG - 번역 작업을 시작합니다... +2024-10-23 15:56:00,304 - browser_control.py:747 - default_logger - INFO - 페이지 스크롤 시작... +2024-10-23 15:56:00,914 - browser_control.py:757 - default_logger - INFO - 페이지 스크롤 완료. +2024-10-23 15:56:00,919 - browser_control.py:222 - default_logger - INFO - 총 상품수 확인: 총 12개 상품 +2024-10-23 15:56:00,920 - gui.py:759 - default_logger - DEBUG - 현재 페이지: 1 +2024-10-23 15:56:00,925 - browser_control.py:369 - default_logger - INFO - 현재 페이지의 수정할 상품 개수: 12 +2024-10-23 15:56:00,925 - gui.py:777 - default_logger - DEBUG - 1/12 버튼의 활성상태 확인 중... +2024-10-23 15:56:00,932 - gui.py:784 - default_logger - DEBUG - 1/12: 세부사항 수정 작업 중... +2024-10-23 15:56:00,970 - browser_control.py:404 - default_logger - DEBUG - 상품의 '세부사항 수정 및 업로드' 버튼을 화면에 보이도록 스크롤. +2024-10-23 15:56:01,618 - browser_control.py:407 - default_logger - INFO - 세부사항 수정 다이얼로그 열기 완료. +2024-10-23 15:56:02,268 - title.py:91 - default_logger - DEBUG - 원본 상품명을 가져오는 중입니다. +2024-10-23 15:56:02,281 - title.py:94 - default_logger - DEBUG - 원본 상품명: 喷砂机小型高压除锈翻新除油除杂质高速磨砂玻璃刻字去皮立式90升 +2024-10-23 15:56:02,600 - title.py:179 - default_logger - DEBUG - 마켓 : ss - 카테고리 텍스트를 가져오는 중입니다. +2024-10-23 15:56:02,602 - title.py:188 - default_logger - DEBUG - category_locator : div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 +2024-10-23 15:56:02,617 - title.py:192 - default_logger - DEBUG - main_category_element : selector='div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2'> +2024-10-23 15:56:02,625 - title.py:201 - default_logger - DEBUG - category_text_element : selector='div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 >> div.ant-col.css-1li46mu:nth-child(1)'> +2024-10-23 15:56:02,639 - title.py:221 - default_logger - DEBUG - 카테고리 text = 공구설비/자재-작업공구-에어/유압공구-에어스프레이건 +2024-10-23 15:56:02,641 - gui.py:820 - default_logger - DEBUG - 상세페이지 수정 : False + True +2024-10-23 15:56:03,127 - browser_control.py:416 - default_logger - INFO - 상세페이지 탭 클릭 완료. +2024-10-23 15:56:03,465 - browser_control.py:453 - default_logger - DEBUG - 소스 버튼 클릭 완료. +2024-10-23 15:56:03,490 - browser_control.py:281 - default_logger - DEBUG - fetch_image_urls 에서 추출한 이미지URL 갯수 : 2 개 +2024-10-23 15:56:03,490 - browser_control.py:283 - default_logger - DEBUG - fetch_image_urls 에서 추출한 이미지URL 목록 : ['https://img.alicdn.com/imgextra/i2/812499800/O1CN01sP6bAN2MGS1Qld79w_!!812499800.jpg', 'https://cbu01.alicdn.com/img/ibank/2020/181/608/14129806181_1909423112.jpg'] +2024-10-23 15:56:03,492 - browser_control.py:463 - default_logger - INFO - 추출된 이미지 URL 수: 2 +2024-10-23 15:56:03,493 - browser_control.py:466 - default_logger - DEBUG - img 태그를 삭제 중... +2024-10-23 15:56:03,515 - browser_control.py:472 - default_logger - DEBUG - Updated data-value: +2024-10-23 15:56:03,516 - browser_control.py:475 - default_logger - DEBUG - img 태그 삭제 완료. +2024-10-23 15:56:03,635 - browser_control.py:479 - default_logger - DEBUG - 소스 버튼 재 클릭 완료. +2024-10-23 15:56:03,635 - browser_control.py:483 - default_logger - DEBUG - 옵션 데이터 입력 시작 +2024-10-23 15:56:03,636 - browser_control.py:489 - default_logger - DEBUG - 옵션입력 일단 제외 +2024-10-23 15:56:03,637 - browser_control.py:491 - default_logger - DEBUG - 가져온 옵션 데이터 +2024-10-23 15:56:03,637 - browser_control.py:492 - default_logger - DEBUG - {} +2024-10-23 15:56:03,775 - browser_control.py:504 - default_logger - INFO - leading_text_1 텍스트 입력 완료: --- +2024-10-23 15:56:04,321 - browser_control.py:504 - default_logger - INFO - leading_text_2 텍스트 입력 완료: # 안녕하세요 혜리수샵입니다. +2024-10-23 15:56:04,856 - browser_control.py:504 - default_logger - INFO - leading_text_3 텍스트 입력 완료: ### 마켓정책으로 인해 모든 옵션이 노출되지 않을수도 있습니다. +2024-10-23 15:56:05,401 - browser_control.py:504 - default_logger - INFO - leading_text_4 텍스트 입력 완료: ### 반드시 옵션사진과 옵션이름을 확인하시고 구매하시기 바랍니다. +2024-10-23 15:56:05,476 - browser_control.py:504 - default_logger - INFO - leading_text_5 텍스트 입력 완료: --- +2024-10-23 15:56:05,476 - gui.py:878 - default_logger - DEBUG - 현재 상품의 총 이미지 수 : 2개 +2024-10-23 15:56:05,478 - gui.py:890 - default_logger - DEBUG - 웨일 브라우저를 활용한 이미지 번역 프로세스 +2024-10-23 15:56:05,478 - whale_translator.py:270 - default_logger - DEBUG - 웨일 창을 찾았습니다.12848044 +2024-10-23 15:56:05,484 - whale_translator.py:276 - default_logger - DEBUG - 이미지 URL 주소 https://img.alicdn.com/imgextra/i2/812499800/O1CN01sP6bAN2MGS1Qld79w_!!812499800.jpg 입력 +2024-10-23 15:56:09,406 - whale_translator.py:561 - default_logger - DEBUG - 현재 웨일 창의 제목: O1CN01sP6bAN2MGS1Qld79w_!!812499800.jpg (1500×1164) - Whale +2024-10-23 15:56:09,407 - whale_translator.py:585 - default_logger - DEBUG - 이미지 해상도: 1500×1164 +2024-10-23 15:56:09,407 - whale_translator.py:294 - default_logger - DEBUG - 페이지 로딩 완료 후 웨일 창의 가운데로 마우스 커서 이동 +2024-10-23 15:56:09,408 - whale_translator.py:621 - default_logger - DEBUG - 마우스 커서를 추가로 50px 내림 +2024-10-23 15:56:09,509 - whale_translator.py:625 - default_logger - DEBUG - 마우스 커서를 창 중앙으로 이동: (641, 411) +2024-10-23 15:56:10,510 - whale_translator.py:303 - default_logger - DEBUG - 번역 작업을 위한 마우스 오른쪽 클릭 및 R 전송 +2024-10-23 15:56:10,511 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:56:11,715 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'r' 전송 준비. +2024-10-23 15:56:11,716 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'r' 전송 +2024-10-23 15:56:18,318 - whale_translator.py:325 - default_logger - DEBUG - 이미지 복사를 위한 마우스 오른쪽 클릭 및 C 전송 +2024-10-23 15:56:18,319 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:56:19,523 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'c' 전송 준비. +2024-10-23 15:56:19,523 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'c' 전송 +2024-10-23 15:56:20,126 - whale_translator.py:330 - default_logger - DEBUG - 클립보드에 번역된이미지 복사 대기 1s +2024-10-23 15:56:21,127 - whale_translator.py:333 - default_logger - DEBUG - 클립보드에 이미지 데이터가 존재하는지 확인 중..... +2024-10-23 15:56:21,134 - whale_translator.py:129 - default_logger - DEBUG - 클립보드에 이미지 데이터가 확인되었습니다. +2024-10-23 15:56:21,136 - whale_translator.py:336 - default_logger - INFO - 번역 성공: https://img.alicdn.com/imgextra/i2/812499800/O1CN01sP6bAN2MGS1Qld79w_!!812499800.jpg +2024-10-23 15:56:21,137 - whale_translator.py:342 - default_logger - INFO - 번역 프로세스 완료. 웨일 기본페이지로 돌아감 +2024-10-23 15:56:21,239 - browser_control.py:543 - default_logger - DEBUG - 크롬으로 포커스를 옮기고 클립보드의 이미지를 붙여넣고 엔터 입력 +2024-10-23 15:56:21,241 - browser_control.py:619 - default_logger - DEBUG - 크롬 창으로 포커스 이동. +2024-10-23 15:56:21,242 - clipboardImageManager.py:205 - default_logger - DEBUG - is_watermark : True +2024-10-23 15:56:21,242 - clipboardImageManager.py:208 - default_logger - DEBUG - watermark_text : False +2024-10-23 15:56:21,243 - clipboardImageManager.py:33 - default_logger - DEBUG - 클립보드의 텍스트 또는 이미지 데이터를 가져옵니다 +2024-10-23 15:56:21,246 - clipboardImageManager.py:41 - default_logger - DEBUG - 텍스트 데이터가 없어 이미지 데이터 확인 시도 +2024-10-23 15:56:21,249 - clipboardImageManager.py:44 - default_logger - DEBUG - 클립보드에 이미지 데이터가 확인되었습니다. +2024-10-23 15:56:21,250 - clipboardImageManager.py:212 - default_logger - DEBUG - clipboard_data +2024-10-23 15:56:21,252 - clipboardImageManager.py:213 - default_logger - DEBUG - +2024-10-23 15:56:21,252 - clipboardImageManager.py:214 - default_logger - DEBUG - ============================ +2024-10-23 15:56:21,252 - clipboardImageManager.py:247 - default_logger - INFO - [process_clipboard] 클립보드 이미지 확인 +2024-10-23 15:56:21,253 - clipboardImageManager.py:251 - default_logger - DEBUG - 클립보드에 있는 이미지 크기: 1511px +2024-10-23 15:56:21,254 - clipboardImageManager.py:254 - default_logger - DEBUG - 이미지 가로 크기 200픽셀 이상: 크롭 진행 중... +2024-10-23 15:56:21,280 - clipboardImageManager.py:259 - default_logger - DEBUG - 워터마크 추가 중... +2024-10-23 15:56:21,285 - clipboardImageManager.py:301 - default_logger - ERROR - 클립보드에서 이미지를 처리하는 중 오류 발생: argument of type 'bool' is not iterable +Traceback (most recent call last): + File "H:\py\autoTrans\clipboardImageManager.py", line 260, in process_clipboard + cropped_watermark_image = self.add_watermark(cropped_image, watermark_text, opacity_percent) # 워터마크 추가 + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\clipboardImageManager.py", line 111, in add_watermark + bbox = draw.textbbox((0, 0), watermark_text, font=font) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\PIL\ImageDraw.py", line 843, in textbbox + if self._multiline_check(text): + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\PIL\ImageDraw.py", line 558, in _multiline_check + return split_character in text + ^^^^^^^^^^^^^^^^^^^^^^^ +TypeError: argument of type 'bool' is not iterable +2024-10-23 15:56:21,290 - clipboardImageManager.py:308 - default_logger - DEBUG - 클립보드에 이미지가 존재합니다. +2024-10-23 15:56:21,394 - browser_control.py:550 - default_logger - INFO - 이미지 붙여넣기 완료. +2024-10-23 15:56:21,496 - browser_control.py:552 - default_logger - DEBUG - 이미지 붙여넣기 완료. +2024-10-23 15:56:21,498 - clipboardImageManager.py:336 - default_logger - DEBUG - 클립보드가 비워졌습니다. +2024-10-23 15:56:21,498 - browser_control.py:554 - default_logger - INFO - 이미지 붙여넣기 완료로 클립보드 비우기. +2024-10-23 15:56:21,500 - gui.py:896 - default_logger - DEBUG - https://img.alicdn.com/imgextra/i2/812499800/O1CN01sP6bAN2MGS1Qld79w_!!812499800.jpg gui 이미지 붙여넣기 성공 +2024-10-23 15:56:21,501 - gui.py:900 - default_logger - DEBUG - Progress Update +2024-10-23 15:56:21,502 - gui.py:890 - default_logger - DEBUG - 웨일 브라우저를 활용한 이미지 번역 프로세스 +2024-10-23 15:56:21,503 - whale_translator.py:270 - default_logger - DEBUG - 웨일 창을 찾았습니다.12848044 +2024-10-23 15:56:21,506 - whale_translator.py:276 - default_logger - DEBUG - 이미지 URL 주소 https://cbu01.alicdn.com/img/ibank/2020/181/608/14129806181_1909423112.jpg 입력 +2024-10-23 15:56:25,424 - whale_translator.py:561 - default_logger - DEBUG - 현재 웨일 창의 제목: 14129806181_1909423112.jpg (1000×1000) - Whale +2024-10-23 15:56:25,425 - whale_translator.py:585 - default_logger - DEBUG - 이미지 해상도: 1000×1000 +2024-10-23 15:56:25,426 - whale_translator.py:294 - default_logger - DEBUG - 페이지 로딩 완료 후 웨일 창의 가운데로 마우스 커서 이동 +2024-10-23 15:56:25,427 - whale_translator.py:621 - default_logger - DEBUG - 마우스 커서를 추가로 50px 내림 +2024-10-23 15:56:25,528 - whale_translator.py:625 - default_logger - DEBUG - 마우스 커서를 창 중앙으로 이동: (641, 411) +2024-10-23 15:56:26,530 - whale_translator.py:303 - default_logger - DEBUG - 번역 작업을 위한 마우스 오른쪽 클릭 및 R 전송 +2024-10-23 15:56:26,531 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:56:27,734 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'r' 전송 준비. +2024-10-23 15:56:27,735 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'r' 전송 +2024-10-23 15:56:34,338 - whale_translator.py:325 - default_logger - DEBUG - 이미지 복사를 위한 마우스 오른쪽 클릭 및 C 전송 +2024-10-23 15:56:34,339 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:56:35,543 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'c' 전송 준비. +2024-10-23 15:56:35,544 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'c' 전송 +2024-10-23 15:56:36,146 - whale_translator.py:330 - default_logger - DEBUG - 클립보드에 번역된이미지 복사 대기 1s +2024-10-23 15:56:37,005 - gui.py:858 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 15:58:44,662 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 15:58:44,662 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 15:58:44,673 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 15:58:44,674 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 15:58:44,674 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 15:58:44,690 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 15:58:44,698 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 15:58:44,698 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:58:44,708 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 15:58:44,817 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:58:44,818 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 15:58:44,818 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 15:58:44,818 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 15:58:44,818 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 15:58:44,819 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 15:58:44,820 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 15:58:44,820 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 15:58:44,821 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 15:58:44,822 - gui.py:582 - default_logger - DEBUG - Updated watermark text: 혜리수샵 +2024-10-23 15:58:44,823 - gui.py:159 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 15:58:48,266 - gui.py:614 - default_logger - DEBUG - 크롬 실행 버튼 클릭됨 +2024-10-23 15:58:48,267 - gui.py:615 - default_logger - DEBUG - self.browser_controller.page : None +2024-10-23 15:58:48,268 - gui.py:622 - default_logger - DEBUG - optionIMGTrans_status : False, detail_IMGTrans_status : True +2024-10-23 15:58:50,272 - whale_translator.py:57 - default_logger - DEBUG - Whale 브라우저 실행, PID: 10716 +2024-10-23 15:58:50,272 - whale_translator.py:65 - default_logger - DEBUG - Whale 창을 찾았습니다: 4131822 +2024-10-23 15:58:50,274 - whale_translator.py:552 - default_logger - DEBUG - 창 위치 및 크기 설정: 위치(1, 1), 크기(1280x720) +2024-10-23 15:58:50,275 - whale_translator.py:161 - default_logger - DEBUG - 웨일 창 크기 및 위치 저장: (1, 1, 1281, 721) +2024-10-23 15:58:53,890 - whale_translator.py:452 - default_logger - DEBUG - 영어로 전환하는데 실패했습니다. +2024-10-23 15:58:55,696 - whale_translator.py:90 - default_logger - DEBUG - URL 입력 완료 +2024-10-23 15:58:55,712 - gui.py:651 - default_logger - DEBUG - 크롬 브라우저를 실행합니다... +2024-10-23 15:58:55,713 - browser_control.py:63 - default_logger - DEBUG - 크롬 브라우저 실행 중... +2024-10-23 15:58:56,263 - browser_control.py:79 - default_logger - DEBUG - 브라우저 경로: H:\py\autoTrans\browsers\chromium-1112\chrome-win\chrome.exe +2024-10-23 15:58:56,264 - browser_control.py:80 - default_logger - DEBUG - 확장 프로그램 경로: H:\py\autoTrans\browsers\extensions\1.1.100_0 +2024-10-23 15:58:56,264 - browser_control.py:81 - default_logger - DEBUG - 사용자 폴더 경로: H:\py\autoTrans\browsers\user_data +2024-10-23 15:58:56,266 - browser_control.py:97 - default_logger - DEBUG - user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.0.0 +2024-10-23 15:58:56,950 - browser_control.py:119 - default_logger - INFO - 새 페이지 로딩 중... +2024-10-23 15:58:59,843 - browser_control.py:122 - default_logger - INFO - percenty.co.kr/signin 로딩 완료 +2024-10-23 15:58:59,860 - browser_control.py:130 - default_logger - DEBUG - 페이지 제목: 퍼센티 - 셀러들을 위한 AI 구매대행 솔루션 +2024-10-23 15:58:59,862 - browser_control.py:137 - default_logger - DEBUG - 크롬 창 핸들: 8653726 +2024-10-23 15:58:59,863 - browser_control.py:143 - default_logger - INFO - 로그인 시도 중: 직원 계정 +2024-10-23 15:59:00,095 - browser_control.py:161 - default_logger - INFO - 로그인 완료: 직원 계정 +2024-10-23 15:59:05,105 - browser_control.py:305 - default_logger - ERROR - 다이얼로그가 발견되지 않았거나 오류 발생: Page.wait_for_selector: Timeout 5000ms exceeded. +Call log: +waiting for locator("div[role=\"dialog\"]") to be visible +Traceback (most recent call last): + File "H:\py\autoTrans\browser_control.py", line 292, in close_ad_if_exists + await self.page.wait_for_selector(self.close_ad_dialog_locator, timeout=5000, state='visible') + File "H:\py\autoTrans\Lib\site-packages\playwright\async_api\_generated.py", line 7999, in wait_for_selector + await self._impl_obj.wait_for_selector( + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_page.py", line 397, in wait_for_selector + return await self._main_frame.wait_for_selector(**locals_to_params(locals())) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_frame.py", line 323, in wait_for_selector + await self._channel.send("waitForSelector", locals_to_params(locals())) + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 59, in send + return await self._connection.wrap_api_call( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 514, in wrap_api_call + raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None +playwright._impl._errors.TimeoutError: Page.wait_for_selector: Timeout 5000ms exceeded. +Call log: +waiting for locator("div[role=\"dialog\"]") to be visible + +2024-10-23 15:59:05,109 - gui.py:582 - default_logger - DEBUG - Updated watermark text: 혜리수샵 +2024-10-23 15:59:05,110 - gui.py:675 - default_logger - DEBUG - 신규 상품 등록 페이지로 이동 중... +2024-10-23 15:59:05,526 - browser_control.py:312 - default_logger - INFO - 신규 상품 등록 페이지로 이동 완료. +2024-10-23 15:59:05,527 - option.py:43 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:59:05,529 - title.py:31 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:59:05,530 - price.py:52 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 15:59:10,440 - gui.py:732 - default_logger - DEBUG - 번역 작업 버튼 클릭됨 +2024-10-23 15:59:10,442 - gui.py:737 - default_logger - DEBUG - 번역 작업을 시작합니다... +2024-10-23 15:59:10,442 - browser_control.py:747 - default_logger - INFO - 페이지 스크롤 시작... +2024-10-23 15:59:11,035 - browser_control.py:757 - default_logger - INFO - 페이지 스크롤 완료. +2024-10-23 15:59:11,040 - browser_control.py:222 - default_logger - INFO - 총 상품수 확인: 총 12개 상품 +2024-10-23 15:59:11,042 - gui.py:761 - default_logger - DEBUG - 현재 페이지: 1 +2024-10-23 15:59:11,048 - browser_control.py:369 - default_logger - INFO - 현재 페이지의 수정할 상품 개수: 12 +2024-10-23 15:59:11,048 - gui.py:779 - default_logger - DEBUG - 1/12 버튼의 활성상태 확인 중... +2024-10-23 15:59:11,054 - gui.py:786 - default_logger - DEBUG - 1/12: 세부사항 수정 작업 중... +2024-10-23 15:59:11,094 - browser_control.py:404 - default_logger - DEBUG - 상품의 '세부사항 수정 및 업로드' 버튼을 화면에 보이도록 스크롤. +2024-10-23 15:59:11,752 - browser_control.py:407 - default_logger - INFO - 세부사항 수정 다이얼로그 열기 완료. +2024-10-23 15:59:12,379 - title.py:91 - default_logger - DEBUG - 원본 상품명을 가져오는 중입니다. +2024-10-23 15:59:12,396 - title.py:94 - default_logger - DEBUG - 원본 상품명: 喷砂机小型高压除锈翻新除油除杂质高速磨砂玻璃刻字去皮立式90升 +2024-10-23 15:59:12,704 - title.py:179 - default_logger - DEBUG - 마켓 : ss - 카테고리 텍스트를 가져오는 중입니다. +2024-10-23 15:59:12,704 - title.py:188 - default_logger - DEBUG - category_locator : div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 +2024-10-23 15:59:12,723 - title.py:192 - default_logger - DEBUG - main_category_element : selector='div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2'> +2024-10-23 15:59:12,732 - title.py:201 - default_logger - DEBUG - category_text_element : selector='div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 >> div.ant-col.css-1li46mu:nth-child(1)'> +2024-10-23 15:59:12,752 - title.py:221 - default_logger - DEBUG - 카테고리 text = 공구설비/자재-작업공구-에어/유압공구-에어스프레이건 +2024-10-23 15:59:12,754 - gui.py:822 - default_logger - DEBUG - 상세페이지 수정 : False + True +2024-10-23 15:59:13,253 - browser_control.py:416 - default_logger - INFO - 상세페이지 탭 클릭 완료. +2024-10-23 15:59:13,600 - browser_control.py:453 - default_logger - DEBUG - 소스 버튼 클릭 완료. +2024-10-23 15:59:13,628 - browser_control.py:281 - default_logger - DEBUG - fetch_image_urls 에서 추출한 이미지URL 갯수 : 2 개 +2024-10-23 15:59:13,629 - browser_control.py:283 - default_logger - DEBUG - fetch_image_urls 에서 추출한 이미지URL 목록 : ['https://img.alicdn.com/imgextra/i2/812499800/O1CN01sP6bAN2MGS1Qld79w_!!812499800.jpg', 'https://cbu01.alicdn.com/img/ibank/2020/181/608/14129806181_1909423112.jpg'] +2024-10-23 15:59:13,631 - browser_control.py:463 - default_logger - INFO - 추출된 이미지 URL 수: 2 +2024-10-23 15:59:13,632 - browser_control.py:466 - default_logger - DEBUG - img 태그를 삭제 중... +2024-10-23 15:59:13,657 - browser_control.py:472 - default_logger - DEBUG - Updated data-value: +2024-10-23 15:59:13,657 - browser_control.py:475 - default_logger - DEBUG - img 태그 삭제 완료. +2024-10-23 15:59:13,778 - browser_control.py:479 - default_logger - DEBUG - 소스 버튼 재 클릭 완료. +2024-10-23 15:59:13,779 - browser_control.py:483 - default_logger - DEBUG - 옵션 데이터 입력 시작 +2024-10-23 15:59:13,780 - browser_control.py:489 - default_logger - DEBUG - 옵션입력 일단 제외 +2024-10-23 15:59:13,781 - browser_control.py:491 - default_logger - DEBUG - 가져온 옵션 데이터 +2024-10-23 15:59:13,781 - browser_control.py:492 - default_logger - DEBUG - {} +2024-10-23 15:59:13,944 - browser_control.py:504 - default_logger - INFO - leading_text_1 텍스트 입력 완료: --- +2024-10-23 15:59:14,566 - browser_control.py:504 - default_logger - INFO - leading_text_2 텍스트 입력 완료: # 안녕하세요 혜리수샵입니다. +2024-10-23 15:59:15,188 - browser_control.py:504 - default_logger - INFO - leading_text_3 텍스트 입력 완료: ### 마켓정책으로 인해 모든 옵션이 노출되지 않을수도 있습니다. +2024-10-23 15:59:15,860 - browser_control.py:504 - default_logger - INFO - leading_text_4 텍스트 입력 완료: ### 반드시 옵션사진과 옵션이름을 확인하시고 구매하시기 바랍니다. +2024-10-23 15:59:15,965 - browser_control.py:504 - default_logger - INFO - leading_text_5 텍스트 입력 완료: --- +2024-10-23 15:59:15,966 - gui.py:880 - default_logger - DEBUG - 현재 상품의 총 이미지 수 : 2개 +2024-10-23 15:59:15,967 - gui.py:892 - default_logger - DEBUG - 웨일 브라우저를 활용한 이미지 번역 프로세스 +2024-10-23 15:59:15,968 - whale_translator.py:270 - default_logger - DEBUG - 웨일 창을 찾았습니다.4131822 +2024-10-23 15:59:15,975 - whale_translator.py:276 - default_logger - DEBUG - 이미지 URL 주소 https://img.alicdn.com/imgextra/i2/812499800/O1CN01sP6bAN2MGS1Qld79w_!!812499800.jpg 입력 +2024-10-23 15:59:19,888 - whale_translator.py:561 - default_logger - DEBUG - 현재 웨일 창의 제목: O1CN01sP6bAN2MGS1Qld79w_!!812499800.jpg (1500×1164) - Whale +2024-10-23 15:59:19,889 - whale_translator.py:585 - default_logger - DEBUG - 이미지 해상도: 1500×1164 +2024-10-23 15:59:19,889 - whale_translator.py:294 - default_logger - DEBUG - 페이지 로딩 완료 후 웨일 창의 가운데로 마우스 커서 이동 +2024-10-23 15:59:19,891 - whale_translator.py:621 - default_logger - DEBUG - 마우스 커서를 추가로 50px 내림 +2024-10-23 15:59:19,992 - whale_translator.py:625 - default_logger - DEBUG - 마우스 커서를 창 중앙으로 이동: (641, 411) +2024-10-23 15:59:20,994 - whale_translator.py:303 - default_logger - DEBUG - 번역 작업을 위한 마우스 오른쪽 클릭 및 R 전송 +2024-10-23 15:59:20,994 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:59:22,207 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'r' 전송 준비. +2024-10-23 15:59:22,209 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'r' 전송 +2024-10-23 15:59:28,811 - whale_translator.py:325 - default_logger - DEBUG - 이미지 복사를 위한 마우스 오른쪽 클릭 및 C 전송 +2024-10-23 15:59:28,811 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:59:30,016 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'c' 전송 준비. +2024-10-23 15:59:30,016 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'c' 전송 +2024-10-23 15:59:30,618 - whale_translator.py:330 - default_logger - DEBUG - 클립보드에 번역된이미지 복사 대기 1s +2024-10-23 15:59:31,620 - whale_translator.py:333 - default_logger - DEBUG - 클립보드에 이미지 데이터가 존재하는지 확인 중..... +2024-10-23 15:59:31,626 - whale_translator.py:129 - default_logger - DEBUG - 클립보드에 이미지 데이터가 확인되었습니다. +2024-10-23 15:59:31,627 - whale_translator.py:336 - default_logger - INFO - 번역 성공: https://img.alicdn.com/imgextra/i2/812499800/O1CN01sP6bAN2MGS1Qld79w_!!812499800.jpg +2024-10-23 15:59:31,628 - whale_translator.py:342 - default_logger - INFO - 번역 프로세스 완료. 웨일 기본페이지로 돌아감 +2024-10-23 15:59:31,730 - browser_control.py:543 - default_logger - DEBUG - 크롬으로 포커스를 옮기고 클립보드의 이미지를 붙여넣고 엔터 입력 +2024-10-23 15:59:31,733 - browser_control.py:619 - default_logger - DEBUG - 크롬 창으로 포커스 이동. +2024-10-23 15:59:31,734 - clipboardImageManager.py:205 - default_logger - DEBUG - is_watermark : True +2024-10-23 15:59:31,734 - clipboardImageManager.py:208 - default_logger - DEBUG - watermark_text : 혜리수샵 +2024-10-23 15:59:31,735 - clipboardImageManager.py:33 - default_logger - DEBUG - 클립보드의 텍스트 또는 이미지 데이터를 가져옵니다 +2024-10-23 15:59:31,737 - clipboardImageManager.py:41 - default_logger - DEBUG - 텍스트 데이터가 없어 이미지 데이터 확인 시도 +2024-10-23 15:59:31,739 - clipboardImageManager.py:44 - default_logger - DEBUG - 클립보드에 이미지 데이터가 확인되었습니다. +2024-10-23 15:59:31,740 - clipboardImageManager.py:212 - default_logger - DEBUG - clipboard_data +2024-10-23 15:59:31,741 - clipboardImageManager.py:213 - default_logger - DEBUG - +2024-10-23 15:59:31,743 - clipboardImageManager.py:214 - default_logger - DEBUG - ============================ +2024-10-23 15:59:31,743 - clipboardImageManager.py:247 - default_logger - INFO - [process_clipboard] 클립보드 이미지 확인 +2024-10-23 15:59:31,743 - clipboardImageManager.py:251 - default_logger - DEBUG - 클립보드에 있는 이미지 크기: 1511px +2024-10-23 15:59:31,744 - clipboardImageManager.py:254 - default_logger - DEBUG - 이미지 가로 크기 200픽셀 이상: 크롭 진행 중... +2024-10-23 15:59:31,769 - clipboardImageManager.py:259 - default_logger - DEBUG - 워터마크 추가 중... +2024-10-23 15:59:31,833 - clipboardImageManager.py:58 - default_logger - DEBUG - 이미지 데이터 BMP 변환 +2024-10-23 15:59:31,835 - clipboardImageManager.py:62 - default_logger - DEBUG - 이미지 BMP 헤더 제거 +2024-10-23 15:59:31,941 - clipboardImageManager.py:74 - default_logger - DEBUG - 클립보드 데이터 저장 성공 +2024-10-23 15:59:31,943 - clipboardImageManager.py:308 - default_logger - DEBUG - 클립보드에 이미지가 존재합니다. +2024-10-23 15:59:32,046 - browser_control.py:550 - default_logger - INFO - 이미지 붙여넣기 완료. +2024-10-23 15:59:32,149 - browser_control.py:552 - default_logger - DEBUG - 이미지 붙여넣기 완료. +2024-10-23 15:59:32,151 - clipboardImageManager.py:336 - default_logger - DEBUG - 클립보드가 비워졌습니다. +2024-10-23 15:59:32,152 - browser_control.py:554 - default_logger - INFO - 이미지 붙여넣기 완료로 클립보드 비우기. +2024-10-23 15:59:32,153 - gui.py:898 - default_logger - DEBUG - https://img.alicdn.com/imgextra/i2/812499800/O1CN01sP6bAN2MGS1Qld79w_!!812499800.jpg gui 이미지 붙여넣기 성공 +2024-10-23 15:59:32,154 - gui.py:902 - default_logger - DEBUG - Progress Update +2024-10-23 15:59:32,155 - gui.py:892 - default_logger - DEBUG - 웨일 브라우저를 활용한 이미지 번역 프로세스 +2024-10-23 15:59:32,156 - whale_translator.py:270 - default_logger - DEBUG - 웨일 창을 찾았습니다.4131822 +2024-10-23 15:59:32,157 - whale_translator.py:276 - default_logger - DEBUG - 이미지 URL 주소 https://cbu01.alicdn.com/img/ibank/2020/181/608/14129806181_1909423112.jpg 입력 +2024-10-23 15:59:36,075 - whale_translator.py:561 - default_logger - DEBUG - 현재 웨일 창의 제목: 14129806181_1909423112.jpg (1000×1000) - Whale +2024-10-23 15:59:36,075 - whale_translator.py:585 - default_logger - DEBUG - 이미지 해상도: 1000×1000 +2024-10-23 15:59:36,076 - whale_translator.py:294 - default_logger - DEBUG - 페이지 로딩 완료 후 웨일 창의 가운데로 마우스 커서 이동 +2024-10-23 15:59:36,077 - whale_translator.py:621 - default_logger - DEBUG - 마우스 커서를 추가로 50px 내림 +2024-10-23 15:59:36,179 - whale_translator.py:625 - default_logger - DEBUG - 마우스 커서를 창 중앙으로 이동: (641, 411) +2024-10-23 15:59:37,181 - whale_translator.py:303 - default_logger - DEBUG - 번역 작업을 위한 마우스 오른쪽 클릭 및 R 전송 +2024-10-23 15:59:37,182 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 15:59:38,385 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'r' 전송 준비. +2024-10-23 15:59:38,386 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'r' 전송 +2024-10-23 15:59:40,234 - gui.py:860 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 15:59:40,236 - gui.py:582 - default_logger - DEBUG - Updated watermark text: 혜리수샵 +2024-10-23 16:00:37,833 - vertexAI.py:18 - default_logger - DEBUG - GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정: H:\py\autoTrans\leensoo1nt.json +2024-10-23 16:00:37,833 - vertexAI.py:22 - default_logger - DEBUG - Vertex AI 모델 초기화 중... +2024-10-23 16:00:37,844 - vertexAI.py:26 - default_logger - DEBUG - prompt.json 파일을 불러옵니다. +2024-10-23 16:00:37,844 - vertexAI.py:46 - default_logger - DEBUG - 프롬프트 파일 경로: H:\py\autoTrans\prompt.json +2024-10-23 16:00:37,844 - vertexAI.py:50 - default_logger - DEBUG - prompt.json 파일이 성공적으로 로드되었습니다. +2024-10-23 16:00:37,863 - DatabaseManager.py:14 - default_logger - DEBUG - Database engine created with URL: sqlite:///H:\py\autoTrans\userDB.db +2024-10-23 16:00:37,871 - cmb_diag.py:499 - default_logger - DEBUG - DB에서 데이터를 읽어와 테이블을 생성 +2024-10-23 16:00:37,872 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 16:00:37,881 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT id, category1, category2, category3, category4, crmobi_stage FROM categories WHERE 1=1 with params: {}, result count: 4901 +2024-10-23 16:00:38,015 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 16:00:38,017 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT stage, threshold, increment_unit, extra_cost FROM crmobi_stages with params: None, result count: 3 +2024-10-23 16:00:38,017 - cmb_diag.py:412 - default_logger - DEBUG - CrMoBi 단계 설정이 위젯에 반영되었습니다. +2024-10-23 16:00:38,017 - cmb_diag.py:256 - default_logger - DEBUG - 1레벨 카테고리를 업데이트 +2024-10-23 16:00:38,017 - DatabaseManager.py:19 - default_logger - DEBUG - Creating a new database session. +2024-10-23 16:00:38,020 - DatabaseManager.py:77 - default_logger - DEBUG - Fetched all results for query: SELECT DISTINCT category1 FROM categories WHERE category1 IS NOT NULL with params: None, result count: 11 +2024-10-23 16:00:38,020 - price.py:74 - default_logger - DEBUG - self.shipping_config : {'min_price_for_extra_shipping': 50000, 'thresholds': [50000, 100000, 200000], 'increment_unit': 20000, 'additional_costs': [5000, 7000, 9000]} +2024-10-23 16:00:38,021 - price.py:76 - default_logger - DEBUG - self.margin_config : {'thresholds': [50000, 70000, 100000, 150000, 200000, 300000, 400000, 500000, 1000000], 'additional_margins': [5000, 10000, 15000, 25000, 35000, 50000, 70000, 90000, 120000]} +2024-10-23 16:00:38,021 - price.py:78 - default_logger - DEBUG - self.optimal_price_config : {'sold_price': None, 'cost_price2X': None, 'calculated_price': None, 'lower_bound': 0.85, 'upper_bound': 1.15, 'ratios': {'sold_price': 0.5, 'cost_price2X': 0.3, 'calculated_price': 0.2}} +2024-10-23 16:00:38,022 - gui.py:582 - default_logger - DEBUG - Updated watermark text: 혜리수샵 +2024-10-23 16:00:38,022 - gui.py:159 - default_logger - DEBUG - 로그기록이 설정되었습니다. +2024-10-23 16:00:40,227 - gui.py:614 - default_logger - DEBUG - 크롬 실행 버튼 클릭됨 +2024-10-23 16:00:40,227 - gui.py:615 - default_logger - DEBUG - self.browser_controller.page : None +2024-10-23 16:00:40,227 - gui.py:622 - default_logger - DEBUG - optionIMGTrans_status : False, detail_IMGTrans_status : True +2024-10-23 16:00:42,234 - whale_translator.py:57 - default_logger - DEBUG - Whale 브라우저 실행, PID: 19272 +2024-10-23 16:00:42,234 - whale_translator.py:65 - default_logger - DEBUG - Whale 창을 찾았습니다: 1182728 +2024-10-23 16:00:42,236 - whale_translator.py:552 - default_logger - DEBUG - 창 위치 및 크기 설정: 위치(1, 1), 크기(1280x720) +2024-10-23 16:00:42,236 - whale_translator.py:161 - default_logger - DEBUG - 웨일 창 크기 및 위치 저장: (1, 1, 1281, 721) +2024-10-23 16:00:45,857 - whale_translator.py:452 - default_logger - DEBUG - 영어로 전환하는데 실패했습니다. +2024-10-23 16:00:47,665 - whale_translator.py:90 - default_logger - DEBUG - URL 입력 완료 +2024-10-23 16:00:47,667 - gui.py:651 - default_logger - DEBUG - 크롬 브라우저를 실행합니다... +2024-10-23 16:00:47,668 - browser_control.py:63 - default_logger - DEBUG - 크롬 브라우저 실행 중... +2024-10-23 16:00:48,423 - browser_control.py:79 - default_logger - DEBUG - 브라우저 경로: H:\py\autoTrans\browsers\chromium-1112\chrome-win\chrome.exe +2024-10-23 16:00:48,424 - browser_control.py:80 - default_logger - DEBUG - 확장 프로그램 경로: H:\py\autoTrans\browsers\extensions\1.1.100_0 +2024-10-23 16:00:48,425 - browser_control.py:81 - default_logger - DEBUG - 사용자 폴더 경로: H:\py\autoTrans\browsers\user_data +2024-10-23 16:00:48,426 - browser_control.py:97 - default_logger - DEBUG - user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 OPR/85.0.0.0 +2024-10-23 16:00:49,240 - browser_control.py:119 - default_logger - INFO - 새 페이지 로딩 중... +2024-10-23 16:00:52,944 - browser_control.py:122 - default_logger - INFO - percenty.co.kr/signin 로딩 완료 +2024-10-23 16:00:52,966 - browser_control.py:130 - default_logger - DEBUG - 페이지 제목: 퍼센티 - 셀러들을 위한 AI 구매대행 솔루션 +2024-10-23 16:00:52,969 - browser_control.py:137 - default_logger - DEBUG - 크롬 창 핸들: 20581226 +2024-10-23 16:00:52,970 - browser_control.py:143 - default_logger - INFO - 로그인 시도 중: 직원 계정 +2024-10-23 16:00:53,250 - browser_control.py:161 - default_logger - INFO - 로그인 완료: 직원 계정 +2024-10-23 16:00:58,259 - browser_control.py:305 - default_logger - ERROR - 다이얼로그가 발견되지 않았거나 오류 발생: Page.wait_for_selector: Timeout 5000ms exceeded. +Call log: +waiting for locator("div[role=\"dialog\"]") to be visible +Traceback (most recent call last): + File "H:\py\autoTrans\browser_control.py", line 292, in close_ad_if_exists + await self.page.wait_for_selector(self.close_ad_dialog_locator, timeout=5000, state='visible') + File "H:\py\autoTrans\Lib\site-packages\playwright\async_api\_generated.py", line 7999, in wait_for_selector + await self._impl_obj.wait_for_selector( + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_page.py", line 397, in wait_for_selector + return await self._main_frame.wait_for_selector(**locals_to_params(locals())) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_frame.py", line 323, in wait_for_selector + await self._channel.send("waitForSelector", locals_to_params(locals())) + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 59, in send + return await self._connection.wrap_api_call( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "H:\py\autoTrans\Lib\site-packages\playwright\_impl\_connection.py", line 514, in wrap_api_call + raise rewrite_error(error, f"{parsed_st['apiName']}: {error}") from None +playwright._impl._errors.TimeoutError: Page.wait_for_selector: Timeout 5000ms exceeded. +Call log: +waiting for locator("div[role=\"dialog\"]") to be visible + +2024-10-23 16:00:58,263 - gui.py:582 - default_logger - DEBUG - Updated watermark text: 혜리수샵 +2024-10-23 16:00:58,264 - gui.py:675 - default_logger - DEBUG - 신규 상품 등록 페이지로 이동 중... +2024-10-23 16:00:58,707 - browser_control.py:312 - default_logger - INFO - 신규 상품 등록 페이지로 이동 완료. +2024-10-23 16:00:58,708 - option.py:43 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 16:00:58,710 - title.py:31 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 16:00:58,710 - price.py:52 - default_logger - DEBUG - page객체 업데이트 : +2024-10-23 16:01:08,476 - gui.py:732 - default_logger - DEBUG - 번역 작업 버튼 클릭됨 +2024-10-23 16:01:08,476 - gui.py:737 - default_logger - DEBUG - 번역 작업을 시작합니다... +2024-10-23 16:01:08,476 - browser_control.py:747 - default_logger - INFO - 페이지 스크롤 시작... +2024-10-23 16:01:09,515 - browser_control.py:757 - default_logger - INFO - 페이지 스크롤 완료. +2024-10-23 16:01:09,520 - browser_control.py:222 - default_logger - INFO - 총 상품수 확인: 총 79개 상품 +2024-10-23 16:01:09,520 - gui.py:761 - default_logger - DEBUG - 현재 페이지: 1 +2024-10-23 16:01:09,526 - browser_control.py:369 - default_logger - INFO - 현재 페이지의 수정할 상품 개수: 20 +2024-10-23 16:01:09,527 - gui.py:779 - default_logger - DEBUG - 1/20 버튼의 활성상태 확인 중... +2024-10-23 16:01:09,534 - gui.py:786 - default_logger - DEBUG - 1/20: 세부사항 수정 작업 중... +2024-10-23 16:01:09,565 - browser_control.py:404 - default_logger - DEBUG - 상품의 '세부사항 수정 및 업로드' 버튼을 화면에 보이도록 스크롤. +2024-10-23 16:01:10,274 - browser_control.py:407 - default_logger - INFO - 세부사항 수정 다이얼로그 열기 완료. +2024-10-23 16:01:10,972 - title.py:91 - default_logger - DEBUG - 원본 상품명을 가져오는 중입니다. +2024-10-23 16:01:10,994 - title.py:94 - default_logger - DEBUG - 원본 상품명: 凉亭户外庭院遮阳棚农家乐帐篷茅草棚民宿仿真稻草休闲室外遮雨棚 +2024-10-23 16:01:11,350 - title.py:179 - default_logger - DEBUG - 마켓 : ss - 카테고리 텍스트를 가져오는 중입니다. +2024-10-23 16:01:11,350 - title.py:188 - default_logger - DEBUG - category_locator : div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 +2024-10-23 16:01:11,367 - title.py:192 - default_logger - DEBUG - main_category_element : selector='div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2'> +2024-10-23 16:01:11,378 - title.py:201 - default_logger - DEBUG - category_text_element : selector='div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2 >> div.ant-col.css-1li46mu:nth-child(1)'> +2024-10-23 16:01:11,400 - title.py:221 - default_logger - DEBUG - 카테고리 text = 홈인테리어/가구-가구-야외가구-원두막/정자 +2024-10-23 16:01:11,402 - gui.py:822 - default_logger - DEBUG - 상세페이지 수정 : False + True +2024-10-23 16:01:11,910 - browser_control.py:416 - default_logger - INFO - 상세페이지 탭 클릭 완료. +2024-10-23 16:01:12,476 - browser_control.py:453 - default_logger - DEBUG - 소스 버튼 클릭 완료. +2024-10-23 16:01:12,712 - browser_control.py:281 - default_logger - DEBUG - fetch_image_urls 에서 추출한 이미지URL 갯수 : 26 개 +2024-10-23 16:01:12,712 - browser_control.py:283 - default_logger - DEBUG - fetch_image_urls 에서 추출한 이미지URL 목록 : ['https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/a0ce55c9-472b-44c1-963a-3fdc1067f7c4.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/2b30e26d-e5b5-44b9-888f-6bd0e59509a0.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/ec34ee5c-9f5c-47c1-a972-6e90f38a7eec.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/1e4ed7f1-4af3-45a1-8a47-34fe149db1a1.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/a51f9a72-3693-455c-b2d8-e41d29adb831.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/b91bc7e6-5791-49b5-8753-33427bc7017b.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/3c48eb22-3981-448f-85de-b394a62f8e95.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/48ce4fb6-bf22-4ff8-962d-315dd961a458.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/21a960fa-8559-4e17-a25a-00ce9e9323e9.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/c506c550-93f9-492c-b159-f1dd1f9159ea.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/5bdd5e7a-ee10-4a59-a7bd-e3dc4d3ac5bb.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/d2afa280-12c3-409a-afd2-72ec93845772.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/51c81d7c-c338-4c67-91ec-e6f33c56e5c6.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/24472c63-37a5-43a3-8b69-33d97fc7d71c.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/a25facf1-819b-440d-9e7b-6a5dd0248a12.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/4a760398-6520-40bd-873d-36cffd3c3c75.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/5d4d780a-573e-4344-b57a-ac96326c07fa.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/5f4af617-10e5-4aa4-98a7-e0dd449b8377.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/9099b88a-be25-4883-807a-b9829f9c1bae.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/9a305671-7dcc-4f14-906c-b86f36058c97.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/c4d32e05-c082-4496-a30c-7e6831c21649.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/2a00e034-d633-4a96-81f1-5e57d3ffe6c4.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/18e960c6-6160-4640-bff8-c49d7da11365.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/74501e37-b6c9-4b51-ab44-5373087d1419.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/db7a8559-1756-45ea-bafc-f406a04be4d0.jpg', 'https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/27db7729-a72c-4359-8840-3c58eb296958.jpg'] +2024-10-23 16:01:12,717 - browser_control.py:463 - default_logger - INFO - 추출된 이미지 URL 수: 26 +2024-10-23 16:01:12,720 - browser_control.py:466 - default_logger - DEBUG - img 태그를 삭제 중... +2024-10-23 16:01:12,755 - browser_control.py:472 - default_logger - DEBUG - Updated data-value: +2024-10-23 16:01:12,760 - browser_control.py:475 - default_logger - DEBUG - img 태그 삭제 완료. +2024-10-23 16:01:12,911 - browser_control.py:479 - default_logger - DEBUG - 소스 버튼 재 클릭 완료. +2024-10-23 16:01:12,911 - browser_control.py:483 - default_logger - DEBUG - 옵션 데이터 입력 시작 +2024-10-23 16:01:12,911 - browser_control.py:489 - default_logger - DEBUG - 옵션입력 일단 제외 +2024-10-23 16:01:12,914 - browser_control.py:491 - default_logger - DEBUG - 가져온 옵션 데이터 +2024-10-23 16:01:12,914 - browser_control.py:492 - default_logger - DEBUG - {} +2024-10-23 16:01:13,093 - browser_control.py:504 - default_logger - INFO - leading_text_1 텍스트 입력 완료: --- +2024-10-23 16:01:13,830 - browser_control.py:504 - default_logger - INFO - leading_text_2 텍스트 입력 완료: # 안녕하세요 혜리수샵입니다. +2024-10-23 16:01:14,544 - browser_control.py:504 - default_logger - INFO - leading_text_3 텍스트 입력 완료: ### 마켓정책으로 인해 모든 옵션이 노출되지 않을수도 있습니다. +2024-10-23 16:01:15,339 - browser_control.py:504 - default_logger - INFO - leading_text_4 텍스트 입력 완료: ### 반드시 옵션사진과 옵션이름을 확인하시고 구매하시기 바랍니다. +2024-10-23 16:01:15,454 - browser_control.py:504 - default_logger - INFO - leading_text_5 텍스트 입력 완료: --- +2024-10-23 16:01:15,454 - gui.py:880 - default_logger - DEBUG - 현재 상품의 총 이미지 수 : 26개 +2024-10-23 16:01:15,456 - gui.py:892 - default_logger - DEBUG - 웨일 브라우저를 활용한 이미지 번역 프로세스 +2024-10-23 16:01:15,456 - whale_translator.py:270 - default_logger - DEBUG - 웨일 창을 찾았습니다.1182728 +2024-10-23 16:01:15,462 - whale_translator.py:276 - default_logger - DEBUG - 이미지 URL 주소 https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/a0ce55c9-472b-44c1-963a-3fdc1067f7c4.jpg 입력 +2024-10-23 16:01:19,375 - whale_translator.py:561 - default_logger - DEBUG - 현재 웨일 창의 제목: a0ce55c9-472b-44c1-963a-3fdc1067f7c4.jpg (740×509) - Whale +2024-10-23 16:01:19,375 - whale_translator.py:585 - default_logger - DEBUG - 이미지 해상도: 740×509 +2024-10-23 16:01:19,377 - whale_translator.py:294 - default_logger - DEBUG - 페이지 로딩 완료 후 웨일 창의 가운데로 마우스 커서 이동 +2024-10-23 16:01:19,377 - whale_translator.py:621 - default_logger - DEBUG - 마우스 커서를 추가로 50px 내림 +2024-10-23 16:01:19,480 - whale_translator.py:625 - default_logger - DEBUG - 마우스 커서를 창 중앙으로 이동: (641, 411) +2024-10-23 16:01:20,481 - whale_translator.py:303 - default_logger - DEBUG - 번역 작업을 위한 마우스 오른쪽 클릭 및 R 전송 +2024-10-23 16:01:20,481 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 16:01:21,686 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'r' 전송 준비. +2024-10-23 16:01:21,687 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'r' 전송 +2024-10-23 16:01:28,290 - whale_translator.py:325 - default_logger - DEBUG - 이미지 복사를 위한 마우스 오른쪽 클릭 및 C 전송 +2024-10-23 16:01:28,291 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 16:01:29,495 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'c' 전송 준비. +2024-10-23 16:01:29,496 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'c' 전송 +2024-10-23 16:01:30,098 - whale_translator.py:330 - default_logger - DEBUG - 클립보드에 번역된이미지 복사 대기 1s +2024-10-23 16:01:31,100 - whale_translator.py:333 - default_logger - DEBUG - 클립보드에 이미지 데이터가 존재하는지 확인 중..... +2024-10-23 16:01:31,105 - whale_translator.py:129 - default_logger - DEBUG - 클립보드에 이미지 데이터가 확인되었습니다. +2024-10-23 16:01:31,108 - whale_translator.py:336 - default_logger - INFO - 번역 성공: https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/a0ce55c9-472b-44c1-963a-3fdc1067f7c4.jpg +2024-10-23 16:01:31,108 - whale_translator.py:342 - default_logger - INFO - 번역 프로세스 완료. 웨일 기본페이지로 돌아감 +2024-10-23 16:01:31,211 - browser_control.py:543 - default_logger - DEBUG - 크롬으로 포커스를 옮기고 클립보드의 이미지를 붙여넣고 엔터 입력 +2024-10-23 16:01:31,212 - browser_control.py:619 - default_logger - DEBUG - 크롬 창으로 포커스 이동. +2024-10-23 16:01:31,215 - clipboardImageManager.py:205 - default_logger - DEBUG - is_watermark : True +2024-10-23 16:01:31,215 - clipboardImageManager.py:208 - default_logger - DEBUG - watermark_text : 혜리수샵 +2024-10-23 16:01:31,216 - clipboardImageManager.py:33 - default_logger - DEBUG - 클립보드의 텍스트 또는 이미지 데이터를 가져옵니다 +2024-10-23 16:01:31,218 - clipboardImageManager.py:41 - default_logger - DEBUG - 텍스트 데이터가 없어 이미지 데이터 확인 시도 +2024-10-23 16:01:31,220 - clipboardImageManager.py:44 - default_logger - DEBUG - 클립보드에 이미지 데이터가 확인되었습니다. +2024-10-23 16:01:31,222 - clipboardImageManager.py:212 - default_logger - DEBUG - clipboard_data +2024-10-23 16:01:31,222 - clipboardImageManager.py:213 - default_logger - DEBUG - +2024-10-23 16:01:31,224 - clipboardImageManager.py:214 - default_logger - DEBUG - ============================ +2024-10-23 16:01:31,224 - clipboardImageManager.py:247 - default_logger - INFO - [process_clipboard] 클립보드 이미지 확인 +2024-10-23 16:01:31,225 - clipboardImageManager.py:251 - default_logger - DEBUG - 클립보드에 있는 이미지 크기: 740px +2024-10-23 16:01:31,226 - clipboardImageManager.py:254 - default_logger - DEBUG - 이미지 가로 크기 200픽셀 이상: 크롭 진행 중... +2024-10-23 16:01:31,231 - clipboardImageManager.py:259 - default_logger - DEBUG - 워터마크 추가 중... +2024-10-23 16:01:31,261 - clipboardImageManager.py:58 - default_logger - DEBUG - 이미지 데이터 BMP 변환 +2024-10-23 16:01:31,263 - clipboardImageManager.py:62 - default_logger - DEBUG - 이미지 BMP 헤더 제거 +2024-10-23 16:01:31,365 - clipboardImageManager.py:74 - default_logger - DEBUG - 클립보드 데이터 저장 성공 +2024-10-23 16:01:31,366 - clipboardImageManager.py:308 - default_logger - DEBUG - 클립보드에 이미지가 존재합니다. +2024-10-23 16:01:31,469 - browser_control.py:550 - default_logger - INFO - 이미지 붙여넣기 완료. +2024-10-23 16:01:31,571 - browser_control.py:552 - default_logger - DEBUG - 이미지 붙여넣기 완료. +2024-10-23 16:01:31,571 - clipboardImageManager.py:336 - default_logger - DEBUG - 클립보드가 비워졌습니다. +2024-10-23 16:01:31,573 - browser_control.py:554 - default_logger - INFO - 이미지 붙여넣기 완료로 클립보드 비우기. +2024-10-23 16:01:31,575 - gui.py:898 - default_logger - DEBUG - https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/a0ce55c9-472b-44c1-963a-3fdc1067f7c4.jpg gui 이미지 붙여넣기 성공 +2024-10-23 16:01:31,576 - gui.py:902 - default_logger - DEBUG - Progress Update +2024-10-23 16:01:31,577 - gui.py:892 - default_logger - DEBUG - 웨일 브라우저를 활용한 이미지 번역 프로세스 +2024-10-23 16:01:31,578 - whale_translator.py:270 - default_logger - DEBUG - 웨일 창을 찾았습니다.1182728 +2024-10-23 16:01:31,580 - whale_translator.py:276 - default_logger - DEBUG - 이미지 URL 주소 https://file.percenty.co.kr/public/652bed8e865b1f32ea62bf1f/products/66fa193f73994c46d38762c7/2b30e26d-e5b5-44b9-888f-6bd0e59509a0.jpg 입력 +2024-10-23 16:01:35,500 - whale_translator.py:561 - default_logger - DEBUG - 현재 웨일 창의 제목: 2b30e26d-e5b5-44b9-888f-6bd0e59509a0.jpg (741×1042) - Whale +2024-10-23 16:01:35,502 - whale_translator.py:585 - default_logger - DEBUG - 이미지 해상도: 741×1042 +2024-10-23 16:01:35,502 - whale_translator.py:294 - default_logger - DEBUG - 페이지 로딩 완료 후 웨일 창의 가운데로 마우스 커서 이동 +2024-10-23 16:01:35,503 - whale_translator.py:621 - default_logger - DEBUG - 마우스 커서를 추가로 50px 내림 +2024-10-23 16:01:35,605 - whale_translator.py:625 - default_logger - DEBUG - 마우스 커서를 창 중앙으로 이동: (641, 411) +2024-10-23 16:01:36,607 - whale_translator.py:303 - default_logger - DEBUG - 번역 작업을 위한 마우스 오른쪽 클릭 및 R 전송 +2024-10-23 16:01:36,608 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 16:01:37,812 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'r' 전송 준비. +2024-10-23 16:01:37,813 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'r' 전송 +2024-10-23 16:01:44,416 - whale_translator.py:325 - default_logger - DEBUG - 이미지 복사를 위한 마우스 오른쪽 클릭 및 C 전송 +2024-10-23 16:01:44,417 - whale_translator.py:785 - default_logger - DEBUG - 마우스 오른쪽 클릭 시도 #1 +2024-10-23 16:01:45,633 - whale_translator.py:793 - default_logger - DEBUG - 대화상자가 감지되지 않았습니다. 키보드로 'c' 전송 준비. +2024-10-23 16:01:45,634 - whale_translator.py:800 - default_logger - DEBUG - 키보드로 'c' 전송 +2024-10-23 16:01:46,006 - gui.py:860 - default_logger - DEBUG - 프로그램을 종료합니다... +2024-10-23 16:01:46,007 - gui.py:582 - default_logger - DEBUG - Updated watermark text: 혜리수샵 diff --git a/browser_control.py b/browser_control.py index b2cfc59b..48f01fd7 100644 --- a/browser_control.py +++ b/browser_control.py @@ -538,12 +538,12 @@ class BrowserController: self.logger.error(f"이미지 URL 추출 & 옵션데이터 입력 처리 중 오류: {e}", exc_info=True) return image_urls if image_urls else [] - def paste_image_in_chrome(self, clipboardImageManager, url, is_success_translated): + def paste_image_in_chrome(self, clipboardImageManager, url, is_success_translated, toggle_states, is_watermark=False, watermark_text= "", opacity_percent=25): """크롬으로 포커스를 옮기고 클립보드의 이미지를 붙여넣고 엔터 입력""" self.logger.debug("크롬으로 포커스를 옮기고 클립보드의 이미지를 붙여넣고 엔터 입력") try: self.switch_to_chrome() # 크롬으로 포커스 이동 - clipboardImageManager.process_clipboard(original_url=url, is_success_translated=is_success_translated) # 클립보드 내용을 처리 + clipboardImageManager.process_clipboard(original_url=url, is_success_translated=is_success_translated, toggle_states=toggle_states, opacity_percent=opacity_percent) # 클립보드 내용을 처리 # clipboard_content = pyperclip.paste() if clipboardImageManager.is_clipboard_image(): pyautogui.hotkey('ctrl', 'v') # 클립보드 이미지 붙여넣기 diff --git a/clipboardImageManager.py b/clipboardImageManager.py index c69a34b4..4d919669 100644 --- a/clipboardImageManager.py +++ b/clipboardImageManager.py @@ -14,7 +14,7 @@ import asyncio import pyperclip # 클립보드 데이터를 확인하기 위한 라이브러리 class ClipboardImageManager: - def __init__(self, app, logger, browser_controller, watermark_font_size=24, debug=False): + def __init__(self, app, logger, browser_controller, watermark_font_size=36, debug=False): self.app = app self.logger = logger self.browser_controller = browser_controller # BrowserController 인스턴스를 전달받음 @@ -87,57 +87,64 @@ class ClipboardImageManager: except Exception as e: raise RuntimeError(f"이미지 저장 중 오류 발생: {e}") - # async def set_image_to_clipboard(self, image, crop_percentage=0.03, debug=False): - # """ - # 이미지를 클립보드에 넣는 함수 (Windows 전용, 크롭 후) + def add_watermark(self, image, watermark_text="Watermark", opacity_percent=30, angle=30, font_size=36): + """ + 이미지에 텍스트 워터마크를 이미지 전체에 걸쳐서 추가하는 함수 + :param image: PIL 이미지 객체 + :param watermark_text: 워터마크로 추가할 텍스트 + :param opacity_percent: 워터마크의 투명도 (0~100) + :param angle: 워터마크 텍스트 회전 각도 (기본 30도) + :param font_size: 워터마크 텍스트의 폰트 크기 (기본 36) + :return: 워터마크가 추가된 이미지 + """ + # 이미지 복사본 생성 + watermark_image = image.copy() - # :param image: PIL 이미지 객체 - # :param crop_percentage: 크롭할 비율 (0.05는 5% 크롭을 의미) - # :param debug: True일 경우 크롭 전후 다양한 비율(3%, 5%, 7%)의 이미지를 디버그 용도로 저장 - # """ - # # 이미지의 크기 계산 (크롭 비율 적용) - # width, height = image.size - # left = width * crop_percentage - # top = height * crop_percentage - # right = width * (1 - crop_percentage) - # bottom = height * (1 - crop_percentage) + # 폰트 설정 + font = ImageFont.truetype(self.font_path, font_size) - # # 크롭 적용 - # cropped_image = image.crop((left, top, right, bottom)) + # 텍스트 투명도를 0~255로 변환 + opacity = int(255 * (opacity_percent / 100)) - # if debug: - # # 디버그 모드일 경우 크롭 전후 다양한 비율로 이미지 저장 - # timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") - # original_image_path = os.path.join(os.getcwd(), f"original_image_{timestamp}.png") - # image.save(original_image_path) # 크롭 전 이미지 저장 - # self.logger.debug(f"크롭 전 이미지 저장됨: {original_image_path}") + # 텍스트 크기 측정 (textbbox 사용) + draw = ImageDraw.Draw(watermark_image) + bbox = draw.textbbox((0, 0), watermark_text, font=font) + text_width, text_height = bbox[2] - bbox[0], bbox[3] - bbox[1] - # # 3%, 5%, 7% 크롭 이미지 저장 - # crop_alternatives = [0.03, 0.05, 0.07] - # for crop in crop_alternatives: - # left_alt = width * crop - # top_alt = height * crop - # right_alt = width * (1 - crop) - # bottom_alt = height * (1 - crop) + # 이미지 크기 + width, height = image.size - # cropped_alt_image = image.crop((left_alt, top_alt, right_alt, bottom_alt)) - # cropped_image_path = os.path.join(os.getcwd(), f"cropped_image_{int(crop*100)}_{timestamp}.png") - # cropped_alt_image.save(cropped_image_path) - # self.logger.debug(f"{int(crop*100)}% 크롭된 이미지 저장됨: {cropped_image_path}") + # 워터마크 레이어 생성 + watermark_layer = Image.new("RGBA", (width, height)) # RGBA 이미지 생성 - # # 크롭된 이미지를 BMP 형식으로 변환하여 클립보드에 넣기 - # output = BytesIO() - # cropped_image.save(output, "BMP") - # data = output.getvalue()[14:] # BMP 헤더 제거 - # output.close() + # 지그재그 간격 설정 + zigzag_step = int(text_height * 2) # Y축의 지그재그 간격 - # # 클립보드에 이미지 데이터 넣기 - # win32clipboard.OpenClipboard() - # win32clipboard.EmptyClipboard() - # win32clipboard.SetClipboardData(win32clipboard.CF_DIB, data) - # win32clipboard.CloseClipboard() - # self.logger.debug(f"{crop_percentage*100}% 크롭된 이미지가 클립보드에 저장되었습니다.") + # 이미지 전체에 반복적으로 워터마크 텍스트 그리기 (지그재그 형태) + for y in range(0, height, zigzag_step): + for x in range(0, width, int(text_width * 3)): # 3배 너비 간격으로 반복 + # 텍스트가 한 줄씩 지그재그 형태로 X축을 교차하여 이동 + x_offset = (y // zigzag_step) % 2 * int(text_width * 1.5) # 짝수 행에서는 X축을 약간 이동 + + # 텍스트 레이어 생성 + text_layer = Image.new("RGBA", (text_width, text_height), (255, 255, 255, 0)) + text_draw = ImageDraw.Draw(text_layer) + + # 텍스트 그리기 + text_draw.text((0, 0), watermark_text, fill=(255, 255, 255, opacity), font=font) + + # 텍스트 회전 + rotated_text_layer = text_layer.rotate(angle, expand=1) + + # 회전된 텍스트를 워터마크 레이어에 추가 + watermark_layer.paste(rotated_text_layer, (x + x_offset, y), rotated_text_layer) + + # 원본 이미지와 워터마크 레이어 합성 + watermark_image = Image.alpha_composite(watermark_image.convert("RGBA"), watermark_layer) + + # 최종적으로 RGB 형식으로 변환 후 반환 + return watermark_image.convert("RGB") def base64_to_image(self, base64_data): """Base64 데이터를 이미지로 변환하는 함수""" @@ -197,10 +204,16 @@ class ClipboardImageManager: self.logger.debug("이미지 다운로드 최대 재시도 횟수를 초과했습니다.") return None - def process_clipboard(self, original_url, is_success_translated, path=None): + def process_clipboard(self, original_url, is_success_translated, toggle_states, opacity_percent, path=None): """클립보드의 내용을 처리하고, 필요한 경우 이미지 변환, 크롭 또는 클립보드 비우기""" try: + is_watermark = toggle_states['watermark'] + self.logger.debug(f"is_watermark : {is_watermark}") + + watermark_text = toggle_states['watermark_text'] + self.logger.debug(f"watermark_text : {watermark_text}") + clipboard_data = self.get_clipboard_data() self.logger.debug("clipboard_data") @@ -219,6 +232,13 @@ class ClipboardImageManager: if width >= 200: self.logger.debug("이미지 가로 크기 200픽셀 이상: 크롭 진행 중...") cropped_image = self.crop_image(image) # 크롭 메서드 사용 + + # 워터마크 추가 + if is_watermark: + self.logger.debug("워터마크 추가 중...") + cropped_watermark_image = self.add_watermark(cropped_image, watermark_text, opacity_percent) # 워터마크 추가 + cropped_image = cropped_watermark_image + self.set_image_to_clipboard(cropped_image) # 클립보드에 저장 if path: self.logger.debug("이미지 저장 시도...") @@ -240,6 +260,13 @@ class ClipboardImageManager: if width >= 200: self.logger.debug("이미지 가로 크기 200픽셀 이상: 크롭 진행 중...") cropped_image = self.crop_image(image) # 크롭 메서드 사용 + + # 워터마크 추가 + if is_watermark: + self.logger.debug("워터마크 추가 중...") + cropped_watermark_image = self.add_watermark(cropped_image, watermark_text, opacity_percent) # 워터마크 추가 + cropped_image = cropped_watermark_image + self.set_image_to_clipboard(cropped_image) # 클립보드에 저장 if path: self.logger.debug("이미지 저장 시도...") @@ -261,7 +288,13 @@ class ClipboardImageManager: if original_url: image = self.download_image_from_url(original_url) if image: - self.logger.debug("원본 이미지 다운로드 성공, 클립보드에 저장 중...") + self.logger.debug("원본 이미지 다운로드 성공!") + + # 워터마크 추가 + if is_watermark: + self.logger.debug("워터마크 추가 중...") + image = self.add_watermark(image, watermark_text, opacity_percent) # 워터마크 추가 + self.set_image_to_clipboard(image) # 크롭 없이 저장 if path: self.logger.debug("이미지 저장 시도...") diff --git a/gui.py b/gui.py index b79f0dcf..43e4adc6 100644 --- a/gui.py +++ b/gui.py @@ -54,7 +54,7 @@ class TranslationApp(QWidget): self.db_manager = DatabaseManager(db_url=f"sqlite:///{self.user_db_path}", logger=self.logger) self.cmb_diag = CMBSettingsDialog(parent=self, logger=self.logger, db_manager=self.db_manager, initial_db_path=self.initial_db_path, user_db_path=self.user_db_path, debug=self.debug) - self.clipboardImageManager = ClipboardImageManager(self, logger, self.browser_controller, self.debug) + self.clipboardImageManager = ClipboardImageManager(self, logger, self.browser_controller, watermark_font_size=36, debug=self.debug) self.optionHandler = OptionHandler(self.locator_manager, self.browser_controller, self.whale_translator, self.logger, self.vertexAI, self.debug) self.priceHandler = PriceHandler(self.locator_manager, self.browser_controller, self.logger, self.optionHandler, self.vertexAI, self.cmb_diag, self.debug) self.titleHandler = TitleHandler(self.locator_manager, self.browser_controller, self.logger) @@ -89,6 +89,9 @@ class TranslationApp(QWidget): 'detail_IMGTrans': False, 'debug_mode': False, 'vd_mode': False, + 'watermark': False, # 워터마크 토글 추가 + 'watermark_text': "WaterMark", # 워터마크 텍스트 저장 + 'opacity_percent': 35, # 워터마크 투명도 } # self.title_modify = False @@ -306,6 +309,36 @@ class TranslationApp(QWidget): self.vd_mode_toggle.setVisible(False) self.vd_mode_toggle_label.setVisible(False) + # 워터마크 토글 추가 + self.watermark_toggle_label = QLabel("워터마크", self) + self.watermark_toggle = ToggleSwitch(self) + self.watermark_toggle.clicked.connect(lambda checked: self.on_toggle_clicked_generic('watermark', checked)) + self.toggle_layout.addWidget(self.watermark_toggle_label, 6, 0) + self.toggle_layout.addWidget(self.watermark_toggle, 6, 1) + + + # 워터마크 관련 UI 요소 생성 + self.watermark_text_label = QLabel("회사 이름", self) + self.watermark_text_input = QLineEdit(self) + self.watermark_text_input.returnPressed.connect(self.update_watermark_text) + self.watermark_confirm_button = QPushButton("확인", self) + + # 확인 버튼 클릭 시 watermark_text 업데이트 + self.watermark_confirm_button.clicked.connect(self.update_watermark_text) + + # 워터마크 관련 요소들을 하나의 QHBoxLayout에 추가 (비율 2:3:1) + watermark_layout = QHBoxLayout() + watermark_layout.addWidget(self.watermark_text_label, 2) + watermark_layout.addWidget(self.watermark_text_input, 3) + watermark_layout.addWidget(self.watermark_confirm_button, 1) + + # 필요한 레이아웃에 추가 (toggle_layout에 추가) + self.toggle_layout.addLayout(watermark_layout, 7, 0, 1, 4) + + # 초기에는 워터마크 입력창과 버튼 숨김 + self.toggle_visibility(False, [(self.watermark_text_input, self.watermark_text_label), (self.watermark_confirm_button, None)]) + + # 관리자 토글 self.admin_toggle = ToggleSwitch(self) self.admin_toggle.clicked.connect(self.on_admin_toggle_clicked) @@ -442,6 +475,39 @@ class TranslationApp(QWidget): toggle_widget = getattr(self, f"{key}_toggle") toggle_widget.setChecked(self.toggle_states[key]) + # 워터마크 토글과 연관된 회사 이름 입력란 처리 + if key == 'watermark': + self.on_watermark_toggle_clicked(self.toggle_states[key]) # 워터마크 토글 상태에 맞게 회사 이름 필드 처리 + + def update_watermark_visibility(self): + """이미지 번역 토글 중 하나라도 켜져 있으면 워터마크 토글을 보이게 하고, visible이 되면 상태에 따라 레이아웃도 제어""" + if self.toggle_states['optionIMGTrans'] or self.toggle_states['detail_IMGTrans'] or self.toggle_states['thumb']: + # 이미지 번역 토글이 하나라도 켜져 있으면 워터마크 토글 보이기 + self.toggle_visibility(True, [(self.watermark_toggle, self.watermark_toggle_label)]) + + # 워터마크 토글이 보이게 될 때 상태 확인 + if self.watermark_toggle.isChecked(): + # 워터마크 토글이 ON 상태이면 워터마크 레이아웃도 보이게 함 + self.toggle_visibility(True, [(self.watermark_text_input, self.watermark_text_label), (self.watermark_confirm_button, None)]) + else: + # 워터마크 토글이 OFF 상태이면 워터마크 레이아웃 숨김 + self.toggle_visibility(False, [(self.watermark_text_input, self.watermark_text_label), (self.watermark_confirm_button, None)]) + else: + # 모두 꺼져 있으면 워터마크 토글과 레이아웃 숨기기 + self.toggle_visibility(False, [(self.watermark_toggle, self.watermark_toggle_label)]) + self.toggle_visibility(False, [(self.watermark_text_input, self.watermark_text_label), (self.watermark_confirm_button, None)]) + + def toggle_visibility(self, is_checked, toggle_items): + """ + 토글 상태에 따라 여러 필드의 visibility를 제어하는 범용 메서드 + :param is_checked: 토글 상태 (True/False) + :param toggle_items: 토글 필드와 레이블 목록 [(필드, 레이블), ...] + """ + for item, label in toggle_items: + item.setVisible(is_checked) + if label: + label.setVisible(is_checked) + def on_toggle_clicked_generic(self, key, is_checked): """토글 클릭 시 상태 업데이트 및 저장""" self.toggle_states[key] = is_checked @@ -472,76 +538,48 @@ class TranslationApp(QWidget): label_text = self.detail_Option_toggle_label.text() elif key == 'detail_IMGTrans': label_text = self.detail_IMGTrans_toggle_label.text() - self.on_vd_mode_for_detail_imageTrans_clicked(is_checked) elif key == 'debug_mode': label_text = self.debug_toggle_label.text() elif key == 'vd_mode': label_text = self.vd_mode_toggle_label.text() + elif key == 'watermark': + label_text = self.watermark_toggle_label.text() # 디버그 로그에 라벨의 텍스트를 출력 - self.logger.debug(f"{label_text} 버튼 - {status_text} 선택") + + # 이미지 번역 관련 토글이 하나라도 켜져 있으면 워터마크 토글 보이기 + if key in ['optionIMGTrans', 'detail_IMGTrans', 'thumb']: + self.update_watermark_visibility() + + # 워터마크 토글이 켜져 있으면 watermark_layout 보이기 + if key == 'watermark': + self.toggle_visibility(is_checked, [ + (self.watermark_text_input, self.watermark_text_label), + (self.watermark_confirm_button, None) + ]) + self.save_toggle_settings() - # def on_title_toggle_clicked(self, is_checked): - # if is_checked: - # self.title_modify = True - # else: - # self.title_modify = False + def on_watermark_toggle_clicked(self, is_checked): + """워터마크 토글 여부에 따라 회사 이름 입력 필드와 확인 버튼을 표시/숨김""" + if is_checked: + self.watermark_text_label.setVisible(True) + self.watermark_text_input.setVisible(True) + self.watermark_confirm_button.setVisible(True) # 확인 버튼도 함께 표시 - # def on_optionTrnas_toggle_clicked(self, is_checked): - # if is_checked: - # self.optionTrnas_modify = True - # else: - # self.optionTrnas_modify = False + # 워터마크 텍스트 입력 필드의 내용을 딕셔너리에 저장 + self.toggle_states['watermark_text'] = self.watermark_text_input.text() - # def on_optionIMGTrans_toggle_clicked(self, is_checked): - # if is_checked: - # self.optionIMGTrans_modify = True - # else: - # self.optionIMGTrans_modify = False + else: + self.watermark_text_label.setVisible(False) + self.watermark_text_input.setVisible(False) + self.watermark_confirm_button.setVisible(False) # 확인 버튼도 함께 숨김 - # def on_optionAutoSelect_toggle_clicked(self, is_checked): - # if is_checked: - # self.optionAutoSelect_modify = True - # else: - # self.optionAutoSelect_modify = False - - # def on_price_toggle_clicked(self, is_checked): - # if is_checked: - # self.price_modify = True - # else: - # self.price_modify = False - - # def on_thumb_toggle_clicked(self, is_checked): - # if is_checked: - # self.thumb_modify = True - # else: - # self.thumb_modify = False - - # def on_tag_toggle_clicked(self, is_checked): - # if is_checked: - # self.tag_modify = True - # else: - # self.tag_modify = False - - # def on_detail_Option_toggle_clicked(self, is_checked): - # if is_checked: - # self.detail_Option_modify = True - # else: - # self.detail_Option_modify = False - - # def on_detail_IMGTrans_toggle_clicked(self, is_checked): - # if is_checked: - # self.detail_IMGTrans_modify = True - # else: - # self.detail_IMGTrans_modify = False - - # def on_debug_toggle_clicked(self, is_checked): - # if is_checked: - # self.debug_mode = True - # else: - # self.debug_mode = False + def update_watermark_text(self): + """QLineEdit에 입력된 텍스트를 toggle_states['watermark_text']에 저장""" + self.toggle_states['watermark_text'] = self.watermark_text_input.text() + self.logger.debug(f"Updated watermark text: {self.toggle_states['watermark_text']}") def on_admin_toggle_clicked(self, is_checked): """관리자 토글 상태에 따라 관리자와 직원 필드를 표시/숨김""" @@ -649,6 +687,8 @@ class TranslationApp(QWidget): self.settings.setValue("user/id", self.user_id_input.text()) self.settings.setValue("user/pw", self.user_pw_input.text()) self.settings.setValue("admin/toggle", self.admin_toggle.isChecked()) + self.settings.setValue("watermark_text", self.watermark_text_input.text()) + self.update_watermark_text() def load_settings(self): """QSettings에서 사용자 정보 불러오기""" @@ -660,6 +700,11 @@ class TranslationApp(QWidget): self.admin_toggle.setChecked(admin_toggle_state) self.on_admin_toggle_clicked(admin_toggle_state) + self.watermark_text_input.setText(self.settings.value("watermark_text", "")) + self.update_watermark_text() + + self.load_toggle_settings() + def update_total_progress(self, current_value, total_value): if current_value == 0: @@ -847,7 +892,8 @@ class TranslationApp(QWidget): self.logger.debug(f"웨일 브라우저를 활용한 이미지 번역 프로세스") is_success_translated = self.whale_translator.translate_image(url) - is_paste_success = self.browser_controller.paste_image_in_chrome(self.clipboardImageManager, url, is_success_translated) + opacity_percent=35 + is_paste_success = self.browser_controller.paste_image_in_chrome(self.clipboardImageManager, url, is_success_translated, self.toggle_states, opacity_percent=opacity_percent) if is_paste_success: self.logger.debug(f"{url} gui 이미지 붙여넣기 성공") else: