Ejemplo n.º 1
0
class MafiaPlayer(object):
    """
    >>> selensky = MafiaPlayer(777)
    >>> print selensky.name
    Роман SeLensky Селенский
    >>> selensky.player_id
    777
    >>> print selensky.toJson()
    {"id": 777, "name": "Роман SeLensky Селенский", "rating": [1200.0, 350.0]}
    """
    def __init__(self, player_id, rating=None):
        self._player_id = player_id
        self._fetch_and_init()
        if rating is None:
            self._rating = Player()
        else:
            self._rating = Player(rating[0], rating[1])

    def update_player(self, *args):
        self._rating.update_player(*args)

    def getRating(self):
        return self._rating.getRating()

    def getRd(self):
        return self._rating.getRd()

    def _fetch_and_init(self):
        response = requests.get(MAFSHOW_PLAYER_PAGE.format(self._player_id))
        pq = pyquery.PyQuery(response.content)
        self._name = pq('.person > h1')[0].text_content().strip().encode('utf-8')

    @property
    def rating(self):
        return (self._rating.getRating(), self._rating.getRd())

    @property
    def name(self):
        return self._name

    @property
    def player_id(self):
        return self._player_id

    def toJson(self):
        return '{{"id": {id}, "name": "{name}", "rating": {rating}}}'.format(
            id=self.player_id,
            name=self.name,
            rating=list(self.rating))