J'ai essayé de créer une application de notification de publication à 2 canaux avec Python

Nous avons ajouté une fonction de notification de publication à 2 canaux à * J'ai créé une application de notification de nouvelles en ligne avec Python *.

Chose que tu veux faire

Ajoutez une fonction pour notifier les publications de 2 fils de chaîne à l'application de notification de nouvelles en ligne créée la dernière fois. Ciblez les fils qui ne sont pas publiés souvent, mais que vous souhaitez vérifier. La mise en page de la notification est la même que celle de la notification de nouvelles en ligne.

・ Apparence à la notification (cliquez sur l'icône pour passer au fil de discussion cible) スクリーンショット 2015-01-28 21.38.45.png

・ Stocké sans remarquer la notification スクリーンショット 2015-01-28 21.39.22.png

Matériaux référencés

Obtenez une liste des fils d'actualité (je n'aime pas) en Python.

Procédure de création

Créé en 2 étapes

  1. Réparez mdfmonitor ・ Lieu de réparation Processus d'acquisition d'articles dans le Net   Ajout d'un processus de post-acquisition à 2 canaux au processus d'acquisition d'articles de nouvelles en ligne.

mdfmonitor.py


def _get_text(self, url):
    try:
        l=[]
        if (url.find("blog.esuteru") >= 0): 
            title = urladrs = icon = []
            for line in requests.get(url).iter_lines():
                # get title
                if line.find("<h2>") >= 0:
                    title = re.sub(".*html\">", "", line)
                    title = re.sub("</a>.*", "", title)
                # get url 
                if line.find("<h2>") >= 0:
                    urladrs = re.sub(".*href=\"", "", line)
                    urladrs = re.sub("\">.*", "", urladrs)
                # get icon
                if re.search("<img src=.* class=\"pict.*\"", line):
                    icon = re.sub("\s.*<a.*img src=\"", "", line)
                    icon = re.sub("\" width.*", "", icon)

                if title and urladrs and icon:
                    l.append([title, urladrs, icon])
                    title = urladrs = icon = []
        elif (url.find("2ch.sc") >= 0): 
            for line in requests.get(url).iter_lines():
                if re.search("<dt>.*<br>", line):
                    comment = re.sub("<dt>.*<dd>", "", line)
                    comment = re.sub(" <br> ", " ", comment)
                    comment = re.sub("<br><br>", "", comment)
                    comment = re.sub("<a href=.*gt;", ">>", comment)
                    comment = re.sub("</a>", "", comment)
                    comment =  unicode(comment, "cp932", 'ignore')
                    comment =  comment.encode('utf-8')
                    l.append([comment, url, "http://www.2ch.sc/img/2ch-logo-fix.gif"])
        return l
    except requests.exceptions.ConnectionError:
        raise ConnectionError("Monitor can't connect the server of url you added.")
  1. Appelez newsmoniter.py newsmoniter.py a les deux modifications suivantes. ・ Ajout de l'URL cible de notification ・ Changer dynamiquement le titre du centre de notification en fonction de l'URL

newsmoniter.py


tmp $ diff -u org/newsmoniter.py new/newsmoniter.py 
--- org/newsmoniter.py	2015-01-28 22:14:51.000000000 +0900
+++ new/newsmoniter.py	2015-01-28 22:14:32.000000000 +0900
@@ -9,10 +9,15 @@
 
 # append file to mdfmonitor instance
 monitor.add_url("http://blog.esuteru.com")
+monitor.add_url("http://nozomi.2ch.sc/test/read.cgi/pcqa/1419898591/l50")
 
 for mdf in monitor.monitor():
     for title, urladrs, icon in mdf.diff:
-        cmd = "/usr/local/bin/terminal-notifier -title new! -message \"{0}\" -open {1} -sound Submarine -appIcon {2}".format(title, urladrs, icon)
+        if (mdf.url.find("2ch.sc") >= 0):
+            sitename = "2 canaux"
+        else:
+            sitename = "Projet Hachima"
+        cmd = "/usr/local/bin/terminal-notifier -title {0} -message \"{1}\" -open {2} -sound Submarine -appIcon {3}".format(sitename, title, urladrs, icon)
         f2 = open("/usr/local/bin/news_cmd.sh", "w")
         f2.write(cmd)
         os.chmod("/usr/local/bin/news_cmd.sh", 0777)

Ce que je veux faire dans le futur

