diff --git a/daily_word_bot/app.py b/daily_word_bot/app.py index ccc4f30..01a7e29 100644 --- a/daily_word_bot/app.py +++ b/daily_word_bot/app.py @@ -319,6 +319,10 @@ def send_user_word(self, user: dict): # pragma: no cover self.send_message_to_user(user, msg, reply_markup=reply_markup) + def callback_chrono_backup(self, context: CallbackContext): # pragma: no cover + self.backup_service.backup() + logger.info("Backed up!") + def send_message_to_admins(self, msg: str): # pragma: no cover for chat_id in config.ADMIN_CHAT_IDS: self.updater.bot.send_message(chat_id=chat_id, text=msg, parse_mode='HTML') @@ -372,6 +376,12 @@ def run(self): # pragma: no cover # second="10,20,30,40,50,0" # test )) + # daily backup + self.updater.job_queue.run_custom(self.callback_chrono_backup, job_kwargs=dict( + trigger="cron", + hour="22" + )) + # Bot conversation flow logic broadcast_handler = ConversationHandler( entry_points=[ diff --git a/daily_word_bot/config.py b/daily_word_bot/config.py index d15ac01..c32bd87 100644 --- a/daily_word_bot/config.py +++ b/daily_word_bot/config.py @@ -10,6 +10,9 @@ "REDIS_HOST", "WORD_BANK_LOCAL", "VERSION", + "BACKUP_FILE_PATH_IN", + "BACKUP_FOLDER_ID_OUT", + "BACKUP_FILE_ID_OUT" ]) live_config = Config( @@ -17,7 +20,10 @@ BOT_TOKEN=os.getenv("BOT_TOKEN"), REDIS_HOST="redis", WORD_BANK_LOCAL=False, - VERSION=os.getenv("VERSION") + VERSION=os.getenv("VERSION"), + BACKUP_FILE_PATH_IN=os.getenv("BACKUP_FILE_PATH_IN"), + BACKUP_FOLDER_ID_OUT=os.getenv("BACKUP_FOLDER_ID_OUT"), + BACKUP_FILE_ID_OUT=os.getenv("BACKUP_FILE_ID_OUT") ) test_config = Config( @@ -25,7 +31,10 @@ BOT_TOKEN=os.getenv("TEST_BOT_TOKEN"), REDIS_HOST="localhost", WORD_BANK_LOCAL=strtobool(os.getenv("WORD_BANK_LOCAL") or "true"), - VERSION="aVersion" + VERSION="aVersion", + BACKUP_FILE_PATH_IN=os.getenv("BACKUP_FILE_PATH_IN"), + BACKUP_FOLDER_ID_OUT=os.getenv("BACKUP_FOLDER_ID_OUT"), + BACKUP_FILE_ID_OUT=os.getenv("BACKUP_FILE_ID_OUT") ) config = live_config if (os.getenv("ENV") or "").lower() == "live" else test_config