Changeset 437 for gp/zope/lastfm

Show
Ignore:
Timestamp:
07/04/07 02:42:53 (17 months ago)
Author:
gawel
Message:

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

Location:
gp/zope/lastfm
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • gp/zope/lastfm/browser.py

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

    r263 r437  
    1   <dl class="lastfm" tal:define="root view/xml"> 
      1 <dl class="lastfm" 
      2     tal:define="root view/xml|nothing" 
      3     tal:condition="nocall:root"> 
    2 4   <dt class="title" tal:content="view/title" /> 
    3 5   <dd tal:repeat="track root"> 
    4 6       <a tal:attributes=" href track/find:url/text"> 
    5 7         <span tal:content="track/find:name/text" /> 
    6           <span class="small"  
      8         <span class="small" 
    7 9               tal:content="track/find:artist/text" /> 
    8 10       </a>