چگونه با پایتون برای لینوکس ابزار اعلانات ایجاد کنیم؟ — راهنمای گام‌به‌گام

۱۰۲ بازدید
آخرین به‌روزرسانی: ۲۶ آذر ۱۳۹۹
زمان مطالعه: ۳ دقیقه
چگونه با پایتون برای لینوکس ابزار اعلانات ایجاد کنیم؟ — راهنمای گام‌به‌گام

اعلانات یا نوتیفیکیشن دسکتاپ چیست؟

واژه نوتیفیکیشن (Notification) به معنای اعلانات است و در دسکتاپ ابزاری است که رویدادهای خاص و مهم را به کاربران اعلان می‌کند. به بیانی دیگر، یک نرم‌افزار ساده است که پیام و اعلانات را در قالب پاپ‌آپ‌های گرافیکی بر روی صفحه، نمایش می‌دهد.

چرا از نوتیفیکیشن استفاده می‌شود؟

نمایش اعلانات می‌تواند دلایل بسیاری داشته باشد، که از جمله آنها می‌توان به انتشار یک به‌روزرسانی جدید، نمایش یک پیام اضطراری، اتمام فرآیند چاپ یک فایل متنی، هشدار اتمام باتری و موارد دیگری از این دست اشاره کرد. برخی از این اعلانات در کادری همراه با صدای هشدار ظاهر می‌شوند تا نظر کاربر را به خود جلب کنند. این اعلانات می‌توانند نیازمند یک واکنش سریع از سوی کاربر یا صرفاً جهت اطلاع‌رسانی وی باشند. بهتر است برخی از اعلانات را کاربر فوراً بخواند، اما بهترین مکانیسم برای آن‌ها فقدان گزینه‌ای برای واکنش سریع است؛ چرا که با یک کلیک اشتباه ممکن است اطلاعات یا هر چیز مهم دیگری در معرض خطر قرار گیرد.

روش نصب

برای ساخت نوتیفایر یا اعلان ‌کننده برای لینوکس، ابتدا باید ماژول پایتون notify2  را نصب کنید. نصب این ماژول به سادگی و از طریق دستور pip که در زیر آمده، امکان پذیر است.

1pip install notify2

به‌عنوان‌مثال می‌خواهیم یک نوتیفایری بسازیم که قیمت لحظه‌ای ارز دیجیتال بیت‌کوین را نمایش دهد.

نحوه به‌کارگیری این ابزار اعلانات طبق مراحل زیر است:

  1. محتویات جهت نمایش را بدست بیاوریم.
  2. نوتیفایر را ایجاد کنیم.
  3. محتویات را در قالب یک نوتیفیکیشن به نمایش بگذاریم.

پیدا کردن محتویات

برای اطلاع از ارزش فعلی بیت کوین در INR، می‌توانیم قیمت لحظه‌ای آن را از وب‌سایت‌های مختلف تهیه کنیم. اکنون ما با استفاده از توابع BeautifulSoup، آن را از محتوای یک وب‌سایت پیدا می‌کنیم. ساختار و اطلاعات استخراج‌شده وب‌سایت در اسنیپت (snippet) زیر نمایش داده‌ شده است.

برای مشاهده تصویر در ابعاد بزرگتر روی آن کلیک کنید.

1from bs4 import BeautifulSoup
2import requests
3
4def fetch_bitcoin():
5  # URL to fetch the latest price in INR
6    url = "https://www.coingecko.com/en/price_charts/bitcoin/inr"
7    headers = {'User-Agent': 'Mozilla/5.0'}
8    bitcoin_file = requests.get(url)
9    
10    # Forming the soup object
11    soup = BeautifulSoup(bitcoin_file.text, "html.parser")
12
13    bitcoin_li = []
14
15  # Getting the necessary details from the page by observing the structure
16    for table in soup.find_all("table", attrs={"class" : "table"}):
17        for td in table.find_all("td"):
18            bitcoin_li.append(td.text)
19
20    del bitcoin_li[3:]
21    # Removing unnecessary characters from the list items
22    bitcoin_li = map(lambda s : s.strip(), bitcoin_li)
23    return bitcoin_li

در اینجا ما به‌سادگی یک تابع را اجرا کردیم تا جزئیات بیت‌کوین در INR به‌صورت یک لیست به‌دست آید.

