python-lastfm/lastfm/mixins/shoutable.py

41 lines
1.4 KiB
Python

#!/usr/bin/env python
__author__ = "Abhinav Sarkar <abhinav@abhinavsarkar.net>"
__version__ = "0.2"
__license__ = "GNU Lesser General Public License"
__package__ = "lastfm.mixins"
from lastfm.base import LastfmBase
from lastfm.decorators import cached_property, top_property
class Shoutable(object):
def init(self, api):
self._api = api
@cached_property
def shouts(self):
"""shouts for this ssubject"""
from lastfm.shout import Shout
from lastfm.user import User
params = self._default_params({'method': '%s.getShouts' % self.__class__.__name__.lower()})
data = self._api._fetch_data(params).find('shouts')
return [
Shout(
body = s.findtext('body'),
author = User(self._api, name = s.findtext('author')),
date = s.findtext('date') and s.findtext('date').strip() and \
datetime(*(time.strptime(s.findtext('date').strip(), '%a, %d %b %Y %H:%M:%S')[0:6]))
)
for s in data.findall('shout')
]
@top_property("shouts")
def recent_shout(self):
"""recent shout for this subject"""
pass
def _default_params(self, extra_params = {}):
return extra_params
from datetime import datetime
import time