This commit is contained in:
NoSuck 2024-05-11 04:45:44 +08:00 committed by GitHub
commit bc22d68055
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 22 additions and 0 deletions

View File

@ -8,6 +8,7 @@ __license__ = 'Public Domain'
import io
import os
import random
import re
import sys
@ -121,6 +122,23 @@ def _real_main(argv=None):
table = [[mso_id, mso_info['name']] for mso_id, mso_info in MSO_INFO.items()]
write_string('Supported TV Providers:\n' + render_table(['mso', 'mso name'], table) + '\n', out=sys.stdout)
sys.exit(0)
if opts.determine_extractors:
status = 1
for url in all_urls:
if re.match(r'^[^\s/]+\.[^\s/]+/', url): # generic.py
write_string('The url doesn\'t specify the protocol, trying with http\n', out=sys.stderr)
url = 'http://' + url
for ie in list_extractors(opts.age_limit):
if not ie._WORKING or ie.IE_NAME == 'generic':
continue
try:
if re.match(getattr(ie, '_VALID_URL'), url):
write_string(ie.IE_NAME + ' ' + url + '\n', out=sys.stdout)
status = 0
break
except AttributeError:
pass
sys.exit(status)
# Conflicting, missing and erroneous options
if opts.usenetrc and (opts.username is not None or opts.password is not None):

View File

@ -159,6 +159,10 @@ def parseOpts(overrideArguments=None):
'--extractor-descriptions',
action='store_true', dest='list_extractor_descriptions', default=False,
help='Output descriptions of all supported extractors')
general.add_option(
'--determine-extractors',
action='store_true', dest='determine_extractors', default=False,
help='List the extractor that would be used for each URL. Exit status indicates at least one successful match.')
general.add_option(
'--force-generic-extractor',
action='store_true', dest='force_generic_extractor', default=False,