diff --git a/pyproject.toml b/pyproject.toml index 52633e0..6cc68b3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,6 +18,10 @@ packages = [ { include = "ut_course_catalog", from = "src" }, ] +[tool.poetry.scripts] +ut-course-catalog = "ut_course_catalog.cli:cli" +utcc = "ut_course_catalog.cli:cli" + [tool.poetry.urls] "Bug Tracker" = "https://github.com/34j/ut-course-catalog/issues" "Changelog" = "https://github.com/34j/ut-course-catalog/blob/main/CHANGELOG.md" diff --git a/src/ut_course_catalog/__main__.py b/src/ut_course_catalog/__main__.py index 5dbdb4c..98dcca0 100644 --- a/src/ut_course_catalog/__main__.py +++ b/src/ut_course_catalog/__main__.py @@ -1,15 +1,4 @@ -"""Console script for ut_course_catalog.""" -import sys - -import click - - -@click.command() -def main(args=None): - """Console script for ut_course_catalog.""" - raise NotImplementedError("This is a stub.") - return -1 - +from .cli import cli if __name__ == "__main__": - sys.exit(main()) # pragma: no cover + cli() diff --git a/src/ut_course_catalog/cli.py b/src/ut_course_catalog/cli.py new file mode 100644 index 0000000..c4ce8b7 --- /dev/null +++ b/src/ut_course_catalog/cli.py @@ -0,0 +1,29 @@ +"""Console script for ut_course_catalog.""" +import asyncio +from datetime import datetime, timedelta + +import click + +import ut_course_catalog.ja as utcc + + +@click.command() +@click.option( + "-m", + "--min-interval", + default=0.5, + help="Minimum interval between calls in seconds.", +) +def cli(min_interval: float) -> None: + asyncio.run(_main(min_interval)) + + +async def _main(min_interval: float) -> None: + params = utcc.SearchParams() + async with utcc.UTCourseCatalog( + min_interval=timedelta(seconds=min_interval) + ) as catalog: + t = datetime.now().strftime("%Y%m%d%H%M%S") + await catalog.fetch_and_save_search_detail_all_pandas( + params, filename=f"All_{t}.pkl" + )