To get started with the Desktop News Notifier, we require two library that is feedparser and notify2. Fire sudo pip3 install feedparser to install feedparser and sudo pip3 install notify2 for installing notify2 in your terminal.

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 lib we will use OS and time lib. Once you are done with the installation import both lib 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 go through the program chunk by chunk.

 

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 f 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 her is 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

You can also refer below video for the same.

Follow me on Twitter