Developing Bot
This commit is contained in:
+45
-23
@@ -1,43 +1,65 @@
|
||||
# [ IMPORTS ] #
|
||||
from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup
|
||||
import signal
|
||||
import sys
|
||||
import traceback
|
||||
from telegram import Update
|
||||
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes, CallbackQueryHandler, Application
|
||||
import configparser
|
||||
import json
|
||||
import os
|
||||
|
||||
# other files in here
|
||||
import direct_message_commands
|
||||
import event_management
|
||||
import log
|
||||
from errors import *
|
||||
from commands_admin import *
|
||||
from commands_user import *
|
||||
from handler_participant_lists import *
|
||||
from log import *
|
||||
|
||||
#############################################
|
||||
# [ CONFIG FILES ] #
|
||||
|
||||
# Konfiguration
|
||||
config = configparser.ConfigParser()
|
||||
config.read('telegram_bot_token.cfg')
|
||||
config.read('telegram_bot_config.cfg')
|
||||
config.read('config/telegram_bot_token.cfg')
|
||||
print("Configs loaded.")
|
||||
|
||||
#############################################
|
||||
# [ MAIN LOOP ] #
|
||||
def handle_signal(signal, frame):
|
||||
log.info(chat_id="system", message="Shutdown command received. Stopping service...")
|
||||
sys.exit(0)
|
||||
|
||||
signal.signal(signal.SIGTERM, handle_signal)
|
||||
signal.signal(signal.SIGINT, handle_signal)
|
||||
|
||||
async def button_callback_query(update: Update, context: ContextTypes.DEFAULT_TYPE):
|
||||
query = update.callback_query
|
||||
await query.answer()
|
||||
|
||||
try:
|
||||
# Event Management
|
||||
if query.data == "list_event_actions":
|
||||
await event_management.list_event_actions(update, context, query)
|
||||
return
|
||||
if query.data == "edit_event":
|
||||
await event_management.edit_event(update, context, query)
|
||||
return
|
||||
if query.data == "delete_event":
|
||||
await event_management.delete_event(update, context, query)
|
||||
return
|
||||
if query.data == "new_event":
|
||||
await event_management.new_event(update, context, query)
|
||||
return
|
||||
except Exception as e:
|
||||
log.error(chat_id=update.effective_chat.id, message=f"Error handling button callback query: {e}", stack_trace=traceback.format_exc())
|
||||
await update.effective_message.reply_text(f'Leider gab es einen Fehler. Bitte melde die Uhrzeit bei den Admins: {datetime.now().strftime("%Y-%m-%d @ %H:%M")}.')
|
||||
|
||||
def main():
|
||||
log.info(chat_id="system", message="Registering bot commands and starting service...")
|
||||
app = ApplicationBuilder().token(config['telegram']['bot_token']).build()
|
||||
|
||||
# Admin commands
|
||||
app.add_handler(CommandHandler("newEvent", newEvent))
|
||||
# DM commands
|
||||
app.add_handler(CommandHandler("start", direct_message_commands.start))
|
||||
|
||||
# User commands
|
||||
# app.add_handler(CommandHandler("start", start))
|
||||
# Event management
|
||||
app.add_handler(CommandHandler("newEvent", event_management.new_event))
|
||||
|
||||
# buttons
|
||||
app.add_handler(CallbackQueryHandler(button))
|
||||
app.add_handler(CallbackQueryHandler(button_callback_query))
|
||||
|
||||
print("Bot läuft...")
|
||||
log.info(chat_id="system", message="Service started")
|
||||
app.run_polling()
|
||||
|
||||
if __name__ == "__main__":
|
||||
log.info(chat_id="system", message="Starting service...")
|
||||
main()
|
||||
log.info(chat_id="system", message="Service stopped.")
|
||||
|
||||
Reference in New Issue
Block a user