github-actions[bot]
Automated sync from GitHub
71e71e8
Raw
History Blame Contribute Delete
7.43 kB
import resources.Environment as Env
from src.model.enums.devil_fruit.DevilFruitCategory import DevilFruitCategory
class Timer:
"""
This class is used to create a timer
"""
def __init__(
self,
name: str,
cron_expression: str,
is_active: bool,
should_log: bool,
should_run_on_startup: bool,
info: str = None,
):
"""
Initialize the timer
:param name: The name of the timer
:param cron_expression: The cron expression
:param is_active: Is the timer active
:param should_log: Should the timer log
:param should_run_on_startup: Should the timer run once on startup
"""
self.name = name
self.cron_expression = cron_expression
self.is_enabled = is_active
self.should_log = should_log
self.should_run_on_startup = should_run_on_startup
self.info = info
if self.should_run_on_startup and not self.is_enabled:
self.is_enabled = True
TIMERS: list[Timer] = []
TEMP_DIR_CLEANUP = Timer(
"temp_dir_cleanup",
Env.CRON_TEMP_DIR_CLEANUP.get(),
Env.ENABLE_TIMER_TEMP_DIR_CLEANUP.get_bool(),
Env.SHOULD_LOG_TIMER_TEMP_DIR_CLEANUP.get_bool(),
Env.SHOULD_RUN_ON_STARTUP_TEMP_DIR_CLEANUP.get_bool(),
)
TIMERS.append(TEMP_DIR_CLEANUP)
REDDIT_POST_ONE_PIECE = Timer(
"reddit_post_one_piece",
Env.CRON_REDDIT_POST_ONE_PIECE.get(),
Env.ENABLE_TIMER_REDDIT_POST_ONE_PIECE.get_bool() and Env.ENABLE_REDDIT_POSTS.get_bool(),
Env.SHOULD_LOG_TIMER_REDDIT_POST_ONE_PIECE.get_bool(),
Env.SHOULD_RUN_ON_STARTUP_REDDIT_POST_ONE_PIECE.get_bool(),
info=Env.REDDIT_ONE_PIECE_SUBREDDIT.get(),
)
TIMERS.append(REDDIT_POST_ONE_PIECE)
REDDIT_POST_MEME_PIECE = Timer(
"reddit_post_meme_piece",
Env.CRON_REDDIT_POST_MEME_PIECE.get(),
Env.ENABLE_TIMER_REDDIT_POST_MEME_PIECE.get_bool() and Env.ENABLE_REDDIT_POSTS.get_bool(),
Env.SHOULD_LOG_TIMER_REDDIT_POST_MEME_PIECE.get_bool(),
Env.SHOULD_RUN_ON_STARTUP_REDDIT_POST_MEME_PIECE.get_bool(),
info=Env.REDDIT_MEME_PIECE_SUBREDDIT.get(),
)
TIMERS.append(REDDIT_POST_MEME_PIECE)
TIMER_SEND_LEADERBOARD = Timer(
"timer_send_leaderboard",
Env.CRON_SEND_LEADERBOARD.get(),
Env.ENABLE_TIMER_SEND_LEADERBOARD.get_bool(),
Env.SHOULD_LOG_TIMER_SEND_LEADERBOARD.get_bool(),
Env.SHOULD_RUN_ON_STARTUP_SEND_LEADERBOARD.get_bool(),
)
TIMERS.append(TIMER_SEND_LEADERBOARD)
RESET_BOUNTY_POSTER_LIMIT = Timer(
"reset_bounty_poster_limit",
Env.CRON_RESET_BOUNTY_POSTER_LIMIT.get(),
Env.ENABLE_TIMER_RESET_BOUNTY_POSTER_LIMIT.get_bool(),
Env.SHOULD_LOG_TIMER_RESET_BOUNTY_POSTER_LIMIT.get_bool(),
Env.SHOULD_RUN_ON_STARTUP_RESET_BOUNTY_POSTER_LIMIT.get_bool(),
)
TIMERS.append(RESET_BOUNTY_POSTER_LIMIT)
RESET_CAN_CHANGE_REGION = Timer(
"reset_can_change_region",
Env.CRON_RESET_CAN_CHANGE_REGION.get(),
Env.ENABLE_TIMER_RESET_CAN_CHANGE_REGION.get_bool(),
Env.SHOULD_LOG_TIMER_RESET_CAN_CHANGE_REGION.get_bool(),
Env.SHOULD_RUN_ON_STARTUP_RESET_CAN_CHANGE_REGION.get_bool(),
)
TIMERS.append(RESET_CAN_CHANGE_REGION)
SEND_SCHEDULED_PREDICTIONS = Timer(
"send_scheduled_predictions",
Env.CRON_SEND_SCHEDULED_PREDICTIONS.get(),
Env.ENABLE_TIMER_SEND_SCHEDULED_PREDICTIONS.get_bool(),
Env.SHOULD_LOG_TIMER_SEND_SCHEDULED_PREDICTIONS.get_bool(),
Env.SHOULD_RUN_ON_STARTUP_SEND_SCHEDULED_PREDICTIONS.get_bool(),
)
TIMERS.append(SEND_SCHEDULED_PREDICTIONS)
CLOSE_SCHEDULED_PREDICTIONS = Timer(
"close_scheduled_predictions",
Env.CRON_CLOSE_SCHEDULED_PREDICTIONS.get(),
Env.ENABLE_TIMER_CLOSE_SCHEDULED_PREDICTIONS.get_bool(),
Env.SHOULD_LOG_TIMER_CLOSE_SCHEDULED_PREDICTIONS.get_bool(),
Env.SHOULD_RUN_ON_STARTUP_CLOSE_SCHEDULED_PREDICTIONS.get_bool(),
)
TIMERS.append(CLOSE_SCHEDULED_PREDICTIONS)
REFRESH_ACTIVE_PREDICTIONS_GROUP_MESSAGE = Timer(
"refresh_active_predictions_group_message",
Env.CRON_REFRESH_ACTIVE_PREDICTIONS_GROUP_MESSAGE.get(),
Env.ENABLE_TIMER_REFRESH_ACTIVE_PREDICTIONS_GROUP_MESSAGE.get_bool(),
Env.SHOULD_LOG_TIMER_REFRESH_ACTIVE_PREDICTIONS_GROUP_MESSAGE.get_bool(),
Env.SHOULD_RUN_ON_STARTUP_REFRESH_ACTIVE_PREDICTIONS_GROUP_MESSAGE.get_bool(),
)
TIMERS.append(REFRESH_ACTIVE_PREDICTIONS_GROUP_MESSAGE)
SCHEDULE_DEVIL_FRUIT_ZOAN_RELEASE = Timer(
"schedule_devil_fruit_zoan_release",
Env.CRON_SCHEDULE_DEVIL_FRUIT_ZOAN_RELEASE.get(),
Env.ENABLE_TIMER_SCHEDULE_DEVIL_FRUIT_ZOAN_RELEASE.get_bool(),
Env.SHOULD_LOG_TIMER_SCHEDULE_DEVIL_FRUIT_ZOAN_RELEASE.get_bool(),
Env.SHOULD_RUN_ON_STARTUP_SCHEDULE_DEVIL_FRUIT_ZOAN_RELEASE.get_bool(),
info=str(DevilFruitCategory.ZOAN),
)
TIMERS.append(SCHEDULE_DEVIL_FRUIT_ZOAN_RELEASE)
RESPAWN_DEVIL_FRUIT = Timer(
"respawn_devil_fruit",
Env.CRON_RESPAWN_DEVIL_FRUIT.get(),
Env.ENABLE_TIMER_RESPAWN_DEVIL_FRUIT.get_bool(),
Env.SHOULD_LOG_TIMER_RESPAWN_DEVIL_FRUIT.get_bool(),
Env.SHOULD_RUN_ON_STARTUP_RESPAWN_DEVIL_FRUIT.get_bool(),
)
TIMERS.append(RESPAWN_DEVIL_FRUIT)
DEACTIVATE_INACTIVE_GROUP_CHATS = Timer(
"deactivate_inactive_group_chats",
Env.CRON_DEACTIVATE_INACTIVE_GROUP_CHATS.get(),
Env.ENABLE_TIMER_DEACTIVATE_INACTIVE_GROUP_CHATS.get_bool(),
Env.SHOULD_LOG_TIMER_DEACTIVATE_INACTIVE_GROUP_CHATS.get_bool(),
Env.SHOULD_RUN_ON_STARTUP_DEACTIVATE_INACTIVE_GROUP_CHATS.get_bool(),
)
TIMERS.append(DEACTIVATE_INACTIVE_GROUP_CHATS)
# End inactive games
END_INACTIVE_GAMES = Timer(
"end_inactive_games",
Env.CRON_END_INACTIVE_GAMES.get(),
Env.ENABLE_TIMER_END_INACTIVE_GAMES.get_bool(),
Env.SHOULD_LOG_TIMER_END_INACTIVE_GAMES.get_bool(),
Env.SHOULD_RUN_ON_STARTUP_END_INACTIVE_GAMES.get_bool(),
)
TIMERS.append(END_INACTIVE_GAMES)
# Set expired bounty loans
SET_EXPIRED_BOUNTY_LOANS = Timer(
"set_expired_bounty_loans",
Env.CRON_SET_EXPIRED_BOUNTY_LOANS.get(),
Env.ENABLE_TIMER_SET_EXPIRED_BOUNTY_LOANS.get_bool(),
Env.SHOULD_LOG_TIMER_SET_EXPIRED_BOUNTY_LOANS.get_bool(),
Env.SHOULD_RUN_ON_STARTUP_SET_EXPIRED_BOUNTY_LOANS.get_bool(),
)
TIMERS.append(SET_EXPIRED_BOUNTY_LOANS)
# Minute tasks
MINUTE_TASKS = Timer(
"minute_tasks",
Env.CRON_MINUTE_TASKS.get(),
Env.ENABLE_TIMER_MINUTE_TASKS.get_bool(),
Env.SHOULD_LOG_TIMER_MINUTE_TASKS.get_bool(),
Env.SHOULD_RUN_ON_STARTUP_MINUTE_TASKS.get_bool(),
)
TIMERS.append(MINUTE_TASKS)
# Daily Reward
DAILY_REWARD = Timer(
"daily_reward",
Env.CRON_DAILY_REWARD.get(),
Env.ENABLE_TIMER_DAILY_REWARD.get_bool(),
Env.SHOULD_LOG_TIMER_DAILY_REWARD.get_bool(),
Env.SHOULD_RUN_ON_STARTUP_DAILY_REWARD.get_bool(),
)
TIMERS.append(DAILY_REWARD)
# Fight and plunder scout count decrease
FIGHT_PLUNDER_SCOUT_COUNT_DECREASE = Timer(
"FIGHT_PLUNDER_SCOUT_COUNT_DECREASE",
Env.CRON_FIGHT_PLUNDER_SCOUT_COUNT_DECREASE.get(),
Env.ENABLE_TIMER_FIGHT_PLUNDER_SCOUT_COUNT_DECREASE.get_bool(),
Env.SHOULD_LOG_TIMER_FIGHT_PLUNDER_SCOUT_COUNT_DECREASE.get_bool(),
Env.SHOULD_RUN_ON_STARTUP_FIGHT_PLUNDER_SCOUT_COUNT_DECREASE.get_bool(),
)
TIMERS.append(FIGHT_PLUNDER_SCOUT_COUNT_DECREASE)
SYNC_ADMIN_USERS = Timer(
"sync_admin_users",
Env.CRON_SYNC_ADMIN_USERS.get(),
Env.ENABLE_TIMER_SYNC_ADMIN_USERS.get_bool(),
Env.SHOULD_LOG_TIMER_SYNC_ADMIN_USERS.get_bool(),
Env.SHOULD_RUN_ON_STARTUP_SYNC_ADMIN_USERS.get_bool(),
)
TIMERS.append(SYNC_ADMIN_USERS)