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

📅  最后修改于: 2021-10-19 05:51:26             🧑  作者: Mango

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

sudo pip3 install feedparser

要在终端中安装 notify2:

sudo pip3 install notify2

Feedparser 将解析我们将从 URL 获得的提要。我们将使用 notify2 用于桌面通知目的。除了这两个库之外,我们将使用 OS 和时间库。完成安装后,在程序中导入两个库。在此示例中,我解析了来自 BBC UK 的新闻,您可以使用任何新闻提要解析器 URL。我们来看看程序:

# 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()

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

20 行 Python 桌面新闻通知程序

代码的分步说明:

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

    这里 feedparser 将解析来自提要 URL 的新闻数据。解析后的数据将采用字典的形式。

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

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

  3. notify2.init('News Notify')

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

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

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

  5. n.set_urgency(notify2.URGENCY_NORMAL)

    将紧急程度设置为 URGENCY_LOW、URGENCY_NORMAL 或 URGENCY_CRITICAL 之一

  6. n.show()

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

  7. n.set_timeout(15000)

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

  8. time.sleep(1200)

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