Streame Redmine-Updates mit Python auf Hipchat

Im IRC sende ich ein Update von Redmine an Ikachan und benachrichtige es, aber ich habe nach langer Zeit ein Skript in Python geschrieben, weil ich es auch an Hipchat senden wollte. Die Bibliothek, die auf die API von HipChat trifft, ist offiziell organisiert. Python ist in PyPI, also können Sie es mit pip install python-hipchat installieren.

Ich denke, Sie können alles werfen, was mit RSS analysiert werden kann.

# -*- coding: utf-8 -*-
from datetime import datetime
from fcache.cache import FileCache

import feedparser
from hypchat import HypChat
import hashlib
import os
import pytz
import time

os.environ['TZ'] = 'UTC'

room_id  = 123456
feed_url = "http://redmine/issue/atom/url"
feed = feedparser.parse(feed_url)
cache_key = hashlib.sha224(feed_url).hexdigest()
cache = FileCache('/tmp/redmine')
hc = HypChat("YOUR API TOKEN")
tz_utc = pytz.timezone('UTC')

if not cache.get(cache_key):
    cache[cache_key] = time.mktime(datetime.now(tz_utc).timetuple())

last_updated = cache[cache_key]
for entry in feed['entries']:

    updated = time.mktime(datetime.strptime(entry.updated, '%Y-%m-%dT%H:%M:%SZ').timetuple())

    if int( last_updated ) >= int( updated ):
        print "continue: %s > %s" % (cache[cache_key], updated)
        continue

    if cache[cache_key] <= updated:
        cache[cache_key] = updated

    if entry.authors[0].name:
        name = entry.authors[0].name

    message = '<a href="%s">%s</a> (%s)' % (entry.link, entry.title, name)
    hc.get_room(room_id).notification(message, color='gray')

cache.close()

Ich dachte, es dauerte eine Weile, bis ich das Äquivalent von Cache :: FileCache in Perl gefunden hatte, und vergaß nach langer Zeit, Python zu schreiben.

Recommended Posts

Streame Redmine-Updates mit Python auf Hipchat
Stellen Sie mit Python eine Verbindung zu BigQuery her
Stellen Sie mit Python eine Verbindung zu Wikipedia her
Schalten Sie Python mit Alternativen auf 2.7 um
Schreiben Sie mit Python in csv
Python: So verwenden Sie Async mit
Link, um mit Python zu beginnen
[Python] Mit Python in eine CSV-Datei schreiben
Schön dich mit Python zu treffen
Versuchen Sie, Facebook mit Python zu betreiben
Ausgabe in eine CSV-Datei mit Python
Streame Videos mit Gravio zu Chromecast
MP3 → WAV-Konvertierung mit Python
Schwanzrekursion mit Python2 durchführen
Erste Schritte mit Python
Was tun mit PYTHON Release?
So berechnen Sie das Datum mit Python
Benachrichtigen Sie HipChat mit AWS Lambda (Python)
Mit Python 3 einfach auf Twitter posten
Ich möchte mit Python debuggen
Versuchen Sie, Farbfilme mit Python zu reproduzieren
Versuchen Sie, sich mit Python bei qiita anzumelden
Konvertieren Sie Memos sofort mit Python 2to3
Memo, um nach KPI mit Python zu fragen
Geben Sie Farbzeichen mit Python zu hübsch aus
Einführung in das Auffüllen von Python-Bildern Auffüllen von Bildern mit ImageDataGenerator
Python-Protokoll mit GAE an die Konsole ausgeben
Konvertieren Sie Excel-Daten mit Python in JSON
Konvertiere Hiragana mit Python (Beta) in Romaji
Fraktal zum Erstellen und Spielen mit Python
So verhindern Sie Paketaktualisierungen mit apt
Stellen Sie mit Python in Docker eine Verbindung zu MySQL her
So arbeiten Sie mit BigQuery in Python
[Einführung in Python] Verwenden wir foreach mit Python
Einzelpixel-Kamera zum Erleben mit Python
Wie man einen Taschentest mit Python macht
Ich möchte mit aws mit Python spielen
So zeigen Sie Python-Japanisch mit Lolipop an
Versuch, SQLite3 mit Python zu handhaben [Hinweis]
[Teil1] Scraping mit Python → Organisieren Sie bis zu CSV!
Wie man mit Python-Flüchen Japanisch eingibt
Konvertieren Sie chinesische Zahlen mit Python in arabische Zahlen
Stellen Sie mit dem Python-Interpreter von PEPPER Mac eine Verbindung zu Pfeffer her
So betreiben Sie die Zeitstempelstation in Python
Ich wollte ABC172 mit Python lösen
Laden Sie Bilder mit Python auf Google Drive hoch
Der Weg zum Kompilieren zu Python 3 mit Thrift
So installieren Sie Python3 mit Docker Centos
Beispiel für die Wavelet-Konvertierung von Bildern in Python
Hochladen mit Heroku, Flask, Python, Git (4)
[Python] Einfache Einführung in das maschinelle Lernen mit Python (SVM)
Einführung in die künstliche Intelligenz mit Python 1 "Genetic Algorithm-Theory-"
Lesen einer CSV-Datei mit Python 2/3