Example #1
0
def handle_tags(caller, job, job_name, job_option):
    if "tags" in job and len(job["tags"]) > 0:
        tags = job["tags"]
    else:
        print(f"No tags found or empty tags in {job_name}!")

    start_page = 1
    if "start_page" in job:
        start_page = int(job["start_page"])
    end_page = 0
    if "end_page" in job:
        end_page = int(job["end_page"])
    wild_card = True
    if "wild_card" in job:
        wild_card = bool(job["wild_card"])
    title_caption = False
    if "title_caption" in job:
        title_caption = bool(job["title_caption"])
    start_date = None
    if "start_date" in job and len(job["start_date"]) == 10:
        try:
            start_date = PixivHelper.check_date_time(job["start_date"])
        except BaseException:
            raise Exception(f"Invalid start_date: {job['start_date']} in {job_name}.")
    end_date = None
    if "end_date" in job and len(job["end_date"]) == 10:
        try:
            end_date = PixivHelper.check_date_time(job["end_date"])
        except BaseException:
            raise Exception(f"Invalid end_date: {job['end_date']} in {job_name}.")
    member_id = None
    if "member_id" in job:
        member_id = job["member_id"]
    bookmark_count = None
    if "bookmark_count" in job:
        bookmark_count = int(job["bookmark_count"])
    oldest_first = False
    if "oldest_first" in job:
        oldest_first = bool(job["oldest_first"])
    type_mode = "a"
    if "type_mode" in job:
        if job["type_mode"] in {'a', 'i', 'm'}:
            type_mode = job["type_mode"]
        else:
            raise Exception(f"Invalid type_mode: {job['type_mode']} in {job_name}.")

    PixivTagsHandler.process_tags(caller,
                                  tags,
                                  page=start_page,
                                  end_page=end_page,
                                  wild_card=wild_card,
                                  title_caption=title_caption,
                                  start_date=start_date,
                                  end_date=end_date,
                                  use_tags_as_dir=job_option.useTagsAsDir,
                                  member_id=member_id,
                                  bookmark_count=bookmark_count,
                                  oldest_first=oldest_first,
                                  type_mode=type_mode,
                                  job_option=job_option)
Example #2
0
def handle_tags(caller: PixivUtil2, job, job_name, job_option):
    tags = None
    if "tags" in job and len(job["tags"]) > 0:
        tags = job["tags"]
    else:
        print(f"No tags found or empty tags in {job_name}!")
        return

    start_page = 1
    if "start_page" in job:
        start_page = int(job["start_page"])
    end_page = 0
    if "end_page" in job:
        end_page = int(job["end_page"])
    wild_card = True
    if "wild_card" in job:
        wild_card = bool(job["wild_card"])
    title_caption = False
    if "title_caption" in job:
        title_caption = bool(job["title_caption"])
    start_date = None
    if "start_date" in job and len(job["start_date"]) == 10:
        try:
            start_date = PixivHelper.check_date_time(job["start_date"])
        except BaseException:
            raise Exception(
                f"Invalid start_date: {job['start_date']} in {job_name}.")
    end_date = None
    if "end_date" in job and len(job["end_date"]) == 10:
        try:
            end_date = PixivHelper.check_date_time(job["end_date"])
        except BaseException:
            raise Exception(
                f"Invalid end_date: {job['end_date']} in {job_name}.")
    member_id = None
    if "member_id" in job:
        member_id = job["member_id"]
    bookmark_count = None
    if "bookmark_count" in job:
        bookmark_count = int(job["bookmark_count"])

    sort_order = 'date_d'  # default is newest work first.
    if "oldest_first" in job:
        sort_order = 'date' if bool(job["oldest_first"]) else 'date_d'

    if "sort_order" in job and caller.__br__._isPremium:
        if job["sort_order"] in ('date_d', 'date', 'popular_d',
                                 'popular_male_d', 'popular_female_d'):
            sort_order = job["sort_order"]
        else:
            raise Exception(
                f"Invalid sort_order: {job['sort_order']} in {job_name}.")

    type_mode = "a"
    if "type_mode" in job:
        if job["type_mode"] in {'a', 'i', 'm'}:
            type_mode = job["type_mode"]
        else:
            raise Exception(
                f"Invalid type_mode: {job['type_mode']} in {job_name}.")

    PixivTagsHandler.process_tags(
        caller,
        job_option.config,
        tags,
        page=start_page,
        end_page=end_page,
        wild_card=wild_card,
        title_caption=title_caption,
        start_date=start_date,
        end_date=end_date,
        use_tags_as_dir=job_option.config.useTagsAsDir,
        member_id=member_id,
        bookmark_count=bookmark_count,
        sort_order=sort_order,
        type_mode=type_mode)