파일 업로드 시 mattermost로 알리는 부분에서 이미지 파일과 url을 함께 전송하도록 수정.
This commit is contained in:
@ -2,8 +2,10 @@
|
||||
# 필수 설정 항목 (반드시 작성해야 함)
|
||||
# =====================================
|
||||
|
||||
# 사이트 기본 URL
|
||||
URL=https://example.com
|
||||
# 게시판 설정
|
||||
BOARD_ID=news
|
||||
BOARD_ID=게시판이름
|
||||
BOARD_CA_NAME=카테고리명
|
||||
BOARD_CONTENT=글 내용
|
||||
BOARD_MB_ID=user_id
|
||||
|
||||
@ -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:
|
||||
# 무료입장 조건에 대해서만 안내함.
|
||||
# .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
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user