code: def get_leaderboard(self, unit=None, before=None):
          
          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)
docs: 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