From ee86f4db15679519bcd82e4bf1d7e294f3042308 Mon Sep 17 00:00:00 2001 From: "A. Svensson" Date: Wed, 18 Feb 2015 21:59:17 +0100 Subject: [PATCH] Fixed update_population crash, when it downloaded incomplete data. --- .../management/commands/update_population.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/gameservers/management/commands/update_population.py b/src/gameservers/management/commands/update_population.py index 9ac418c..61d7d19 100755 --- a/src/gameservers/management/commands/update_population.py +++ b/src/gameservers/management/commands/update_population.py @@ -48,14 +48,20 @@ class ServerParser(object): soup_data = BeautifulSoup(raw_data) for server_data in soup_data.find_all('div', 'live_game_status'): server = self._parse_server_data(server_data) - servers.append(server) + if server: + servers.append(server) logging.info('Number of servers parsed: {}'.format(len(servers))) return servers def _parse_server_data(self, data): '''Parse the individual parts of each server.''' - title = data.find('b').text.splitlines()[0].strip() + try: + title = data.find('b').text.splitlines()[0].strip() + except AttributeError: + # HACK: I think this happends because the raw data was incomplete. + # No complete data, no server update. + return None game_url = data.find('span', 'smaller').text tmp = data.find('a')