Pular para o conteúdo
Bruno Dórea
Todos os posts

3 mins de leitura


Criando um app de notificações com Python

Aplicativo de notificação com Python.


Desenvolvendo um aplicativo de notificação com Python, utilizando as bibliotecas win10toast e pystray

Pré-Requisitos

Para executar este código, você precisará ter instalado o Python 3 e as bibliotecas win10toast e webbrowser. Você pode instalá-las executando os seguintes comandos no seu terminal:

pip install win10toast
pip install pystray

Passo a Passo

Importar as bibliotecas necessárias

import time
from datetime import datetime
import webbrowser
from win10toast import ToastNotifier

Definir as mensagens para cada horário

target_times = [
    {"time": "14:52", "title": "Titulo da notificação", "message": "Mensagem da notificação."},
    {"time": "14:53", "title": "Titulo da notificação", "message": "Mensagem da notificação."},
    {"time": "14:54", "title": "Titulo da notificação", "message": "Mensagem da notificação."},
    {"time": "14:55", "title": "Titulo da notificação", "message": "Mensagem da notificação."}
]

Substitua as horas e mensagens para as que desejar.

Definir a URL que será aberta ao clicar na notificação

url = "INSIRA A URL AQUI"

Definir o caminho do ícone desejado

icon_path = "icone.ico"

Criar um objeto ToastNotifier

toaster = ToastNotifier()

Executar o loop enquanto a aplicação estiver em execução

Este trecho do código é responsável por verificar continuamente se o horário atual é igual a um dos horários desejados. Caso seja, exibe a notificação, abre a url definida e aguarda 1 minuto antes de verificar novamente. Para executar o código, basta rodar o arquivo Python em um terminal ou IDE de sua preferência.

while True:
    now = datetime.now().strftime("%H:%M")
 
    for target_time in target_times:
        if now == target_time["time"]:
            toaster.show_toast(
                f"{target_time['time']} - Horário de {target_time['title']}",
                target_time["message"],
                threaded=True,
                icon_path=icon_path,
                duration=3
            ),
            webbrowser.open(url)
 
            time.sleep(60)