Ich habe versucht, mit Python eine 2-Kanal-Post-Benachrichtigungsanwendung zu erstellen

Wir haben der zuvor erstellten [* Ich habe mit Python * eine App für die Benachrichtigung über Netznachrichten erstellt] eine 2-Kanal-Post-Benachrichtigungsfunktion hinzugefügt (http://qiita.com/NoB__G/items/5be8a927d804bbb57c06).

Was du machen willst

Fügen Sie der zuletzt erstellten Net News-Benachrichtigungsanwendung eine Funktion zum Benachrichtigen von Posts über 2-Kanal-Threads hinzu. Ziel-Threads, die nicht oft gepostet werden, aber überprüft werden sollen. Das Benachrichtigungslayout entspricht dem der Netto-Nachrichtenbenachrichtigung.

・ Darstellung bei Benachrichtigung (klicken Sie auf das Symbol, um zum Ziel-Thread zu springen) スクリーンショット 2015-01-28 21.38.45.png

・ Ohne Benachrichtigung auf Lager スクリーンショット 2015-01-28 21.39.22.png

Referenzierte Materialien

Eine Liste der Nachrichten-Flash-Threads (Abneigungen) in Python abrufen.

Erstellungsverfahren

Erstellt in allen 2 Schritten

  1. Reparieren Sie mdfmonitor ・ Reparaturort Erwerb von Netto-Nachrichtenartikeln   2-Kanal-Nacherfassungsprozess zum Erfassungsprozess für Netto-Nachrichtenartikel hinzugefügt.

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. Rufen Sie newsmoniter.py auf. Newsmoniter.py hat die folgenden zwei Änderungen. ・ Hinzufügen einer Benachrichtigungsziel-URL ・ Ändern Sie den Titel des Benachrichtigungscenters dynamisch entsprechend der 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 Kanal"
+        else:
+            sitename = "Entwurf 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)

Was ich in Zukunft machen möchte

Portieren Sie dieses Tool auf Pfeffer und zeigen Sie neue Artikel auf Ihrem Brusttablett an. Lassen Sie auch Pfeffer die Nachricht sprechen.

Betriebsüberprüfungsumgebung

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

Recommended Posts

Ich habe versucht, mit Python eine 2-Kanal-Post-Benachrichtigungsanwendung zu erstellen
Ich habe versucht, eine ToDo-App mit einer Flasche mit Python zu erstellen
Ich habe eine einfache Mail-Sendeanwendung mit tkinter von Python erstellt
[5.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
[2nd] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
[3.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, mit Selenium und Python einen regelmäßigen Ausführungsprozess durchzuführen
[4.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
[1.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, mit Raspeye 4 (Python Edition) ein signalähnliches Signal zu erzeugen.
Ich habe versucht, eine OCR-App mit PySimpleGUI zu erstellen
Ich habe versucht, einen periodischen Prozess mit CentOS7, Selenium, Python und Chrome durchzuführen
[Patentanalyse] Ich habe versucht, mit Python eine Patentkarte zu erstellen, ohne Geld auszugeben
Ich habe eine Stoppuhr mit tkinter mit Python gemacht
Ich habe versucht, die Benutzeroberfläche neben Python und Tkinter dreiäugig zu gestalten
Ich habe versucht, mit Python Machine Learning ein Echtzeit-Modell zur Trennung von Tonquellen zu erstellen
Ich habe eine Web-API erstellt
Rubyist hat versucht, eine einfache API mit Python + Flasche + MySQL zu erstellen
Ich habe versucht, mit Python einen regulären Ausdruck für "Betrag" zu erstellen
[Python] Ich habe versucht, eine stabile Sortierung zu implementieren
Ich habe versucht, mit Python einen regulären Ausdruck von "Zeit" zu erstellen
[Python] Ein Memo, das ich versucht habe, mit Asyncio zu beginnen
Ich habe versucht, mit Python eine Liste von Primzahlen zu erstellen
Ich habe versucht, mit Python einen regulären Ausdruck von "Datum" zu erstellen
[Einführung] Ich möchte mit Python einen Mastodon-Bot erstellen! 【Anfänger】
Ich habe versucht, Jojo mit LSTM ein seltsames Zitat zu machen
Ich habe versucht, mit Python + OpenCV eine Bildähnlichkeitsfunktion zu erstellen
Ich habe versucht, mit Go einen exklusiven Kontrollmechanismus zu erstellen
[Python] Ich habe versucht, mit tkinter eine Anwendung zu erstellen, die das Gehalt anhand der Arbeitszeit berechnet
[1 Stunde Herausforderung] Ich habe versucht, eine Wahrsagerseite zu erstellen, die für Python zu geeignet ist
Ich habe versucht, einen Generator zu erstellen, der mit Python eine C # -Containerklasse aus CSV generiert
Ich habe eine GUI-App mit Python + PyQt5 erstellt
Ich habe versucht, CloudWatch-Daten mit Python abzurufen
Versuchen Sie, in Python einen "Entschlüsselungs" -Code zu erstellen
Ich habe versucht, LLVM IR mit Python auszugeben
Ich habe versucht, die Herstellung von Sushi mit Python zu automatisieren
Versuchen Sie, mit Python eine Diedergruppe zu bilden
Ich möchte mit Python in eine Datei schreiben
Ich habe ein ○ ✕ Spiel mit TensorFlow gemacht
Ich habe versucht, mit einem Remote-Server über Socket-Kommunikation mit Python zu kommunizieren.
Ich habe versucht, ein Programm zu erstellen, das Hexadezimalzahlen mit Python in Dezimalzahlen konvertiert
Ich habe versucht, "Sakurai-san" LINE BOT mit API Gateway + Lambda zu erstellen
[AWS] [GCP] Ich habe versucht, die Verwendung von Cloud-Diensten mit Python zu vereinfachen
[Streamlit] Ich hasse JavaScript, deshalb erstelle ich eine Webanwendung nur mit Python
[Outlook] Ich habe versucht, mit Python automatisch eine tägliche Berichtsmail zu erstellen
Ich habe versucht, eine Mac Python-Entwicklungsumgebung mit pythonz + direnv zu erstellen
[Zaif] Ich habe versucht, den Handel mit virtuellen Währungen mit Python zu vereinfachen
Ich habe versucht, einen URL-Verkürzungsdienst mit AWS CDK serverlos zu machen
Ich möchte eine Webanwendung mit React und Python Flask erstellen
Ich habe fp-Wachstum mit Python versucht
Ich habe versucht, einen "verdammt großen Literaturkonverter" zu machen.
Ich habe versucht, mit Python zu kratzen
[Python] Als ich versuchte, ein Dekomprimierungswerkzeug mit einer Zip-Datei zu erstellen, die ich gerade kannte, war ich süchtig nach sys.exit ()
Lassen Sie uns ein Befehls-Standby-Tool mit Python erstellen
Ich habe versucht, Mine Sweeper auf dem Terminal mit Python zu implementieren