Diffusez les mises à jour de Redmine vers Hipchat avec Python

En IRC, j'envoie une mise à jour de redmine à ikachan et je la notifie, mais j'ai écrit un script en python après un long moment car je voulais aussi le laisser couler dans hipchat. La bibliothèque qui accède à l'API de HipChat est officiellement organisée. python est dans PyPI, vous pouvez donc l'installer avec pip install python-hipchat.

Je pense que vous pouvez lancer tout ce qui peut être analysé avec RSS.

# -*- 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()

J'ai pensé qu'il fallait un certain temps pour trouver l'équivalent de Cache :: FileCache en Perl, et j'ai oublié d'écrire python après un long moment.

Recommended Posts

Diffusez les mises à jour de Redmine vers Hipchat avec Python
Connectez-vous à BigQuery avec Python
Connectez-vous à Wikipedia avec Python
Basculer python vers 2.7 avec des alternatives
Écrire en csv avec Python
Python: comment utiliser async avec
Lien pour commencer avec python
[Python] Ecrire dans un fichier csv avec Python
Ravi de vous rencontrer avec python
Essayez d'exploiter Facebook avec Python
Sortie vers un fichier csv avec Python
Diffusez des vidéos sur Chromecast avec Gravio
Conversion MP3 → WAV avec Python
Pour faire une récursion avec Python2
Comment démarrer avec Python
Que faire avec la sortie de PYTHON?
Comment calculer la date avec python
Notifier HipChat avec AWS Lambda (Python)
Publiez facilement sur Twitter avec Python 3
Je veux déboguer avec Python
Essayez de reproduire un film couleur avec Python
Essayez de vous connecter à qiita avec Python
Convertir un mémo à la fois avec Python 2to3
Mémo pour demander des KPI avec python
Sortir les caractères de couleur en joli avec python
Introduction au remplissage d'image Python Remplissage d'image à l'aide d'ImageDataGenerator
Sortie du journal Python vers la console avec GAE
Convertir des données Excel en JSON avec python
Convertir Hiragana en Romaji avec Python (bêta)
Fractal pour faire et jouer avec Python
Comment empêcher les mises à jour de paquets avec apt
Connectez-vous à MySQL avec Python dans Docker
Comment utiliser BigQuery en Python
[Introduction à Python] Utilisons foreach avec Python
Caméra à pixel unique à expérimenter avec Python
Convertissez des données FX 1 minute en données 5 minutes avec Python
Comment faire un test de sac avec python
Je veux jouer avec aws avec python
Comment afficher le japonais python avec lolipop
Essayer de gérer SQLite3 avec Python [Note]
[Part1] Scraping avec Python → Organisez jusqu'à csv!
Comment entrer le japonais avec les malédictions Python
Convertir des nombres chinois en nombres arabes avec Python
Connectez-vous à Pepper avec l'interpréteur Python de PEPPER Mac
Pour faire fonctionner la station d'horodatage en Python
Je voulais résoudre ABC172 avec Python
Télécharger des images sur Google Drive avec Python
La route de la compilation vers Python 3 avec Thrift
Comment installer python3 avec docker centos
Exemple de conversion en ondelettes d'images en Python
Comment télécharger avec Heroku, Flask, Python, Git (4)
[Python] Introduction facile à l'apprentissage automatique avec python (SVM)
Introduction à l'intelligence artificielle avec Python 1 «Théorie des algorithmes génétiques»
Comment lire un fichier CSV avec Python 2/3