diff --git a/.env.example b/.env.example index 5192bb8..74208f9 100644 --- a/.env.example +++ b/.env.example @@ -2,8 +2,10 @@ # 필수 설정 항목 (반드시 작성해야 함) # ===================================== +# 사이트 기본 URL +URL=https://example.com # 게시판 설정 -BOARD_ID=news +BOARD_ID=게시판이름 BOARD_CA_NAME=카테고리명 BOARD_CONTENT=글 내용 BOARD_MB_ID=user_id diff --git a/app/gnu_autoupload.py b/app/gnu_autoupload.py index f49fe8e..33544fb 100644 --- a/app/gnu_autoupload.py +++ b/app/gnu_autoupload.py @@ -178,7 +178,7 @@ def file_upload(filename, bf_file, msg_sender=None): # --------------------------- # 게시글 작성 함수 # --------------------------- -def write_board(board, subject, content, mb_id, nickname, ca_name=None, file_list=None, msg_sender=None): +def write_board(board, subject, content, mb_id, nickname, ca_name=None, file_list=None, msg_sender=None, url=None): """ 그누보드 게시글 및 첨부파일 등록 @@ -191,9 +191,10 @@ def write_board(board, subject, content, mb_id, nickname, ca_name=None, file_lis ca_name: 카테고리 이름 (선택사항) file_list: 첨부파일 경로 리스트 (선택사항) msg_sender: MessageSender 인스턴스 + url: 게시판 URL (선택사항) Returns: - tuple: (성공여부, 에러메시지) + tuple: (성공여부, 에러메시지, wr_id) """ conn = None try: @@ -289,10 +290,21 @@ def write_board(board, subject, content, mb_id, nickname, ca_name=None, file_lis f"📝 제목: {subject}\n"\ f"📎 첨부파일: {file_count}개" + # 캡처파일 정보 추가 (file_list에 2개 이상의 파일이 있을 경우) + if file_list and len(file_list) > 1 and os.path.isfile(file_list[1]): + capture_filename = os.path.basename(file_list[1]) + capture_size = os.path.getsize(file_list[1]) / 1024 # KB 단위 + success_msg += f"\n🖼️ 캡처파일: `{capture_filename}` ({capture_size:.1f}KB)" + + # 게시글 링크 추가 + if url and board: + post_url = f"{url.rstrip('/')}/{board}/{wr_id}" + success_msg += f"\n🔗 게시글 링크: {post_url}" + if msg_sender: msg_sender.send(success_msg, platforms=['mattermost']) - return True, None + return True, None, wr_id except Exception as e: if conn: @@ -314,7 +326,7 @@ def write_board(board, subject, content, mb_id, nickname, ca_name=None, file_lis if msg_sender: msg_sender.send(error_msg, platforms=['mattermost']) - return False, error_msg + return False, error_msg, None finally: if conn: @@ -335,10 +347,11 @@ def main(): logger.warning("Mattermost 알림이 비활성화됩니다") try: - # 무료입장 조건에 대해서만 안내함. - MAIN["content"] = """ + # .env의 BOARD_CONTENT 사용 (또는 기본값 설정) + if not MAIN.get("content"): + MAIN["content"] = """

Rainy Day 이벤트 적용안내

-

10:00 ~ 22:00까지의 예보를 합산하며, ~1mm인 경우 0.5mm로 계산합니다.

+

10:00 ~ 21:00까지의 예보를 합산하며, ~1mm인 경우 0.5mm로 계산합니다.

레이니데이 이벤트 정보 확인

이벤트 정보 보기

""" @@ -365,8 +378,7 @@ def main(): file_list = [MAIN['file1'], MAIN['file2']] - # 게시글 작성 - success, error = write_board( + # 게시글 작성, wr_id = write_board( board=MAIN['board'], subject=MAIN['subject'], content=MAIN['content'], @@ -374,6 +386,8 @@ def main(): nickname=MAIN['nickname'], ca_name=MAIN['ca_name'], file_list=file_list, + msg_sender=msg_sender, + url=MAIN.get('url') msg_sender=msg_sender )