#!/usr/bin/python3

import bs4
import requests


machine_count = 0
machines_url = 'https://db.debian.org/machines.cgi'

response = requests.get(machines_url)
soup = bs4.BeautifulSoup(response.text, 'html.parser')

machine_entries = soup.find_all('tr')

print('%-18s %-24s %s' % ("Architecture", "Hostname", "Access"))
print('-' * 68)

for machine_entry in machine_entries:
    machine_data = machine_entry.find_all('td')
    try:
        purpose = machine_data[4].text.strip()
        access = machine_data[6].text.strip()
        if 'porterbox' in purpose:
            hostname = machine_data[0].text.strip()
            architecture = machine_data[2].text.strip()
            if access == "":
                access = "[unknown]"
            machine_count += 1
            print('%-18s %-24s %s' % (architecture, hostname, access))

    except IndexError:
        # malformed entry, skip it
        pass

print("\nFound %d machines" % (machine_count))
