Newer
Older
thu-learn-downloader-optimized / main.py
@Qin Li Qin Li on 17 Sep 2022 1006 bytes feat: use `hydra` instead of `argparse`
import hydra
import omegaconf
import tqdm

from downloader import Downloader


@hydra.main(config_path=".", config_name="identity.yaml", version_base="1.2")
def main(cfg: omegaconf.DictConfig):
    downloader = Downloader(
        username=cfg["username"],
        password=cfg["password"],
        prefix=cfg["prefix"],
        file_size_limit=cfg["file_size_limit"],
        sync_docs=cfg["sync_docs"],
        sync_work=cfg["sync_work"],
        sync_submit=cfg["sync_submit"],
    )
    semester_id_list: list[str] = downloader.helper.get_semester_id_list()
    semesters: list[str] = cfg["semesters"] if cfg["semesters"] else semester_id_list
    for semester in tqdm.tqdm(
        iterable=semesters,
        desc="semesters",
        leave=False,
        dynamic_ncols=True,
        position=0,
    ):
        if semester in semester_id_list:
            downloader.sync_semester(semester_id=semester)
        else:
            print(f"{semester} not found")


if __name__ == "__main__":
    main()