Desktop Notifier Application Using Python

Desktop Notifier Application Using Python

Newspaper scraping using Python and News API. We'll be creating a desktop notification application using Python. To get started with the Desktop News Notifier, we require two libraries: feedparser and notify2.

To get started with the Desktop News Notifier, we require two libraries: feedparser and notify2.

Give following command to to install feedparser:

sudo pip3 install feedparser

For installing notify2 in your terminal:

sudo pip3 install notify2

Feedparser wil parse the feed that we will get from the URL. We will use notify2 for the desktop notification purpose. Other than these two libararies, we will use OS and time lib. Once you are done with the installation import both libraries in the program. Here, in this example i have parsed the news from the BBC UK, you can use any news feedparser URL. Let’s have a look at the program:

## Python program to illustrate
## desktop news notifier
import feedparser
import notify2
import os
import time
def parseFeed():
    f = feedparser.parse("http://feeds.bbci.co.uk/news/rss.xml")
    ICON_PATH = os.getcwd() + "/icon.ico"
    notify2.init('News Notify')
    for newsitem in f['items']:
        n = notify2.Notification(newsitem['title'],
                                newsitem['summary'],
                                icon=ICON_PATH
                                )
    n.set_urgency(notify2.URGENCY_NORMAL)
    n.show()
    n.set_timeout(15000)
    time.sleep(1200)

if __name__ == '__main__':
    parseFeed()

Screenshot of the news notification popup

Python Desktop News Notifier in 20 lines

Step by step Explanation of Code:

f = feedparser.parse("http://feeds.bbci.co.uk/news/rss.xml")

Here feedparser will parse the news data from the feed URL. The parsed data will be in the form of dictionary.

ICON_PATH = os.getcwd() + "/icon.ico"

If you want to set any icon in the notification then here we are setting the Icon path. This is optional.

notify2.init('News Notify')

Here we are initializing the notify2 using the init method of notify2. Initialize the D-Bus connection. Must be called before you send any notifications, or retrieve server info or capabilities.

 for newsitem in f['items']: 
        n = notify2.Notification(newsitem['title'], 
                                 newsitem['summary'], 
                                 icon=ICON_PATH 
                                 )

Looping from the parsed data to get the relevant information like news title, short summary and setting the notification icon using the Notification method of the notify2 lib.

n.set_urgency(notify2.URGENCY_NORMAL)

Set the urgency level to one of URGENCY_LOW, URGENCY_NORMAL or URGENCY_CRITICAL

n.show()

This method will show the notification on the Desktop

n.set_timeout(15000)

Setting the time to keep the notification on the desktop (in milliseconds). I have set here as 15 seconds.

time.sleep(1200)

This will usually display the news notification every 20 mins. You can set the time as per your requirement. You can find the full source code that is hosted on GitHub

This article is contributed by Srce Cde. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to [email protected]. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

python machine-learning programming developer

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

Hire Python Developers

Are you looking for experienced, reliable, and qualified Python developers? If yes, you have reached the right place. At **[HourlyDeveloper.io](https://hourlydeveloper.io/ "HourlyDeveloper.io")**, our full-stack Python development services...

How To Plot A Decision Boundary For Machine Learning Algorithms in Python

How To Plot A Decision Boundary For Machine Learning Algorithms in Python, you will discover how to plot a decision surface for a classification machine learning algorithm.

Hire Python Developers India

Looking to build robust, scalable, and dynamic responsive websites and applications in Python? At **[HourlyDeveloper.io](https://hourlydeveloper.io/ "HourlyDeveloper.io")**, we constantly endeavor to give you exactly what you need. If you need to...

Python Tricks Every Developer Should Know

In this tutorial, you’re going to learn a variety of Python tricks that you can use to write your Python code in a more readable and efficient way like a pro.

Learn Python Programming

Learn Python Programming