[scripts/generate_result] use 'pyprint'
This commit is contained in:
@@ -12,6 +12,8 @@
|
|||||||
import logging
|
import logging
|
||||||
import argparse
|
import argparse
|
||||||
import util
|
import util
|
||||||
|
from pyprint import pyprint
|
||||||
|
from gallery_dl import extractor
|
||||||
|
|
||||||
LOG = logging.getLogger("gen-test")
|
LOG = logging.getLogger("gen-test")
|
||||||
|
|
||||||
@@ -24,58 +26,37 @@ def module_name(opts):
|
|||||||
|
|
||||||
|
|
||||||
def generate_test_result(args):
|
def generate_test_result(args):
|
||||||
|
head = generate_head(args)
|
||||||
|
opts = generate_opts(args)
|
||||||
|
meta = generate_meta(args)
|
||||||
|
|
||||||
|
result = pyprint(head)
|
||||||
|
if opts:
|
||||||
|
result = result[:-2] + pyprint(opts)[1:]
|
||||||
|
if meta:
|
||||||
|
result = result[:-1] + pyprint(meta)[1:]
|
||||||
|
return result + ",\n\n"
|
||||||
|
|
||||||
|
|
||||||
|
def generate_head(args):
|
||||||
cls = args.cls
|
cls = args.cls
|
||||||
extr = args.extr
|
|
||||||
|
|
||||||
|
head = {"#url": args.extr.url}
|
||||||
if args.comment is not None:
|
if args.comment is not None:
|
||||||
comment = args.comment if isinstance(args.comment, str) else ""
|
head["#comment"] = args.comment
|
||||||
comment = (
|
if args.base or args.cat != cls.category or args.sub != cls.subcategory:
|
||||||
f' "#comment": "{comment}",\n')
|
head["#category"] = (args.base, args.cat, args.sub)
|
||||||
else:
|
head["#class"] = args.cls
|
||||||
comment = ""
|
|
||||||
|
|
||||||
if (args.base or args.cat != cls.category or args.sub != cls.subcategory):
|
return head
|
||||||
categories = (
|
|
||||||
f' "#category": ("{args.base}", "{args.cat}", "{args.sub}"),\n')
|
|
||||||
else:
|
|
||||||
categories = ""
|
|
||||||
|
|
||||||
extr_name = args.cls.__name__
|
|
||||||
module_name = args.extr.__module__.rpartition(".")[2]
|
|
||||||
|
|
||||||
head = f"""
|
|
||||||
{{
|
|
||||||
"#url" : "{extr.url}",
|
|
||||||
{comment}\
|
|
||||||
{categories}\
|
|
||||||
"#class" : {module_name}.{extr_name},
|
|
||||||
"""
|
|
||||||
|
|
||||||
tail = """\
|
|
||||||
},
|
|
||||||
"""
|
|
||||||
|
|
||||||
from gallery_dl.extractor import common
|
|
||||||
|
|
||||||
if isinstance(extr, common.GalleryExtractor):
|
|
||||||
body = """
|
|
||||||
"#pattern" : r"",
|
|
||||||
"#count" : 123,
|
|
||||||
"""
|
|
||||||
elif isinstance(extr, common.MangaExtractor):
|
|
||||||
extr_name = extr_name.replace("MangaEx", "ChapterEx")
|
|
||||||
body = f"""
|
|
||||||
"#pattern" : {module_name}.{extr_name}.pattern,
|
|
||||||
"#count" : 123,
|
|
||||||
"""
|
|
||||||
else:
|
|
||||||
body = ""
|
|
||||||
|
|
||||||
return f"{head}{body}{tail}"
|
|
||||||
|
|
||||||
|
|
||||||
def collect_extractor_results(extr):
|
def generate_opts(args):
|
||||||
return ()
|
return {}
|
||||||
|
|
||||||
|
|
||||||
|
def generate_meta(args):
|
||||||
|
return {}
|
||||||
|
|
||||||
|
|
||||||
def insert_test_result(args, result, lines):
|
def insert_test_result(args, result, lines):
|
||||||
@@ -96,15 +77,18 @@ def insert_test_result(args, result, lines):
|
|||||||
break
|
break
|
||||||
|
|
||||||
if idx_block is None or flag is not None:
|
if idx_block is None or flag is not None:
|
||||||
lines.insert(-2, result)
|
lines.insert(-1, result)
|
||||||
else:
|
else:
|
||||||
lines.insert(idx_block-1, result)
|
lines.insert(idx_block, result)
|
||||||
|
|
||||||
|
|
||||||
def parse_args(args=None):
|
def parse_args(args=None):
|
||||||
parser = argparse.ArgumentParser(args)
|
parser = argparse.ArgumentParser(args)
|
||||||
parser.add_argument("-c", "--comment", default=None)
|
parser.add_argument("-c", "--comment", default=None)
|
||||||
parser.add_argument("-C", dest="comment", action="store_const", const="")
|
parser.add_argument("-C", dest="comment", action="store_const", const="")
|
||||||
|
parser.add_argument("-l", "--limit_urls", type=int, default=10)
|
||||||
|
parser.add_argument("-m", "--metadata", action="store_true")
|
||||||
|
parser.add_argument("-o", "--only-matching", action="store_true")
|
||||||
parser.add_argument("URL")
|
parser.add_argument("URL")
|
||||||
|
|
||||||
return parser.parse_args()
|
return parser.parse_args()
|
||||||
@@ -114,8 +98,7 @@ def main():
|
|||||||
args = parse_args()
|
args = parse_args()
|
||||||
args.url = args.URL
|
args.url = args.URL
|
||||||
|
|
||||||
from gallery_dl.extractor import find
|
extr = extractor.find(args.url)
|
||||||
extr = find(args.url)
|
|
||||||
if extr is None:
|
if extr is None:
|
||||||
LOG.error("Unsupported URL '%s'", args.url)
|
LOG.error("Unsupported URL '%s'", args.url)
|
||||||
raise SystemExit(1)
|
raise SystemExit(1)
|
||||||
|
|||||||
Reference in New Issue
Block a user