mirror of
https://github.com/spaam/svtplay-dl.git
synced 2024-11-27 21:54:17 +01:00
refactor output to its own function
Almost the same code for all the fetchers.
This commit is contained in:
parent
79b9c15977
commit
686f5f615a
@ -1,16 +1,13 @@
|
|||||||
# ex:ts=4:sw=4:sts=4:et
|
# ex:ts=4:sw=4:sts=4:et
|
||||||
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
|
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
|
||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
import sys
|
|
||||||
import base64
|
import base64
|
||||||
import re
|
|
||||||
import struct
|
import struct
|
||||||
import logging
|
import logging
|
||||||
import binascii
|
import binascii
|
||||||
import os
|
|
||||||
import xml.etree.ElementTree as ET
|
import xml.etree.ElementTree as ET
|
||||||
|
|
||||||
from svtplay_dl.output import progressbar, progress_stream, ETA
|
from svtplay_dl.output import progressbar, progress_stream, ETA, output
|
||||||
from svtplay_dl.utils import get_http_data, is_py2_old, is_py2, is_py3
|
from svtplay_dl.utils import get_http_data, is_py2_old, is_py2, is_py3
|
||||||
from svtplay_dl.utils.urllib import urlparse
|
from svtplay_dl.utils.urllib import urlparse
|
||||||
from svtplay_dl.error import UIException
|
from svtplay_dl.error import UIException
|
||||||
@ -79,20 +76,9 @@ class HDS(VideoRetriever):
|
|||||||
antal = readbox(bootstrap, box[0])
|
antal = readbox(bootstrap, box[0])
|
||||||
baseurl = self.kwargs["manifest"][0:self.kwargs["manifest"].rfind("/")]
|
baseurl = self.kwargs["manifest"][0:self.kwargs["manifest"].rfind("/")]
|
||||||
|
|
||||||
if self.options.output != "-":
|
file_d = output(self.options, self.options.output, "flv")
|
||||||
extension = re.search(r"(\.[a-z0-9]+)$", self.options.output)
|
if file_d is None:
|
||||||
if not extension:
|
return
|
||||||
self.options.output = "%s.flv" % self.options.output
|
|
||||||
log.info("Outfile: %s", self.options.output)
|
|
||||||
if os.path.isfile(self.options.output) and not self.options.force:
|
|
||||||
log.info("File already exists. use --force to overwrite")
|
|
||||||
return
|
|
||||||
file_d = open(self.options.output, "wb")
|
|
||||||
else:
|
|
||||||
if is_py3:
|
|
||||||
file_d = sys.stdout.buffer
|
|
||||||
else:
|
|
||||||
file_d = sys.stdout
|
|
||||||
|
|
||||||
metasize = struct.pack(">L", len(base64.b64decode(self.kwargs["metadata"])))[1:]
|
metasize = struct.pack(">L", len(base64.b64decode(self.kwargs["metadata"])))[1:]
|
||||||
file_d.write(binascii.a2b_hex(b"464c560105000000090000000012"))
|
file_d.write(binascii.a2b_hex(b"464c560105000000090000000012"))
|
||||||
|
@ -5,8 +5,8 @@ import sys
|
|||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from svtplay_dl.utils import get_http_data, is_py3
|
from svtplay_dl.utils import get_http_data
|
||||||
from svtplay_dl.output import progressbar, progress_stream, ETA
|
from svtplay_dl.output import progressbar, progress_stream, ETA, output
|
||||||
from svtplay_dl.log import log
|
from svtplay_dl.log import log
|
||||||
from svtplay_dl.utils.urllib import urlparse
|
from svtplay_dl.utils.urllib import urlparse
|
||||||
from svtplay_dl.error import UIException
|
from svtplay_dl.error import UIException
|
||||||
@ -80,20 +80,10 @@ class HLS(VideoRetriever):
|
|||||||
key = get_http_data(match.group(1))
|
key = get_http_data(match.group(1))
|
||||||
rand = os.urandom(16)
|
rand = os.urandom(16)
|
||||||
decryptor = AES.new(key, AES.MODE_CBC, rand)
|
decryptor = AES.new(key, AES.MODE_CBC, rand)
|
||||||
if self.options.output != "-":
|
|
||||||
extension = re.search(r"(\.[a-z0-9]+)$", self.options.output)
|
file_d = output(self.options, self.options.output, "ts")
|
||||||
if not extension:
|
if file_d is None:
|
||||||
self.options.output = "%s.ts" % self.options.output
|
return
|
||||||
log.info("Outfile: %s", self.options.output)
|
|
||||||
if os.path.isfile(self.options.output) and not self.options.force:
|
|
||||||
log.info("File already exists. use --force to overwrite")
|
|
||||||
return
|
|
||||||
file_d = open(self.options.output, "wb")
|
|
||||||
else:
|
|
||||||
if is_py3:
|
|
||||||
file_d = sys.stdout.buffer
|
|
||||||
else:
|
|
||||||
file_d = sys.stdout
|
|
||||||
|
|
||||||
n = 0
|
n = 0
|
||||||
eta = ETA(len(files))
|
eta = ETA(len(files))
|
||||||
|
@ -3,14 +3,11 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
import re
|
|
||||||
import os
|
|
||||||
|
|
||||||
from svtplay_dl.output import progress # FIXME use progressbar() instead
|
from svtplay_dl.output import progress, output # FIXME use progressbar() instead
|
||||||
from svtplay_dl.log import log
|
from svtplay_dl.log import log
|
||||||
from svtplay_dl.utils.urllib import urlopen, Request, HTTPError
|
from svtplay_dl.utils.urllib import urlopen, Request, HTTPError
|
||||||
from svtplay_dl.fetcher import VideoRetriever
|
from svtplay_dl.fetcher import VideoRetriever
|
||||||
from svtplay_dl.utils import is_py3
|
|
||||||
|
|
||||||
class HTTP(VideoRetriever):
|
class HTTP(VideoRetriever):
|
||||||
def name(self):
|
def name(self):
|
||||||
@ -32,22 +29,10 @@ class HTTP(VideoRetriever):
|
|||||||
total_size = 0
|
total_size = 0
|
||||||
total_size = int(total_size)
|
total_size = int(total_size)
|
||||||
bytes_so_far = 0
|
bytes_so_far = 0
|
||||||
if self.options.output != "-":
|
|
||||||
extension = re.search(r"(\.[a-z0-9]+)$", self.url)
|
file_d = output(self.options, self.url, "mp4")
|
||||||
if extension:
|
if file_d is None:
|
||||||
self.options.output = self.options.output + extension.group(1)
|
return
|
||||||
else:
|
|
||||||
self.options.output = "%s.mp4" % self.options.output
|
|
||||||
log.info("Outfile: %s", self.options.output)
|
|
||||||
if os.path.isfile(self.options.output) and not self.options.force:
|
|
||||||
log.info("File already exists. use --force to overwrite")
|
|
||||||
return
|
|
||||||
file_d = open(self.options.output, "wb")
|
|
||||||
else:
|
|
||||||
if is_py3:
|
|
||||||
file_d = sys.stdout.buffer
|
|
||||||
else:
|
|
||||||
file_d = sys.stdout
|
|
||||||
|
|
||||||
lastprogress = 0
|
lastprogress = 0
|
||||||
while 1:
|
while 1:
|
||||||
|
@ -9,6 +9,7 @@ import os
|
|||||||
from svtplay_dl.log import log
|
from svtplay_dl.log import log
|
||||||
from svtplay_dl.utils import is_py2
|
from svtplay_dl.utils import is_py2
|
||||||
from svtplay_dl.fetcher import VideoRetriever
|
from svtplay_dl.fetcher import VideoRetriever
|
||||||
|
from svtplay_dl.output import output
|
||||||
|
|
||||||
class RTMP(VideoRetriever):
|
class RTMP(VideoRetriever):
|
||||||
def name(self):
|
def name(self):
|
||||||
@ -23,17 +24,10 @@ class RTMP(VideoRetriever):
|
|||||||
if self.options.resume:
|
if self.options.resume:
|
||||||
args.append("-e")
|
args.append("-e")
|
||||||
|
|
||||||
extension = re.search(r"(\.[a-z0-9]+)$", self.url)
|
fild_d = output(self.options, self.options.output, "flv", False)
|
||||||
if self.options.output != "-":
|
if fild_d is None:
|
||||||
if not extension:
|
return
|
||||||
self.options.output = "%s.flv" % self.options.output
|
args += ["-o", self.options.output]
|
||||||
else:
|
|
||||||
self.options.output = self.options.output + extension.group(1)
|
|
||||||
log.info("Outfile: %s", self.options.output)
|
|
||||||
if os.path.isfile(self.options.output) and not self.options.force:
|
|
||||||
log.info("File already exists. use --force to overwrite")
|
|
||||||
return
|
|
||||||
args += ["-o", self.options.output]
|
|
||||||
if self.options.silent or self.options.output == "-":
|
if self.options.silent or self.options.output == "-":
|
||||||
args.append("-q")
|
args.append("-q")
|
||||||
if self.options.other:
|
if self.options.other:
|
||||||
|
@ -3,9 +3,13 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
|
import re
|
||||||
|
import os
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
|
||||||
|
from svtplay_dl.utils import is_py3
|
||||||
from svtplay_dl.utils.terminal import get_terminal_size
|
from svtplay_dl.utils.terminal import get_terminal_size
|
||||||
|
from svtplay_dl.log import log
|
||||||
|
|
||||||
progress_stream = sys.stderr
|
progress_stream = sys.stderr
|
||||||
|
|
||||||
@ -108,3 +112,23 @@ def progressbar(total, pos, msg=""):
|
|||||||
|
|
||||||
progress_stream.write(fmt % (pos, total, bar, msg))
|
progress_stream.write(fmt % (pos, total, bar, msg))
|
||||||
|
|
||||||
|
def output(options, filename, extention="mp4", openfd=True):
|
||||||
|
file_d = -1
|
||||||
|
if options.output != "-":
|
||||||
|
ext = re.search(r"(\.[a-z0-9]+)$", filename)
|
||||||
|
if not ext:
|
||||||
|
options.output = "%s.%s" % (options.output, extention)
|
||||||
|
log.info("Outfile: %s", options.output)
|
||||||
|
if os.path.isfile(options.output) and not options.force:
|
||||||
|
log.info("File already exists. use --force to overwrite")
|
||||||
|
return None
|
||||||
|
if openfd:
|
||||||
|
file_d = open(options.output, "wb")
|
||||||
|
else:
|
||||||
|
if openfd:
|
||||||
|
if is_py3:
|
||||||
|
file_d = sys.stdout.buffer
|
||||||
|
else:
|
||||||
|
file_d = sys.stdout
|
||||||
|
|
||||||
|
return file_d
|
||||||
|
Loading…
Reference in New Issue
Block a user