X-Git-Url: http://gitweb.pimeys.fr/?p=today.git;a=blobdiff_plain;f=tumblr.py;fp=tumblr.py;h=ca8a8e52e8af4ea98caa10694461f47ad2d4dd4c;hp=0000000000000000000000000000000000000000;hb=7df038370567352136b2e6fd749bc495d216a06b;hpb=4ae5fb290a01ab80b4315a1468aea9b84453797a diff --git a/tumblr.py b/tumblr.py new file mode 100644 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}