Skip to content

Commit 7411fa8

Browse files
authored
Merge pull request #191 from 7wonders/master
Fixes #189
2 parents 9cc8b98 + 6f0fea5 commit 7411fa8

File tree

1 file changed

+30
-29
lines changed

1 file changed

+30
-29
lines changed

cities/management/commands/cities.py

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -172,37 +172,38 @@ def call_hook(self, hook, *args, **kwargs):
172172
return False
173173
return True
174174

175-
def download(self, filekey, key_index=None):
176-
if key_index is None:
177-
filename = settings.files[filekey]['filename']
175+
def download(self, filekey):
176+
if 'filename' in settings.files[filekey]:
177+
filenames = [settings.files[filekey]['filename']]
178178
else:
179-
filename = settings.files[filekey]['filenames'][key_index]
179+
filenames = settings.files[filekey]['filenames']
180180

181-
web_file = None
182-
urls = [e.format(filename=filename) for e in settings.files[filekey]['urls']]
183-
for url in urls:
184-
try:
185-
web_file = urlopen(url)
186-
if 'html' in web_file.headers['Content-Type']:
187-
# TODO: Make this a subclass
188-
raise Exception("Content type of downloaded file was {}".format(web_file.headers['Content-Type']))
189-
self.logger.debug("Downloaded: {}".format(url))
190-
break
191-
except Exception:
192-
web_file = None
193-
continue
194-
else:
195-
self.logger.error("Web file not found: %s. Tried URLs:\n%s", filename, '\n'.join(urls))
196-
197-
if web_file is not None:
198-
self.logger.debug("Saving: {}/{}".format(self.data_dir, filename))
199-
if not os.path.exists(self.data_dir):
200-
os.makedirs(self.data_dir)
201-
file = io.open(os.path.join(self.data_dir, filename), 'wb')
202-
file.write(web_file.read())
203-
file.close()
204-
elif not os.path.exists(os.path.join(self.data_dir, filename)):
205-
raise Exception("File not found and download failed: {} [{}]".format(filename, url))
181+
for filename in filenames:
182+
web_file = None
183+
urls = [e.format(filename=filename) for e in settings.files[filekey]['urls']]
184+
for url in urls:
185+
try:
186+
web_file = urlopen(url)
187+
if 'html' in web_file.headers['Content-Type']:
188+
# TODO: Make this a subclass
189+
raise Exception("Content type of downloaded file was {}".format(web_file.headers['Content-Type']))
190+
self.logger.debug("Downloaded: {}".format(url))
191+
break
192+
except Exception:
193+
web_file = None
194+
continue
195+
else:
196+
self.logger.error("Web file not found: %s. Tried URLs:\n%s", filename, '\n'.join(urls))
197+
198+
if web_file is not None:
199+
self.logger.debug("Saving: {}/{}".format(self.data_dir, filename))
200+
if not os.path.exists(self.data_dir):
201+
os.makedirs(self.data_dir)
202+
file = io.open(os.path.join(self.data_dir, filename), 'wb')
203+
file.write(web_file.read())
204+
file.close()
205+
elif not os.path.exists(os.path.join(self.data_dir, filename)):
206+
raise Exception("File not found and download failed: {} [{}]".format(filename, url))
206207

207208
def get_data(self, filekey):
208209
if 'filename' in settings.files[filekey]:

0 commit comments

Comments
 (0)