migrate os.run to subprocess
This commit is contained in:
@@ -10,11 +10,11 @@ Also following in line more posix and python rules.
|
||||
"""
|
||||
|
||||
import re
|
||||
from pathlib import Path
|
||||
import yaml
|
||||
from typing import Dict
|
||||
from functions import LOG
|
||||
from functions import run
|
||||
from functions import quote
|
||||
from functions import list_lines
|
||||
from functions import load_config_variables
|
||||
from functions import parse_link
|
||||
@@ -57,40 +57,55 @@ def parse_gallery(gdl_list: str, user: User) -> None:
|
||||
gallery.run_command(ARGS.flag_verbose)
|
||||
|
||||
|
||||
def parse_instagram(link: str) -> str:
|
||||
def parse_instagram(link: str) -> list[str]:
|
||||
"""Fix instagram links"""
|
||||
if "instagram" not in link:
|
||||
return ""
|
||||
return []
|
||||
if isinstance(ARGS.post_type, list):
|
||||
return f" -o include={quote(','.join(ARGS.post_type))}"
|
||||
return f" -o include={quote(ARGS.post_type)}"
|
||||
return ["-o", f"include={','.join(ARGS.post_type)}"]
|
||||
return ["-o", f"include={ARGS.post_type}"]
|
||||
|
||||
|
||||
def video_command(video: Video) -> str:
|
||||
def video_command(video: Video):
|
||||
"""Filters and processes the required command to download videos"""
|
||||
command = "yt-dlp"
|
||||
command = ["yt-dlp"]
|
||||
rgx_yt = re.compile(r"(https:\/\/youtube|https:\/\/www.youtube|https:\/\/youtu.be)")
|
||||
rgx_music = re.compile(r"(https:\/\/music.youtube.*)")
|
||||
|
||||
if re.search(r"chaturbate", video.link):
|
||||
return f"stream-dl {video.link.rstrip("/").split("/")[-1]}"
|
||||
return ["stream-dl", video.link.rstrip("/").split("/")[-1]]
|
||||
|
||||
if rgx_yt.search(video.link):
|
||||
command += " --embed-subs --embed-thumbnail"
|
||||
command += " --embed-metadata --embed-chapters"
|
||||
command += f" -o {quote(video.dest + '/%(title)s.%(ext)s')}"
|
||||
command += [
|
||||
"--embed-subs",
|
||||
"--embed-thumbnail",
|
||||
"--embed-metadata",
|
||||
"--embed-chapters",
|
||||
"-o",
|
||||
f"{video.dest}/%(title)s.%(ext)s",
|
||||
]
|
||||
|
||||
elif rgx_music.search(video.link):
|
||||
command += f" --download-archive {video.database}" if video.use_archive else ""
|
||||
command += " --no-playlist --newline -x"
|
||||
command += " --audio-format best --add-metadata --audio-quality 0 -o"
|
||||
command += f" {quote(video.dest + '/%(title)s.%(ext)s')}"
|
||||
if video.use_archive:
|
||||
command += ["--download-archive", video.database]
|
||||
command += [
|
||||
"--no-playlist",
|
||||
"--newline",
|
||||
"-x",
|
||||
"--audio-format",
|
||||
"best",
|
||||
"--add-metadata",
|
||||
"--audio-quality",
|
||||
"0",
|
||||
"-o",
|
||||
f"{video.dest}/%(title)s.%(ext)s",
|
||||
]
|
||||
|
||||
else: # Any other video link, just do it generic
|
||||
command += f" -f mp4 -o {quote(video.dest + '/%(title)s.%(ext)s')}"
|
||||
command += ["-f", "mp4", "-o", f"{video.dest}/%(title)s.%(ext)s"]
|
||||
|
||||
LOG.info("%s %s", command, video.link)
|
||||
return f"{command} {quote(video.link)}"
|
||||
LOG.info("%s %s", " ".join(command), video.link)
|
||||
return command + [video.link]
|
||||
|
||||
|
||||
def comic_manager(skip_arg: str, category: str) -> None:
|
||||
@@ -133,15 +148,19 @@ def webcomic_manager():
|
||||
|
||||
LOG.info("The webcomic is %s", dest)
|
||||
|
||||
command = f"cd {quote(dest)} && webcomix custom"
|
||||
command += f" {quote(name)}"
|
||||
command += " --start-url"
|
||||
command += f" {quote(link)}"
|
||||
command += f" --next-page-xpath={quote(nxt_code)}"
|
||||
command += f" --image-xpath={quote(img_code)}"
|
||||
command += " -y --cbz"
|
||||
command = [
|
||||
"webcomix",
|
||||
"custom",
|
||||
name,
|
||||
"--start-url",
|
||||
link,
|
||||
f"--next-page-xpath={nxt_code}",
|
||||
f"--image-xpath={img_code}",
|
||||
"-y",
|
||||
"--cbz",
|
||||
]
|
||||
|
||||
run(command, ARGS.flag_verbose)
|
||||
run(command, ARGS.flag_verbose, cwd=Path(dest))
|
||||
|
||||
|
||||
def save_comic(link: str) -> None:
|
||||
@@ -231,8 +250,8 @@ def push_manager(user: User):
|
||||
video = Video()
|
||||
video.use_archive = ARGS.flag_archive
|
||||
video.link = link
|
||||
video.dest = f"{user.directories['media']}"
|
||||
video.database = quote(f"{user.dbs['media']}")
|
||||
video.dest = str(user.directories["media"])
|
||||
video.database = str(user.dbs["media"])
|
||||
run(video_command(video), ARGS.flag_verbose)
|
||||
|
||||
for link in links_other:
|
||||
|
||||
Reference in New Issue
Block a user