--load-info: Use the fileinput module

It automatically handles the '-' filename as stdin
This commit is contained in:
Jaime Marquínez Ferrándiz 2015-03-01 11:46:57 +01:00
parent 003c69a84b
commit 31bd39256b

View File

@ -4,8 +4,10 @@
from __future__ import absolute_import, unicode_literals from __future__ import absolute_import, unicode_literals
import collections import collections
import contextlib
import datetime import datetime
import errno import errno
import fileinput
import io import io
import itertools import itertools
import json import json
@ -1452,8 +1454,11 @@ def download(self, url_list):
return self._download_retcode return self._download_retcode
def download_with_info_file(self, info_filename): def download_with_info_file(self, info_filename):
with io.open(info_filename, 'r', encoding='utf-8') as f: with contextlib.closing(fileinput.FileInput(
info = json.load(f) [info_filename], mode='r',
openhook=fileinput.hook_encoded('utf-8'))) as f:
# FileInput doesn't have a read method, we can't call json.load
info = json.loads('\n'.join(f))
try: try:
self.process_ie_result(info, download=True) self.process_ie_result(info, download=True)
except DownloadError: except DownloadError: