| 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 = 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 = 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 = 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 = 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_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) |
|
|