Github Actions의 설정과 학사일정의 대한 정보 추가 및 인스타 업로드 연동

This commit is contained in:
암냥 2025-02-11 23:53:09 +09:00
commit 468676c432
5 changed files with 201 additions and 78 deletions

33
app/force-event.py Normal file
View file

@ -0,0 +1,33 @@
import json
from instagrapi import Client
from datetime import datetime, timedelta
import library.lib as lib
with open('./config.json') as json_file:
json_data = json.load(json_file)
KEY = json_data['KEY']
ROOT = json_data['ROOT']
font = f"{ROOT}/library/Pretendard-Bold.ttf"
WEBHOOK_URL = json_data['WEBHOOK_URL']
print("🍪 | Retrieving saved account information.")
cl = Client(json.load(open('./temp/auth/cookies.json')))
cl.set_proxy("socks5h://localhost:9999")
print("🍪 | Account information was successfully retrieved.")
오늘 = datetime.today()
내일 = 오늘 + timedelta(days=1)
MLSV_YMD = (datetime.now() + timedelta(days=1)).strftime('%Y%m%d')
print("📅 | Today is the last day of the month.")
print("📆 | Uploading School Event Post")
학사일정_경로 = lib.학사일정_얻기(MLSV_YMD)
cl.photo_upload(
학사일정_경로,
caption=f"#인천상정중학교 #상정중학교 #학사일정 \n{내일.strftime("%Y")}{내일.strftime("%m")}월 학사일정",
extra_data={'is_paid_partnership': False}
)
print("📆 | School Event Post Uploaded")
print("🎉 | All tasks completed.")

View file

@ -1,78 +1,81 @@
{
"02": {
"0": {
"start": 20250208,
"end": 20250302,
"data": "겨울방학 & 봄방학"
"last_update": "20250211",
"event": {
"02": {
"0": {
"start": 20250208,
"end": 20250302,
"data": "겨울방학 & 봄방학"
}
},
"1": {
"start": 20250303,
"end": 20250303,
"data": "입학식"
}
},
"03": {
"0": {
"start": 20250301,
"end": 20250303,
"data": "삼일절"
}
},
"04": {
"0": {
"start": 20250410,
"end": 20250410,
"data": "22대 국회의원선거"
}
},
"05": {
"0": {
"start": 20250505,
"end": 20250505,
"data": "어린이날"
"03": {
"0": {
"start": 20250301,
"end": 20250303,
"data": "삼일절"
},
"1": {
"start": 20250304,
"end": 20250304,
"data": "입학식"
}
},
"1": {
"start": 20250505,
"end": 20250506,
"data": "부처님오신날"
}
},
"06": {
"0": {
"start": 20250606,
"end": 20250606,
"data": "현충일"
}
},
"08": {
"0": {
"start": 20250815,
"end": 20250815,
"data": "광복절"
}
},
"10": {
"0": {
"start": 20251003,
"end": 20251003,
"data": "개천절"
"04": {
"0": {
"start": 20250410,
"end": 20250410,
"data": "22대 국회의원선거"
}
},
"1": {
"start": 20251005,
"end": 20251008,
"data": "추석"
"05": {
"0": {
"start": 20250505,
"end": 20250505,
"data": "어린이날"
},
"1": {
"start": 20250505,
"end": 20250506,
"data": "부처님오신날"
}
},
"2": {
"start": 20251009,
"end": 20251009,
"data": "한글날"
}
},
"12": {
"0": {
"start": 20251225,
"end": 20251225,
"data": "크리스마스"
"06": {
"0": {
"start": 20250606,
"end": 20250606,
"data": "현충일"
}
},
"08": {
"0": {
"start": 20250815,
"end": 20250815,
"data": "광복절"
}
},
"10": {
"0": {
"start": 20251003,
"end": 20251003,
"data": "개천절"
},
"1": {
"start": 20251005,
"end": 20251008,
"data": "추석"
},
"2": {
"start": 20251009,
"end": 20251009,
"data": "한글날"
}
},
"12": {
"0": {
"start": 20251225,
"end": 20251225,
"data": "크리스마스"
}
}
}
}

View file

@ -72,7 +72,8 @@ def 학사일정_얻기():
print("오늘은 사실", 오늘, "이였다")
with open(f"{ROOT}/library/event/{오늘.strftime("%Y")}.json") as json_file:
json_data = json.load(json_file)
학사일정 = json_data[str(오늘.strftime("%m"))]
마지막_업데이트 = json_data["last_update"]
학사일정 = json_data["event"][str(오늘.strftime("%m"))]
# print(f"{ROOT}/library/skeleton.png")
사진 = Image.open(f"{ROOT}/library/skeleton_schoolevent.png")
@ -100,12 +101,15 @@ def 학사일정_얻기():
세부요소 = ImageDraw.Draw(사진)
세부요소.text((810, 80), f"{오늘.strftime("%Y")}{오늘.strftime("%m")}", font=세부_폰트, fill=(255, 255, 255))
#세부요소.text((825, 200), f"{급식_칼로리_얻기(MLSV_YMD)}", font=세부_폰트, fill=(137, 202, 255))
def 포맷팅된_날짜(날짜:str):
return f"{날짜[:4]}{날짜[4:6]}{날짜[6:8]}"
세부요소.text((591, 200), f"마지막 업데이트 : {포맷팅된_날짜(마지막_업데이트)}", font=세부_폰트, fill=(137, 202, 255))
사진.save(f'{ROOT}/temp/{오늘.strftime("%Y")}_{오늘.strftime("%m")}.png')
print("🍲 | Meal Info Image Saved")
return f'{ROOT}/temp/{오늘.strftime("%Y")}_{오늘.strftime("%m")}.png'
def 스토리_얻기(MLSV_YMD:str):
print("이건 왜?")
# 1:1 to 9:16 temp/{MLSV_YMD}.png

View file

@ -54,13 +54,18 @@ print("🗨️ | Uploaded at Discord")
print(f"📆 | Today Date : {MLSV_YMD}")
# Check if today is the last day of the month
today = datetime.now()
first_day_of_next_month = today.replace(day=28) + timedelta(days=4)
last_day_of_this_month = first_day_of_next_month - timedelta(days=first_day_of_next_month.day)
if today.date() == last_day_of_this_month.date():
오늘 = datetime.today()
내일 = 오늘 + timedelta(days=1)
if 내일.month != 오늘.month:
print("📅 | Today is the last day of the month.")
print("📆 | Uploading School Event Post")
lib.학사일정_얻기(MLSV_YMD)
학사일정_경로 = lib.학사일정_얻기(MLSV_YMD)
cl.photo_upload(
학사일정_경로,
caption=f"#인천상정중학교 #상정중학교 #학사일정 \n{내일.strftime("%Y")}{내일.strftime("%m")}월 학사일정",
extra_data={'is_paid_partnership': False}
)
print("📆 | School Event Post Uploaded")
else:
print("📅 | Today is not the last day of the month.")