]> gitweb.pimeys.fr Git - today.git/commitdiff
[server] Nouveau module : surveillance de tumblr
authorVincent Le Gallic <legallic@crans.org>
Sun, 16 Feb 2014 00:10:16 +0000 (01:10 +0100)
committerVincent Le Gallic <legallic@crans.org>
Sun, 16 Feb 2014 00:10:16 +0000 (01:10 +0100)
Je ne suis pas satisfait de l'id utilisé (les gaps sont énormes)
mais bon, au moins il a l'air d'être croissant…

.gitignore
gather.py
serverconfig.py
tumblr.py [new file with mode: 0644]

index 87aeb2bb3d607f165467982f013511cbfe96ad55..7174137764c59469f8df6d1f11261513e3c9f0ba 100644 (file)
@@ -8,3 +8,4 @@ saints.txt
 .lasttime
 .something
 youtube_channels
+tumblrs
index 99adaded107b22866c4798353db4b440af28a4f9..fe6fe45b79616e4cc64ecef9dbcb8e1da4e4cf63 100755 (executable)
--- a/gather.py
+++ b/gather.py
@@ -30,7 +30,10 @@ import comics
 #: Récupération des sagas MP3
 import sagas
 
-GATHERING_MODULES = [youtube, lastdtc, comics, sagas]
+#: Récupération des tumblr
+import tumblr
+
+GATHERING_MODULES = [youtube, lastdtc, comics, sagas, tumblr]
 
 def generate_errmsg(id):
     errmsg = "Erreur à la récupération de %s :\n" % id
index c607f1fcacc020715c8851580e60d3024c977347..84425ecfd6b1573b8e6a7ccf69cb05b7e1d9550c 100644 (file)
@@ -13,6 +13,9 @@ DEBUG = False
 #: La liste des chaînes Youtube à surveiller
 youtube_channels_file = "youtube_channels"
 
+#: La list des tumblr à surveiller
+tumblrs_file = "tumblrs"
+
 #: Path du directory du module de gestion des quotes DTC
 dtc_path = "/home/vincent/scripts/dtc/"
 
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}