authenticated_by_admin 값으로 모든회원에게 VIP 인페인팅 제공기능 추가

This commit is contained in:
Envy_PC 2025-07-13 22:39:47 +09:00
parent 8cb5475350
commit 1cb25533b3
6 changed files with 17 additions and 8 deletions

1
.gitignore vendored
View File

@ -4,6 +4,7 @@ Scripts/
__pycache__/
build/
dist/
src/temp_images/
pyvenv.cfg
*.log
*.log.*

Binary file not shown.

View File

@ -69,6 +69,7 @@ class MAIN_GUI(QMainWindow):
# 사용자 정보 저장 (user_id 등)
self.user_info = user_info
self.user_membership_level = user_info.get('membership_level')
self.authenticated_by_admin = user_info.get("authenticated_by_admin")
self.sp_user_id = user_info.get("id") # 예를 들어, 'users' 테이블의 PK 값
self.image_processor = None
@ -1144,6 +1145,8 @@ class MAIN_GUI(QMainWindow):
def on_detailIMGTrans_type_combo_changed(self, selected_option):
"""상세페이지 이미지번역 엔진 드롭박스 변경 핸들러"""
if not self.authenticated_by_admin:
return
validated_option = self.validate_and_adjust_option(
self.detail_IMGTrans_type_combo,
selected_option,
@ -1153,6 +1156,8 @@ class MAIN_GUI(QMainWindow):
def on_thumb_trans_type_combo_changed(self, selected_option):
"""썸네일 번역 엔진 드롭박스 변경 핸들러"""
if not self.authenticated_by_admin:
return
validated_option = self.validate_and_adjust_option(
self.thumb_trans_type_combo,
selected_option,
@ -1162,6 +1167,8 @@ class MAIN_GUI(QMainWindow):
def on_optionIMGTrans_type_combo_changed(self, selected_option):
"""옵션 이미지번역 엔진 드롭박스 변경 핸들러"""
if not self.authenticated_by_admin:
return
validated_option = self.validate_and_adjust_option(
self.optionIMGTrans_type_combo,
selected_option,
@ -5125,7 +5132,7 @@ class MAIN_GUI(QMainWindow):
try:
if is_trans_enabled:
from src.modules.image_processor3 import ImageProcessor3
self.image_processor = ImageProcessor3(self.logger, self.browser_controller.page, self.toggle_states, self.toggle_states['unwanted_words'], self.base_dir)
self.image_processor = ImageProcessor3(self.logger, self.browser_controller.page, self.toggle_states, self.toggle_states['unwanted_words'], self.authenticated_by_admin, self.base_dir)
self.browser_controller.image_processor = self.image_processor
except Exception as e:
self.logger.log(f"ImageProcessor3 초기화 중 오류 발생: {e}", level=logging.ERROR, exc_info=True)

View File

@ -299,10 +299,10 @@ class DetailHandler:
await input_field.type('---')
await input_field.press('Enter')
self.logger.info('옵션 목록 입력 완료')
self.logger.log('옵션 목록 입력 완료', level=logging.INFO)
except Exception as e:
self.logger.error(f"옵션 목록 입력 중 오류 발생: {str(e)}")
self.logger.log(f"옵션 목록 입력 중 오류 발생: {str(e)}", level=logging.ERROR, exc_info=True)
raise
async def input_detail_text(self, optionHandler):
@ -336,16 +336,16 @@ class DetailHandler:
if option_data and len(option_data) > 0:
# 옵션이 2개 이상이면 무조건 다중 옵션으로 처리
if len(option_data) > 1:
self.logger.info(f"다중 옵션 감지 ({len(option_data)}개), 옵션 목록 입력 시작")
self.logger.log(f"다중 옵션 감지 ({len(option_data)}개), 옵션 목록 입력 시작", level=logging.DEBUG)
await self.input_option_list(option_data)
else:
# 옵션이 1개인 경우에만 is_single 값 확인
is_single = optionHandler.option_info.get('is_single_option', True)
if not is_single:
self.logger.info("단일 옵션이 아님, 옵션 목록 입력 시작")
self.logger.log("단일 옵션이 아님, 옵션 목록 입력 시작", level=logging.DEBUG)
await self.input_option_list(option_data)
else:
self.logger.info("단일 옵션 상품으로 판단, 옵션 목록 입력 건너뜀")
self.logger.log("단일 옵션 상품으로 판단, 옵션 목록 입력 건너뜀", level=logging.DEBUG)
except Exception as e:
self.logger.log(f"상세페이지 텍스트 입력 중 오류 발생: {e}", level=logging.ERROR)

View File

@ -25,12 +25,13 @@ from src.modules.request_inpaint import RequestInpainting
class ImageProcessor3:
"""이미지 다운로드, OCR, 번역 처리를 담당하는 클래스"""
def __init__(self, logger, browser_page, toggle_states, unwanted_words, base_dir):
def __init__(self, logger, browser_page, toggle_states, unwanted_words, authenticated_by_admin, base_dir):
self.logger = logger
self.page = browser_page
self.base_dir = base_dir
self.toggle_states = toggle_states
self.unwanted_texts = unwanted_words
self.authenticated_by_admin = authenticated_by_admin
self.inpaint_method = 'cv'
try:
@ -212,7 +213,7 @@ class ImageProcessor3:
# 인페인팅
# is_member_valid = self.toggle_states.get('membership_level', 'basic') == 'premium' or self.toggle_states.get('membership_level', 'basic') == 'vip'
is_member_valid = self.toggle_states.get('membership_level', 'basic') == 'vip'
is_member_valid = self.toggle_states.get('membership_level', 'basic') == 'vip' or self.authenticated_by_admin
self.logger.log(f"ocr_count: {ocr_count}", level=logging.DEBUG)
self.logger.log(f"is_member_valid: {is_member_valid}", level=logging.DEBUG)