Use freedesktop.org mandated user config file location (Suggested by Tyll in #231)

This commit is contained in:
Philipp Hagemeister 2011-11-29 20:13:06 +01:00
parent 77315556f1
commit 0cd235eef6
2 changed files with 30 additions and 13 deletions

View file

@ -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

View file

@ -4125,7 +4125,12 @@ def _find_term_columns():
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