[PYTHON] Ein Skript, das so lange sucht, bis die entsprechende URL mit einem Hatena-Lesezeichen versehen ist

Wenn Sie einen Artikel in Ihrem Blog schreiben, möchten Sie jemals herausfinden, ob er mit einem Lesezeichen versehen ist? Ich habe. Deshalb habe ich einen Mann gemacht, der prüft, bis ein neues Lesezeichen hinzugefügt wird, und mich dann benachrichtigt, wenn ein neues Lesezeichen hinzugefügt wird. Jetzt müssen Sie Ihren Browser nicht mehr neu laden. Du hast es geschafft!

Notify ist jedoch auf Ubuntu beschränkt. Wenn Sie also ein Mac sind, schreiben Sie ihn bitte entsprechend um.

python



# -*- coding: utf-8 -*-
import os
import sys
import urllib
import time
import datetime
from bs4 import BeautifulSoup


def user_loop():
    url = sys.argv[1].replace('http://', 'http://b.hatena.ne.jp/entry/')
    print "Checking ->", url
    previous = None
    while 1:
        html = urllib.urlopen(url).read().decode('utf-8')
        soup = BeautifulSoup(html)
        user = int(soup.find('ul', {'class': 'users'}).find('span').text)
        if previous is None:
            previous = user
            continue

        if previous != user:
            os.system('notify-send -u critical "Lesezeichen" "%d users"' % user)
        previous = user
        time.sleep(600)

def check_loop():
    url = sys.argv[1].replace('http://', 'http://b.hatena.ne.jp/entry/')
    print "Polling -> ", url
    while 1:
        html = urllib.urlopen(url).read().decode('utf-8')
        if html.find(u'Diese Seite wurde noch nicht mit einem Lesezeichen versehen.') == -1:
            title = "Die Zielseite wurde mit einem Lesezeichen versehen."
            os.system('notify-send -u critical "%s"' % title)
            return
        title = "Es scheint noch nicht mit einem Lesezeichen versehen zu sein."
        popup = "[%s]<br />" % (datetime.datetime.now().isoformat())
        popup += "Versuchen Sie es nach 5 Minuten erneut."
        os.system('notify-send -u low "%s" "%s"' % (title, popup))
        time.sleep(300)

def command():

    if len(sys.argv) == 1:
        print "usage: poll.py (url)"
        sys.exit(1)
    check_loop()
    user_loop()

if __name__ == '__main__':
    command()

Recommended Posts

Ein Skript, das so lange sucht, bis die entsprechende URL mit einem Hatena-Lesezeichen versehen ist
Skript, das die angegebene URL morphologisch analysiert
Ein Modell, das die Gitarre mit fast.ai identifiziert
Erstellen Sie ein Python-Skript, um zu überprüfen, ob der Link unter der angegebenen URL gültig ist
Erstellen Sie einen BOT, der die Discord-URL verkürzt
Abgeschlossenes Blender-Skript (2.8), das nur den Rock löscht
Ein Memo, dass ich den Datenspeicher mit Python berührt habe
Skript zum Ändern der Klanglänge mit REAPER
Ein Skript, mit dem Sie mit der LINE Messaging-API auf einfache Weise umfangreiche Menüs erstellen können
Problemumgehung für sys.argv wird nicht übergeben, wenn ein Python-Skript mit nur dem Dateinamen unter Python2.7 unter Windows ausgeführt wird