diff --git a/meme_generator/memes/crawl/__init__.py b/meme_generator/memes/crawl/__init__.py index 1fc13165..b04534c3 100644 --- a/meme_generator/memes/crawl/__init__.py +++ b/meme_generator/memes/crawl/__init__.py @@ -12,6 +12,7 @@ ParserOption, add_meme, ) +from meme_generator.exception import MemeFeedback img_dir = Path(__file__).parent / "images" @@ -37,10 +38,12 @@ class Model(MemeArgsModel): def crawl(images: list[BuildImage], texts: list[str], args: Model): total_num = 92 - if 1 <= args.number <= total_num: + if args.number == 0: + num = random.randint(1, total_num) + elif 1 <= args.number <= total_num: num = args.number else: - num = random.randint(1, total_num) + raise MemeFeedback(f"图片编号错误,请选择 1~{total_num}") img = images[0].convert("RGBA").circle().resize((100, 100)) frame = BuildImage.open(img_dir / f"{num:02d}.jpg") diff --git a/meme_generator/memes/firefly_holdsign/__init__.py b/meme_generator/memes/firefly_holdsign/__init__.py index dfdcc9b8..219719dd 100644 --- a/meme_generator/memes/firefly_holdsign/__init__.py +++ b/meme_generator/memes/firefly_holdsign/__init__.py @@ -12,7 +12,7 @@ ParserOption, add_meme, ) -from meme_generator.exception import TextOverLength +from meme_generator.exception import MemeFeedback, TextOverLength from meme_generator.tags import MemeTags img_dir = Path(__file__).parent / "images" @@ -40,10 +40,12 @@ class Model(MemeArgsModel): def firefly_holdsign(images, texts: list[str], args: Model): text = texts[0] total_num = 21 - if 1 <= args.number <= total_num: + if args.number == 0: + num = random.randint(1, total_num) + elif 1 <= args.number <= total_num: num = args.number else: - num = random.randint(1, total_num) + raise MemeFeedback(f"图片编号错误,请选择 1~{total_num}") params = [ ((300, 200), (144, 322), ((0, 66), (276, 0), (319, 178), (43, 244))), diff --git a/meme_generator/memes/look_flat/__init__.py b/meme_generator/memes/look_flat/__init__.py index 3e85321c..2e7812b0 100644 --- a/meme_generator/memes/look_flat/__init__.py +++ b/meme_generator/memes/look_flat/__init__.py @@ -10,7 +10,7 @@ ParserOption, add_meme, ) -from meme_generator.exception import TextOverLength +from meme_generator.exception import MemeFeedback, TextOverLength from meme_generator.utils import make_jpg_or_gif help_text = "图片“压扁”比例,默认为 2" @@ -37,6 +37,8 @@ class Model(MemeArgsModel): def look_flat(images: list[BuildImage], texts: list[str], args: Model): text = texts[0] if texts else default_text ratio = args.ratio + if not 1 <= ratio < images[0].height: + raise MemeFeedback("请输入合适的“压扁”比例") img_w = 500 text_h = 80