📜  20行Python桌面新闻通知程序

📅  最后修改于: 2020-05-14 05:05:00             🧑  作者: Mango

要开始使用桌面新闻通知程序,我们需要两个库:feedparser和notify2。
输入以下命令以安装feedparser:

sudo pip3 install feedparser

在终端中安装notify2:

sudo pip3 install notify2

Feedparser将解析我们将从URL获得的供稿。我们将使用notify2进行桌面通知。除了这两个库,我们将使用OS和time lib。安装完成后,将两个库都导入到程序中。在这里,在此示例中,我已经解析了来自BBC UK的新闻,您可以使用任何新闻feedparser URL。让我们看一下程序:

# 用于说明桌面新闻通知程序的Python程序
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()

新闻通知弹出窗口的屏幕截图

逐步说明代码:

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

feedparser在这里将从提要URL中解析新闻数据。解析的数据将以字典的形式返回。

 

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

如果您想在通知中设置任何图标,那么我们在这里设置图标路径,这是可选的。

 

notify2.init('News Notify')

在这里,我们使用notify2的init方法初始化notify2。初始化D-Bus连接。在发送任何通知或检索服务器信息或功能之前,必须先调用它。

 

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

从解析的数据循环获取相关信息,例如新闻标题,简短摘要,并使用notify2 lib的Notification方法设置通知图标。

 

n.set_urgency(notify2.URGENCY_NORMAL)

将紧急级别设置为URGENCY_LOW,URGENCY_NORMAL或URGENCY_CRITICAL之一

 

n.show()

此方法将在桌面上显示通知

n.set_timeout(15000)

设置将通知保留在桌面上的时间(以毫秒为单位)。我在这里设置为15秒。

time.sleep(1200)

通常,这将每20分钟显示一次新闻通知。您可以根据需要设置时间。您可以找到GitHub托管的完整源代码