Teshi's Think Log

Python Win10Toast, 그리고 auto-py-to-exe

posted by teshi at 2021-02-16 08:32
categories : Python

윈도우 창에 알림을 하나 띄워야 할 상황이 생겼다.

현재하고 있는 업무 중 신청이 들어오면, 해당 신청을 처리해야 하는데... 따로 알림 기능이라던가 이런게 없어서 어떻게 할까 고민하다가 윈도우 자체에서 알람을 띄우면 되지 않을까라는 결론에 도달하였다.

그래서 찾아보았더니, 역시 Python! 해당 라이브러리가 있었다.

해당 라이브러리 명칭은 win10toast, 그리고 단순히 본인 컴퓨터에만 띄울께 아니라 다수의 사람들이 사용해야 했기에 auto-py-to-exe를 사용하여 exe 실행 파일로 만들었다.

#-*- coding: utf-8 -*-

from win10toast import ToastNotifier
import requests, time


# 특정 값을 카운트 하기 위한 함수
# requests로 해당 웹페이지 값을 받아오고 거기서 값을 카운팅한다.
def requests_count():
	url = "##############################"
	res = requests.get(url)
	count = res.text.count('<li>')

	return count

# auto-py-to-exe 에서 additional Files를 추가하였을 때,
# 해당 경로를 찾을 수 있게 하는 함수
def resource_path(relative_path):
	try:
		base_path = sys._MEIPASS
	except Exception:
		base_path = os.path.abspath(".")
	return os.path.join(base_path, relative_path)


# 실제 실행 부
if __name__ == '__main__':
    # 무한 반복
	while True:
        # 카운트 값 호출
		count = requests_count()
        # 카운트가 0이 아니면 알람 발생
		if count != 0:
			t = ToastNotifier()
            # 아이콘 이미지 추가 및 메시지 출력
			t.show_toast(u"목록이 %d건 있습니다." % count, icon_path=resource_path('icon.ico'), duration=10)
		else: time.sleep(60)

짜잔! 알람 프로그램 완성!

해당 python 파일을 auto-py-to-exe로 exe 실행 파일로 만들어두고 테스트 하니 정상 작동하는 것을 확인하였다.