Notificador de escritorio en Python

Este artículo demuestra cómo crear una aplicación Desktop Notifier simple usando Python.

Un notificador de escritorio es un simple

Contenido de la notificación

En el ejemplo que usamos en este artículo, el contenido que aparecerá como notificación en el escritorio son los principales titulares de noticias del día.

Entonces, para obtener los principales titulares, usaremos este script de Python para raspar los titulares de las noticias:

import requests
import xml.etree.ElementTree as ET
  
# url of news rss feed
RSS_FEED_URL = "http://www.hindustantimes.com/rss/topnews/rssfeed.xml"    
  
def loadRSS():
    '''
    utility function to load RSS feed
    '''
    # create HTTP request response object
    resp = requests.get(RSS_FEED_URL)
  
    # return response content
    return resp.content
  
def parseXML(rss):
    '''
    utility function to parse XML format rss feed
    '''
    # create element tree root object
    root = ET.fromstring(rss)
  
    # create empty list for news items
    newsitems = []
  
    # iterate news items
    for item in root.findall('./channel/item'):
        news = {}
  
        # iterate child elements of item
        for child in item:
  
            # special checking for namespace object content:media
            if child.tag == '{http://search.yahoo.com/mrss/}content':
                news['media'] = child.attrib['url']
            else:
                news[child.tag] = child.text.encode('utf8')
        newsitems.append(news)
  
    # return news items list
    return newsitems
  
def topStories():
    '''
    main function to generate and return news items
    '''
    # load rss feed
    rss = loadRSS()
  
    # parse XML
    newsitems = parseXML(rss)
    return newsitems
import time
import notify2
from topnews import topStories
  
# path to notification window icon
ICON_PATH = "put full path to icon image here"
  
# fetch news items
newsitems = topStories()
  
# initialise the d-bus connection
notify2.init("News Notifier")
  
# create Notification object
n = notify2.Notification(None, icon = ICON_PATH)
  
# set urgency level
n.set_urgency(notify2.URGENCY_NORMAL)
  
# set timeout for a notification
n.set_timeout(10000)
  
for newsitem in newsitems:
  
    # update notification data for Notification object
    n.update(newsitem['title'], newsitem['description'])
  
    # show notification on screen
    n.show()
  
    # short delay between notifications
    time.sleep(15)

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *