-sa to gallery/comic
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
"""fzf-based selectors for comic and gallery links."""
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import re
|
||||
import subprocess
|
||||
|
||||
@@ -27,24 +28,44 @@ def _select_links(urls: list[str]) -> list[str]:
|
||||
return [ln for ln in proc.stdout.splitlines() if ln.strip()]
|
||||
|
||||
|
||||
def _run_download(selected: list[str]) -> None:
|
||||
def _run_download(selected: list[str], extra_args: list[str]) -> None:
|
||||
if not selected:
|
||||
return
|
||||
subprocess.run(["download", "-u", USER, "-i", *selected], check=False)
|
||||
subprocess.run(["download", "-u", USER, *extra_args, "-i", *selected], check=False)
|
||||
|
||||
|
||||
def _parse_args() -> argparse.Namespace:
|
||||
parser = argparse.ArgumentParser(add_help=False)
|
||||
parser.add_argument("-s", "--no_skip", dest="flag_skip", action="store_false")
|
||||
parser.add_argument("-a", "--no-archive", dest="flag_archive", action="store_false")
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def _extra_args_from_flags(args: argparse.Namespace) -> list[str]:
|
||||
extra = []
|
||||
if args.flag_skip is False:
|
||||
extra.append("-s")
|
||||
if args.flag_archive is False:
|
||||
extra.append("-a")
|
||||
return extra
|
||||
|
||||
|
||||
def comic_main() -> None:
|
||||
args = _parse_args()
|
||||
extra_args = _extra_args_from_flags(args)
|
||||
with db.connect() as conn:
|
||||
rows = db.get_links(conn, users=[USER], include_disabled=False, include_banned=False)
|
||||
urls = [row["url_original"] for row in rows if RGX_COMIC.search(row["url_original"])]
|
||||
_run_download(_select_links(urls))
|
||||
_run_download(_select_links(urls), extra_args)
|
||||
|
||||
|
||||
def gallery_main() -> None:
|
||||
args = _parse_args()
|
||||
extra_args = _extra_args_from_flags(args)
|
||||
with db.connect() as conn:
|
||||
rows = db.get_links(conn, users=[USER], include_disabled=False, include_banned=False)
|
||||
urls = [row["url_original"] for row in rows if not RGX_COMIC.search(row["url_original"])]
|
||||
_run_download(_select_links(urls))
|
||||
_run_download(_select_links(urls), extra_args)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user