Portez cet outil pour poivrer et afficher de nouveaux articles sur votre tablette thoracique. Aussi, laissez le poivre dire le message.

Environnement de contrôle de fonctionnement

・ OS X Mavericks 10.9.5 ・ Python 2.7.5 ・ Terminal-notifier 1.6.1

Recommended Posts

J'ai essayé de créer une application de notification de publication à 2 canaux avec Python
J'ai essayé de créer une application todo en utilisant une bouteille avec python
J'ai fait une application d'envoi de courrier simple avec tkinter de Python
[5e] J'ai essayé de créer un certain outil de type Authenticator avec python
[2nd] J'ai essayé de créer un certain outil de type Authenticator avec python
[3ème] J'ai essayé de créer un certain outil de type Authenticator avec python
J'ai essayé de faire un processus d'exécution périodique avec Selenium et Python
[4th] J'ai essayé de créer un certain outil de type Authenticator avec python
[1er] J'ai essayé de créer un certain outil de type Authenticator avec python
J'ai essayé de faire un signal avec Raspeye 4 (édition Python)
J'ai essayé de créer une application OCR avec PySimpleGUI
J'ai essayé de faire un processus périodique avec CentOS7, Selenium, Python et Chrome
[Analyse des brevets] J'ai essayé de créer une carte des brevets avec Python sans dépenser d'argent
J'ai fait un chronomètre en utilisant tkinter avec python
J'ai essayé de créer une interface graphique à trois yeux côte à côte avec Python et Tkinter
J'ai essayé de faire une simulation de séparation de source sonore en temps réel avec l'apprentissage automatique Python
J'ai créé une API Web
Rubyist a essayé de créer une API simple avec Python + bouteille + MySQL
J'ai essayé de créer une expression régulière de "montant" en utilisant Python
[Python] J'ai essayé d'implémenter un tri stable, alors notez
J'ai essayé de créer une expression régulière de "temps" en utilisant Python
[Python] Un mémo que j'ai essayé de démarrer avec asyncio
J'ai essayé de créer une liste de nombres premiers avec python
J'ai essayé de créer une expression régulière de "date" en utilisant Python
[Introduction] Je veux créer un robot Mastodon avec Python! 【Débutants】
J'ai essayé de faire une étrange citation pour Jojo avec LSTM
J'ai essayé de créer une fonction de similitude d'image avec Python + OpenCV
J'ai essayé de créer un mécanisme de contrôle exclusif avec Go
[Python] J'ai essayé de faire une application qui calcule le salaire en fonction des heures de travail avec tkinter
[1 hour challenge] J'ai essayé de créer un site de bonne aventure qui soit trop adapté à Python
J'ai essayé de créer un générateur qui génère une classe conteneur C # à partir de CSV avec Python
J'ai créé une application graphique avec Python + PyQt5
J'ai essayé d'obtenir des données CloudWatch avec Python
Essayez de créer un code de "décryptage" en Python
J'ai essayé de sortir LLVM IR avec Python
J'ai essayé d'automatiser la fabrication des sushis avec python
Essayez de créer un groupe de dièdre avec Python
Je veux écrire dans un fichier avec Python
J'ai créé un jeu ○ ✕ avec TensorFlow
J'ai essayé de communiquer avec un serveur distant par communication Socket avec Python.
J'ai essayé de créer un programme qui convertit les nombres hexadécimaux en nombres décimaux avec python
J'ai essayé de créer un LINE BOT "Sakurai-san" avec API Gateway + Lambda
[AWS] [GCP] J'ai essayé de rendre les services cloud faciles à utiliser avec Python
[Streamlit] Je déteste JavaScript, donc je crée une application Web uniquement avec Python
[Outlook] J'ai essayé de créer automatiquement un e-mail de rapport quotidien avec Python
J'ai essayé de créer un environnement de développement Mac Python avec pythonz + direnv
[Zaif] J'ai essayé de faciliter le commerce de devises virtuelles avec Python
J'ai essayé de créer un service de raccourcissement d'url sans serveur avec AWS CDK
Je souhaite créer une application Web en utilisant React et Python flask
J'ai essayé fp-growth avec python
J'ai essayé de faire un "putain de gros convertisseur de littérature"
J'ai essayé de gratter avec Python
[Python] Quand j'ai essayé de créer un outil de décompression avec un fichier zip que je connaissais juste, j'étais accro à sys.exit ()
Faisons un outil de veille de commande avec python
J'ai essayé d'implémenter Mine Sweeper sur un terminal avec python