#!/usr/bin/env python from telegram.ext import Application, CallbackQueryHandler, CommandHandler, MessageHandler, filters, ConversationHandler import logging from callback import callback_skip_media, callback_location_sharing, callback_manual_location, \ callback_location_confirmation, callback_location_keyword_search, callback_skip_location_keyword, \ callback_add_comment, callback_skip_comment, callback_add_media from config import WAIT_LOCATION, LOCATION_SEARCH_KEYWORD, LOCATION_CONFIRMATION, ADD_MEDIA, ADD_COMMENT, BOT_TOKEN from command import start_command, cancel_command, help_command logging.basicConfig( format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", level=logging.INFO ) logger = logging.getLogger(__name__) def main() -> None: application = Application.builder().token(BOT_TOKEN).build() checkin_handler = ConversationHandler( entry_points=[ CommandHandler("start", start_command), MessageHandler(filters.LOCATION, callback_location_sharing), ], states={ WAIT_LOCATION: [ MessageHandler(filters.LOCATION, callback_location_sharing), ], LOCATION_SEARCH_KEYWORD: [ MessageHandler(filters.TEXT, callback_location_keyword_search), CallbackQueryHandler(callback_skip_location_keyword), ], LOCATION_CONFIRMATION: [ CallbackQueryHandler(callback_location_confirmation), MessageHandler(filters.TEXT, callback_manual_location) ], ADD_COMMENT: [ MessageHandler(filters.TEXT, callback_add_comment), CallbackQueryHandler(callback_skip_comment), ], ADD_MEDIA: [MessageHandler(filters.PHOTO, callback_add_media), CallbackQueryHandler(callback_skip_media)], }, fallbacks=[CommandHandler("cancel", cancel_command)], per_message=False, allow_reentry=True, ) application.add_handler(CommandHandler("help", help_command)) application.add_handler(checkin_handler) application.run_polling() if __name__ == "__main__": main()