-sa to gallery/comic
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
"""fzf-based selectors for comic and gallery links."""
|
"""fzf-based selectors for comic and gallery links."""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import argparse
|
||||||
import re
|
import re
|
||||||
import subprocess
|
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()]
|
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:
|
if not selected:
|
||||||
return
|
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:
|
def comic_main() -> None:
|
||||||
|
args = _parse_args()
|
||||||
|
extra_args = _extra_args_from_flags(args)
|
||||||
with db.connect() as conn:
|
with db.connect() as conn:
|
||||||
rows = db.get_links(conn, users=[USER], include_disabled=False, include_banned=False)
|
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"])]
|
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:
|
def gallery_main() -> None:
|
||||||
|
args = _parse_args()
|
||||||
|
extra_args = _extra_args_from_flags(args)
|
||||||
with db.connect() as conn:
|
with db.connect() as conn:
|
||||||
rows = db.get_links(conn, users=[USER], include_disabled=False, include_banned=False)
|
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"])]
|
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__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
Reference in New Issue
Block a user