From 1c33e3bee243ce1a3d224672983439b6f9a05b68 Mon Sep 17 00:00:00 2001 From: Riaan F Venter Date: Thu, 24 Jan 2019 22:05:54 +0800 Subject: [PATCH] pep: function name refactorings --- devscripts/create-github-release.py | 4 +- test/test_downloader_http.py | 8 ++-- test/test_execution.py | 4 +- test/test_utils.py | 30 ++++++------ youtube_dl/YoutubeDL.py | 42 ++++++++--------- youtube_dl/__init__.py | 6 +-- youtube_dl/downloader/common.py | 22 ++++----- youtube_dl/downloader/external.py | 14 +++--- youtube_dl/downloader/fragment.py | 14 +++--- youtube_dl/downloader/http.py | 8 ++-- youtube_dl/downloader/rtmp.py | 14 +++--- youtube_dl/downloader/rtsp.py | 4 +- youtube_dl/extractor/abc.py | 6 +-- youtube_dl/extractor/adobepass.py | 8 ++-- youtube_dl/extractor/aenetworks.py | 4 +- youtube_dl/extractor/anvato.py | 4 +- youtube_dl/extractor/atvat.py | 4 +- youtube_dl/extractor/baidu.py | 4 +- youtube_dl/extractor/bandcamp.py | 6 +-- youtube_dl/extractor/bbc.py | 4 +- youtube_dl/extractor/bild.py | 6 +-- youtube_dl/extractor/bitchute.py | 4 +- youtube_dl/extractor/brightcove.py | 4 +- youtube_dl/extractor/cbc.py | 4 +- youtube_dl/extractor/ceskatelevize.py | 4 +- youtube_dl/extractor/channel9.py | 4 +- youtube_dl/extractor/cjsw.py | 4 +- youtube_dl/extractor/common.py | 28 +++++------ youtube_dl/extractor/condenast.py | 4 +- youtube_dl/extractor/cspan.py | 6 +-- youtube_dl/extractor/ctvnews.py | 4 +- youtube_dl/extractor/dailymail.py | 6 +-- youtube_dl/extractor/dailymotion.py | 6 +-- youtube_dl/extractor/daum.py | 4 +- youtube_dl/extractor/deezer.py | 4 +- youtube_dl/extractor/discoverygo.py | 4 +- youtube_dl/extractor/douyutv.py | 4 +- youtube_dl/extractor/drbonanza.py | 4 +- youtube_dl/extractor/dvtv.py | 4 +- youtube_dl/extractor/eroprofile.py | 4 +- youtube_dl/extractor/europa.py | 4 +- youtube_dl/extractor/expressen.py | 4 +- youtube_dl/extractor/gamespot.py | 6 +-- youtube_dl/extractor/generic.py | 26 +++++------ youtube_dl/extractor/giantbomb.py | 4 +- youtube_dl/extractor/globo.py | 4 +- youtube_dl/extractor/howstuffworks.py | 6 +-- youtube_dl/extractor/leeco.py | 4 +- youtube_dl/extractor/lego.py | 4 +- youtube_dl/extractor/livestream.py | 4 +- youtube_dl/extractor/markiza.py | 4 +- youtube_dl/extractor/mediasite.py | 4 +- youtube_dl/extractor/meta.py | 4 +- youtube_dl/extractor/motherless.py | 4 +- youtube_dl/extractor/movingimage.py | 6 +-- youtube_dl/extractor/msn.py | 6 +-- youtube_dl/extractor/mtv.py | 4 +- youtube_dl/extractor/nintendo.py | 4 +- youtube_dl/extractor/npo.py | 4 +- youtube_dl/extractor/odnoklassniki.py | 4 +- youtube_dl/extractor/openload.py | 6 +-- youtube_dl/extractor/ora.py | 4 +- youtube_dl/extractor/orf.py | 8 ++-- youtube_dl/extractor/pbs.py | 4 +- youtube_dl/extractor/periscope.py | 4 +- youtube_dl/extractor/piksel.py | 4 +- youtube_dl/extractor/pornhub.py | 4 +- youtube_dl/extractor/qqmusic.py | 4 +- youtube_dl/extractor/rai.py | 4 +- youtube_dl/extractor/raywenderlich.py | 4 +- youtube_dl/extractor/reuters.py | 4 +- youtube_dl/extractor/revision3.py | 10 ++-- youtube_dl/extractor/roosterteeth.py | 4 +- youtube_dl/extractor/rte.py | 6 +-- youtube_dl/extractor/rts.py | 4 +- youtube_dl/extractor/sendtonews.py | 4 +- youtube_dl/extractor/springboardplatform.py | 6 +-- youtube_dl/extractor/stanfordoc.py | 12 ++--- youtube_dl/extractor/stitcher.py | 4 +- youtube_dl/extractor/svt.py | 4 +- youtube_dl/extractor/tnaflix.py | 4 +- youtube_dl/extractor/tvn24.py | 4 +- youtube_dl/extractor/tvnet.py | 6 +-- youtube_dl/extractor/twitch.py | 4 +- youtube_dl/extractor/udemy.py | 12 ++--- youtube_dl/extractor/ustudio.py | 4 +- youtube_dl/extractor/vimeo.py | 4 +- youtube_dl/extractor/vk.py | 14 +++--- youtube_dl/extractor/vodplatform.py | 4 +- youtube_dl/extractor/vrak.py | 4 +- youtube_dl/extractor/watchbox.py | 4 +- youtube_dl/extractor/webofstories.py | 4 +- youtube_dl/extractor/wistia.py | 4 +- youtube_dl/extractor/wwe.py | 4 +- youtube_dl/extractor/xtube.py | 4 +- youtube_dl/extractor/yahoo.py | 4 +- youtube_dl/extractor/yapfiles.py | 4 +- youtube_dl/extractor/youporn.py | 4 +- youtube_dl/extractor/youtube.py | 24 +++++----- youtube_dl/extractor/zdf.py | 4 +- youtube_dl/postprocessor/common.py | 4 +- youtube_dl/postprocessor/embedthumbnail.py | 30 ++++++------ youtube_dl/postprocessor/execafterdownload.py | 4 +- youtube_dl/postprocessor/ffmpeg.py | 46 +++++++++---------- youtube_dl/utils.py | 42 ++++++++--------- 105 files changed, 391 insertions(+), 391 deletions(-) diff --git a/devscripts/create-github-release.py b/devscripts/create-github-release.py index 30716ad8e..ba4c43cb3 100644 --- a/devscripts/create-github-release.py +++ b/devscripts/create-github-release.py @@ -21,7 +21,7 @@ from youtube_dl.compat import ( compat_urllib_request, ) from youtube_dl.utils import ( - make_HTTPS_handler, + make_https_handler, sanitized_Request, ) @@ -33,7 +33,7 @@ class GitHubReleaser(object): def __init__(self, debuglevel=0): self._init_github_account() - https_handler = make_HTTPS_handler({}, debuglevel=debuglevel) + https_handler = make_https_handler({}, debuglevel=debuglevel) self._opener = compat_urllib_request.build_opener(https_handler) def _init_github_account(self): diff --git a/test/test_downloader_http.py b/test/test_downloader_http.py index 750472281..a326af417 100644 --- a/test/test_downloader_http.py +++ b/test/test_downloader_http.py @@ -13,7 +13,7 @@ from test.helper import http_server_port, try_rm from youtube_dl import YoutubeDL from youtube_dl.compat import compat_http_server from youtube_dl.downloader.http import HttpFD -from youtube_dl.utils import encodeFilename +from youtube_dl.utils import encode_filename import threading TEST_DIR = os.path.dirname(os.path.abspath(__file__)) @@ -91,12 +91,12 @@ class TestHttpFD(unittest.TestCase): ydl = YoutubeDL(params) downloader = HttpFD(ydl, params) filename = 'testfile.mp4' - try_rm(encodeFilename(filename)) + try_rm(encode_filename(filename)) self.assertTrue(downloader.real_download(filename, { 'url': 'http://127.0.0.1:%d/%s' % (self.port, ep), })) - self.assertEqual(os.path.getsize(encodeFilename(filename)), TEST_SIZE) - try_rm(encodeFilename(filename)) + self.assertEqual(os.path.getsize(encode_filename(filename)), TEST_SIZE) + try_rm(encode_filename(filename)) def download_all(self, params): for ep in ('regular', 'no-content-length', 'no-range', 'no-range-no-content-length'): diff --git a/test/test_execution.py b/test/test_execution.py index 11661bb68..303c4f53e 100644 --- a/test/test_execution.py +++ b/test/test_execution.py @@ -10,7 +10,7 @@ import os import subprocess sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -from youtube_dl.utils import encodeArgument +from youtube_dl.utils import encode_argument rootDir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) @@ -34,7 +34,7 @@ class TestExecution(unittest.TestCase): def test_cmdline_umlauts(self): p = subprocess.Popen( - [sys.executable, 'youtube_dl/__main__.py', encodeArgument('ä'), '--version'], + [sys.executable, 'youtube_dl/__main__.py', encode_argument('ä'), '--version'], cwd=rootDir, stdout=_DEV_NULL, stderr=subprocess.PIPE) _, stderr = p.communicate() self.assertFalse(stderr) diff --git a/test/test_utils.py b/test/test_utils.py index 409482c3b..69555cf07 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -26,7 +26,7 @@ from youtube_dl.utils import ( determine_ext, dict_get, encode_compat_str, - encodeFilename, + encode_filename, escape_rfc3986, escape_url, extract_attributes, @@ -48,7 +48,7 @@ from youtube_dl.utils import ( multipart_encode, ohdave_rsa_encrypt, OnDemandPagedList, - orderedSet, + ordered_set, parse_age_limit, parse_duration, parse_filesize, @@ -71,7 +71,7 @@ from youtube_dl.utils import ( str_to_int, strip_jsonp, timeconvert, - unescapeHTML, + unescape_html, unified_strdate, unified_timestamp, unsmuggle_url, @@ -277,21 +277,21 @@ class TestUtil(unittest.TestCase): self.assertEqual(remove_quotes('";"'), ';') def test_ordered_set(self): - self.assertEqual(orderedSet([1, 1, 2, 3, 4, 4, 5, 6, 7, 3, 5]), [1, 2, 3, 4, 5, 6, 7]) - self.assertEqual(orderedSet([]), []) - self.assertEqual(orderedSet([1]), [1]) + self.assertEqual(ordered_set([1, 1, 2, 3, 4, 4, 5, 6, 7, 3, 5]), [1, 2, 3, 4, 5, 6, 7]) + self.assertEqual(ordered_set([]), []) + self.assertEqual(ordered_set([1]), [1]) # keep the list ordered - self.assertEqual(orderedSet([135, 1, 1, 1]), [135, 1]) + self.assertEqual(ordered_set([135, 1, 1, 1]), [135, 1]) def test_unescape_html(self): - self.assertEqual(unescapeHTML('%20;'), '%20;') - self.assertEqual(unescapeHTML('/'), '/') - self.assertEqual(unescapeHTML('/'), '/') - self.assertEqual(unescapeHTML('é'), 'é') - self.assertEqual(unescapeHTML('�'), '�') - self.assertEqual(unescapeHTML('&a"'), '&a"') + self.assertEqual(unescape_html('%20;'), '%20;') + self.assertEqual(unescape_html('/'), '/') + self.assertEqual(unescape_html('/'), '/') + self.assertEqual(unescape_html('é'), 'é') + self.assertEqual(unescape_html('�'), '�') + self.assertEqual(unescape_html('&a"'), '&a"') # HTML5 entities - self.assertEqual(unescapeHTML('.''), '.\'') + self.assertEqual(unescape_html('.''), '.\'') def test_date_from_str(self): self.assertEqual(date_from_str('yesterday'), date_from_str('now-1day')) @@ -462,7 +462,7 @@ class TestUtil(unittest.TestCase): self.assertEqual(res_data, {'a': 'b', 'c': 'd'}) def test_shell_quote(self): - args = ['ffmpeg', '-i', encodeFilename('ñ€ß\'.mp4')] + args = ['ffmpeg', '-i', encode_filename('ñ€ß\'.mp4')] self.assertEqual( shell_quote(args), """ffmpeg -i 'ñ€ß'"'"'.mp4'""" if compat_os_name != 'nt' else '''ffmpeg -i "ñ€ß'.mp4"''') diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index a827414dc..3ce8aa19e 100755 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -53,19 +53,19 @@ from .utils import ( determine_protocol, DownloadError, encode_compat_str, - encodeFilename, + encode_filename, error_to_compat_str, expand_path, ExtractorError, format_bytes, - formatSeconds, + format_seconds, GeoRestrictedError, int_or_none, ISO3166Utils, locked_file, - make_HTTPS_handler, + make_https_handler, MaxDownloadsReached, - orderedSet, + ordered_set, PagedList, parse_filesize, PerRequestProxyHandler, @@ -710,7 +710,7 @@ class YoutubeDL(object): # 'Treat' all problem characters by passing filename through preferredencoding # to workaround encoding issues with subprocess on python2 @ Windows if sys.version_info < (3, 0) and sys.platform == 'win32': - filename = encodeFilename(filename, True).decode(preferredencoding()) + filename = encode_filename(filename, True).decode(preferredencoding()) return sanitize_path(filename) except ValueError as err: self.report_error('Error in output template: ' + str(err) + ' (encoding: ' + repr(preferredencoding()) + ')') @@ -918,7 +918,7 @@ class YoutubeDL(object): yield int(item) else: yield int(string_segment) - playlistitems = orderedSet(iter_playlistitems(playlistitems_str)) + playlistitems = ordered_set(iter_playlistitems(playlistitems_str)) ie_entries = ie_result['entries'] @@ -1735,7 +1735,7 @@ class YoutubeDL(object): if self.params.get('forcefilename', False) and filename is not None: self.to_stdout(filename) if self.params.get('forceduration', False) and info_dict.get('duration') is not None: - self.to_stdout(formatSeconds(info_dict['duration'])) + self.to_stdout(format_seconds(info_dict['duration'])) if self.params.get('forceformat', False): self.to_stdout(info_dict['format']) if self.params.get('forcejson', False): @@ -1758,19 +1758,19 @@ class YoutubeDL(object): self.report_error('unable to create directory ' + error_to_compat_str(err)) return False - if not ensure_dir_exists(sanitize_path(encodeFilename(filename))): + if not ensure_dir_exists(sanitize_path(encode_filename(filename))): return if self.params.get('writedescription', False): descfn = replace_extension(filename, 'description', info_dict.get('ext')) - if self.params.get('nooverwrites', False) and os.path.exists(encodeFilename(descfn)): + if self.params.get('nooverwrites', False) and os.path.exists(encode_filename(descfn)): self.to_screen('[info] Video description is already present') elif info_dict.get('description') is None: self.report_warning('There\'s no description to write.') else: try: self.to_screen('[info] Writing video description to: ' + descfn) - with io.open(encodeFilename(descfn), 'w', encoding='utf-8') as descfile: + with io.open(encode_filename(descfn), 'w', encoding='utf-8') as descfile: descfile.write(info_dict['description']) except (OSError, IOError): self.report_error('Cannot write description file ' + descfn) @@ -1778,12 +1778,12 @@ class YoutubeDL(object): if self.params.get('writeannotations', False): annofn = replace_extension(filename, 'annotations.xml', info_dict.get('ext')) - if self.params.get('nooverwrites', False) and os.path.exists(encodeFilename(annofn)): + if self.params.get('nooverwrites', False) and os.path.exists(encode_filename(annofn)): self.to_screen('[info] Video annotations are already present') else: try: self.to_screen('[info] Writing video annotations to: ' + annofn) - with io.open(encodeFilename(annofn), 'w', encoding='utf-8') as annofile: + with io.open(encode_filename(annofn), 'w', encoding='utf-8') as annofile: annofile.write(info_dict['annotations']) except (KeyError, TypeError): self.report_warning('There are no annotations to write.') @@ -1802,7 +1802,7 @@ class YoutubeDL(object): for sub_lang, sub_info in subtitles.items(): sub_format = sub_info['ext'] sub_filename = subtitles_filename(filename, sub_lang, sub_format) - if self.params.get('nooverwrites', False) and os.path.exists(encodeFilename(sub_filename)): + if self.params.get('nooverwrites', False) and os.path.exists(encode_filename(sub_filename)): self.to_screen('[info] Video subtitle %s.%s is already present' % (sub_lang, sub_format)) else: self.to_screen('[info] Writing video subtitles to: ' + sub_filename) @@ -1810,7 +1810,7 @@ class YoutubeDL(object): try: # Use newline='' to prevent conversion of newline characters # See https://github.com/rg3/youtube-dl/issues/10268 - with io.open(encodeFilename(sub_filename), 'w', encoding='utf-8', newline='') as subfile: + with io.open(encode_filename(sub_filename), 'w', encoding='utf-8', newline='') as subfile: subfile.write(sub_info['data']) except (OSError, IOError): self.report_error('Cannot write subtitles file ' + sub_filename) @@ -1819,7 +1819,7 @@ class YoutubeDL(object): try: sub_data = ie._request_webpage( sub_info['url'], info_dict['id'], note=False).read() - with io.open(encodeFilename(sub_filename), 'wb') as subfile: + with io.open(encode_filename(sub_filename), 'wb') as subfile: subfile.write(sub_data) except (ExtractorError, IOError, OSError, ValueError) as err: self.report_warning('Unable to download subtitle for "%s": %s' % @@ -1828,7 +1828,7 @@ class YoutubeDL(object): if self.params.get('writeinfojson', False): infofn = replace_extension(filename, 'info.json', info_dict.get('ext')) - if self.params.get('nooverwrites', False) and os.path.exists(encodeFilename(infofn)): + if self.params.get('nooverwrites', False) and os.path.exists(encode_filename(infofn)): self.to_screen('[info] Video description metadata is already present') else: self.to_screen('[info] Writing video description metadata as JSON to: ' + infofn) @@ -1889,7 +1889,7 @@ class YoutubeDL(object): 'Requested formats are incompatible for merge and will be merged into mkv.') # Ensure filename always has a correct extension for successful merge filename = '%s.%s' % (filename_wo_ext, info_dict['ext']) - if os.path.exists(encodeFilename(filename)): + if os.path.exists(encode_filename(filename)): self.to_screen( '[download] %s has already been downloaded and ' 'merged' % filename) @@ -2055,7 +2055,7 @@ class YoutubeDL(object): for old_filename in files_to_delete: self.to_screen('Deleting original file %s (pass -k to keep)' % old_filename) try: - os.remove(encodeFilename(old_filename)) + os.remove(encode_filename(old_filename)) except (IOError, OSError): self.report_warning('Unable to remove downloaded original file') @@ -2319,7 +2319,7 @@ class YoutubeDL(object): proxy_handler = PerRequestProxyHandler(proxies) debuglevel = 1 if self.params.get('debug_printtraffic') else 0 - https_handler = make_HTTPS_handler(self.params, debuglevel=debuglevel) + https_handler = make_https_handler(self.params, debuglevel=debuglevel) ydlh = YoutubeDLHandler(self.params, debuglevel=debuglevel) data_handler = compat_urllib_request_DataHandler() @@ -2378,7 +2378,7 @@ class YoutubeDL(object): thumb_display_id = '%s ' % t['id'] if len(thumbnails) > 1 else '' t['filename'] = thumb_filename = os.path.splitext(filename)[0] + suffix + '.' + thumb_ext - if self.params.get('nooverwrites', False) and os.path.exists(encodeFilename(thumb_filename)): + if self.params.get('nooverwrites', False) and os.path.exists(encode_filename(thumb_filename)): self.to_screen('[%s] %s: Thumbnail %sis already present' % (info_dict['extractor'], info_dict['id'], thumb_display_id)) else: @@ -2386,7 +2386,7 @@ class YoutubeDL(object): (info_dict['extractor'], info_dict['id'], thumb_display_id)) try: uf = self.urlopen(t['url']) - with open(encodeFilename(thumb_filename), 'wb') as thumbf: + with open(encode_filename(thumb_filename), 'wb') as thumbf: shutil.copyfileobj(uf, thumbf) self.to_screen('[%s] %s: Writing thumbnail %sto: %s' % (info_dict['extractor'], info_dict['id'], thumb_display_id, thumb_filename)) diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index ba435ea42..6e6ec220c 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -22,7 +22,7 @@ from .compat import ( ) from .utils import ( DateRange, - decodeOption, + decode_option, DEFAULT_OUTTMPL, DownloadError, expand_path, @@ -375,8 +375,8 @@ def _real_main(argv=None): 'listsubtitles': opts.listsubtitles, 'subtitlesformat': opts.subtitlesformat, 'subtitleslangs': opts.subtitleslangs, - 'matchtitle': decodeOption(opts.matchtitle), - 'rejecttitle': decodeOption(opts.rejecttitle), + 'matchtitle': decode_option(opts.matchtitle), + 'rejecttitle': decode_option(opts.rejecttitle), 'max_downloads': opts.max_downloads, 'prefer_free_formats': opts.prefer_free_formats, 'verbose': opts.verbose, diff --git a/youtube_dl/downloader/common.py b/youtube_dl/downloader/common.py index 5979833c0..4f5a88e62 100644 --- a/youtube_dl/downloader/common.py +++ b/youtube_dl/downloader/common.py @@ -8,8 +8,8 @@ import random from ..compat import compat_os_name from ..utils import ( - decodeArgument, - encodeFilename, + decode_argument, + encode_filename, error_to_compat_str, format_bytes, shell_quote, @@ -181,7 +181,7 @@ class FileDownloader(object): def temp_name(self, filename): """Returns a temporary filename for the given filename.""" if self.params.get('nopart', False) or filename == '-' or \ - (os.path.exists(encodeFilename(filename)) and not os.path.isfile(encodeFilename(filename))): + (os.path.exists(encode_filename(filename)) and not os.path.isfile(encode_filename(filename))): return filename return filename + '.part' @@ -197,7 +197,7 @@ class FileDownloader(object): try: if old_filename == new_filename: return - os.rename(encodeFilename(old_filename), encodeFilename(new_filename)) + os.rename(encode_filename(old_filename), encode_filename(new_filename)) except (IOError, OSError) as err: self.report_error('unable to rename file: %s' % error_to_compat_str(err)) @@ -205,7 +205,7 @@ class FileDownloader(object): """Try to set the last-modified time of the given file.""" if last_modified_hdr is None: return - if not os.path.isfile(encodeFilename(filename)): + if not os.path.isfile(encode_filename(filename)): return timestr = last_modified_hdr if timestr is None: @@ -331,14 +331,14 @@ class FileDownloader(object): nooverwrites_and_exists = ( self.params.get('nooverwrites', False) and - os.path.exists(encodeFilename(filename)) + os.path.exists(encode_filename(filename)) ) if not hasattr(filename, 'write'): continuedl_and_exists = ( - self.params.get('continuedl', True) and - os.path.isfile(encodeFilename(filename)) and - not self.params.get('nopart', False) + self.params.get('continuedl', True) and + os.path.isfile(encode_filename(filename)) and + not self.params.get('nopart', False) ) # Check file already present @@ -347,7 +347,7 @@ class FileDownloader(object): self._hook_progress({ 'filename': filename, 'status': 'finished', - 'total_bytes': os.path.getsize(encodeFilename(filename)), + 'total_bytes': os.path.getsize(encode_filename(filename)), }) return True @@ -380,7 +380,7 @@ class FileDownloader(object): if not self.params.get('verbose', False): return - str_args = [decodeArgument(a) for a in args] + str_args = [decode_argument(a) for a in args] if exe is None: exe = os.path.basename(str_args[0]) diff --git a/youtube_dl/downloader/external.py b/youtube_dl/downloader/external.py index 958d00aac..11cda2813 100644 --- a/youtube_dl/downloader/external.py +++ b/youtube_dl/downloader/external.py @@ -17,8 +17,8 @@ from ..utils import ( cli_valueless_option, cli_bool_option, cli_configuration_args, - encodeFilename, - encodeArgument, + encode_filename, + encode_argument, handle_youtubedl_headers, check_executable, is_outdated_version, @@ -49,7 +49,7 @@ class ExternalFD(FileDownloader): 'elapsed': time.time() - started, } if filename != '-': - fsize = os.path.getsize(encodeFilename(tmpfilename)) + fsize = os.path.getsize(encode_filename(tmpfilename)) self.to_screen('\r[%s] Downloaded %s bytes' % (self.get_basename(), fsize)) self.try_rename(tmpfilename, filename) status.update({ @@ -98,7 +98,7 @@ class ExternalFD(FileDownloader): def _call_downloader(self, tmpfilename, info_dict): """ Either overwrite this or implement _make_cmd """ - cmd = [encodeArgument(a) for a in self._make_cmd(tmpfilename, info_dict)] + cmd = [encode_argument(a) for a in self._make_cmd(tmpfilename, info_dict)] self._debug_cmd(cmd) @@ -131,7 +131,7 @@ class CurlFD(ExternalFD): return cmd def _call_downloader(self, tmpfilename, info_dict): - cmd = [encodeArgument(a) for a in self._make_cmd(tmpfilename, info_dict)] + cmd = [encode_argument(a) for a in self._make_cmd(tmpfilename, info_dict)] self._debug_cmd(cmd) @@ -311,8 +311,8 @@ class FFmpegFD(ExternalFD): else: args += ['-f', EXT_TO_OUT_FORMATS.get(info_dict['ext'], info_dict['ext'])] - args = [encodeArgument(opt) for opt in args] - args.append(encodeFilename(ffpp._ffmpeg_filename_argument(tmpfilename), True)) + args = [encode_argument(opt) for opt in args] + args.append(encode_filename(ffpp._ffmpeg_filename_argument(tmpfilename), True)) self._debug_cmd(args) diff --git a/youtube_dl/downloader/fragment.py b/youtube_dl/downloader/fragment.py index 917f6dc01..ab173902d 100644 --- a/youtube_dl/downloader/fragment.py +++ b/youtube_dl/downloader/fragment.py @@ -8,7 +8,7 @@ from .common import FileDownloader from .http import HttpFD from ..utils import ( error_to_compat_str, - encodeFilename, + encode_filename, sanitize_open, sanitized_Request, ) @@ -117,7 +117,7 @@ class FragmentFD(FileDownloader): if self.__do_ytdl_file(ctx): self._write_ytdl_file(ctx) if not self.params.get('keep_fragments', False): - os.remove(encodeFilename(ctx['fragment_filename_sanitized'])) + os.remove(encode_filename(ctx['fragment_filename_sanitized'])) del ctx['fragment_filename_sanitized'] def _prepare_frag_download(self, ctx): @@ -150,9 +150,9 @@ class FragmentFD(FileDownloader): resume_len = 0 # Establish possible resume length - if os.path.isfile(encodeFilename(tmpfilename)): + if os.path.isfile(encode_filename(tmpfilename)): open_mode = 'ab' - resume_len = os.path.getsize(encodeFilename(tmpfilename)) + resume_len = os.path.getsize(encode_filename(tmpfilename)) # Should be initialized before ytdl file check ctx.update({ @@ -161,7 +161,7 @@ class FragmentFD(FileDownloader): }) if self.__do_ytdl_file(ctx): - if os.path.isfile(encodeFilename(self.ytdl_filename(ctx['filename']))): + if os.path.isfile(encode_filename(self.ytdl_filename(ctx['filename']))): self._read_ytdl_file(ctx) is_corrupt = ctx.get('ytdl_corrupt') is True is_inconsistent = ctx['fragment_index'] > 0 and resume_len == 0 @@ -248,7 +248,7 @@ class FragmentFD(FileDownloader): def _finish_frag_download(self, ctx): ctx['dest_stream'].close() if self.__do_ytdl_file(ctx): - ytdl_filename = encodeFilename(self.ytdl_filename(ctx['filename'])) + ytdl_filename = encode_filename(self.ytdl_filename(ctx['filename'])) if os.path.isfile(ytdl_filename): os.remove(ytdl_filename) elapsed = time.time() - ctx['started'] @@ -257,7 +257,7 @@ class FragmentFD(FileDownloader): downloaded_bytes = ctx['complete_frags_downloaded_bytes'] else: self.try_rename(ctx['tmpfilename'], ctx['filename']) - downloaded_bytes = os.path.getsize(encodeFilename(ctx['filename'])) + downloaded_bytes = os.path.getsize(encode_filename(ctx['filename'])) self._hook_progress({ 'downloaded_bytes': downloaded_bytes, diff --git a/youtube_dl/downloader/http.py b/youtube_dl/downloader/http.py index 5b1e96013..b4d35142e 100644 --- a/youtube_dl/downloader/http.py +++ b/youtube_dl/downloader/http.py @@ -14,7 +14,7 @@ from ..compat import ( ) from ..utils import ( ContentTooShortError, - encodeFilename, + encode_filename, int_or_none, sanitize_open, sanitized_Request, @@ -58,9 +58,9 @@ class HttpFD(FileDownloader): if self.params.get('continuedl', True): # Establish possible resume length - if os.path.isfile(encodeFilename(ctx.tmpfilename)): + if os.path.isfile(encode_filename(ctx.tmpfilename)): ctx.resume_len = os.path.getsize( - encodeFilename(ctx.tmpfilename)) + encode_filename(ctx.tmpfilename)) ctx.is_resume = ctx.resume_len > 0 @@ -221,7 +221,7 @@ class HttpFD(FileDownloader): if not to_stdout: ctx.stream.close() ctx.stream = None - ctx.resume_len = byte_counter if to_stdout else os.path.getsize(encodeFilename(ctx.tmpfilename)) + ctx.resume_len = byte_counter if to_stdout else os.path.getsize(encode_filename(ctx.tmpfilename)) raise RetryDownload(e) while True: diff --git a/youtube_dl/downloader/rtmp.py b/youtube_dl/downloader/rtmp.py index fbb7f51b0..401d60784 100644 --- a/youtube_dl/downloader/rtmp.py +++ b/youtube_dl/downloader/rtmp.py @@ -9,8 +9,8 @@ from .common import FileDownloader from ..compat import compat_str from ..utils import ( check_executable, - encodeFilename, - encodeArgument, + encode_filename, + encode_argument, get_exe_version, ) @@ -156,7 +156,7 @@ class RtmpFD(FileDownloader): if not live and continue_dl: args += ['--skip', '1'] - args = [encodeArgument(a) for a in args] + args = [encode_argument(a) for a in args] self._debug_cmd(args, exe='rtmpdump') @@ -180,15 +180,15 @@ class RtmpFD(FileDownloader): return False while retval in (RD_INCOMPLETE, RD_FAILED) and not test and not live: - prevsize = os.path.getsize(encodeFilename(tmpfilename)) + prevsize = os.path.getsize(encode_filename(tmpfilename)) self.to_screen('[rtmpdump] Downloaded %s bytes' % prevsize) time.sleep(5.0) # This seems to be needed args = basic_args + ['--resume'] if retval == RD_FAILED: args += ['--skip', '1'] - args = [encodeArgument(a) for a in args] + args = [encode_argument(a) for a in args] retval = run_rtmpdump(args) - cursize = os.path.getsize(encodeFilename(tmpfilename)) + cursize = os.path.getsize(encode_filename(tmpfilename)) if prevsize == cursize and retval == RD_FAILED: break # Some rtmp streams seem abort after ~ 99.8%. Don't complain for those @@ -197,7 +197,7 @@ class RtmpFD(FileDownloader): retval = RD_SUCCESS break if retval == RD_SUCCESS or (test and retval == RD_INCOMPLETE): - fsize = os.path.getsize(encodeFilename(tmpfilename)) + fsize = os.path.getsize(encode_filename(tmpfilename)) self.to_screen('[rtmpdump] Downloaded %s bytes' % fsize) self.try_rename(tmpfilename, filename) self._hook_progress({ diff --git a/youtube_dl/downloader/rtsp.py b/youtube_dl/downloader/rtsp.py index 939358b2a..0c2447211 100644 --- a/youtube_dl/downloader/rtsp.py +++ b/youtube_dl/downloader/rtsp.py @@ -6,7 +6,7 @@ import subprocess from .common import FileDownloader from ..utils import ( check_executable, - encodeFilename, + encode_filename, ) @@ -31,7 +31,7 @@ class RtspFD(FileDownloader): retval = subprocess.call(args) if retval == 0: - fsize = os.path.getsize(encodeFilename(tmpfilename)) + fsize = os.path.getsize(encode_filename(tmpfilename)) self.to_screen('\r[%s] %s bytes' % (args[0], fsize)) self.try_rename(tmpfilename, filename) self._hook_progress({ diff --git a/youtube_dl/extractor/abc.py b/youtube_dl/extractor/abc.py index 4ac323bf6..24d074fbf 100644 --- a/youtube_dl/extractor/abc.py +++ b/youtube_dl/extractor/abc.py @@ -13,7 +13,7 @@ from ..utils import ( int_or_none, parse_iso8601, try_get, - unescapeHTML, + unescape_html, update_url_query, ) @@ -131,7 +131,7 @@ class ABCIViewIE(InfoExtractor): video_id = self._match_id(url) video_params = self._download_json( 'https://iview.abc.net.au/api/programs/' + video_id, video_id) - title = unescapeHTML(video_params.get('title') or video_params['seriesTitle']) + title = unescape_html(video_params.get('title') or video_params['seriesTitle']) stream = next(s for s in video_params['playlist'] if s.get('type') in ('program', 'livestream')) house_number = video_params.get('episodeHouseNumber') or video_id @@ -179,7 +179,7 @@ class ABCIViewIE(InfoExtractor): 'thumbnail': video_params.get('thumbnail'), 'duration': int_or_none(video_params.get('eventDuration')), 'timestamp': parse_iso8601(video_params.get('pubDate'), ' '), - 'series': unescapeHTML(video_params.get('seriesTitle')), + 'series': unescape_html(video_params.get('seriesTitle')), 'series_id': video_params.get('seriesHouseNumber') or video_id[:7], 'season_number': int_or_none(self._search_regex( r'\bSeries\s+(\d+)\b', title, 'season number', default=None)), diff --git a/youtube_dl/extractor/adobepass.py b/youtube_dl/extractor/adobepass.py index 1cf2dcbf3..0cfa97e04 100644 --- a/youtube_dl/extractor/adobepass.py +++ b/youtube_dl/extractor/adobepass.py @@ -11,7 +11,7 @@ from ..compat import ( compat_urlparse, ) from ..utils import ( - unescapeHTML, + unescape_html, urlencode_postdata, unified_timestamp, ExtractorError, @@ -1385,7 +1385,7 @@ class AdobePassIE(InfoExtractor): if not redirect_url: return None if url: - redirect_url = compat_urlparse.urljoin(url, unescapeHTML(redirect_url)) + redirect_url = compat_urlparse.urljoin(url, unescape_html(redirect_url)) return redirect_url mvpd_headers = { @@ -1520,7 +1520,7 @@ class AdobePassIE(InfoExtractor): self._downloader.cache.store(self._MVPD_CACHE, requestor_id, {}) count += 1 continue - authn_token = unescapeHTML(xml_text(session, 'authnToken')) + authn_token = unescape_html(xml_text(session, 'authnToken')) requestor_info['authn_token'] = authn_token self._downloader.cache.store(self._MVPD_CACHE, requestor_id, requestor_info) @@ -1543,7 +1543,7 @@ class AdobePassIE(InfoExtractor): continue if '(?:(?!\1).)+)\1', r'class="[^"]*jsb_video/FlashPlayer[^"]*"[^>]+data-jsb="(?P[^"]+)"'], webpage, 'player data', group='json')), diff --git a/youtube_dl/extractor/baidu.py b/youtube_dl/extractor/baidu.py index 234a661d3..108101d25 100644 --- a/youtube_dl/extractor/baidu.py +++ b/youtube_dl/extractor/baidu.py @@ -4,7 +4,7 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..utils import unescapeHTML +from ..utils import unescape_html class BaiduVideoIE(InfoExtractor): @@ -43,7 +43,7 @@ class BaiduVideoIE(InfoExtractor): 'xqinfo', category, playlist_id, 'Download playlist JSON metadata') playlist_title = playlist_detail['title'] - playlist_description = unescapeHTML(playlist_detail.get('intro')) + playlist_description = unescape_html(playlist_detail.get('intro')) episodes_detail = self._call_api( 'xqsingle', category, playlist_id, 'Download episodes JSON metadata') diff --git a/youtube_dl/extractor/bandcamp.py b/youtube_dl/extractor/bandcamp.py index f14b407dc..76c7684ce 100644 --- a/youtube_dl/extractor/bandcamp.py +++ b/youtube_dl/extractor/bandcamp.py @@ -17,7 +17,7 @@ from ..utils import ( parse_filesize, str_or_none, try_get, - unescapeHTML, + unescape_html, update_url_query, unified_strdate, unified_timestamp, @@ -141,7 +141,7 @@ class BandcampIE(InfoExtractor): self._search_regex( r'data-blob=(["\'])(?P{.+?})\1', download_webpage, 'blob', group='blob'), - track_id, transform_source=unescapeHTML) + track_id, transform_source=unescape_html) info = try_get( blob, (lambda x: x['digital_items'][0], @@ -359,7 +359,7 @@ class BandcampWeeklyIE(InfoExtractor): self._search_regex( r'data-blob=(["\'])(?P{.+?})\1', webpage, 'blob', group='blob'), - video_id, transform_source=unescapeHTML) + video_id, transform_source=unescape_html) show = blob['bcw_show'] diff --git a/youtube_dl/extractor/bbc.py b/youtube_dl/extractor/bbc.py index eac9a5a46..48d489381 100644 --- a/youtube_dl/extractor/bbc.py +++ b/youtube_dl/extractor/bbc.py @@ -16,7 +16,7 @@ from ..utils import ( parse_duration, parse_iso8601, try_get, - unescapeHTML, + unescape_html, urlencode_postdata, urljoin, ) @@ -895,7 +895,7 @@ class BBCIE(BBCCoUkIE): if data_playables: for _, data_playable_json in data_playables: data_playable = self._parse_json( - unescapeHTML(data_playable_json), playlist_id, fatal=False) + unescape_html(data_playable_json), playlist_id, fatal=False) if not data_playable: continue settings = data_playable.get('settings', {}) diff --git a/youtube_dl/extractor/bild.py b/youtube_dl/extractor/bild.py index b8dfbd42b..e35505437 100644 --- a/youtube_dl/extractor/bild.py +++ b/youtube_dl/extractor/bild.py @@ -4,7 +4,7 @@ from __future__ import unicode_literals from .common import InfoExtractor from ..utils import ( int_or_none, - unescapeHTML, + unescape_html, ) @@ -32,8 +32,8 @@ class BildIE(InfoExtractor): return { 'id': video_id, - 'title': unescapeHTML(video_data['title']).strip(), - 'description': unescapeHTML(video_data.get('description')), + 'title': unescape_html(video_data['title']).strip(), + 'description': unescape_html(video_data.get('description')), 'url': video_data['clipList'][0]['srces'][0]['src'], 'thumbnail': video_data.get('poster'), 'duration': int_or_none(video_data.get('durationSec')), diff --git a/youtube_dl/extractor/bitchute.py b/youtube_dl/extractor/bitchute.py index 4f39424f5..0f220fe51 100644 --- a/youtube_dl/extractor/bitchute.py +++ b/youtube_dl/extractor/bitchute.py @@ -6,7 +6,7 @@ import re from .common import InfoExtractor from ..utils import ( - orderedSet, + ordered_set, urlencode_postdata, ) @@ -54,7 +54,7 @@ class BitChuteIE(InfoExtractor): formats = [ {'url': format_url} - for format_url in orderedSet(format_urls)] + for format_url in ordered_set(format_urls)] self._check_formats(formats, video_id) self._sort_formats(formats) diff --git a/youtube_dl/extractor/brightcove.py b/youtube_dl/extractor/brightcove.py index 465ae396e..73e647cfe 100644 --- a/youtube_dl/extractor/brightcove.py +++ b/youtube_dl/extractor/brightcove.py @@ -27,7 +27,7 @@ from ..utils import ( js_to_json, int_or_none, parse_iso8601, - unescapeHTML, + unescape_html, unsmuggle_url, update_url_query, clean_html, @@ -259,7 +259,7 @@ class BrightcoveLegacyIE(InfoExtractor): content=([\'"])(?Phttps?://(?:secure|c)\.brightcove.com/(?:(?!\2).)+)\2 ''', webpage) if url_m: - url = unescapeHTML(url_m.group('url')) + url = unescape_html(url_m.group('url')) # Some sites don't add it, we can't download with this url, for example: # http://www.ktvu.com/videos/news/raw-video-caltrain-releases-video-of-man-almost/vCTZdY/ if 'playerKey' in url or 'videoId' in url or 'idVideo' in url: diff --git a/youtube_dl/extractor/cbc.py b/youtube_dl/extractor/cbc.py index 43f95c739..e6e66f339 100644 --- a/youtube_dl/extractor/cbc.py +++ b/youtube_dl/extractor/cbc.py @@ -17,7 +17,7 @@ from ..utils import ( xpath_element, xpath_with_ns, find_xpath_attr, - orderedSet, + ordered_set, parse_duration, parse_iso8601, parse_age_limit, @@ -145,7 +145,7 @@ class CBCIE(InfoExtractor): media_ids.extend(re.findall(media_id_re, webpage)) entries.extend([ self.url_result('cbcplayer:%s' % media_id, 'CBCPlayer', media_id) - for media_id in orderedSet(media_ids)]) + for media_id in ordered_set(media_ids)]) return self.playlist_result( entries, display_id, strip_or_none(title), self._og_search_description(webpage)) diff --git a/youtube_dl/extractor/ceskatelevize.py b/youtube_dl/extractor/ceskatelevize.py index 46380430f..46f998874 100644 --- a/youtube_dl/extractor/ceskatelevize.py +++ b/youtube_dl/extractor/ceskatelevize.py @@ -12,7 +12,7 @@ from ..utils import ( ExtractorError, float_or_none, sanitized_Request, - unescapeHTML, + unescape_html, update_url_query, urlencode_postdata, USER_AGENTS, @@ -277,7 +277,7 @@ class CeskaTelevizePoradyIE(InfoExtractor): webpage = self._download_webpage(url, video_id) - data_url = update_url_query(unescapeHTML(self._search_regex( + data_url = update_url_query(unescape_html(self._search_regex( (r']*\bdata-url=(["\'])(?P(?:(?!\1).)+)\1', r']+\bsrc=(["\'])(?P(?:https?:)?//(?:www\.)?ceskatelevize\.cz/ivysilani/embed/iFramePlayer\.php.*?)\1'), webpage, 'iframe player url', group='url')), query={ diff --git a/youtube_dl/extractor/channel9.py b/youtube_dl/extractor/channel9.py index 81108e704..4f2cbef5b 100644 --- a/youtube_dl/extractor/channel9.py +++ b/youtube_dl/extractor/channel9.py @@ -9,7 +9,7 @@ from ..utils import ( int_or_none, parse_iso8601, qualities, - unescapeHTML, + unescape_html, ) @@ -108,7 +108,7 @@ class Channel9IE(InfoExtractor): episode_data = self._search_regex( r"data-episode='([^']+)'", webpage, 'episode data', default=None) if episode_data: - episode_data = self._parse_json(unescapeHTML( + episode_data = self._parse_json(unescape_html( episode_data), content_path) content_id = episode_data['contentId'] is_session = '/Sessions(' in episode_data['api'] diff --git a/youtube_dl/extractor/cjsw.py b/youtube_dl/extractor/cjsw.py index 505bdbe16..fd01e56fd 100644 --- a/youtube_dl/extractor/cjsw.py +++ b/youtube_dl/extractor/cjsw.py @@ -6,7 +6,7 @@ import re from .common import InfoExtractor from ..utils import ( determine_ext, - unescapeHTML, + unescape_html, ) @@ -36,7 +36,7 @@ class CJSWIE(InfoExtractor): webpage = self._download_webpage(url, episode_id) - title = unescapeHTML(self._search_regex( + title = unescape_html(self._search_regex( (r']+class=["\']episode-header__title["\'][^>]*>(?P[^<]+)', r'data-audio-title=(["\'])(?P<title>(?:(?!\1).)+)\1'), webpage, 'title', group='title')) diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index 95456b291..203237d60 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -54,7 +54,7 @@ from ..utils import ( js_to_json, JSON_LD_RE, mimetype2ext, - orderedSet, + ordered_set, parse_codecs, parse_duration, parse_iso8601, @@ -62,7 +62,7 @@ from ..utils import ( RegexNotFoundError, sanitized_Request, sanitize_filename, - unescapeHTML, + unescape_html, unified_strdate, unified_timestamp, update_Request, @@ -932,7 +932,7 @@ class InfoExtractor(object): return video_info def playlist_from_matches(self, matches, playlist_id=None, playlist_title=None, getter=None, ie=None): - urls = orderedSet( + urls = ordered_set( self.url_result(self._proto_relative_url(getter(m) if getter else m), ie) for m in matches) return self.playlist_result( @@ -1083,7 +1083,7 @@ class InfoExtractor(object): escaped = self._search_regex(og_regexes, html, name, flags=re.DOTALL, **kargs) if escaped is None: return None - return unescapeHTML(escaped) + return unescape_html(escaped) def _og_search_thumbnail(self, html, **kargs): return self._og_search_property('image', html, 'thumbnail URL', fatal=False, **kargs) @@ -1220,8 +1220,8 @@ class InfoExtractor(object): assert e['@type'] == 'VideoObject' info.update({ 'url': url_or_none(e.get('contentUrl')), - 'title': unescapeHTML(e.get('name')), - 'description': unescapeHTML(e.get('description')), + 'title': unescape_html(e.get('name')), + 'description': unescape_html(e.get('description')), 'thumbnail': url_or_none(e.get('thumbnailUrl') or e.get('thumbnailURL')), 'duration': parse_duration(e.get('duration')), 'timestamp': unified_timestamp(e.get('uploadDate')), @@ -1239,11 +1239,11 @@ class InfoExtractor(object): if expected_type is not None and expected_type != item_type: return info if item_type in ('TVEpisode', 'Episode'): - episode_name = unescapeHTML(e.get('name')) + episode_name = unescape_html(e.get('name')) info.update({ 'episode': episode_name, 'episode_number': int_or_none(e.get('episodeNumber')), - 'description': unescapeHTML(e.get('description')), + 'description': unescape_html(e.get('description')), }) if not info.get('title') and episode_name: info['title'] = episode_name @@ -1252,19 +1252,19 @@ class InfoExtractor(object): info['season_number'] = int_or_none(part_of_season.get('seasonNumber')) part_of_series = e.get('partOfSeries') or e.get('partOfTVSeries') if isinstance(part_of_series, dict) and part_of_series.get('@type') in ('TVSeries', 'Series', 'CreativeWorkSeries'): - info['series'] = unescapeHTML(part_of_series.get('name')) + info['series'] = unescape_html(part_of_series.get('name')) elif item_type == 'Movie': info.update({ - 'title': unescapeHTML(e.get('name')), - 'description': unescapeHTML(e.get('description')), + 'title': unescape_html(e.get('name')), + 'description': unescape_html(e.get('description')), 'duration': parse_duration(e.get('duration')), 'timestamp': unified_timestamp(e.get('dateCreated')), }) elif item_type in ('Article', 'NewsArticle'): info.update({ 'timestamp': parse_iso8601(e.get('datePublished')), - 'title': unescapeHTML(e.get('headline')), - 'description': unescapeHTML(e.get('articleBody')), + 'title': unescape_html(e.get('headline')), + 'description': unescape_html(e.get('articleBody')), }) elif item_type == 'VideoObject': extract_video_object(e) @@ -2628,7 +2628,7 @@ class InfoExtractor(object): entry = { 'id': this_video_id, - 'title': unescapeHTML(video_data['title'] if require_title else video_data.get('title')), + 'title': unescape_html(video_data['title'] if require_title else video_data.get('title')), 'description': video_data.get('description'), 'thumbnail': urljoin(base_url, self._proto_relative_url(video_data.get('image'))), 'timestamp': int_or_none(video_data.get('pubdate')), diff --git a/youtube_dl/extractor/condenast.py b/youtube_dl/extractor/condenast.py index ed278fefc..912327d7d 100644 --- a/youtube_dl/extractor/condenast.py +++ b/youtube_dl/extractor/condenast.py @@ -14,7 +14,7 @@ from ..utils import ( int_or_none, js_to_json, mimetype2ext, - orderedSet, + ordered_set, parse_iso8601, ) @@ -111,7 +111,7 @@ class CondeNastIE(InfoExtractor): base_url = '%s://%s' % (url_object.scheme, url_object.netloc) m_paths = re.finditer( r'(?s)<p class="cne-thumb-title">.*?<a href="(/watch/.+?)["\?]', webpage) - paths = orderedSet(m.group(1) for m in m_paths) + paths = ordered_set(m.group(1) for m in m_paths) build_url = lambda path: compat_urlparse.urljoin(base_url, path) entries = [self.url_result(build_url(path), 'CondeNast') for path in paths] return self.playlist_result(entries, playlist_title=title) diff --git a/youtube_dl/extractor/cspan.py b/youtube_dl/extractor/cspan.py index 67d6df4b0..483c6bbc3 100644 --- a/youtube_dl/extractor/cspan.py +++ b/youtube_dl/extractor/cspan.py @@ -11,7 +11,7 @@ from ..utils import ( get_element_by_class, int_or_none, smuggle_url, - unescapeHTML, + unescape_html, ) from .senateisvp import SenateISVPIE from .ustream import UstreamIE @@ -154,12 +154,12 @@ class CSpanIE(InfoExtractor): for quality in f.get('qualities', []): formats.append({ 'format_id': '%s-%sp' % (get_text_attr(quality, 'bitrate'), get_text_attr(quality, 'height')), - 'url': unescapeHTML(get_text_attr(quality, 'file')), + 'url': unescape_html(get_text_attr(quality, 'file')), 'height': int_or_none(get_text_attr(quality, 'height')), 'tbr': int_or_none(get_text_attr(quality, 'bitrate')), }) if not formats: - path = unescapeHTML(get_text_attr(f, 'path')) + path = unescape_html(get_text_attr(f, 'path')) if not path: continue formats = self._extract_m3u8_formats( diff --git a/youtube_dl/extractor/ctvnews.py b/youtube_dl/extractor/ctvnews.py index 03f8cefb7..f55437881 100644 --- a/youtube_dl/extractor/ctvnews.py +++ b/youtube_dl/extractor/ctvnews.py @@ -4,7 +4,7 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..utils import orderedSet +from ..utils import ordered_set class CTVNewsIE(InfoExtractor): @@ -63,6 +63,6 @@ class CTVNewsIE(InfoExtractor): 'ot': 'example.AjaxPageLayout.ot', 'maxItemsPerPage': 1000000, }) - entries = [ninecninemedia_url_result(clip_id) for clip_id in orderedSet( + entries = [ninecninemedia_url_result(clip_id) for clip_id in ordered_set( re.findall(r'clip\.id\s*=\s*(\d+);', webpage))] return self.playlist_result(entries, page_id) diff --git a/youtube_dl/extractor/dailymail.py b/youtube_dl/extractor/dailymail.py index 4f75a2a30..112c713f5 100644 --- a/youtube_dl/extractor/dailymail.py +++ b/youtube_dl/extractor/dailymail.py @@ -9,7 +9,7 @@ from ..utils import ( int_or_none, determine_protocol, try_get, - unescapeHTML, + unescape_html, ) @@ -40,7 +40,7 @@ class DailyMailIE(InfoExtractor): webpage = self._download_webpage(url, video_id) video_data = self._parse_json(self._search_regex( r"data-opts='({.+?})'", webpage, 'video data'), video_id) - title = unescapeHTML(video_data['title']) + title = unescape_html(video_data['title']) sources_url = (try_get( video_data, @@ -78,7 +78,7 @@ class DailyMailIE(InfoExtractor): return { 'id': video_id, 'title': title, - 'description': unescapeHTML(video_data.get('descr')), + 'description': unescape_html(video_data.get('descr')), 'thumbnail': video_data.get('poster') or video_data.get('thumbnail'), 'formats': formats, } diff --git a/youtube_dl/extractor/dailymotion.py b/youtube_dl/extractor/dailymotion.py index 1816c559e..cf96793be 100644 --- a/youtube_dl/extractor/dailymotion.py +++ b/youtube_dl/extractor/dailymotion.py @@ -23,7 +23,7 @@ from ..utils import ( sanitized_Request, str_to_int, try_get, - unescapeHTML, + unescape_html, update_url_query, url_or_none, urlencode_postdata, @@ -140,7 +140,7 @@ class DailymotionIE(DailymotionBaseInfoExtractor): # Look for embedded Dailymotion player matches = re.findall( r'<(?:(?:embed|iframe)[^>]+?src=|input[^>]+id=[\'"]dmcloudUrlEmissionSelect[\'"][^>]+value=)(["\'])(?P<url>(?:https?:)?//(?:www\.)?dailymotion\.com/(?:embed|swf)/video/.+?)\1', webpage) - return list(map(lambda m: unescapeHTML(m[1]), matches)) + return list(map(lambda m: unescape_html(m[1]), matches)) def _real_extract(self, url): video_id = self._match_id(url) @@ -481,7 +481,7 @@ class DailymotionUserIE(DailymotionBaseInfoExtractor): user = mobj.group('user') webpage = self._download_webpage( 'https://www.dailymotion.com/user/%s' % user, user) - full_user = unescapeHTML(self._html_search_regex( + full_user = unescape_html(self._html_search_regex( r'<a class="nav-image" title="([^"]+)" href="/%s">' % re.escape(user), webpage, 'user')) diff --git a/youtube_dl/extractor/daum.py b/youtube_dl/extractor/daum.py index 76f021892..16478dc12 100644 --- a/youtube_dl/extractor/daum.py +++ b/youtube_dl/extractor/daum.py @@ -16,7 +16,7 @@ from ..utils import ( int_or_none, str_to_int, xpath_text, - unescapeHTML, + unescape_html, ) @@ -162,7 +162,7 @@ class DaumClipIE(InfoExtractor): '_type': 'url_transparent', 'id': video_id, 'url': 'http://tvpot.daum.net/v/%s' % clip_info['vid'], - 'title': unescapeHTML(clip_info['title']), + 'title': unescape_html(clip_info['title']), 'thumbnail': clip_info.get('thumb_url'), 'description': clip_info.get('contents'), 'duration': int_or_none(clip_info.get('duration')), diff --git a/youtube_dl/extractor/deezer.py b/youtube_dl/extractor/deezer.py index a38b2683d..0e00cc658 100644 --- a/youtube_dl/extractor/deezer.py +++ b/youtube_dl/extractor/deezer.py @@ -7,7 +7,7 @@ from .common import InfoExtractor from ..utils import ( ExtractorError, int_or_none, - orderedSet, + ordered_set, ) @@ -70,7 +70,7 @@ class DeezerPlaylistIE(InfoExtractor): }] self._sort_formats(formats) artists = ', '.join( - orderedSet(a['ART_NAME'] for a in s['ARTISTS'])) + ordered_set(a['ART_NAME'] for a in s['ARTISTS'])) entries.append({ 'id': s['SNG_ID'], 'duration': int_or_none(s.get('DURATION')), diff --git a/youtube_dl/extractor/discoverygo.py b/youtube_dl/extractor/discoverygo.py index 9e7b14a7d..101b4deda 100644 --- a/youtube_dl/extractor/discoverygo.py +++ b/youtube_dl/extractor/discoverygo.py @@ -10,7 +10,7 @@ from ..utils import ( int_or_none, parse_age_limit, remove_end, - unescapeHTML, + unescape_html, url_or_none, ) @@ -158,7 +158,7 @@ class DiscoveryGoPlaylistIE(DiscoveryGoBaseIE): for mobj in re.finditer(r'data-json=(["\'])(?P<json>{.+?})\1', webpage): data = self._parse_json( mobj.group('json'), display_id, - transform_source=unescapeHTML, fatal=False) + transform_source=unescape_html, fatal=False) if not isinstance(data, dict) or data.get('type') != 'episode': continue episode_url = data.get('socialUrl') diff --git a/youtube_dl/extractor/douyutv.py b/youtube_dl/extractor/douyutv.py index 9757f4422..19ddeadc9 100644 --- a/youtube_dl/extractor/douyutv.py +++ b/youtube_dl/extractor/douyutv.py @@ -8,7 +8,7 @@ import re from .common import InfoExtractor from ..utils import ( ExtractorError, - unescapeHTML, + unescape_html, unified_strdate, urljoin, ) @@ -105,7 +105,7 @@ class DouyuTVIE(InfoExtractor): 'aid': 'pcclient' })['data']['live_url'] - title = self._live_title(unescapeHTML(room['room_name'])) + title = self._live_title(unescape_html(room['room_name'])) description = room.get('show_details') thumbnail = room.get('room_src') uploader = room.get('nickname') diff --git a/youtube_dl/extractor/drbonanza.py b/youtube_dl/extractor/drbonanza.py index 164e97c36..4ac73e2cb 100644 --- a/youtube_dl/extractor/drbonanza.py +++ b/youtube_dl/extractor/drbonanza.py @@ -6,7 +6,7 @@ from .common import InfoExtractor from ..utils import ( js_to_json, parse_duration, - unescapeHTML, + unescape_html, ) @@ -41,7 +41,7 @@ class DRBonanzaIE(InfoExtractor): r'(?s)currentAsset\s*=\s*({.+?})\s*</script', webpage, 'asset'), display_id, transform_source=js_to_json) - title = unescapeHTML(asset['AssetTitle']).strip() + title = unescape_html(asset['AssetTitle']).strip() def extract(field): return self._search_regex( diff --git a/youtube_dl/extractor/dvtv.py b/youtube_dl/extractor/dvtv.py index 20996962a..6e9e0f692 100644 --- a/youtube_dl/extractor/dvtv.py +++ b/youtube_dl/extractor/dvtv.py @@ -10,7 +10,7 @@ from ..utils import ( int_or_none, js_to_json, mimetype2ext, - unescapeHTML, + unescape_html, ) @@ -99,7 +99,7 @@ class DVTVIE(InfoExtractor): data.update(self._parse_json( live_js, video_id, transform_source=js_to_json)) - title = unescapeHTML(data['title']) + title = unescape_html(data['title']) formats = [] for video in data['sources']: diff --git a/youtube_dl/extractor/eroprofile.py b/youtube_dl/extractor/eroprofile.py index c08643a17..c3e224825 100644 --- a/youtube_dl/extractor/eroprofile.py +++ b/youtube_dl/extractor/eroprofile.py @@ -6,7 +6,7 @@ from .common import InfoExtractor from ..compat import compat_urllib_parse_urlencode from ..utils import ( ExtractorError, - unescapeHTML + unescape_html ) @@ -77,7 +77,7 @@ class EroProfileIE(InfoExtractor): [r"glbUpdViews\s*\('\d*','(\d+)'", r'p/report/video/(\d+)'], webpage, 'video id', default=None) - video_url = unescapeHTML(self._search_regex( + video_url = unescape_html(self._search_regex( r'<source src="([^"]+)', webpage, 'video url')) title = self._html_search_regex( r'Title:</th><td>([^<]+)</td>', webpage, 'title') diff --git a/youtube_dl/extractor/europa.py b/youtube_dl/extractor/europa.py index 1efc0b2ec..17beedc42 100644 --- a/youtube_dl/extractor/europa.py +++ b/youtube_dl/extractor/europa.py @@ -5,7 +5,7 @@ from .common import InfoExtractor from ..compat import compat_urlparse from ..utils import ( int_or_none, - orderedSet, + ordered_set, parse_duration, qualities, unified_strdate, @@ -56,7 +56,7 @@ class EuropaIE(InfoExtractor): query = compat_urlparse.parse_qs(compat_urlparse.urlparse(url).query) preferred_lang = query.get('sitelang', ('en', ))[0] - preferred_langs = orderedSet((preferred_lang, 'en', 'int')) + preferred_langs = ordered_set((preferred_lang, 'en', 'int')) title = get_item('title', preferred_langs) or video_id description = get_item('description', preferred_langs) diff --git a/youtube_dl/extractor/expressen.py b/youtube_dl/extractor/expressen.py index 934571472..a027b4503 100644 --- a/youtube_dl/extractor/expressen.py +++ b/youtube_dl/extractor/expressen.py @@ -7,7 +7,7 @@ from .common import InfoExtractor from ..utils import ( determine_ext, int_or_none, - unescapeHTML, + unescape_html, unified_timestamp, ) @@ -61,7 +61,7 @@ class ExpressenIE(InfoExtractor): self._search_regex( r'data-%s=(["\'])(?P<value>(?:(?!\1).)+)\1' % name, webpage, 'info', group='value'), - display_id, transform_source=unescapeHTML) + display_id, transform_source=unescape_html) info = extract_data('video-tracking-info') video_id = info['videoId'] diff --git a/youtube_dl/extractor/gamespot.py b/youtube_dl/extractor/gamespot.py index 4236a5ed8..a6cf0d782 100644 --- a/youtube_dl/extractor/gamespot.py +++ b/youtube_dl/extractor/gamespot.py @@ -7,7 +7,7 @@ from ..compat import ( compat_urllib_parse_unquote, ) from ..utils import ( - unescapeHTML, + unescape_html, url_basename, dict_get, ) @@ -51,7 +51,7 @@ class GameSpotIE(OnceIE): webpage = self._download_webpage(url, page_id) data_video_json = self._search_regex( r'data-video=["\'](.*?)["\']', webpage, 'data video') - data_video = self._parse_json(unescapeHTML(data_video_json), page_id) + data_video = self._parse_json(unescape_html(data_video_json), page_id) streams = data_video['videoStreams'] manifest_url = None @@ -111,7 +111,7 @@ class GameSpotIE(OnceIE): onceux_json = self._search_regex( r'data-onceux-options=["\'](.*?)["\']', webpage, 'data video', default=None) if onceux_json: - onceux_url = self._parse_json(unescapeHTML(onceux_json), page_id).get('metadataUri') + onceux_url = self._parse_json(unescape_html(onceux_json), page_id).get('metadataUri') if onceux_url: formats.extend(self._extract_once_formats(re.sub( r'https?://[^/]+', 'http://once.unicornmedia.com', onceux_url), diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py index 067de28cd..657e3861e 100644 --- a/youtube_dl/extractor/generic.py +++ b/youtube_dl/extractor/generic.py @@ -25,10 +25,10 @@ from ..utils import ( KNOWN_EXTENSIONS, merge_dicts, mimetype2ext, - orderedSet, + ordered_set, sanitized_Request, smuggle_url, - unescapeHTML, + unescape_html, unified_strdate, unsmuggle_url, UnsupportedError, @@ -2486,7 +2486,7 @@ class GenericIE(InfoExtractor): r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//(?:www\.)?dailymotion\.[a-z]{2,3}/widget/jukebox\?.+?)\1', webpage) if m: playlists = re.findall( - r'list\[\]=/playlist/([^/]+)/', unescapeHTML(m.group('url'))) + r'list\[\]=/playlist/([^/]+)/', unescape_html(m.group('url'))) if playlists: return self.playlist_from_matches( playlists, video_id, video_title, lambda p: '//dailymotion.com/playlist/%s' % p) @@ -2515,7 +2515,7 @@ class GenericIE(InfoExtractor): # Look for Bandcamp pages with custom domain mobj = re.search(r'<meta property="og:url"[^>]*?content="(.*?bandcamp\.com.*?)"', webpage) if mobj is not None: - burl = unescapeHTML(mobj.group(1)) + burl = unescape_html(mobj.group(1)) # Don't set the extractor because it can be a track url or an album return self.url_result(burl) @@ -2631,7 +2631,7 @@ class GenericIE(InfoExtractor): matches = re.findall(r'<iframe[^>]+?src="(https?://(?:www\.)?funnyordie\.com/embed/[^"]+)"', webpage) if matches: return self.playlist_from_matches( - matches, video_id, video_title, getter=unescapeHTML, ie='FunnyOrDie') + matches, video_id, video_title, getter=unescape_html, ie='FunnyOrDie') # Look for BBC iPlayer embed matches = re.findall(r'setPlaylist\("(https?://www\.bbc\.co\.uk/iplayer/[^/]+/[\da-z]{8})"\)', webpage) @@ -2727,7 +2727,7 @@ class GenericIE(InfoExtractor): # Look for embedded soundcloud player soundcloud_urls = SoundcloudIE._extract_urls(webpage) if soundcloud_urls: - return self.playlist_from_matches(soundcloud_urls, video_id, video_title, getter=unescapeHTML, ie=SoundcloudIE.ie_key()) + return self.playlist_from_matches(soundcloud_urls, video_id, video_title, getter=unescape_html, ie=SoundcloudIE.ie_key()) # Look for tunein player tunein_urls = TuneInBaseIE._extract_urls(webpage) @@ -2918,7 +2918,7 @@ class GenericIE(InfoExtractor): webpage) if mobj is not None: return self.url_result( - self._proto_relative_url(unescapeHTML(mobj.group(1))), + self._proto_relative_url(unescape_html(mobj.group(1))), 'AdobeTVVideo') # Look for Vine embeds @@ -2927,7 +2927,7 @@ class GenericIE(InfoExtractor): webpage) if mobj is not None: return self.url_result( - self._proto_relative_url(unescapeHTML(mobj.group(1))), 'Vine') + self._proto_relative_url(unescape_html(mobj.group(1))), 'Vine') # Look for VODPlatform embeds mobj = re.search( @@ -2935,7 +2935,7 @@ class GenericIE(InfoExtractor): webpage) if mobj is not None: return self.url_result( - self._proto_relative_url(unescapeHTML(mobj.group('url'))), 'VODPlatform') + self._proto_relative_url(unescape_html(mobj.group('url'))), 'VODPlatform') # Look for Mangomolo embeds mobj = re.search( @@ -2947,7 +2947,7 @@ class GenericIE(InfoExtractor): if mobj is not None: info = { '_type': 'url_transparent', - 'url': self._proto_relative_url(unescapeHTML(mobj.group('url'))), + 'url': self._proto_relative_url(unescape_html(mobj.group('url'))), 'title': video_title, 'description': video_description, 'thumbnail': video_thumbnail, @@ -3298,7 +3298,7 @@ class GenericIE(InfoExtractor): refresh_header = refresh_header.decode('iso-8859-1') found = re.search(REDIRECT_REGEX, refresh_header) if found: - new_url = compat_urlparse.urljoin(url, unescapeHTML(found.group(1))) + new_url = compat_urlparse.urljoin(url, unescape_html(found.group(1))) if new_url != url: self.report_following_redirect(new_url) return { @@ -3320,8 +3320,8 @@ class GenericIE(InfoExtractor): raise UnsupportedError(url) entries = [] - for video_url in orderedSet(found): - video_url = unescapeHTML(video_url) + for video_url in ordered_set(found): + video_url = unescape_html(video_url) video_url = video_url.replace('\\/', '/') video_url = compat_urlparse.urljoin(url, video_url) video_id = compat_urllib_parse_unquote(os.path.basename(video_url)) diff --git a/youtube_dl/extractor/giantbomb.py b/youtube_dl/extractor/giantbomb.py index 6a1b1e96e..2a3f8ff79 100644 --- a/youtube_dl/extractor/giantbomb.py +++ b/youtube_dl/extractor/giantbomb.py @@ -8,7 +8,7 @@ from ..utils import ( determine_ext, int_or_none, qualities, - unescapeHTML, + unescape_html, ) @@ -39,7 +39,7 @@ class GiantBombIE(InfoExtractor): description = self._og_search_description(webpage) thumbnail = self._og_search_thumbnail(webpage) - video = json.loads(unescapeHTML(self._search_regex( + video = json.loads(unescape_html(self._search_regex( r'data-video="([^"]+)"', webpage, 'data-video'))) duration = int_or_none(video.get('lengthSeconds')) diff --git a/youtube_dl/extractor/globo.py b/youtube_dl/extractor/globo.py index fb8f7679b..87a2d5be1 100644 --- a/youtube_dl/extractor/globo.py +++ b/youtube_dl/extractor/globo.py @@ -16,7 +16,7 @@ from ..utils import ( ExtractorError, float_or_none, int_or_none, - orderedSet, + ordered_set, str_or_none, ) @@ -218,7 +218,7 @@ class GloboArticleIE(InfoExtractor): video_ids.extend(re.findall(video_regex, webpage)) entries = [ self.url_result('globo:%s' % video_id, GloboIE.ie_key()) - for video_id in orderedSet(video_ids)] + for video_id in ordered_set(video_ids)] title = self._og_search_title(webpage, fatal=False) description = self._html_search_meta('description', webpage) return self.playlist_result(entries, display_id, title, description) diff --git a/youtube_dl/extractor/howstuffworks.py b/youtube_dl/extractor/howstuffworks.py index cf90ab3c9..1b818f7ab 100644 --- a/youtube_dl/extractor/howstuffworks.py +++ b/youtube_dl/extractor/howstuffworks.py @@ -5,7 +5,7 @@ from ..utils import ( find_xpath_attr, int_or_none, js_to_json, - unescapeHTML, + unescape_html, determine_ext, ) @@ -82,8 +82,8 @@ class HowStuffWorksIE(InfoExtractor): return { 'id': '%s' % video_id, 'display_id': display_id, - 'title': unescapeHTML(clip_info['clip_title']), - 'description': unescapeHTML(clip_info.get('caption')), + 'title': unescape_html(clip_info['clip_title']), + 'description': unescape_html(clip_info.get('caption')), 'thumbnail': clip_info.get('video_still_url'), 'duration': int_or_none(clip_info.get('duration')), 'formats': formats, diff --git a/youtube_dl/extractor/leeco.py b/youtube_dl/extractor/leeco.py index 8dd1ce0d0..954be30d7 100644 --- a/youtube_dl/extractor/leeco.py +++ b/youtube_dl/extractor/leeco.py @@ -18,7 +18,7 @@ from ..utils import ( encode_data_uri, ExtractorError, int_or_none, - orderedSet, + ordered_set, parse_iso8601, str_or_none, url_basename, @@ -243,7 +243,7 @@ class LePlaylistIE(InfoExtractor): page = self._download_webpage(url, playlist_id) # Currently old domain names are still used in playlists - media_ids = orderedSet(re.findall( + media_ids = ordered_set(re.findall( r'<a[^>]+href="http://www\.letv\.com/ptv/vplay/(\d+)\.html', page)) entries = [self.url_result(LeIE._URL_TEMPLATE % media_id, ie='Le') for media_id in media_ids] diff --git a/youtube_dl/extractor/lego.py b/youtube_dl/extractor/lego.py index b312e77f1..1dd3a6839 100644 --- a/youtube_dl/extractor/lego.py +++ b/youtube_dl/extractor/lego.py @@ -6,7 +6,7 @@ import re from .common import InfoExtractor from ..compat import compat_str from ..utils import ( - unescapeHTML, + unescape_html, parse_duration, get_element_by_class, ) @@ -68,7 +68,7 @@ class LEGOIE(InfoExtractor): default='http://www.lego.com/%s/mediaplayer/video/' % locale)) player_url = base_url + video_id player_webpage = self._download_webpage(player_url, video_id) - video_data = self._parse_json(unescapeHTML(self._search_regex( + video_data = self._parse_json(unescape_html(self._search_regex( r"video='([^']+)'", player_webpage, 'video data')), video_id) progressive_base = self._search_regex( r'data-video-progressive-url="([^"]+)"', diff --git a/youtube_dl/extractor/livestream.py b/youtube_dl/extractor/livestream.py index e55b1a202..2d4d2a413 100644 --- a/youtube_dl/extractor/livestream.py +++ b/youtube_dl/extractor/livestream.py @@ -13,7 +13,7 @@ from ..utils import ( xpath_attr, xpath_with_ns, xpath_text, - orderedSet, + ordered_set, update_url_query, int_or_none, float_or_none, @@ -305,7 +305,7 @@ class LivestreamOriginalIE(InfoExtractor): def _extract_folder(self, url, folder_id): webpage = self._download_webpage(url, folder_id) - paths = orderedSet(re.findall( + paths = ordered_set(re.findall( r'''(?x)(?: <li\s+class="folder">\s*<a\s+href="| <a\s+href="(?=https?://livestre\.am/) diff --git a/youtube_dl/extractor/markiza.py b/youtube_dl/extractor/markiza.py index def960a0c..f1b6df86d 100644 --- a/youtube_dl/extractor/markiza.py +++ b/youtube_dl/extractor/markiza.py @@ -6,7 +6,7 @@ import re from .common import InfoExtractor from ..compat import compat_str from ..utils import ( - orderedSet, + ordered_set, parse_duration, try_get, ) @@ -118,7 +118,7 @@ class MarkizaPageIE(InfoExtractor): entries = [ self.url_result('http://videoarchiv.markiza.sk/video/%s' % video_id) - for video_id in orderedSet(re.findall( + for video_id in ordered_set(re.findall( r'(?:initPlayer_|data-entity=["\']|id=["\']player_)(\d+)', webpage))] diff --git a/youtube_dl/extractor/mediasite.py b/youtube_dl/extractor/mediasite.py index ef9628e65..dd27f3f82 100644 --- a/youtube_dl/extractor/mediasite.py +++ b/youtube_dl/extractor/mediasite.py @@ -13,7 +13,7 @@ from ..utils import ( ExtractorError, float_or_none, mimetype2ext, - unescapeHTML, + unescape_html, unsmuggle_url, url_or_none, urljoin, @@ -107,7 +107,7 @@ class MediasiteIE(InfoExtractor): @staticmethod def _extract_urls(webpage): return [ - unescapeHTML(mobj.group('url')) + unescape_html(mobj.group('url')) for mobj in re.finditer( r'(?xi)<iframe\b[^>]+\bsrc=(["\'])(?P<url>(?:(?:https?:)?//[^/]+)?/Mediasite/Play/[0-9a-f]{32,34}(?:\?.*?)?)\1', webpage)] diff --git a/youtube_dl/extractor/meta.py b/youtube_dl/extractor/meta.py index cdb46e163..9640de746 100644 --- a/youtube_dl/extractor/meta.py +++ b/youtube_dl/extractor/meta.py @@ -4,7 +4,7 @@ from __future__ import unicode_literals from .common import InfoExtractor from .pladform import PladformIE from ..utils import ( - unescapeHTML, + unescape_html, int_or_none, ExtractorError, ) @@ -46,7 +46,7 @@ class METAIE(InfoExtractor): json_str = '' for i in range(0, len(st_html5), 3): json_str += '�%s;' % st_html5[i:i + 3] - uppod_data = self._parse_json(unescapeHTML(json_str), video_id) + uppod_data = self._parse_json(unescape_html(json_str), video_id) error = uppod_data.get('customnotfound') if error: raise ExtractorError('%s said: %s' % (self.IE_NAME, error), expected=True) diff --git a/youtube_dl/extractor/motherless.py b/youtube_dl/extractor/motherless.py index d4bd273b6..c810aa173 100644 --- a/youtube_dl/extractor/motherless.py +++ b/youtube_dl/extractor/motherless.py @@ -8,7 +8,7 @@ from ..compat import compat_urlparse from ..utils import ( ExtractorError, InAdvancePagedList, - orderedSet, + ordered_set, str_to_int, unified_strdate, ) @@ -169,7 +169,7 @@ class MotherlessGroupIE(InfoExtractor): self.url_result( compat_urlparse.urljoin(base, '/' + entry_id), ie=MotherlessIE.ie_key(), video_id=entry_id) - for entry_id in orderedSet(re.findall( + for entry_id in ordered_set(re.findall( r'data-codename=["\']([A-Z0-9]+)', webpage))] return entries diff --git a/youtube_dl/extractor/movingimage.py b/youtube_dl/extractor/movingimage.py index 4f62d628a..a08fd8c8e 100644 --- a/youtube_dl/extractor/movingimage.py +++ b/youtube_dl/extractor/movingimage.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from .common import InfoExtractor from ..utils import ( - unescapeHTML, + unescape_html, parse_duration, ) @@ -36,8 +36,8 @@ class MovingImageIE(InfoExtractor): r'<span\s+class="field_title">%s:</span>\s*<span\s+class="field_content">([^<]+)</span>' % field_name, webpage, 'title', fatal=fatal) - title = unescapeHTML(search_field('Title', fatal=True)).strip('()[]') - description = unescapeHTML(search_field('Description')) + title = unescape_html(search_field('Title', fatal=True)).strip('()[]') + description = unescape_html(search_field('Description')) duration = parse_duration(search_field('Running time')) thumbnail = self._search_regex( r"image\s*:\s*'([^']+)'", webpage, 'thumbnail', fatal=False) diff --git a/youtube_dl/extractor/msn.py b/youtube_dl/extractor/msn.py index 650731fdc..30db2cb2b 100644 --- a/youtube_dl/extractor/msn.py +++ b/youtube_dl/extractor/msn.py @@ -9,7 +9,7 @@ from ..utils import ( determine_ext, ExtractorError, int_or_none, - unescapeHTML, + unescape_html, ) @@ -53,10 +53,10 @@ class MSNIE(InfoExtractor): self._search_regex( r'data-metadata\s*=\s*(["\'])(?P<data>.+?)\1', webpage, 'video data', default='{}', group='data'), - display_id, transform_source=unescapeHTML) + display_id, transform_source=unescape_html) if not video: - error = unescapeHTML(self._search_regex( + error = unescape_html(self._search_regex( r'data-error=(["\'])(?P<error>.+?)\1', webpage, 'error', group='error')) raise ExtractorError('%s said: %s' % (self.IE_NAME, error), expected=True) diff --git a/youtube_dl/extractor/mtv.py b/youtube_dl/extractor/mtv.py index 7a3b57abd..c7fc7ab3e 100644 --- a/youtube_dl/extractor/mtv.py +++ b/youtube_dl/extractor/mtv.py @@ -18,7 +18,7 @@ from ..utils import ( strip_or_none, timeconvert, try_get, - unescapeHTML, + unescape_html, update_url_query, url_basename, xpath_text, @@ -59,7 +59,7 @@ class MTVServicesInfoExtractor(InfoExtractor): req.add_header('User-Agent', 'curl/7') webpage = self._download_webpage(req, mtvn_id, 'Downloading mobile page') - metrics_url = unescapeHTML(self._search_regex(r'<a href="(http://metrics.+?)"', webpage, 'url')) + metrics_url = unescape_html(self._search_regex(r'<a href="(http://metrics.+?)"', webpage, 'url')) req = HEADRequest(metrics_url) response = self._request_webpage(req, mtvn_id, 'Resolving url') url = response.geturl() diff --git a/youtube_dl/extractor/nintendo.py b/youtube_dl/extractor/nintendo.py index 4b4e66b05..80848b831 100644 --- a/youtube_dl/extractor/nintendo.py +++ b/youtube_dl/extractor/nintendo.py @@ -5,7 +5,7 @@ import re from .common import InfoExtractor from .ooyala import OoyalaIE -from ..utils import unescapeHTML +from ..utils import unescape_html class NintendoIE(InfoExtractor): @@ -43,4 +43,4 @@ class NintendoIE(InfoExtractor): webpage)] return self.playlist_result( - entries, page_id, unescapeHTML(self._og_search_title(webpage, fatal=False))) + entries, page_id, unescape_html(self._og_search_title(webpage, fatal=False))) diff --git a/youtube_dl/extractor/npo.py b/youtube_dl/extractor/npo.py index 5a427c396..1073a9863 100644 --- a/youtube_dl/extractor/npo.py +++ b/youtube_dl/extractor/npo.py @@ -12,7 +12,7 @@ from ..utils import ( ExtractorError, fix_xml_ampersands, int_or_none, - orderedSet, + ordered_set, parse_duration, qualities, strip_jsonp, @@ -546,7 +546,7 @@ class NPOPlaylistBaseIE(NPOIE): entries = [ self.url_result('npo:%s' % video_id if not video_id.startswith('http') else video_id) - for video_id in orderedSet(re.findall(self._PLAYLIST_ENTRY_RE, webpage)) + for video_id in ordered_set(re.findall(self._PLAYLIST_ENTRY_RE, webpage)) ] playlist_title = self._html_search_regex( diff --git a/youtube_dl/extractor/odnoklassniki.py b/youtube_dl/extractor/odnoklassniki.py index 114b93c07..51bc54c71 100644 --- a/youtube_dl/extractor/odnoklassniki.py +++ b/youtube_dl/extractor/odnoklassniki.py @@ -13,7 +13,7 @@ from ..utils import ( unified_strdate, int_or_none, qualities, - unescapeHTML, + unescape_html, urlencode_postdata, ) @@ -137,7 +137,7 @@ class OdnoklassnikiIE(InfoExtractor): raise ExtractorError(error, expected=True) player = self._parse_json( - unescapeHTML(self._search_regex( + unescape_html(self._search_regex( r'data-options=(?P<quote>["\'])(?P<player>{.+?%s.+?})(?P=quote)' % video_id, webpage, 'player', group='player')), video_id) diff --git a/youtube_dl/extractor/openload.py b/youtube_dl/extractor/openload.py index cf51e4770..5ccfbac23 100644 --- a/youtube_dl/extractor/openload.py +++ b/youtube_dl/extractor/openload.py @@ -15,7 +15,7 @@ from ..compat import ( from ..utils import ( check_executable, determine_ext, - encodeArgument, + encode_argument, ExtractorError, get_element_by_id, get_exe_version, @@ -233,13 +233,13 @@ class PhantomJSwrapper(object): out, err = p.communicate() if p.returncode != 0: raise ExtractorError( - 'Executing JS failed\n:' + encodeArgument(err)) + 'Executing JS failed\n:' + encode_argument(err)) with open(self._TMP_FILES['html'].name, 'rb') as f: html = f.read().decode('utf-8') self._load_cookies() - return (html, encodeArgument(out)) + return (html, encode_argument(out)) class OpenloadIE(InfoExtractor): diff --git a/youtube_dl/extractor/ora.py b/youtube_dl/extractor/ora.py index 1d42be39b..c84788c7f 100644 --- a/youtube_dl/extractor/ora.py +++ b/youtube_dl/extractor/ora.py @@ -7,7 +7,7 @@ from ..compat import compat_urlparse from ..utils import ( get_element_by_attribute, qualities, - unescapeHTML, + unescape_html, ) @@ -66,7 +66,7 @@ class OraTVIE(InfoExtractor): 'id': self._search_regex( r'"id"\s*:\s*(\d+)', video_data, 'video id', default=display_id), 'display_id': display_id, - 'title': unescapeHTML(self._og_search_title(webpage)), + 'title': unescape_html(self._og_search_title(webpage)), 'description': get_element_by_attribute( 'class', 'video_txt_decription', webpage), 'thumbnail': self._proto_relative_url(self._search_regex( diff --git a/youtube_dl/extractor/orf.py b/youtube_dl/extractor/orf.py index d432e3449..e176d2d72 100644 --- a/youtube_dl/extractor/orf.py +++ b/youtube_dl/extractor/orf.py @@ -10,10 +10,10 @@ from ..utils import ( float_or_none, HEADRequest, int_or_none, - orderedSet, + ordered_set, remove_end, strip_jsonp, - unescapeHTML, + unescape_html, unified_strdate, url_or_none, ) @@ -67,7 +67,7 @@ class ORFTVthekIE(InfoExtractor): self._search_regex( r'<div[^>]+class=(["\']).*?VideoPlaylist.*?\1[^>]+data-jsb=(["\'])(?P<json>.+?)\2', webpage, 'playlist', group='json'), - playlist_id, transform_source=unescapeHTML)['playlist']['videos'] + playlist_id, transform_source=unescape_html)['playlist']['videos'] entries = [] for sd in data_jsb: @@ -357,7 +357,7 @@ class ORFFM4StoryIE(InfoExtractor): webpage = self._download_webpage(url, story_id) entries = [] - all_ids = orderedSet(re.findall(r'data-video(?:id)?="(\d+)"', webpage)) + all_ids = ordered_set(re.findall(r'data-video(?:id)?="(\d+)"', webpage)) for idx, video_id in enumerate(all_ids): data = self._download_json( 'http://bits.orf.at/filehandler/static-api/json/current/data.json?file=%s' % video_id, diff --git a/youtube_dl/extractor/pbs.py b/youtube_dl/extractor/pbs.py index 80340f595..a0cd5cde3 100644 --- a/youtube_dl/extractor/pbs.py +++ b/youtube_dl/extractor/pbs.py @@ -11,7 +11,7 @@ from ..utils import ( int_or_none, float_or_none, js_to_json, - orderedSet, + ordered_set, strip_jsonp, strip_or_none, unified_strdate, @@ -458,7 +458,7 @@ class PBSIE(InfoExtractor): r'<a[^>]+href=["\']#(?:video-|part)\d+["\'][^>]+data-cove[Ii]d=["\'](\d+)', ) for p in MULTI_PART_REGEXES: - tabbed_videos = orderedSet(re.findall(p, webpage)) + tabbed_videos = ordered_set(re.findall(p, webpage)) if tabbed_videos: return tabbed_videos, presumptive_id, upload_date, description diff --git a/youtube_dl/extractor/periscope.py b/youtube_dl/extractor/periscope.py index 8afe541ec..e68fcde33 100644 --- a/youtube_dl/extractor/periscope.py +++ b/youtube_dl/extractor/periscope.py @@ -6,7 +6,7 @@ import re from .common import InfoExtractor from ..utils import ( parse_iso8601, - unescapeHTML, + unescape_html, ) @@ -129,7 +129,7 @@ class PeriscopeUserIE(PeriscopeBaseIE): webpage = self._download_webpage(url, user_name) data_store = self._parse_json( - unescapeHTML(self._search_regex( + unescape_html(self._search_regex( r'data-store=(["\'])(?P<data>.+?)\1', webpage, 'data store', default='{}', group='data')), user_name) diff --git a/youtube_dl/extractor/piksel.py b/youtube_dl/extractor/piksel.py index c0c276a50..a100d5910 100644 --- a/youtube_dl/extractor/piksel.py +++ b/youtube_dl/extractor/piksel.py @@ -9,7 +9,7 @@ from ..utils import ( ExtractorError, dict_get, int_or_none, - unescapeHTML, + unescape_html, parse_iso8601, ) @@ -103,7 +103,7 @@ class PikselIE(InfoExtractor): formats.append({ 'format_id': '-'.join(format_id), - 'url': unescapeHTML(http_url), + 'url': unescape_html(http_url), 'vbr': vbr, 'abr': abr, 'width': int_or_none(asset_file.get('videoWidth')), diff --git a/youtube_dl/extractor/pornhub.py b/youtube_dl/extractor/pornhub.py index e377de196..6a561248e 100644 --- a/youtube_dl/extractor/pornhub.py +++ b/youtube_dl/extractor/pornhub.py @@ -15,7 +15,7 @@ from ..utils import ( ExtractorError, int_or_none, js_to_json, - orderedSet, + ordered_set, remove_quotes, str_to_int, url_or_none, @@ -320,7 +320,7 @@ class PornHubPlaylistBaseIE(InfoExtractor): self.url_result( 'http://www.%s/%s' % (host, video_url), PornHubIE.ie_key(), video_title=title) - for video_url, title in orderedSet(re.findall( + for video_url, title in ordered_set(re.findall( r'href="/?(view_video\.php\?.*\bviewkey=[\da-z]+[^"]*)"[^>]*\s+title="([^"]+)"', container)) ] diff --git a/youtube_dl/extractor/qqmusic.py b/youtube_dl/extractor/qqmusic.py index 084308aeb..6fb89b9d0 100644 --- a/youtube_dl/extractor/qqmusic.py +++ b/youtube_dl/extractor/qqmusic.py @@ -10,7 +10,7 @@ from ..utils import ( clean_html, ExtractorError, strip_jsonp, - unescapeHTML, + unescape_html, ) @@ -365,5 +365,5 @@ class QQMusicPlaylistIE(QQPlaylistBaseIE): for song in cdlist['songlist']] list_name = cdlist.get('dissname') - list_description = clean_html(unescapeHTML(cdlist.get('desc'))) + list_description = clean_html(unescape_html(cdlist.get('desc'))) return self.playlist_result(entries, list_id, list_name, list_description) diff --git a/youtube_dl/extractor/rai.py b/youtube_dl/extractor/rai.py index 548a6553b..5c9def79b 100644 --- a/youtube_dl/extractor/rai.py +++ b/youtube_dl/extractor/rai.py @@ -17,7 +17,7 @@ from ..utils import ( parse_duration, strip_or_none, try_get, - unescapeHTML, + unescape_html, unified_strdate, unified_timestamp, update_url_query, @@ -272,7 +272,7 @@ class RaiPlayPlaylistIE(InfoExtractor): title = self._html_search_meta( ('programma', 'nomeProgramma'), webpage, 'title') - description = unescapeHTML(self._html_search_meta( + description = unescape_html(self._html_search_meta( ('description', 'og:description'), webpage, 'description')) entries = [] diff --git a/youtube_dl/extractor/raywenderlich.py b/youtube_dl/extractor/raywenderlich.py index 5411ece21..687814998 100644 --- a/youtube_dl/extractor/raywenderlich.py +++ b/youtube_dl/extractor/raywenderlich.py @@ -10,7 +10,7 @@ from ..utils import ( int_or_none, merge_dicts, try_get, - unescapeHTML, + unescape_html, unified_timestamp, urljoin, ) @@ -99,7 +99,7 @@ class RayWenderlichIE(InfoExtractor): self._search_regex( r'data-collection=(["\'])(?P<data>{.+?})\1', webpage, 'data collection', default='{}', group='data'), - display_id, transform_source=unescapeHTML, fatal=False) + display_id, transform_source=unescape_html, fatal=False) video_id = self._extract_video_id( data, lesson_id) or self._search_regex( r'/videos/(\d+)/', thumbnail, 'video id') diff --git a/youtube_dl/extractor/reuters.py b/youtube_dl/extractor/reuters.py index 9dc482d21..3ad7199fe 100644 --- a/youtube_dl/extractor/reuters.py +++ b/youtube_dl/extractor/reuters.py @@ -7,7 +7,7 @@ from .common import InfoExtractor from ..utils import ( js_to_json, int_or_none, - unescapeHTML, + unescape_html, ) @@ -34,7 +34,7 @@ class ReutersIE(InfoExtractor): def get_json_value(key, fatal=False): return self._search_regex(r'"%s"\s*:\s*"([^"]+)"' % key, video_data, key, fatal=fatal) - title = unescapeHTML(get_json_value('title', fatal=True)) + title = unescape_html(get_json_value('title', fatal=True)) mmid, fid = re.search(r',/(\d+)\?f=(\d+)', get_json_value('flv', fatal=True)).groups() mas_data = self._download_json( diff --git a/youtube_dl/extractor/revision3.py b/youtube_dl/extractor/revision3.py index 833d8a2f0..725266324 100644 --- a/youtube_dl/extractor/revision3.py +++ b/youtube_dl/extractor/revision3.py @@ -8,7 +8,7 @@ from ..compat import compat_str from ..utils import ( int_or_none, parse_iso8601, - unescapeHTML, + unescape_html, qualities, ) @@ -59,8 +59,8 @@ class Revision3EmbedIE(InfoExtractor): return { 'id': playlist_id, - 'title': unescapeHTML(video_data['title']), - 'description': unescapeHTML(video_data.get('summary')), + 'title': unescape_html(video_data['title']), + 'description': unescape_html(video_data.get('summary')), 'uploader': video_data.get('show', {}).get('name'), 'uploader_id': video_data.get('show', {}).get('slug'), 'duration': int_or_none(video_data.get('duration')), @@ -120,8 +120,8 @@ class Revision3IE(InfoExtractor): info = { 'id': page_id, 'display_id': display_id, - 'title': unescapeHTML(page_data['name']), - 'description': unescapeHTML(page_data.get('summary')), + 'title': unescape_html(page_data['name']), + 'description': unescape_html(page_data.get('summary')), 'timestamp': parse_iso8601(page_data.get('publishTime'), ' '), 'author': page_data.get('author'), 'uploader': show_data.get('name'), diff --git a/youtube_dl/extractor/roosterteeth.py b/youtube_dl/extractor/roosterteeth.py index 857434540..eb002abfe 100644 --- a/youtube_dl/extractor/roosterteeth.py +++ b/youtube_dl/extractor/roosterteeth.py @@ -8,7 +8,7 @@ from ..utils import ( ExtractorError, int_or_none, strip_or_none, - unescapeHTML, + unescape_html, urlencode_postdata, ) @@ -92,7 +92,7 @@ class RoosterTeethIE(InfoExtractor): webpage = self._download_webpage(url, display_id) - episode = strip_or_none(unescapeHTML(self._search_regex( + episode = strip_or_none(unescape_html(self._search_regex( (r'videoTitle\s*=\s*(["\'])(?P<title>(?:(?!\1).)+)\1', r'<title>(?P<title>[^<]+)'), webpage, 'title', default=None, group='title'))) diff --git a/youtube_dl/extractor/rte.py b/youtube_dl/extractor/rte.py index 1fbc72915..bda902abb 100644 --- a/youtube_dl/extractor/rte.py +++ b/youtube_dl/extractor/rte.py @@ -10,7 +10,7 @@ from ..utils import ( parse_iso8601, str_or_none, try_get, - unescapeHTML, + unescape_html, url_or_none, ExtractorError, ) @@ -48,8 +48,8 @@ class RteBaseIE(InfoExtractor): continue if not info_dict: - title = unescapeHTML(show['title']) - description = unescapeHTML(show.get('description')) + title = unescape_html(show['title']) + description = unescape_html(show.get('description')) thumbnail = show.get('thumbnail') duration = float_or_none(show.get('duration'), 1000) timestamp = parse_iso8601(show.get('published')) diff --git a/youtube_dl/extractor/rts.py b/youtube_dl/extractor/rts.py index 48f17b828..3546d9d16 100644 --- a/youtube_dl/extractor/rts.py +++ b/youtube_dl/extractor/rts.py @@ -9,7 +9,7 @@ from ..utils import ( int_or_none, parse_duration, parse_iso8601, - unescapeHTML, + unescape_html, determine_ext, ) @@ -226,5 +226,5 @@ class RTSIE(SRGSSRIE): 'view_count': int_or_none(info.get('plays')), 'uploader': info.get('programName'), 'timestamp': parse_iso8601(info.get('broadcast_date')), - 'thumbnail': unescapeHTML(info.get('preview_image_url')), + 'thumbnail': unescape_html(info.get('preview_image_url')), } diff --git a/youtube_dl/extractor/sendtonews.py b/youtube_dl/extractor/sendtonews.py index 9d9652949..850effe85 100644 --- a/youtube_dl/extractor/sendtonews.py +++ b/youtube_dl/extractor/sendtonews.py @@ -10,7 +10,7 @@ from ..utils import ( update_url_query, int_or_none, determine_protocol, - unescapeHTML, + unescape_html, ) @@ -95,7 +95,7 @@ class SendtoNewsIE(InfoExtractor): }) info_dict.update({ 'title': video['S_headLine'].strip(), - 'description': unescapeHTML(video.get('S_fullStory')), + 'description': unescape_html(video.get('S_fullStory')), 'thumbnails': thumbnails, 'duration': float_or_none(video.get('SM_length')), 'timestamp': parse_iso8601(video.get('S_sysDate'), delimiter=' '), diff --git a/youtube_dl/extractor/springboardplatform.py b/youtube_dl/extractor/springboardplatform.py index 07d99b579..1e18e1f96 100644 --- a/youtube_dl/extractor/springboardplatform.py +++ b/youtube_dl/extractor/springboardplatform.py @@ -10,7 +10,7 @@ from ..utils import ( xpath_attr, xpath_text, xpath_element, - unescapeHTML, + unescape_html, unified_timestamp, ) @@ -70,7 +70,7 @@ class SpringboardPlatformIE(InfoExtractor): content = xpath_element( item, './{http://search.yahoo.com/mrss/}content', 'content', fatal=True) - title = unescapeHTML(xpath_text(item, './title', 'title', fatal=True)) + title = unescape_html(xpath_text(item, './title', 'title', fatal=True)) video_url = content.attrib['url'] @@ -84,7 +84,7 @@ class SpringboardPlatformIE(InfoExtractor): width = int_or_none(content.get('width')) height = int_or_none(content.get('height')) - description = unescapeHTML(xpath_text( + description = unescape_html(xpath_text( item, './description', 'description')) thumbnail = xpath_attr( item, './{http://search.yahoo.com/mrss/}thumbnail', 'url', diff --git a/youtube_dl/extractor/stanfordoc.py b/youtube_dl/extractor/stanfordoc.py index ae3dd1380..dd11da0b4 100644 --- a/youtube_dl/extractor/stanfordoc.py +++ b/youtube_dl/extractor/stanfordoc.py @@ -5,8 +5,8 @@ import re from .common import InfoExtractor from ..utils import ( ExtractorError, - orderedSet, - unescapeHTML, + ordered_set, + unescape_html, ) @@ -66,9 +66,9 @@ class StanfordOpenClassroomIE(InfoExtractor): r'(?s)([^<]+)', coursepage, 'description', fatal=False) - links = orderedSet(re.findall(r'', coursepage)) + links = ordered_set(re.findall(r'', coursepage)) info['entries'] = [self.url_result( - 'http://openclassroom.stanford.edu/MainFolder/%s' % unescapeHTML(l) + 'http://openclassroom.stanford.edu/MainFolder/%s' % unescape_html(l) ) for l in links] return info else: # Root page @@ -84,8 +84,8 @@ class StanfordOpenClassroomIE(InfoExtractor): rootpage = self._download_webpage(rootURL, info['id'], errnote='Unable to download course info page') - links = orderedSet(re.findall(r'', rootpage)) + links = ordered_set(re.findall(r'', rootpage)) info['entries'] = [self.url_result( - 'http://openclassroom.stanford.edu/MainFolder/%s' % unescapeHTML(l) + 'http://openclassroom.stanford.edu/MainFolder/%s' % unescape_html(l) ) for l in links] return info diff --git a/youtube_dl/extractor/stitcher.py b/youtube_dl/extractor/stitcher.py index 97d1ff681..8b5ee6f14 100644 --- a/youtube_dl/extractor/stitcher.py +++ b/youtube_dl/extractor/stitcher.py @@ -7,7 +7,7 @@ from ..utils import ( determine_ext, int_or_none, js_to_json, - unescapeHTML, + unescape_html, ) @@ -59,7 +59,7 @@ class StitcherIE(InfoExtractor): r'(?s)var\s+stitcher(?:Config)?\s*=\s*({.+?});\n', webpage, 'episode config')), display_id)['config']['episode'] - title = unescapeHTML(episode['title']) + title = unescape_html(episode['title']) formats = [{ 'url': episode[episode_key], 'ext': determine_ext(episode[episode_key]) or 'mp3', diff --git a/youtube_dl/extractor/svt.py b/youtube_dl/extractor/svt.py index 0901c3163..bd6cd11b3 100644 --- a/youtube_dl/extractor/svt.py +++ b/youtube_dl/extractor/svt.py @@ -12,7 +12,7 @@ from ..utils import ( determine_ext, dict_get, int_or_none, - orderedSet, + ordered_set, strip_or_none, try_get, urljoin, @@ -363,7 +363,7 @@ class SVTPageIE(InfoExtractor): entries = [ self.url_result( 'svt:%s' % video_id, ie=SVTPlayIE.ie_key(), video_id=video_id) - for video_id in orderedSet(re.findall( + for video_id in ordered_set(re.findall( r'data-video-id=["\'](\d+)', webpage))] title = strip_or_none(self._og_search_title(webpage, default=None)) diff --git a/youtube_dl/extractor/tnaflix.py b/youtube_dl/extractor/tnaflix.py index 6798ef4c3..8eb34c172 100644 --- a/youtube_dl/extractor/tnaflix.py +++ b/youtube_dl/extractor/tnaflix.py @@ -10,7 +10,7 @@ from ..utils import ( int_or_none, parse_duration, str_to_int, - unescapeHTML, + unescape_html, xpath_text, ) @@ -102,7 +102,7 @@ class TNAFlixNetworkBaseIE(InfoExtractor): def extract_video_url(vl): # Any URL modification now results in HTTP Error 403: Forbidden - return unescapeHTML(vl.text) + return unescape_html(vl.text) video_link = cfg_xml.find('./videoLink') if video_link is not None: diff --git a/youtube_dl/extractor/tvn24.py b/youtube_dl/extractor/tvn24.py index 6590e1fd0..70075feaa 100644 --- a/youtube_dl/extractor/tvn24.py +++ b/youtube_dl/extractor/tvn24.py @@ -4,7 +4,7 @@ from __future__ import unicode_literals from .common import InfoExtractor from ..utils import ( int_or_none, - unescapeHTML, + unescape_html, ) @@ -46,7 +46,7 @@ class TVN24IE(InfoExtractor): self._search_regex( r'\b%s=(["\'])(?P(?!\1).+?)\1' % attr, webpage, name, group='json', fatal=fatal) or '{}', - video_id, transform_source=unescapeHTML, fatal=fatal) + video_id, transform_source=unescape_html, fatal=fatal) quality_data = extract_json('data-quality', 'formats') diff --git a/youtube_dl/extractor/tvnet.py b/youtube_dl/extractor/tvnet.py index 4222ff9ee..11fdc6809 100644 --- a/youtube_dl/extractor/tvnet.py +++ b/youtube_dl/extractor/tvnet.py @@ -6,7 +6,7 @@ import re from .common import InfoExtractor from ..utils import ( int_or_none, - unescapeHTML, + unescape_html, url_or_none, ) @@ -97,7 +97,7 @@ class TVNetIE(InfoExtractor): else: is_live = None - data_file = unescapeHTML(self._search_regex( + data_file = unescape_html(self._search_regex( r'data-file=(["\'])(?P(?:https?:)?//.+?)\1', webpage, 'data file', group='url')) @@ -125,7 +125,7 @@ class TVNetIE(InfoExtractor): }) thumbnail = self._og_search_thumbnail( - webpage, default=None) or unescapeHTML( + webpage, default=None) or unescape_html( self._search_regex( r'data-image=(["\'])(?P(?:https?:)?//.+?)\1', webpage, 'thumbnail', default=None, group='url')) diff --git a/youtube_dl/extractor/twitch.py b/youtube_dl/extractor/twitch.py index 401615683..11f86b672 100644 --- a/youtube_dl/extractor/twitch.py +++ b/youtube_dl/extractor/twitch.py @@ -19,7 +19,7 @@ from ..utils import ( ExtractorError, float_or_none, int_or_none, - orderedSet, + ordered_set, parse_duration, parse_iso8601, qualities, @@ -389,7 +389,7 @@ class TwitchPlaylistBaseIE(TwitchBaseIE): break offset += limit return self.playlist_result( - [self._make_url_result(entry) for entry in orderedSet(entries)], + [self._make_url_result(entry) for entry in ordered_set(entries)], channel_id, channel_name) def _make_url_result(self, url): diff --git a/youtube_dl/extractor/udemy.py b/youtube_dl/extractor/udemy.py index 105826e9b..d618e6ab2 100644 --- a/youtube_dl/extractor/udemy.py +++ b/youtube_dl/extractor/udemy.py @@ -19,7 +19,7 @@ from ..utils import ( js_to_json, sanitized_Request, try_get, - unescapeHTML, + unescape_html, url_or_none, urlencode_postdata, ) @@ -68,7 +68,7 @@ class UdemyIE(InfoExtractor): def _extract_course_info(self, webpage, video_id): course = self._parse_json( - unescapeHTML(self._search_regex( + unescape_html(self._search_regex( r'ng-init=["\'].*\bcourse=({.+?})[;"\']', webpage, 'course', default='{}')), video_id, fatal=False) or {} @@ -80,7 +80,7 @@ class UdemyIE(InfoExtractor): def combine_url(base_url, url): return compat_urlparse.urljoin(base_url, url) if not url.startswith('http') else url - checkout_url = unescapeHTML(self._search_regex( + checkout_url = unescape_html(self._search_regex( r'href=(["\'])(?P(?:https?://(?:www\.)?udemy\.com)?/(?:payment|cart)/checkout/.+?)\1', webpage, 'checkout url', group='url', default=None)) if checkout_url: @@ -90,7 +90,7 @@ class UdemyIE(InfoExtractor): % (course_id, combine_url(base_url, checkout_url)), expected=True) - enroll_url = unescapeHTML(self._search_regex( + enroll_url = unescape_html(self._search_regex( r'href=(["\'])(?P(?:https?://(?:www\.)?udemy\.com)?/course/subscribe/.+?)\1', webpage, 'enroll url', group='url', default=None)) if enroll_url: @@ -365,7 +365,7 @@ class UdemyIE(InfoExtractor): self._search_regex( r'videojs-setup-data=(["\'])(?P{.+?})\1', view_html, 'setup data', default='{}', group='data'), video_id, - transform_source=unescapeHTML, fatal=False) + transform_source=unescape_html, fatal=False) if data and isinstance(data, dict): extract_formats(data.get('sources')) if not duration: @@ -377,7 +377,7 @@ class UdemyIE(InfoExtractor): self._search_regex( r'text-tracks=(["\'])(?P\[.+?\])\1', view_html, 'text tracks', default='{}', group='data'), video_id, - transform_source=lambda s: js_to_json(unescapeHTML(s)), + transform_source=lambda s: js_to_json(unescape_html(s)), fatal=False) extract_subtitles(text_tracks) diff --git a/youtube_dl/extractor/ustudio.py b/youtube_dl/extractor/ustudio.py index 56509beed..e51b289f3 100644 --- a/youtube_dl/extractor/ustudio.py +++ b/youtube_dl/extractor/ustudio.py @@ -6,7 +6,7 @@ from .common import InfoExtractor from ..utils import ( int_or_none, unified_strdate, - unescapeHTML, + unescape_html, ) @@ -37,7 +37,7 @@ class UstudioIE(InfoExtractor): def extract(kind): return [{ - 'url': unescapeHTML(item.attrib['url']), + 'url': unescape_html(item.attrib['url']), 'width': int_or_none(item.get('width')), 'height': int_or_none(item.get('height')), } for item in config.findall('./qualities/quality/%s' % kind) if item.get('url')] diff --git a/youtube_dl/extractor/vimeo.py b/youtube_dl/extractor/vimeo.py index 6215b3258..18ad0149e 100644 --- a/youtube_dl/extractor/vimeo.py +++ b/youtube_dl/extractor/vimeo.py @@ -30,7 +30,7 @@ from ..utils import ( unified_timestamp, unsmuggle_url, urlencode_postdata, - unescapeHTML, + unescape_html, ) @@ -450,7 +450,7 @@ class VimeoIE(VimeoBaseInfoExtractor): for mobj in re.finditer( r']+?src=(["\'])(?P(?:https?:)?//player\.vimeo\.com/video/\d+.*?)\1', webpage): - urls.append(VimeoIE._smuggle_referrer(unescapeHTML(mobj.group('url')), url)) + urls.append(VimeoIE._smuggle_referrer(unescape_html(mobj.group('url')), url)) PLAIN_EMBED_RE = ( # Look for embedded (swf embed) Vimeo player r']+?src=(["\'])(?P(?:https?:)?//(?:www\.)?vimeo\.com/moogaloop\.swf.+?)\1', diff --git a/youtube_dl/extractor/vk.py b/youtube_dl/extractor/vk.py index b52d15ac6..4d0f91549 100644 --- a/youtube_dl/extractor/vk.py +++ b/youtube_dl/extractor/vk.py @@ -15,11 +15,11 @@ from ..utils import ( ExtractorError, get_element_by_class, int_or_none, - orderedSet, + ordered_set, remove_start, str_or_none, str_to_int, - unescapeHTML, + unescape_html, unified_timestamp, url_or_none, urlencode_postdata, @@ -422,7 +422,7 @@ class VKIE(VKBaseIE): 'player params'), video_id)['params'][0] - title = unescapeHTML(data['md_title']) + title = unescape_html(data['md_title']) # 2 = live # 3 = post live (finished live) @@ -514,9 +514,9 @@ class VKUserVideosIE(VKBaseIE): entries = [ self.url_result( 'http://vk.com/video' + video_id, 'VK', video_id=video_id) - for video_id in orderedSet(re.findall(r'href="/video(-?[0-9_]+)"', webpage))] + for video_id in ordered_set(re.findall(r'href="/video(-?[0-9_]+)"', webpage))] - title = unescapeHTML(self._search_regex( + title = unescape_html(self._search_regex( r'\s*([^<]+?)\s+\|\s+\d+\s+videos', webpage, 'title', default=page_id)) @@ -623,7 +623,7 @@ class VKWallPostIE(VKBaseIE): audios = self._parse_json( self._search_regex( r'<!json>(.+?)<!>', al_audio, 'audios', default='[]'), - post_id, fatal=False, transform_source=unescapeHTML) + post_id, fatal=False, transform_source=unescape_html) if isinstance(audios, list): for audio in audios: a = Audio._make(audio[:6]) @@ -646,6 +646,6 @@ class VKWallPostIE(VKBaseIE): title = 'Wall post %s' % post_id return self.playlist_result( - orderedSet(entries), post_id, + ordered_set(entries), post_id, '%s - %s' % (uploader, title) if uploader else title, description) diff --git a/youtube_dl/extractor/vodplatform.py b/youtube_dl/extractor/vodplatform.py index 239644340..fd4d9d61c 100644 --- a/youtube_dl/extractor/vodplatform.py +++ b/youtube_dl/extractor/vodplatform.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from .common import InfoExtractor -from ..utils import unescapeHTML +from ..utils import unescape_html class VODPlatformIE(InfoExtractor): @@ -22,7 +22,7 @@ class VODPlatformIE(InfoExtractor): video_id = self._match_id(url) webpage = self._download_webpage(url, video_id) - title = unescapeHTML(self._og_search_title(webpage)) + title = unescape_html(self._og_search_title(webpage)) hidden_inputs = self._hidden_inputs(webpage) formats = self._extract_wowza_formats( diff --git a/youtube_dl/extractor/vrak.py b/youtube_dl/extractor/vrak.py index daa247cce..6553a4613 100644 --- a/youtube_dl/extractor/vrak.py +++ b/youtube_dl/extractor/vrak.py @@ -9,7 +9,7 @@ from ..utils import ( int_or_none, parse_age_limit, smuggle_url, - unescapeHTML, + unescape_html, ) @@ -49,7 +49,7 @@ class VrakIE(InfoExtractor): self._search_regex( r'data-player-options-content=(["\'])(?P<content>{.+?})\1', webpage, 'content', default='{}', group='content'), - video_id, transform_source=unescapeHTML) + video_id, transform_source=unescape_html) ref_id = content.get('refId') or self._search_regex( r'refId":"([^&]+)"', webpage, 'ref id') diff --git a/youtube_dl/extractor/watchbox.py b/youtube_dl/extractor/watchbox.py index 5a4e46e73..f7e9c3082 100644 --- a/youtube_dl/extractor/watchbox.py +++ b/youtube_dl/extractor/watchbox.py @@ -10,7 +10,7 @@ from ..utils import ( js_to_json, strip_or_none, try_get, - unescapeHTML, + unescape_html, unified_timestamp, ) @@ -72,7 +72,7 @@ class WatchBoxIE(InfoExtractor): self._search_regex( r'data-player-conf=(["\'])(?P<data>{.+?})\1', webpage, 'player config', default='{}', group='data'), - video_id, transform_source=unescapeHTML, fatal=False) + video_id, transform_source=unescape_html, fatal=False) if not player_config: player_config = self._parse_json( diff --git a/youtube_dl/extractor/webofstories.py b/youtube_dl/extractor/webofstories.py index f2b8d19b4..97b12f4f3 100644 --- a/youtube_dl/extractor/webofstories.py +++ b/youtube_dl/extractor/webofstories.py @@ -6,7 +6,7 @@ import re from .common import InfoExtractor from ..utils import ( int_or_none, - orderedSet, + ordered_set, ) @@ -139,7 +139,7 @@ class WebOfStoriesPlaylistIE(InfoExtractor): self.url_result( 'http://www.webofstories.com/play/%s' % video_id, 'WebOfStories', video_id=video_id) - for video_id in orderedSet(re.findall(r'\bid=["\']td_(\d+)', webpage)) + for video_id in ordered_set(re.findall(r'\bid=["\']td_(\d+)', webpage)) ] title = self._search_regex( diff --git a/youtube_dl/extractor/wistia.py b/youtube_dl/extractor/wistia.py index fa142b974..f6b188db1 100644 --- a/youtube_dl/extractor/wistia.py +++ b/youtube_dl/extractor/wistia.py @@ -7,7 +7,7 @@ from ..utils import ( ExtractorError, int_or_none, float_or_none, - unescapeHTML, + unescape_html, ) @@ -48,7 +48,7 @@ class WistiaIE(InfoExtractor): match = re.search( r'<(?:meta[^>]+?content|iframe[^>]+?src)=(["\'])(?P<url>(?:https?:)?//(?:fast\.)?wistia\.(?:net|com)/embed/iframe/.+?)\1', webpage) if match: - return unescapeHTML(match.group('url')) + return unescape_html(match.group('url')) match = re.search(r'(?:id=["\']wistia_|data-wistia-?id=["\']|Wistia\.embed\(["\'])(?P<id>[^"\']+)', webpage) if match: diff --git a/youtube_dl/extractor/wwe.py b/youtube_dl/extractor/wwe.py index bebc77bb5..951815d05 100644 --- a/youtube_dl/extractor/wwe.py +++ b/youtube_dl/extractor/wwe.py @@ -6,7 +6,7 @@ from .common import InfoExtractor from ..compat import compat_str from ..utils import ( try_get, - unescapeHTML, + unescape_html, url_or_none, urljoin, ) @@ -123,7 +123,7 @@ class WWEPlaylistIE(WWEBaseIE): for mobj in re.finditer( r'data-video\s*=\s*(["\'])(?P<data>{.+?})\1', webpage): video = self._parse_json( - mobj.group('data'), display_id, transform_source=unescapeHTML, + mobj.group('data'), display_id, transform_source=unescape_html, fatal=False) if not video: continue diff --git a/youtube_dl/extractor/xtube.py b/youtube_dl/extractor/xtube.py index c6c0b3291..8a19b2c3a 100644 --- a/youtube_dl/extractor/xtube.py +++ b/youtube_dl/extractor/xtube.py @@ -7,7 +7,7 @@ from .common import InfoExtractor from ..utils import ( int_or_none, js_to_json, - orderedSet, + ordered_set, parse_duration, sanitized_Request, str_to_int, @@ -167,7 +167,7 @@ class XTubeUserIE(InfoExtractor): if not html: break - for video_id in orderedSet([video_id for _, video_id in re.findall( + for video_id in ordered_set([video_id for _, video_id in re.findall( r'data-plid=(["\'])(.+?)\1', html)]): entries.append(self.url_result('xtube:%s' % video_id, XTubeIE.ie_key())) diff --git a/youtube_dl/extractor/yahoo.py b/youtube_dl/extractor/yahoo.py index 552013a74..caf59d2b3 100644 --- a/youtube_dl/extractor/yahoo.py +++ b/youtube_dl/extractor/yahoo.py @@ -18,7 +18,7 @@ from ..utils import ( int_or_none, mimetype2ext, smuggle_url, - unescapeHTML, + unescape_html, ) from .brightcove import ( @@ -415,7 +415,7 @@ class YahooIE(InfoExtractor): return { 'id': video_id, 'display_id': display_id, - 'title': unescapeHTML(meta['title']), + 'title': unescape_html(meta['title']), 'formats': formats, 'description': clean_html(meta['description']), 'thumbnail': meta['thumbnail'] if meta.get('thumbnail') else self._og_search_thumbnail(webpage), diff --git a/youtube_dl/extractor/yapfiles.py b/youtube_dl/extractor/yapfiles.py index cfb368de9..8b9e70423 100644 --- a/youtube_dl/extractor/yapfiles.py +++ b/youtube_dl/extractor/yapfiles.py @@ -8,7 +8,7 @@ from ..utils import ( ExtractorError, int_or_none, qualities, - unescapeHTML, + unescape_html, url_or_none, ) @@ -35,7 +35,7 @@ class YapFilesIE(InfoExtractor): @staticmethod def _extract_urls(webpage): - return [unescapeHTML(mobj.group('url')) for mobj in re.finditer( + return [unescape_html(mobj.group('url')) for mobj in re.finditer( r'<iframe\b[^>]+\bsrc=(["\'])(?P<url>(?:https?:)?%s.*?)\1' % YapFilesIE._YAPFILES_URL, webpage)] diff --git a/youtube_dl/extractor/youporn.py b/youtube_dl/extractor/youporn.py index d4eccb4b2..960666910 100644 --- a/youtube_dl/extractor/youporn.py +++ b/youtube_dl/extractor/youporn.py @@ -7,7 +7,7 @@ from ..utils import ( int_or_none, sanitized_Request, str_to_int, - unescapeHTML, + unescape_html, unified_strdate, url_or_none, ) @@ -112,7 +112,7 @@ class YouPornIE(InfoExtractor): links.append(aes_decrypt_text(encrypted_link, title, 32).decode('utf-8')) formats = [] - for video_url in set(unescapeHTML(link) for link in links): + for video_url in set(unescape_html(link) for link in links): f = { 'url': video_url, } diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index c8bf98b58..b79e93081 100644 --- a/youtube_dl/extractor/youtube.py +++ b/youtube_dl/extractor/youtube.py @@ -34,7 +34,7 @@ from ..utils import ( get_element_by_id, int_or_none, mimetype2ext, - orderedSet, + ordered_set, parse_codecs, parse_duration, qualities, @@ -44,7 +44,7 @@ from ..utils import ( str_or_none, str_to_int, try_get, - unescapeHTML, + unescape_html, unified_strdate, unsmuggle_url, uppercase_escape, @@ -312,7 +312,7 @@ class YoutubePlaylistBaseInfoExtractor(YoutubeEntryListBaseInfoExtractor): if 'index' in mobj.groupdict() and mobj.group('id') == '0': continue video_id = mobj.group('id') - video_title = unescapeHTML(mobj.group('title')) + video_title = unescape_html(mobj.group('title')) if video_title: video_title = video_title.strip() try: @@ -327,7 +327,7 @@ class YoutubePlaylistBaseInfoExtractor(YoutubeEntryListBaseInfoExtractor): class YoutubePlaylistsBaseInfoExtractor(YoutubeEntryListBaseInfoExtractor): def _process_page(self, content): - for playlist_id in orderedSet(re.findall( + for playlist_id in ordered_set(re.findall( r'<h3[^>]+class="[^"]*yt-lockup-title[^"]*"[^>]*><a[^>]+href="/?playlist\?list=([0-9A-Za-z-_]{10,})"', content)): yield self.url_result( @@ -1423,7 +1423,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): def _extract_urls(webpage): # Embedded YouTube player entries = [ - unescapeHTML(mobj.group('url')) + unescape_html(mobj.group('url')) for mobj in re.finditer(r'''(?x) (?: <iframe[^>]+?src=| @@ -1440,7 +1440,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): # lazyYT YouTube embed entries.extend(list(map( - unescapeHTML, + unescape_html, re.findall(r'class="lazyYT" data-youtube-id="([^"]+)"', webpage)))) # Wordpress "YouTube Video Importer" plugin @@ -1730,7 +1730,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): else: fd_mobj = re.search(r'<meta name="description" content="([^"]+)"', video_webpage) if fd_mobj: - video_description = unescapeHTML(fd_mobj.group(1)) + video_description = unescape_html(fd_mobj.group(1)) else: video_description = '' @@ -2047,7 +2047,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): ''', video_webpage) if m_music: - video_alt_title = remove_quotes(unescapeHTML(m_music.group('title'))) + video_alt_title = remove_quotes(unescape_html(m_music.group('title'))) video_creator = clean_html(m_music.group('creator')) else: video_alt_title = video_creator = None @@ -2064,7 +2064,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): r'<div[^>]+id="watch7-headline"[^>]*>\s*<span[^>]*>.*?>(?P<series>[^<]+)</a></b>\s*S(?P<season>\d+)\s*•\s*E(?P<episode>\d+)</span>', video_webpage) if m_episode: - series = unescapeHTML(m_episode.group('series')) + series = unescape_html(m_episode.group('series')) season_number = int(m_episode.group('season')) episode_number = int(m_episode.group('episode')) else: @@ -2082,7 +2082,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor): video_categories = None video_tags = [ - unescapeHTML(m.group('content')) + unescape_html(m.group('content')) for m in re.finditer(self._meta_regex('og:video:tag'), video_webpage)] def _extract_count(count_name): @@ -2394,7 +2394,7 @@ class YoutubePlaylistIE(YoutubePlaylistBaseInfoExtractor): url = 'https://youtube.com/watch?v=%s&list=%s' % (last_id, playlist_id) webpage = self._download_webpage( url, playlist_id, 'Downloading page {0} of Youtube mix'.format(n)) - new_ids = orderedSet(re.findall( + new_ids = ordered_set(re.findall( r'''(?xs)data-video-username=".*?".*? href="/watch\?v=([0-9A-Za-z_-]{11})&[^"]*?list=%s''' % re.escape(playlist_id), webpage)) @@ -2875,7 +2875,7 @@ class YoutubeFeedsInfoExtractor(YoutubeBaseInfoExtractor): # 'recommended' feed has infinite 'load more' and each new portion spins # the same videos in (sometimes) slightly different order, so we'll check # for unicity and break when portion has no new videos - new_ids = list(filter(lambda video_id: video_id not in ids, orderedSet(matches))) + new_ids = list(filter(lambda video_id: video_id not in ids, ordered_set(matches))) if not new_ids: break diff --git a/youtube_dl/extractor/zdf.py b/youtube_dl/extractor/zdf.py index afa3f6c47..f91b33b99 100644 --- a/youtube_dl/extractor/zdf.py +++ b/youtube_dl/extractor/zdf.py @@ -9,7 +9,7 @@ from ..utils import ( determine_ext, int_or_none, NO_DEFAULT, - orderedSet, + ordered_set, parse_codecs, qualities, try_get, @@ -267,7 +267,7 @@ class ZDFChannelIE(ZDFBaseIE): entries = [ self.url_result(item_url, ie=ZDFIE.ie_key()) - for item_url in orderedSet(re.findall( + for item_url in ordered_set(re.findall( r'data-plusbar-url=["\'](http.+?\.html)', webpage))] return self.playlist_result( diff --git a/youtube_dl/postprocessor/common.py b/youtube_dl/postprocessor/common.py index 599dd1df2..e379bdfa3 100644 --- a/youtube_dl/postprocessor/common.py +++ b/youtube_dl/postprocessor/common.py @@ -5,7 +5,7 @@ import os from ..utils import ( PostProcessingError, cli_configuration_args, - encodeFilename, + encode_filename, ) @@ -57,7 +57,7 @@ class PostProcessor(object): def try_utime(self, path, atime, mtime, errnote='Cannot update utime of file'): try: - os.utime(encodeFilename(path), (atime, mtime)) + os.utime(encode_filename(path), (atime, mtime)) except Exception: self._downloader.report_warning(errnote) diff --git a/youtube_dl/postprocessor/embedthumbnail.py b/youtube_dl/postprocessor/embedthumbnail.py index 56be914b8..dead53bb0 100644 --- a/youtube_dl/postprocessor/embedthumbnail.py +++ b/youtube_dl/postprocessor/embedthumbnail.py @@ -9,8 +9,8 @@ from .ffmpeg import FFmpegPostProcessor from ..utils import ( check_executable, - encodeArgument, - encodeFilename, + encode_argument, + encode_filename, PostProcessingError, prepend_extension, shell_quote @@ -36,7 +36,7 @@ class EmbedThumbnailPP(FFmpegPostProcessor): thumbnail_filename = info['thumbnails'][-1]['filename'] - if not os.path.exists(encodeFilename(thumbnail_filename)): + if not os.path.exists(encode_filename(thumbnail_filename)): self._downloader.report_warning( 'Skipping embedding the thumbnail because the file is missing.') return [], info @@ -51,20 +51,20 @@ class EmbedThumbnailPP(FFmpegPostProcessor): self.run_ffmpeg_multiple_files([filename, thumbnail_filename], temp_filename, options) if not self._already_have_thumbnail: - os.remove(encodeFilename(thumbnail_filename)) - os.remove(encodeFilename(filename)) - os.rename(encodeFilename(temp_filename), encodeFilename(filename)) + os.remove(encode_filename(thumbnail_filename)) + os.remove(encode_filename(filename)) + os.rename(encode_filename(temp_filename), encode_filename(filename)) elif info['ext'] in ['m4a', 'mp4']: if not check_executable('AtomicParsley', ['-v']): raise EmbedThumbnailPPError('AtomicParsley was not found. Please install.') - cmd = [encodeFilename('AtomicParsley', True), - encodeFilename(filename, True), - encodeArgument('--artwork'), - encodeFilename(thumbnail_filename, True), - encodeArgument('-o'), - encodeFilename(temp_filename, True)] + cmd = [encode_filename('AtomicParsley', True), + encode_filename(filename, True), + encode_argument('--artwork'), + encode_filename(thumbnail_filename, True), + encode_argument('-o'), + encode_filename(temp_filename, True)] self._downloader.to_screen('[atomicparsley] Adding thumbnail to "%s"' % filename) @@ -79,14 +79,14 @@ class EmbedThumbnailPP(FFmpegPostProcessor): raise EmbedThumbnailPPError(msg) if not self._already_have_thumbnail: - os.remove(encodeFilename(thumbnail_filename)) + os.remove(encode_filename(thumbnail_filename)) # for formats that don't support thumbnails (like 3gp) AtomicParsley # won't create to the temporary file if b'No changes' in stdout: self._downloader.report_warning('The file format doesn\'t support embedding a thumbnail') else: - os.remove(encodeFilename(filename)) - os.rename(encodeFilename(temp_filename), encodeFilename(filename)) + os.remove(encode_filename(filename)) + os.rename(encode_filename(temp_filename), encode_filename(filename)) else: raise EmbedThumbnailPPError('Only mp3 and m4a/mp4 are supported for thumbnail embedding for now.') diff --git a/youtube_dl/postprocessor/execafterdownload.py b/youtube_dl/postprocessor/execafterdownload.py index 64dabe790..6970e7932 100644 --- a/youtube_dl/postprocessor/execafterdownload.py +++ b/youtube_dl/postprocessor/execafterdownload.py @@ -5,7 +5,7 @@ import subprocess from .common import PostProcessor from ..compat import compat_shlex_quote from ..utils import ( - encodeArgument, + encode_argument, PostProcessingError, ) @@ -23,7 +23,7 @@ class ExecAfterDownloadPP(PostProcessor): cmd = cmd.replace('{}', compat_shlex_quote(information['filepath'])) self._downloader.to_screen('[exec] Executing command: %s' % cmd) - retCode = subprocess.call(encodeArgument(cmd), shell=True) + retCode = subprocess.call(encode_argument(cmd), shell=True) if retCode != 0: raise PostProcessingError( 'Command returned error code %d' % retCode) diff --git a/youtube_dl/postprocessor/ffmpeg.py b/youtube_dl/postprocessor/ffmpeg.py index 39a905380..36348a0f2 100644 --- a/youtube_dl/postprocessor/ffmpeg.py +++ b/youtube_dl/postprocessor/ffmpeg.py @@ -13,8 +13,8 @@ from ..compat import ( compat_subprocess_get_DEVNULL, ) from ..utils import ( - encodeArgument, - encodeFilename, + encode_argument, + encode_filename, get_exe_version, is_outdated_version, PostProcessingError, @@ -169,9 +169,9 @@ class FFmpegPostProcessor(PostProcessor): raise PostProcessingError('ffprobe or avprobe not found. Please install one.') try: cmd = [ - encodeFilename(self.probe_executable, True), - encodeArgument('-show_streams'), - encodeFilename(self._ffmpeg_filename_argument(path), True)] + encode_filename(self.probe_executable, True), + encode_argument('-show_streams'), + encode_filename(self._ffmpeg_filename_argument(path), True)] if self._downloader.params.get('verbose', False): self._downloader.to_screen('[debug] %s command line: %s' % (self.basename, shell_quote(cmd))) handle = subprocess.Popen(cmd, stderr=compat_subprocess_get_DEVNULL(), stdout=subprocess.PIPE, stdin=subprocess.PIPE) @@ -192,20 +192,20 @@ class FFmpegPostProcessor(PostProcessor): self.check_version() oldest_mtime = min( - os.stat(encodeFilename(path)).st_mtime for path in input_paths) + os.stat(encode_filename(path)).st_mtime for path in input_paths) opts += self._configuration_args() files_cmd = [] for path in input_paths: files_cmd.extend([ - encodeArgument('-i'), - encodeFilename(self._ffmpeg_filename_argument(path), True) + encode_argument('-i'), + encode_filename(self._ffmpeg_filename_argument(path), True) ]) - cmd = ([encodeFilename(self.executable, True), encodeArgument('-y')] + + cmd = ([encode_filename(self.executable, True), encode_argument('-y')] + files_cmd + - [encodeArgument(o) for o in opts] + - [encodeFilename(self._ffmpeg_filename_argument(out_path), True)]) + [encode_argument(o) for o in opts] + + [encode_filename(self._ffmpeg_filename_argument(out_path), True)]) if self._downloader.params.get('verbose', False): self._downloader.to_screen('[debug] ffmpeg command line: %s' % shell_quote(cmd)) @@ -309,7 +309,7 @@ class FFmpegExtractAudioPP(FFmpegPostProcessor): # If we download foo.mp3 and convert it to... foo.mp3, then don't delete foo.mp3, silly. if (new_path == path or - (self._nopostoverwrites and os.path.exists(encodeFilename(new_path)))): + (self._nopostoverwrites and os.path.exists(encode_filename(new_path)))): self._downloader.to_screen('[ffmpeg] Post-process file %s exists, skipping' % new_path) return [], information @@ -403,8 +403,8 @@ class FFmpegEmbedSubtitlePP(FFmpegPostProcessor): temp_filename = prepend_extension(filename, 'temp') self._downloader.to_screen('[ffmpeg] Embedding subtitles in \'%s\'' % filename) self.run_ffmpeg_multiple_files(input_files, temp_filename, opts) - os.remove(encodeFilename(filename)) - os.rename(encodeFilename(temp_filename), encodeFilename(filename)) + os.remove(encode_filename(filename)) + os.rename(encode_filename(temp_filename), encode_filename(filename)) return sub_filenames, information @@ -477,8 +477,8 @@ class FFmpegMetadataPP(FFmpegPostProcessor): self.run_ffmpeg_multiple_files(in_filenames, temp_filename, options) if chapters: os.remove(metadata_filename) - os.remove(encodeFilename(filename)) - os.rename(encodeFilename(temp_filename), encodeFilename(filename)) + os.remove(encode_filename(filename)) + os.rename(encode_filename(temp_filename), encode_filename(filename)) return [], info @@ -489,7 +489,7 @@ class FFmpegMergerPP(FFmpegPostProcessor): args = ['-c', 'copy', '-map', '0:v:0', '-map', '1:a:0'] self._downloader.to_screen('[ffmpeg] Merging formats into "%s"' % filename) self.run_ffmpeg_multiple_files(info['__files_to_merge'], temp_filename, args) - os.rename(encodeFilename(temp_filename), encodeFilename(filename)) + os.rename(encode_filename(temp_filename), encode_filename(filename)) return info['__files_to_merge'], info def can_merge(self): @@ -523,8 +523,8 @@ class FFmpegFixupStretchedPP(FFmpegPostProcessor): self._downloader.to_screen('[ffmpeg] Fixing aspect ratio in "%s"' % filename) self.run_ffmpeg(filename, temp_filename, options) - os.remove(encodeFilename(filename)) - os.rename(encodeFilename(temp_filename), encodeFilename(filename)) + os.remove(encode_filename(filename)) + os.rename(encode_filename(temp_filename), encode_filename(filename)) return [], info @@ -541,8 +541,8 @@ class FFmpegFixupM4aPP(FFmpegPostProcessor): self._downloader.to_screen('[ffmpeg] Correcting container in "%s"' % filename) self.run_ffmpeg(filename, temp_filename, options) - os.remove(encodeFilename(filename)) - os.rename(encodeFilename(temp_filename), encodeFilename(filename)) + os.remove(encode_filename(filename)) + os.rename(encode_filename(temp_filename), encode_filename(filename)) return [], info @@ -557,8 +557,8 @@ class FFmpegFixupM3u8PP(FFmpegPostProcessor): self._downloader.to_screen('[ffmpeg] Fixing malformed AAC bitstream in "%s"' % filename) self.run_ffmpeg(filename, temp_filename, options) - os.remove(encodeFilename(filename)) - os.rename(encodeFilename(temp_filename), encodeFilename(filename)) + os.remove(encode_filename(filename)) + os.rename(encode_filename(temp_filename), encode_filename(filename)) return [], info diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index d0cb65814..843b23fab 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -205,7 +205,7 @@ def preferredencoding(): def write_json_file(obj, fn): """ Encode obj as JSON and write it to fn, atomically if possible """ - fn = encodeFilename(fn) + fn = encode_filename(fn) if sys.version_info < (3, 0) and sys.platform != 'win32': encoding = get_filesystem_encoding() # os.path.basename returns a bytes object, but NamedTemporaryFile @@ -381,7 +381,7 @@ def get_elements_by_attribute(attribute, value, html, escape_value=True): if res.startswith('"') or res.startswith("'"): res = res[1:-1] - retlist.append(unescapeHTML(res)) + retlist.append(unescape_html(res)) return retlist @@ -435,7 +435,7 @@ def clean_html(html): # Strip html tags html = re.sub('<.*?>', '', html) # Replace html entities - html = unescapeHTML(html) + html = unescape_html(html) return html.strip() @@ -455,7 +455,7 @@ def sanitize_open(filename, open_mode): import msvcrt msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) return (sys.stdout.buffer if hasattr(sys.stdout, 'buffer') else sys.stdout, filename) - stream = open(encodeFilename(filename), open_mode) + stream = open(encode_filename(filename), open_mode) return (stream, filename) except (IOError, OSError) as err: if err.errno in (errno.EACCES,): @@ -467,7 +467,7 @@ def sanitize_open(filename, open_mode): raise else: # An exception here should be caught in the caller - stream = open(encodeFilename(alt_filename), open_mode) + stream = open(encode_filename(alt_filename), open_mode) return (stream, alt_filename) @@ -566,7 +566,7 @@ def expand_path(s): return os.path.expandvars(compat_expanduser(s)) -def orderedSet(iterable): +def ordered_set(iterable): """ Remove all duplicates from the input iterable """ res = [] for el in iterable: @@ -606,7 +606,7 @@ def _htmlentity_transform(entity_with_semicolon): return '&%s;' % entity -def unescapeHTML(s): +def unescape_html(s): if s is None: return None assert type(s) == compat_str @@ -627,7 +627,7 @@ def get_subprocess_encoding(): return encoding -def encodeFilename(s, for_subprocess=False): +def encode_filename(s, for_subprocess=False): """ @param s The name of the file """ @@ -651,7 +651,7 @@ def encodeFilename(s, for_subprocess=False): return s.encode(get_subprocess_encoding(), 'ignore') -def decodeFilename(b, for_subprocess=False): +def decode_filename(b, for_subprocess=False): if sys.version_info >= (3, 0): return b @@ -662,20 +662,20 @@ def decodeFilename(b, for_subprocess=False): return b.decode(get_subprocess_encoding(), 'ignore') -def encodeArgument(s): +def encode_argument(s): if not isinstance(s, compat_str): # Legacy code that uses byte strings # Uncomment the following line after fixing all post processors # assert False, 'Internal error: %r should be of type %r, is %r' % (s, compat_str, type(s)) s = s.decode('ascii') - return encodeFilename(s, True) + return encode_filename(s, True) -def decodeArgument(b): - return decodeFilename(b, True) +def decode_argument(b): + return decode_filename(b, True) -def decodeOption(optval): +def decode_option(optval): if optval is None: return optval if isinstance(optval, bytes): @@ -685,7 +685,7 @@ def decodeOption(optval): return optval -def formatSeconds(secs): +def format_seconds(secs): if secs > 3600: return '%d:%02d:%02d' % (secs // 3600, (secs % 3600) // 60, secs % 60) elif secs > 60: @@ -694,7 +694,7 @@ def formatSeconds(secs): return '%d' % secs -def make_HTTPS_handler(params, **kwargs): +def make_https_handler(params, **kwargs): opts_no_check_certificate = params.get('nocheckcertificate', False) if hasattr(ssl, 'create_default_context'): # Python >= 3.4 or 2.7.9 context = ssl.create_default_context(ssl.Purpose.SERVER_AUTH) @@ -1618,7 +1618,7 @@ def shell_quote(args): encoding = get_filesystem_encoding() for a in args: if isinstance(a, bytes): - # We may get a filename encoded with 'encodeFilename' + # We may get a filename encoded with 'encode_filename' a = a.decode(encoding) quoted_args.append(compat_shlex_quote(a)) return ' '.join(quoted_args) @@ -2030,7 +2030,7 @@ def get_exe_version(exe, args=['--version'], # SIGTTOU if youtube-dl is run in the background. # See https://github.com/rg3/youtube-dl/issues/955#issuecomment-209789656 out, _ = subprocess.Popen( - [encodeArgument(exe)] + args, + [encode_argument(exe)] + args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT).communicate() except OSError: @@ -3949,9 +3949,9 @@ def write_xattr(path, key, value): executable = 'xattr' opts = ['-w', key, value] - cmd = ([encodeFilename(executable, True)] + - [encodeArgument(o) for o in opts] + - [encodeFilename(path, True)]) + cmd = ([encode_filename(executable, True)] + + [encode_argument(o) for o in opts] + + [encode_filename(path, True)]) try: p = subprocess.Popen(