Returns a MediumList (Anime or Manga depends on [medium]) of user.
    If user is not given, the username is taken from the initialized auth
    credentials.
    :param medium Anime or manga (tokens.Medium.Anime or tokens.Medium.Manga)
    :param user   The user whose list should be grabbed. May use credentials[0].

def get_list(medium, user, credentials):
    """Returns a MediumList (Anime or Manga depends on [medium]) of user.
    If user is not given, the username is taken from the initialized auth
    credentials.
    :param medium Anime or manga (tokens.Medium.Anime or tokens.Medium.Manga)
    :param user   The user whose list should be grabbed. May use credentials[0].
    """
    helpers.check_creds(credentials, header)
    list_url = helpers.get_list_url(medium, user)
    #for some reason, we don't need auth.
    list_resp = requests.get(list_url, headers=header)
    if constants.TOO_MANY_REQUESTS in list_resp.text:
        return helpers.reschedule(get_list, constants.DEFAULT_WAIT_SECS, medium,
                                  user)

    list_soup = BeautifulSoup(list_resp.text, 'lxml')
    return objects.MediumList(medium, list_soup)