Setup reasons selection
This commit is contained in:
parent
41a063e6d9
commit
248d750c97
6 changed files with 60 additions and 4 deletions
9
callbackQuery/create.py
Normal file
9
callbackQuery/create.py
Normal file
|
@ -0,0 +1,9 @@
|
|||
from telegram import Update
|
||||
from telegram.ext import CallbackContext
|
||||
|
||||
from main import reasons
|
||||
|
||||
|
||||
def create(update: Update, context: CallbackContext):
|
||||
del reasons[update.effective_chat.id][update["_effective_user"]["id"]]
|
||||
|
|
@ -11,5 +11,5 @@ def edit(update: Update, context: CallbackContext):
|
|||
if update.effective_chat.id not in messages:
|
||||
messages[update.effective_chat.id] = {}
|
||||
|
||||
messages[update.effective_chat.id] = {update["_effective_user"]["id"]: update.callback_query.data}
|
||||
messages[update.effective_chat.id][update["_effective_user"]["id"]] = update.callback_query.data
|
||||
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
from telegram import Update
|
||||
from telegram.ext import CallbackContext, CallbackQueryHandler
|
||||
|
||||
from callbackQuery.create import create
|
||||
from callbackQuery.data import data
|
||||
from callbackQuery.edit import edit
|
||||
from callbackQuery.new import new
|
||||
from callbackQuery.reason import reason
|
||||
from commands.start import start
|
||||
|
||||
|
||||
|
@ -14,8 +16,12 @@ def callback_query(update: Update, context: CallbackContext):
|
|||
new(update, context)
|
||||
elif update.callback_query.data == "data":
|
||||
data(update, context)
|
||||
elif update.callback_query.data == "create":
|
||||
create(update, context)
|
||||
elif update.callback_query.data.startswith("edit_"):
|
||||
edit(update, context)
|
||||
elif update.callback_query.data.startswith("reason_"):
|
||||
reason(update, context)
|
||||
|
||||
|
||||
callback_query_handler = CallbackQueryHandler(callback_query)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from telegram import Update, InlineKeyboardMarkup, InlineKeyboardButton
|
||||
from telegram import Update, InlineKeyboardMarkup, InlineKeyboardButton, ParseMode
|
||||
from telegram.ext import CallbackContext
|
||||
|
||||
from main import database
|
||||
from main import database, reasons
|
||||
|
||||
|
||||
def new(update: Update, context: CallbackContext):
|
||||
|
@ -12,5 +12,29 @@ def new(update: Update, context: CallbackContext):
|
|||
[InlineKeyboardButton("Home", callback_data="home")]
|
||||
]))
|
||||
else:
|
||||
context.bot.send_message(chat_id=update.effective_chat.id, text="Select your reasons")
|
||||
if update.effective_chat.id not in reasons:
|
||||
reasons[update.effective_chat.id] = {}
|
||||
if update["_effective_user"]["id"] not in reasons[update.effective_chat.id]:
|
||||
reasons[update.effective_chat.id][update["_effective_user"]["id"]] = []
|
||||
|
||||
last_line = [InlineKeyboardButton("Home", callback_data="home")]
|
||||
if len(reasons[update.effective_chat.id][update["_effective_user"]["id"]]) != 0:
|
||||
last_line.append(InlineKeyboardButton("Send", callback_data="create"))
|
||||
|
||||
context.bot.send_message(chat_id=update.effective_chat.id,
|
||||
text=f"Select your reasons\n`" +
|
||||
"`, `".join(reasons[update.effective_chat.id][update["_effective_user"]["id"]]) +
|
||||
"`",
|
||||
parse_mode=ParseMode.MARKDOWN_V2,
|
||||
reply_markup=InlineKeyboardMarkup([
|
||||
[InlineKeyboardButton("Work", callback_data="reason_work"),
|
||||
InlineKeyboardButton("Shopping", callback_data="reason_shopping")],
|
||||
[InlineKeyboardButton("Health", callback_data="reason_health"),
|
||||
InlineKeyboardButton("Family", callback_data="reason_family")],
|
||||
[InlineKeyboardButton("Handicap", callback_data="reason_handicap"),
|
||||
InlineKeyboardButton("Sport/animal", callback_data="reason_sport_animal")],
|
||||
[InlineKeyboardButton("Injunction", callback_data="reason_injunction"),
|
||||
InlineKeyboardButton("Missions", callback_data="reason_missions")],
|
||||
[InlineKeyboardButton("Children", callback_data="reason_children")],
|
||||
last_line]))
|
||||
|
||||
|
|
16
callbackQuery/reason.py
Normal file
16
callbackQuery/reason.py
Normal file
|
@ -0,0 +1,16 @@
|
|||
from telegram import Update
|
||||
from telegram.ext import CallbackContext
|
||||
|
||||
from callbackQuery.new import new
|
||||
from main import reasons
|
||||
|
||||
|
||||
def reason(update: Update, context: CallbackContext):
|
||||
data = update.callback_query.data.replace("reason_", "")
|
||||
if data in reasons[update.effective_chat.id][update["_effective_user"]["id"]]:
|
||||
del reasons[update.effective_chat.id][update["_effective_user"]["id"]]\
|
||||
[reasons[update.effective_chat.id][update["_effective_user"]["id"]].index(data)]
|
||||
else:
|
||||
reasons[update.effective_chat.id][update["_effective_user"]["id"]].append(data)
|
||||
new(update, context)
|
||||
|
1
main.py
1
main.py
|
@ -10,6 +10,7 @@ local = {"first_name": "Firstname",
|
|||
"address": "Address"}
|
||||
database = {}
|
||||
messages = {}
|
||||
reasons = {}
|
||||
|
||||
logging.basicConfig(format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", level=logging.INFO)
|
||||
|
||||
|
|
Reference in a new issue