Merge branch 'fix-qq-download-bug' of github.com:jiemoon/you-get into fix-qq-download-bug

This commit is contained in:
jiemoon 2016-03-28 10:16:49 +08:00
commit 32f4963d3c
4 changed files with 26 additions and 21 deletions

View File

@ -1160,6 +1160,7 @@ def script_main(script_name, download, download_playlist, **kwargs):
output_dir = a output_dir = a
elif o in ('-p', '--player'): elif o in ('-p', '--player'):
player = a player = a
caption = False
elif o in ('-x', '--http-proxy'): elif o in ('-x', '--http-proxy'):
proxy = a proxy = a
elif o in ('-y', '--extractor-proxy'): elif o in ('-y', '--extractor-proxy'):

View File

@ -2,6 +2,7 @@
import os.path import os.path
import subprocess import subprocess
from ..util.strings import parameterize
def get_usable_ffmpeg(cmd): def get_usable_ffmpeg(cmd):
try: try:
@ -53,7 +54,7 @@ def ffmpeg_concat_mp4_to_mpg(files, output='output.mpg'):
concat_list = open(output + '.txt', 'w', encoding="utf-8") concat_list = open(output + '.txt', 'w', encoding="utf-8")
for file in files: for file in files:
if os.path.isfile(file): if os.path.isfile(file):
concat_list.write("file '%s'\n" % file) concat_list.write("file %s\n" % parameterize(file))
concat_list.close() concat_list.close()
params = [FFMPEG] + LOGLEVEL params = [FFMPEG] + LOGLEVEL
@ -118,7 +119,7 @@ def ffmpeg_concat_flv_to_mp4(files, output='output.mp4'):
if os.path.isfile(file): if os.path.isfile(file):
# for escaping rules, see: # for escaping rules, see:
# https://www.ffmpeg.org/ffmpeg-utils.html#Quoting-and-escaping # https://www.ffmpeg.org/ffmpeg-utils.html#Quoting-and-escaping
concat_list.write("file '%s'\n" % file.replace("'", r"'\''")) concat_list.write("file %s\n" % parameterize(file))
concat_list.close() concat_list.close()
params = [FFMPEG] + LOGLEVEL + ['-f', 'concat', '-y', '-i'] params = [FFMPEG] + LOGLEVEL + ['-f', 'concat', '-y', '-i']
@ -163,7 +164,7 @@ def ffmpeg_concat_mp4_to_mp4(files, output='output.mp4'):
concat_list = open(output + '.txt', 'w', encoding="utf-8") concat_list = open(output + '.txt', 'w', encoding="utf-8")
for file in files: for file in files:
if os.path.isfile(file): if os.path.isfile(file):
concat_list.write("file '%s'\n" % file) concat_list.write("file %s\n" % parameterize(file))
concat_list.close() concat_list.close()
params = [FFMPEG] + LOGLEVEL + ['-f', 'concat', '-y', '-i'] params = [FFMPEG] + LOGLEVEL + ['-f', 'concat', '-y', '-i']

View File

@ -1,25 +1,28 @@
try: try:
# py 3.4 # py 3.4
from html import unescape as unescape_html from html import unescape as unescape_html
except ImportError: except ImportError:
import re import re
from html.entities import entitydefs from html.entities import entitydefs
def unescape_html(string): def unescape_html(string):
'''HTML entity decode''' '''HTML entity decode'''
string = re.sub(r'&#[^;]+;', _sharp2uni, string) string = re.sub(r'&#[^;]+;', _sharp2uni, string)
string = re.sub(r'&[^;]+;', lambda m: entitydefs[m.group(0)[1:-1]], string) string = re.sub(r'&[^;]+;', lambda m: entitydefs[m.group(0)[1:-1]], string)
return string return string
def _sharp2uni(m): def _sharp2uni(m):
'''&#...; ==> unicode''' '''&#...; ==> unicode'''
s = m.group(0)[2:].rstrip(';') s = m.group(0)[2:].rstrip(';')
if s.startswith('x'): if s.startswith('x'):
return chr(int('0'+s, 16)) return chr(int('0'+s, 16))
else: else:
return chr(int(s)) return chr(int(s))
from .fs import legitimize from .fs import legitimize
def get_filename(htmlstring): def get_filename(htmlstring):
return legitimize(unescape_html(htmlstring)) return legitimize(unescape_html(htmlstring))
def parameterize(string):
return "'%s'" % string.replace("'", r"'\''")

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python #!/usr/bin/env python
script_name = 'you-get' script_name = 'you-get'
__version__ = '0.4.350' __version__ = '0.4.365'