Return names, hall numbers, and the washers/dryers available for a certain hall.

        :param hall:
            The ID of the hall to retrieve data for.
        :type hall: int

def parse_a_hall(self, hall):
        """Return names, hall numbers, and the washers/dryers available for a certain hall.

        :param hall:
            The ID of the hall to retrieve data for.
        :type hall: int
        """
        if hall not in self.hall_to_link:
            return None  # change to to empty json idk
        page = requests.get(self.hall_to_link[hall], timeout=60)
        soup = BeautifulSoup(page.content, 'html.parser')
        soup.prettify()
        washers = {"open": 0, "running": 0, "out_of_order": 0, "offline": 0, "time_remaining": []}
        dryers = {"open": 0, "running": 0, "out_of_order": 0, "offline": 0, "time_remaining": []}

        detailed = []

        rows = soup.find_all('tr')
        for row in rows:
            cols = row.find_all('td')
            if len(cols) > 1:
                machine_type = cols[1].getText()
                if machine_type == "Washer":
                    washers = Laundry.update_machine_object(cols, washers)
                elif machine_type == "Dryer":
                    dryers = Laundry.update_machine_object(cols, dryers)
                if machine_type in ["Washer", "Dryer"]:
                    try:
                        time = int(cols[3].getText().split(" ")[0])
                    except ValueError:
                        time = 0
                    detailed.append({
                        "id": int(cols[0].getText().split(" ")[1][1:]),
                        "type": cols[1].getText().lower(),
                        "status": cols[2].getText(),
                        "time_remaining": time
                    })

        machines = {"washers": washers, "dryers": dryers, "details": detailed}
        return machines