Автор оригинала: Dushyant Rathore.
Что такое уведомление на рабочем столе ?
Термин уведомления рабочего стола относится к графическому элементу управления, который передает определенные события пользователю, не заставляя его немедленно реагировать на это уведомление. Другими словами, это простое приложение, которое выдает уведомление в виде всплывающего сообщения на рабочем столе.
Зачем использовать уведомления на рабочем столе ?
Есть много причин, по которым компьютер может захотеть уведомить вас о вещах, не имеющих прямого отношения к тому, что вы делаете прямо сейчас. Обновления программного обеспечения могут быть доступны; возможно, вы получили новое мгновенное сообщение; ваша 300-страничная работа печати, возможно, наконец закончена; у вас осталось всего десять минут заряда батареи. Иногда эти события требуют ответа или, по крайней мере, подтверждения, или их не нужно читать немедленно, и в этом случае они должны быть представлены в окне предупреждения или в каком-либо другом окне.
Однако в тех случаях, когда уведомление лучше всего читать немедленно, но нет применимого ответа, наиболее подходящим механизмом является неинтерактивный пузырь уведомлений.
Для получения дополнительной информации о вариантах использования и структурных деталях, пожалуйста, обратитесь к этой ссылке .
Установка
Теперь, чтобы создать настольный уведомитель, вам нужно установить сторонний модуль Python, notify 2
.
Вы можете установить notify 2
с помощью простой команды pip:
pip install notify2
Пример – Крипто-уведомитель
Здесь мы собираемся создать инструмент уведомления , который отображает текущий курс биткоинов в INR.
Вся реализация инструмента уведомления была разделена на следующие этапы:
- Получение содержимого для отображения.
- Настройка уведомителя.
- Отображение содержимого в виде пузырька уведомлений.
Получение контента
Чтобы получить текущий курс биткоина в INR, мы можем соскрести его цену из Интернета. Здесь мы соскребем результат с помощью BeautifulSoup .
Структура страницы показана в следующем фрагменте:
Следующий фрагмент кода дает подробную информацию обо всем процессе очистки:
from bs4 import BeautifulSoup import requests def fetch_bitcoin(): # URL to fetch the latest price in INR url = "https://www.coingecko.com/en/price_charts/bitcoin/inr" headers = {'User-Agent': 'Mozilla/5.0'} bitcoin_file = requests.get(url) # Forming the soup object soup = BeautifulSoup(bitcoin_file.text, "html.parser") bitcoin_li = [] # Getting the necessary details from the page by observing the structure for table in soup.find_all("table", attrs={"class" : "table"}): for td in table.find_all("td"): bitcoin_li.append(td.text) del bitcoin_li[3:] # Removing unnecessary characters from the list items bitcoin_li = map(lambda s : s.strip(), bitcoin_li) return bitcoin_li
Здесь мы просто реализовали функцию, которая возвращает детали биткойна в INR в виде списка после очистки данного url .
Настройка уведомителя
Получив необходимую информацию для отображения, мы инициализируем инструмент уведомления. Следующий фрагмент кода объясняет этот процесс:
import notify2 import Rates def notify(): icon_path = "full path to the icon image" # Fetch the current bitcoin rate bitcoin = Rates.fetch_bitcoin() # initialise the d-bus connection notify2.init("Cryptocurrency rates notifier") # create Notification object n = notify2.Notification("Crypto Notifier", icon = ICON_PATH) # Set the urgency level n.set_urgency(notify2.URGENCY_NORMAL) # Set the timeout n.set_timeout(1000)
Давайте попробуем проанализировать код шаг за шагом:
- Прежде чем мы сможем отправлять какие-либо уведомления, нам нужно инициализировать соединение D-Bus. D-Bus-это система шин сообщений, простой способ общения приложений друг с другом. Таким образом, соединение D-Bus для notify2 в текущем скрипте Python инициализируется с помощью:
notify2.init("Cryptocurrency rates notifier")
- Теперь мы создаем объект уведомления с помощью:
n = notify2.Notification("Crypto Notifier", icon = icon_path)
Общая структура объекта уведомления такова:
notify2.Notification(summary, message='body text', icon='icon path')
- Мы можем дополнительно установить уровень срочности уведомлений с помощью метода set_urgency:
n.set_urgency(notify2.URGENCY_NORMAL)
Другими доступными константами являются notify2.URGENCY_LOW
и notify2.URGENCY_HIGH
- Мы также можем установить продолжительность отображения с помощью утилиты timeout:
n.set_timeout(1000)
Отображение содержимого
После настройки уведомителя мы можем использовать его для отображения уведомлений пользователю. Следующий код дает краткий обзор этого:
result = "" result = result + str(bitcoin[0]) + " - " + str(bitcoin[2].encode('utf-8')) + "\n" # Update the content n.update("Current Rates", result) # Show the notification n.show()
Давайте проанализируем код шаг за шагом:
- На первом этапе мы в основном формируем содержимое для отображения с помощью списка, возвращаемого функцией
fetch_bitcoin
. - На следующем шаге мы обновим уведомитель необходимым содержимым.
- Наконец, мы выводим уведомление с помощью утилиты
n.show ()
.
Результатом всего процесса является:
Репозиторий Github для этого настольного приложения notifier: Crypto-Notifier .
Не стесняйтесь раскошеливаться, предлагать изменения или указывать на ошибки!
Надеюсь, вы нашли это полезным