]> gitweb.pimeys.fr Git - today.git/blob - tumblr.py
[server] Nouveau module : surveillance de tumblr
[today.git] / tumblr.py
1 #!/usr/bin/env python
2 # -*- encoding: utf-8 -*-
3
4 """ Gestion des tumblr """
5
6 import urllib
7 from lxml import etree
8 import re
9
10 import serverconfig
11
12 def get_rss(url):
13 """Récupère un flux RSS et le etree-parse"""
14 p = urllib.urlopen(url)
15 t = p.read()
16 x = etree.fromstring(t)
17 return x
18
19 def get_last_id(tree):
20 """Récupère le dernier tumblrid dans l'arbre"""
21 lastguid = tree.xpath("//item/guid")[0]
22 lastid = re.findall("/(\d+)$", lastguid.text)[0]
23 return int(lastid)
24
25 def get_parser(domain):
26 """ Renvoie un parseur de tumblt prêt à être appelé """
27 def local_parser():
28 return get_last_id(get_rss("http://%s.tumblr.com/rss" % (domain,)))
29 return local_parser
30
31 tumblrs = serverconfig.load_file(serverconfig.tumblrs_file)
32 functions = {id : get_parser(domain) for (id, domain) in tumblrs}