]> gitweb.pimeys.fr Git - today.git/blobdiff - tumblr.py
[server] Nouveau module : surveillance de tumblr
[today.git] / tumblr.py
diff --git a/tumblr.py b/tumblr.py
new file mode 100644 (file)
index 0000000..ca8a8e5
--- /dev/null
+++ b/tumblr.py
@@ -0,0 +1,32 @@
+#!/usr/bin/env python
+# -*- encoding: utf-8 -*-
+
+""" Gestion des tumblr """
+
+import urllib
+from lxml import etree
+import re
+
+import serverconfig
+
+def get_rss(url):
+    """Récupère un flux RSS et le etree-parse"""
+    p = urllib.urlopen(url)
+    t = p.read()
+    x = etree.fromstring(t)
+    return x
+
+def get_last_id(tree):
+    """Récupère le dernier tumblrid dans l'arbre"""
+    lastguid = tree.xpath("//item/guid")[0]
+    lastid = re.findall("/(\d+)$", lastguid.text)[0]
+    return int(lastid)
+
+def get_parser(domain):
+    """ Renvoie un parseur de tumblt prêt à être appelé """
+    def local_parser():
+        return get_last_id(get_rss("http://%s.tumblr.com/rss" % (domain,)))
+    return local_parser
+
+tumblrs = serverconfig.load_file(serverconfig.tumblrs_file)
+functions = {id : get_parser(domain) for (id, domain) in tumblrs}