Há quase um ano desde meu último post aqui. Resolvei ressuscitar o blog e comecei por mudar o layout e o gerenciador de conteúdo. De agora em diante vou começar a usar o Jekyll ao invés do wordpress e espero que essa mudança torne ainda mais fácil a elaboração e publicação de novos posts.
Desde que li esse post do Zach Holman fiquei empolgado em voltar a escrever com certa assiduidade (pelo menos uma vez por semana), evitando longos períodos sem postar nada por aqui. E para começar, vou escrever sobre um pacote muito legal para python, o pynotify, que já venho utilizando há algum tempo para receber avisos e notificações no meu desktop.
O pynotify é um binding para a lib Notify que oferece basicamente formas de notificar o usuário de forma não intrusiva, ou seja, não precisando que o usuário faça uma ação para que a notificação apareça.
As notificações geralmente são utilizadas para informar usuários sobre algum evento que ocorre no sistema, como por exemplo, novas mensagens recebidas em programas de chat, alarmes, novos emails e demais avisos.
Instalação
Para a instalação utilizaremos o repositório oficial do ubuntu, pois até o momento, a pynotify não está disponível no site do PyPi. Dessa forma, para instalar a lib para python2:
e para python3:
Utilização
A lib é realmente simples. Se rodarmos um dir() no objeto do módulo veremos que ele possui poucos métodos.
Para criarmos uma notificação basta iniciar o módulo e criar uma instancia de Notification, passando como parâmetro um título e uma mensagem. Dessa forma:
E o resultado desse exemplo fica assim:
A pynotify disponibiliza algumas constantes que mudam o comportamento das notificações, como as EXPIRES_DEFAULT
e EXPIRES_NEVER
que
podem ser utilizadas com o método set_timeout
da classe Notification
. Outra detalhe interessante é a possibilidade de setar o nível de
urgência da notificação, utilizando as constantes URGENCY_CRITICAL
, URGENCY_LOW
e URGENCY_NORMAL
.
Abaixo um outro exemplo legal para verificar a disponibilidade de um serviço web. Nele é utilizado a constante EXPIRES_NEVER
, que diz
para nossa notificação nunca fechar sozinha, somente com a ação do usuário, no caso com um clique dele.
Pynotify é uma lib bem simples e muito útil para automatizar tarefas em ambiente Linux. Existem outras configurações possíveis, como por exemplo, incluir ícones e outros dados.
Não há uma documentação oficial do módulo, mas tudo pode ser descoberto inspecionando as classes da lib utilizando o bom e velho método dir
do python.