[과제 알림이] Flask 서버

overwell24·2024년 3월 6일

과제 알림이

목록 보기
3/6
post-thumbnail

Flask 원형

main.py

# main.py
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run()

스케줄링 모듈 Scheduler

cron

from flask import Flask
from apscheduler.schedulers.background import BackgroundScheduler

def main():
  print("특정 시간 반복")
 
scheduler = BackgroundScheduler()
scheduler.add_job(main, 'cron', hour='11', minute='30')

interval

from flask import Flask
from apscheduler.schedulers.background import BackgroundScheduler

def main():
  print("특정 시간 반복")
 
scheduler = BackgroundScheduler()
scheduler.add_job(main, 'interval', seconds=10)

Flask code

main.py

# main.py
from scraper import Scraper
from telegram_bot import TelegramBot
from flask import Flask
from apscheduler.schedulers.background import BackgroundScheduler
from pytz import timezone

app = Flask(__name__)

def main():
    scraper = Scraper()
    todo_list = scraper.get_todo_list()
    bot = TelegramBot()
    
    # todo_list 없는 경우 처리 
    if todo_list == "":
        todo_list = "과제 없음"
    
    # Telegram으로 메시지 보내기
    response = bot.send_telegram_message(todo_list)

    if response['ok']:
        print("텔레그램으로 메시지가 전송되었습니다.")
    else:
        print("텔레그램 메시지 전송에 실패했습니다.")

# 타임존 설정
scheduler = BackgroundScheduler(timezone=timezone('Asia/Seoul'))
# 매일 9시 실행
scheduler.add_job(main, 'cron', hour=9)

if __name__ == '__main__':
    scheduler.start()
    app.run()

0개의 댓글