root/gp/zope/lastfm/browser.py

Revision 437, 0.8 KB (checked in by gawel, 17 months ago)

when lastfm is dead, my site too. ouch !
this is an occasion to test my tolerance decorator
seems works fine :)

Line  
1 # -*- coding: utf-8 -*-
2 import os
3 import random
4 from lxml import etree
5 from zope.publisher.browser import BrowserView
6 from gp.decorators import tolerance
7 import logging
8
9 PREFIX = '/tmp'
10
11 @tolerance(etree.XMLSyntaxError, IOError,
12            default=None,
13            logger=logging.getLogger('gp.lastfm'))
14 def getxml(filename):
15     """return a ElementTree parsed from the file
16     """
17     fd = open(os.path.join(PREFIX, filename))
18     doc = etree.parse(fd)
19     fd.close()
20     return doc.getroot()
21
22
23 class LastfmView(BrowserView):
24     """a view to render the xml
25     """
26
27     views = ((u'Coup de coeur', 'recentlovedtracks.xml'),
28              (u'Ecouté récemment', 'recenttracks.xml'))
29
30     def __call__(self):
31         self.title, filename = random.choice(self.views)
32         self.xml = getxml(filename)
33         return super(LastfmView, self).__call__()
Note: See TracBrowser for help on using the browser.