def get_leaderboard(self, unit=None, before=None):
        """
        Get user's rank in the week in descending order, stream from
        ``https://www.duolingo.com/friendships/leaderboard_activity?unit=week&_=time

        :param before: Datetime in format '2015-07-06 05:42:24'
        :param unit: maybe week or month
        :type before: str
        :type unit: str
        :rtype: List
        """
        if unit:
            url = 'https://www.duolingo.com/friendships/leaderboard_activity?unit={}&_={}'
        else:
            raise Exception('Needs unit as argument (week or month)')

        if before:
            url = url.format(unit, before)
        else:
            raise Exception('Needs str in Datetime format "%Y.%m.%d %H:%M:%S"')

        self.leader_data = self._make_req(url).json()
        data = []
        for result in iter(self.get_friends()):
            for value in iter(self.leader_data['ranking']):
                if result['id'] == int(value):
                    temp = {'points': int(self.leader_data['ranking'][value]),
                            'unit': unit,
                            'id': result['id'],
                            'username': result['username']}
                    data.append(temp)

        return sorted(data, key=lambda user: user['points'], reverse=True)
Get user's rank in the week in descending order, stream from
        ``https://www.duolingo.com/friendships/leaderboard_activity?unit=week&_=time

        :param before: Datetime in format '2015-07-06 05:42:24'
        :param unit: maybe week or month
        :type before: str
        :type unit: str
        :rtype: List