번역 전 url 확인 후 asset 이미지 패스처리

url 이미지 크기 확인불가시 jpg 또는 png 확인 되면 그대로 번역 진행
This commit is contained in:
Envy_PC 2024-10-26 15:33:03 +09:00
parent a5c98e3512
commit 7d2e681f7f
1 changed files with 31 additions and 31 deletions

View File

@ -264,8 +264,12 @@ class WhaleTranslator:
# 웨일 창을 찾지 못했을 경우 사용자에게 입력 받기
self.logger.debug("웨일 창을 찾지 못했습니다. 새로운 웨일창 호출.")
self.create_and_update_whale_window()
if url.startswith("https://assets.alicdn.com"):
self.logger.debug("assets.alicdn.com 확인 : 번역작업을 패스합니다.")
return False
if self.whale_hwnd:
elif self.whale_hwnd:
try:
self.logger.debug(f"웨일 창을 찾았습니다.{self.whale_hwnd}")
@ -567,50 +571,46 @@ class WhaleTranslator:
self.logger.error(f"현재 웨일 창의 제목을 가져올 수 없습니다. : {e}", exc_info = True)
return window_title
def check_image_size(self, url, min_width=200, min_height=150):
"""
현재 활성화된 웨일 창의 이름을 가져온
제목에서 이미지의 해상도를 확인, 일정 크기 이하인 경우 작업을 패스하도록 처리합니다.
제목에서 이미지의 해상도를 확인하고, 일정 크기 이하인 경우 작업을 패스하도록 처리합니다.
"""
window_title = self.get_whale_window_title()
# 해상도를 추출하기 위해 제목에서 괄호 안의 (숫자×숫자) 부분을 찾음
if not window_title == self.whale_window_name:
match = re.search(r"\((\d+)×(\d+)\)", window_title)
if match:
width = int(match.group(1))
height = int(match.group(2))
self.logger.debug(f"이미지 해상도: {width}×{height}")
# 해상도가 기준보다 작은 경우 패스
if width < min_width or height < min_height:
self.logger.debug(f"이미지 해상도가 기준이하 [{min_width} x {min_height}]입니다. 작업을 패스합니다.")
return False # 작업을 수행하지 않음
return True # 작업을 계속 진행
elif window_title == self.whale_window_name:
self.logger.warning("이미지 주소로 이동하지 못하여 이미지 해상도를 가져오지 못했습니다.")
self.enter_url(url)
try:
# 현재 웨일 창의 제목 가져오기
window_title = self.get_whale_window_title()
# 창 제목이 초기 웨일 창 제목과 동일하다면 URL로 이동하여 새로 업데이트
if window_title == self.whale_window_name:
self.logger.warning("이미지 주소로 이동하지 못하여 이미지 해상도를 가져오지 못했습니다.")
self.enter_url(url)
window_title = self.get_whale_window_title()
# 가져온 창 제목에서 해상도 추출 시도
match = re.search(r"\((\d+)×(\d+)\)", window_title)
if match:
# 해상도가 있는 경우, 너비와 높이를 기준으로 작업 처리
width = int(match.group(1))
height = int(match.group(2))
self.logger.debug(f"이미지 해상도: {width}×{height}")
self.logger.info(f"이미지 해상도: {width}×{height}")
# 해상도가 기준보다 작은 경우 패스
if width < min_width or height < min_height:
self.logger.debug(f"이미지 해상도가 기준이하 [{min_width} x {min_height}]입니다. 작업을 패스합니다.")
if width < min_width or height < min_height:
self.logger.info(f"이미지 해상도가 기준 이하 [{min_width} x {min_height}]입니다. 작업을 패스합니다.")
return False # 작업을 수행하지 않음
return True # 작업을 계속 진행
return True # 해상도 조건을 만족하면 작업을 진행
else:
# 해상도가 없다면, 파일 확장자를 확인하여 번역 여부 결정
elif window_title.endswith(".jpg") or window_title.endswith(".png"):
self.logger.info("이미지 해상도가 없지만, 파일 확장자가 .jpg 또는 .png입니다. 번역 작업을 진행합니다.")
return True # 해상도가 없어도 번역 작업을 수행
# 해상도도 없고, 파일 확장자도 매칭되지 않는 경우
self.logger.warning("이미지 해상도가 존재하지 않고 파일 확장자도 일치하지 않습니다. 작업을 패스합니다.")
return False
except Exception as e:
self.logger.error(f"이미지 사이즈 측정 중 오류발생: {e}", exc_info=True)
self.logger.error("웨일 창을 찾을 수 없습니다.")
return False
def move_mouse_to_center(self):
"""웨일 브라우저 창의 중앙으로 마우스 커서를 이동"""