|
@ -699,15 +699,32 @@ class FileDownloader(object): |
|
|
self.trouble(u'ERROR: invalid system charset or erroneous output template') |
|
|
self.trouble(u'ERROR: invalid system charset or erroneous output template') |
|
|
return None |
|
|
return None |
|
|
|
|
|
|
|
|
|
|
|
def _match_entry(self, info_dict): |
|
|
|
|
|
""" Returns None iff the file should be downloaded """ |
|
|
|
|
|
|
|
|
|
|
|
title = info_dict['title'] |
|
|
|
|
|
matchtitle = self.params.get('matchtitle', False) |
|
|
|
|
|
if matchtitle and not re.search(matchtitle, title, re.IGNORECASE): |
|
|
|
|
|
return u'[download] "' + title + '" title did not match pattern "' + matchtitle + '"' |
|
|
|
|
|
rejecttitle = self.params.get('rejecttitle', False) |
|
|
|
|
|
if rejecttitle and re.search(rejecttitle, title, re.IGNORECASE): |
|
|
|
|
|
return u'"' + title + '" title matched reject pattern "' + rejecttitle + '"' |
|
|
|
|
|
return None |
|
|
|
|
|
|
|
|
def process_info(self, info_dict): |
|
|
def process_info(self, info_dict): |
|
|
"""Process a single dictionary returned by an InfoExtractor.""" |
|
|
"""Process a single dictionary returned by an InfoExtractor.""" |
|
|
|
|
|
|
|
|
|
|
|
reason = self._match_entry(info_dict) |
|
|
|
|
|
if reason is not None: |
|
|
|
|
|
self.to_screen(u'[download] ' + reason) |
|
|
|
|
|
return |
|
|
|
|
|
|
|
|
max_downloads = self.params.get('max_downloads') |
|
|
max_downloads = self.params.get('max_downloads') |
|
|
if max_downloads is not None: |
|
|
if max_downloads is not None: |
|
|
if self._num_downloads > int(max_downloads): |
|
|
if self._num_downloads > int(max_downloads): |
|
|
self.to_screen(u'[download] Maximum number of downloads reached. Skipping ' + info_dict['title']) |
|
|
self.to_screen(u'[download] Maximum number of downloads reached. Skipping ' + info_dict['title']) |
|
|
return |
|
|
return |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
filename = self.prepare_filename(info_dict) |
|
|
filename = self.prepare_filename(info_dict) |
|
|
|
|
|
|
|
|
# Forced printings |
|
|
# Forced printings |
|
@ -731,16 +748,6 @@ class FileDownloader(object): |
|
|
if filename is None: |
|
|
if filename is None: |
|
|
return |
|
|
return |
|
|
|
|
|
|
|
|
matchtitle=self.params.get('matchtitle',False) |
|
|
|
|
|
rejecttitle=self.params.get('rejecttitle',False) |
|
|
|
|
|
title=info_dict['title'].encode(preferredencoding(), 'xmlcharrefreplace') |
|
|
|
|
|
if matchtitle and not re.search(matchtitle, title, re.IGNORECASE): |
|
|
|
|
|
self.to_screen(u'[download] "%s" title did not match pattern "%s"' % (title, matchtitle)) |
|
|
|
|
|
return |
|
|
|
|
|
if rejecttitle and re.search(rejecttitle, title, re.IGNORECASE): |
|
|
|
|
|
self.to_screen(u'[download] "%s" title matched reject pattern "%s"' % (title, rejecttitle)) |
|
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
|
|
if self.params.get('nooverwrites', False) and os.path.exists(filename): |
|
|
if self.params.get('nooverwrites', False) and os.path.exists(filename): |
|
|
self.to_stderr(u'WARNING: file exists and will be skipped') |
|
|
self.to_stderr(u'WARNING: file exists and will be skipped') |
|
|
return |
|
|
return |
|
@ -4118,7 +4125,12 @@ def parseOpts(): |
|
|
parser.add_option_group(authentication) |
|
|
parser.add_option_group(authentication) |
|
|
parser.add_option_group(postproc) |
|
|
parser.add_option_group(postproc) |
|
|
|
|
|
|
|
|
argv = _readOptions('/etc/youtube-dl.conf') + _readOptions(os.path.expanduser('~/.youtube-dl.conf')) + sys.argv[1:] |
|
|
|
|
|
|
|
|
xdg_config_home = os.environ.get('XDG_CONFIG_HOME') |
|
|
|
|
|
if xdg_config_home: |
|
|
|
|
|
userConf = os.path.join(xdg_config_home, 'youtube-dl.conf') |
|
|
|
|
|
else: |
|
|
|
|
|
userConf = os.path.join(os.path.expanduser('~'), '.config', 'youtube-dl.conf') |
|
|
|
|
|
argv = _readOptions('/etc/youtube-dl.conf') + _readOptions(userConf) + sys.argv[1:] |
|
|
opts, args = parser.parse_args(argv) |
|
|
opts, args = parser.parse_args(argv) |
|
|
|
|
|
|
|
|
return parser, opts, args |
|
|
return parser, opts, args |
|
|