| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | """API module"""import reimport requestsfrom bs4 import BeautifulSoupfrom app import BASE_URL, HEADERSdef get_residents(region_id):    """Get residents from region"""    return download_players(region_id, 'residency')def get_citizens(region_id):    """Get citizens from region"""    return download_players(region_id, 'region')def download_players(region_id, player_type):    """Download the players"""    players = []    more = True    page = 0    while more:        response = requests.get(            '{}listed/{}/{}/0/{}'.format(BASE_URL, player_type, region_id, page*25),            headers=HEADERS        )        tmp_players, more = parse_players(response.text)        players = players + tmp_players        page += 1    return playersdef read_citizens():    """Read from department file"""    with open('citizens.html') as file:        citizens = parse_players(file)        return citizensdef parse_players(html):    """Parse html return players"""    soup = BeautifulSoup(html, 'html.parser')    players_tree = soup.find_all(class_='list_link')    players = []    for player_tree in players_tree:        columns = player_tree.find_all('td')        players.append({            'id': int(re.sub(r'^.*\/', '', columns[1]['action'])),            'name': columns[1].string.strip(),        })    more = bool(soup.find(class_='more'))    return players, more
 |