-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmain.py
More file actions
46 lines (34 loc) · 1.41 KB
/
Copy pathmain.py
File metadata and controls
46 lines (34 loc) · 1.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
from __future__ import annotations
import click
from loguru import logger
from autoimplications.database import update_database
from autoimplications.exceptions import TooManyBursError
from autoimplications.series import Series
logger = logger.opt(colors=True)
@click.command()
@click.option("-s", "--series", nargs=1)
@click.option("-m", "--max-lines-per-bur", nargs=1, default=1, type=click.IntRange(1, 100))
@click.option("-p", "--post_to_danbooru", is_flag=True, default=False)
@click.option("-g", "--grep", nargs=1)
def main(series: str | None = None,
max_lines_per_bur: int = 1,
post_to_danbooru: bool = False,
grep: str | None = None) -> None:
update_database()
if series:
logger.info(f"<r>Running only for series {series}.</r>")
found = False
for config_series in Series.from_config(grep=grep):
if series and not config_series.matches(series):
continue
if series:
config_series.autopost = post_to_danbooru
try:
config_series.scan_and_post(max_lines_per_bur=max_lines_per_bur)
except TooManyBursError:
logger.error(f"Too many BURs for '{config_series.name}' in {config_series.topic_url}. Stopping now. Go approve some!") # noqa: TRY400
found = True
if series and not found:
raise ValueError(f"Series '{series}' not found in config.")
if __name__ == "__main__":
main()