ایجاد نوتیفایر

پس‌ از‌ آنکه محتویات لازم برای نمایش را پیدا کردیم، باید به سراغ ایجاد یک ابزار نوتیفیکیشن برویم. کدهای مذکور در اسنیپت زیر، فرآیند ایجاد این ابزار را نشان می‌دهند.

1import notify2
2import Rates
3
4def notify():
5
6    icon_path = "full path to the icon image"
7    
8    # Fetch the current bitcoin rate
9    bitcoin = Rates.fetch_bitcoin()
10    
11    # initialise the d-bus connection
12    notify2.init("Cryptocurrency rates notifier")
13 
14    # create Notification object
15    n = notify2.Notification("Crypto Notifier", icon = ICON_PATH)
16        
17    # Set the urgency level
18    n.set_urgency(notify2.URGENCY_NORMAL)
19        
20    # Set the timeout
21    n.set_timeout(1000)

بیایید کدها را مرحله‌به‌مرحله تجزیه‌وتحلیل کنیم:

  • پیش از آن‌که بتوانیم اعلانی ارسال کنیم، لازم است که یک ارتباط D-Bus ایجاد کنیم. D-Bus یک سیستم گذرگاهی پیام است که به‌وسیله آن برنامه‎ها به‌سادگی با یکدیگر ارتباط برقرار می‌کنند. بنابراین، ارتباط D-Bus برای notify2 با استفاده از کد زیر در پایتون ایجاد خواهد شد.
    1notify2.init("Cryptocurrency rates notifier")
  • با استفاده از کد زیر شکل اعلان را ایجاد می‌کنیم.
    1n = notify2.Notification("Crypto Notifier", icon = icon_path)

    کد تنظیم ساختار کلی اعلان نیز بدین شکل است.

    1notify2.Notification(summary, message='body text', icon='icon path')
  • می‌توانیم به‌صورت اختیاری سطح ضرورت اعلانات را با استفاده از روش set_urgency تنظیم کنیم.
    1n.set_urgency(notify2.URGENCY_NORMAL)

    Constantهای دیگری که می‌توانید استفاده کنید، notify2.URGENCY_LOW  و  notify2.URGENCY_HIGH  هستند.

  • همچنین می‌توانیم مدت‌زمان نمایش را با استفاده از کد زیر زمان‌بندی کنیم.
    1n.set_timeout(1000)

نمایش محتوا در قالب نوتیفیکیشن

با نصب نوتیفایر، می‌توانیم اعلانات را در قالب نوتیفیکیشن به کاربر نشان دهیم. کدهای زیر نمونۀ مختصری از کدهای لازم جهت انجام این کار است.

1result = ""
2result = result + str(bitcoin[0]) + "  -  " + str(bitcoin[2].encode('utf-8')) + "\n"
3
4# Update the content
5n.update("Current Rates", result)
6
7# Show the notification
8n.show()

بیایید در این بخش هم کدها را مرحله‌به‌مرحله تجزیه‌وتحلیل کنیم.

  • در مرحله اول، ما محتوای لازم برای نمایش را با استفاده از تابع fetch_bitcoin  ایجاد می‌کنیم.
  • در مرحله بعد، نوتیفایر را با محتوای موردنظر به‌روز می‌کنیم.
  • و در آخر، با استفاده از n.show()  اعلان را به نمایش می‌گذاریم.

این هم نمونه نوتیفیکیشن

مخزن نرم‌افزاری گیت‌هاب برای نرم‌افزار نوتیفایر دسکتاپ:  Crypto-Notifier

اگر مطلب بالا برای شما مفید بوده است و تمایل دارید در رابطه با مباحث آن مطالعه بیشتری داشته باشید، شاید آموزش‌هایی که در زیر آمده‌اند برای‌تان مفید باشند.

^^

منبع

بر اساس رای ۲ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
۱ دیدگاه برای «چگونه با پایتون برای لینوکس ابزار اعلانات ایجاد کنیم؟ — راهنمای گام‌به‌گام»

سلام
می شود با یک مثال ساده تر اموزش بدهید؟
من خوب درک نکردم. مثلا ارسال یک نوتیکیفیشن ساده برای ویندوز.
با تشکر

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *