파일 업로드 시 mattermost로 알리는 부분에서 이미지 파일과 url을 함께 전송하도록 수정.

This commit is contained in:
2025-12-19 10:39:43 +09:00
parent bfd7d06e5b
commit cda9cd6543
2 changed files with 26 additions and 10 deletions

View File

@ -2,8 +2,10 @@
# 필수 설정 항목 (반드시 작성해야 함)
# =====================================
# 사이트 기본 URL
URL=https://example.com
# 게시판 설정
BOARD_ID=news
BOARD_ID=게시판이름
BOARD_CA_NAME=카테고리명
BOARD_CONTENT=글 내용
BOARD_MB_ID=user_id

View File

@ -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"] = """
<p>Rainy Day 이벤트 적용안내</p>
<p><b>10:00 ~ 22:00까지의 예보를 합산하며, ~1mm인 경우 0.5mm로 계산합니다.</b></p>
<p><b>10:00 ~ 21:00까지의 예보를 합산하며, ~1mm인 경우 0.5mm로 계산합니다.</b></p>
<p>레이니데이 이벤트 정보 확인</p>
<p><a href="https://firstgarden.co.kr/news/60">이벤트 정보 보기</a></p>
"""
@ -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
)