teamtalkbot/bot/utils.py
Umiko f331b10358
Some checks are pending
Build-nightly / docker (push) Waiting to run
first commit.
2025-04-13 14:44:48 +07:00

29 lines
857 B
Python

import os
from typing import List, Tuple
from crontab import CronTab
from bot import app_vars
from bot.config.models import CronEntryModel
def clean_file_name(file_name: str) -> str:
for char in ["\\", "/", "%", "*", "?", ":", '"', "|"] + [
chr(i) for i in range(1, 32)
]:
file_name = file_name.replace(char, "_")
file_name = file_name.strip()
return file_name
def get_abs_path(file_name: str) -> str:
return os.path.join(app_vars.directory, file_name)
def sort_cron_tasks(
tasks: List[Tuple[CronTab, CronEntryModel]]
) -> List[CronEntryModel]:
"""Given a list of CronTask instances, return the same list, sorted by ascending next run time."""
# sort by item[0].next(), a function on CronTab instance
sorted_tasks = sorted(tasks, key=lambda t: t[0].next(default_utc=False))
return sorted_tasks