mirror of
https://github.com/Steffo99/greed.git
synced 2024-11-24 14:54:18 +00:00
Send all messages in parse_mode="HTML"
This commit is contained in:
parent
5da9535b97
commit
f823d5cc7a
2 changed files with 22 additions and 32 deletions
9
utils.py
9
utils.py
|
@ -143,15 +143,18 @@ class DuckBot:
|
|||
|
||||
@catch_telegram_errors
|
||||
def send_message(self, *args, **kwargs):
|
||||
return self.bot.send_message(*args, **kwargs)
|
||||
# All messages are sent in HTML parse mode
|
||||
return self.bot.send_message(parse_mode="HTML", *args, **kwargs)
|
||||
|
||||
@catch_telegram_errors
|
||||
def edit_message_text(self, *args, **kwargs):
|
||||
return self.bot.edit_message_text(*args, **kwargs)
|
||||
# All messages are sent in HTML parse mode
|
||||
return self.bot.edit_message_text(parse_mode="HTML", *args, **kwargs)
|
||||
|
||||
@catch_telegram_errors
|
||||
def edit_message_caption(self, *args, **kwargs):
|
||||
return self.bot.edit_message_caption(*args, **kwargs)
|
||||
# All messages are sent in HTML parse mode
|
||||
return self.bot.edit_message_caption(parse_mode="HTML", *args, **kwargs)
|
||||
|
||||
@catch_telegram_errors
|
||||
def edit_message_reply_markup(self, *args, **kwargs):
|
||||
|
|
45
worker.py
45
worker.py
|
@ -12,7 +12,6 @@ import re
|
|||
import utils
|
||||
import os
|
||||
from html import escape
|
||||
import io
|
||||
import requests
|
||||
|
||||
|
||||
|
@ -56,6 +55,7 @@ class ChatWorker(threading.Thread):
|
|||
else:
|
||||
self.sentry_client = None
|
||||
|
||||
# noinspection PyBroadException
|
||||
def run(self):
|
||||
"""The conversation code."""
|
||||
# Welcome the user to the bot
|
||||
|
@ -249,8 +249,7 @@ class ChatWorker(threading.Thread):
|
|||
# Send the previously created keyboard to the user (ensuring it can be clicked only 1 time)
|
||||
self.bot.send_message(self.chat.id,
|
||||
strings.conversation_open_user_menu.format(credit=utils.Price(self.user.credit)),
|
||||
reply_markup=telegram.ReplyKeyboardMarkup(keyboard, one_time_keyboard=True),
|
||||
parse_mode="HTML")
|
||||
reply_markup=telegram.ReplyKeyboardMarkup(keyboard, one_time_keyboard=True))
|
||||
# Wait for a reply from the user
|
||||
selection = self.__wait_for_specific_message([strings.menu_order, strings.menu_order_status,
|
||||
strings.menu_add_credit, strings.menu_bot_info,
|
||||
|
@ -300,13 +299,11 @@ class ChatWorker(threading.Thread):
|
|||
self.bot.edit_message_text(chat_id=self.chat.id,
|
||||
message_id=message['result']['message_id'],
|
||||
text=product.text(),
|
||||
parse_mode="HTML",
|
||||
reply_markup=inline_keyboard)
|
||||
else:
|
||||
self.bot.edit_message_caption(chat_id=self.chat.id,
|
||||
message_id=message['result']['message_id'],
|
||||
caption=product.text(),
|
||||
parse_mode="HTML",
|
||||
reply_markup=inline_keyboard)
|
||||
# Create the keyboard with the cancel button
|
||||
inline_keyboard = telegram.InlineKeyboardMarkup([[telegram.InlineKeyboardButton(strings.menu_cancel,
|
||||
|
@ -347,13 +344,11 @@ class ChatWorker(threading.Thread):
|
|||
self.bot.edit_message_text(chat_id=self.chat.id,
|
||||
message_id=callback.message.message_id,
|
||||
text=product.text(cart_qty=cart[callback.message.message_id][1]),
|
||||
parse_mode="HTML",
|
||||
reply_markup=product_inline_keyboard)
|
||||
else:
|
||||
self.bot.edit_message_caption(chat_id=self.chat.id,
|
||||
message_id=callback.message.message_id,
|
||||
caption=product.text(cart_qty=cart[callback.message.message_id][1]),
|
||||
parse_mode="HTML",
|
||||
reply_markup=product_inline_keyboard)
|
||||
# Create the cart summary
|
||||
product_list = ""
|
||||
|
@ -365,7 +360,7 @@ class ChatWorker(threading.Thread):
|
|||
self.bot.edit_message_text(chat_id=self.chat.id, message_id=final.message_id,
|
||||
text=strings.conversation_confirm_cart.format(product_list=product_list,
|
||||
total_cost=str(total_cost)),
|
||||
reply_markup=final_inline_keyboard, parse_mode="HTML")
|
||||
reply_markup=final_inline_keyboard)
|
||||
# If the Remove from cart button has been pressed...
|
||||
elif callback.data == "cart_remove":
|
||||
# Get the selected product, ensuring it exists
|
||||
|
@ -397,12 +392,11 @@ class ChatWorker(threading.Thread):
|
|||
if product.image is None:
|
||||
self.bot.edit_message_text(chat_id=self.chat.id, message_id=callback.message.message_id,
|
||||
text=product.text(cart_qty=cart[callback.message.message_id][1]),
|
||||
parse_mode="HTML", reply_markup=product_inline_keyboard)
|
||||
reply_markup=product_inline_keyboard)
|
||||
else:
|
||||
self.bot.edit_message_caption(chat_id=self.chat.id,
|
||||
message_id=callback.message.message_id,
|
||||
caption=product.text(cart_qty=cart[callback.message.message_id][1]),
|
||||
parse_mode="HTML",
|
||||
reply_markup=product_inline_keyboard)
|
||||
# Create the cart summary
|
||||
product_list = ""
|
||||
|
@ -414,7 +408,7 @@ class ChatWorker(threading.Thread):
|
|||
self.bot.edit_message_text(chat_id=self.chat.id, message_id=final.message_id,
|
||||
text=strings.conversation_confirm_cart.format(product_list=product_list,
|
||||
total_cost=str(total_cost)),
|
||||
reply_markup=final_inline_keyboard, parse_mode="HTML")
|
||||
reply_markup=final_inline_keyboard)
|
||||
# If the done button has been pressed...
|
||||
elif callback.data == "cart_done":
|
||||
# End the loop
|
||||
|
@ -511,8 +505,7 @@ class ChatWorker(threading.Thread):
|
|||
if selection == strings.menu_cash:
|
||||
# Go to the pay with cash function
|
||||
self.bot.send_message(self.chat.id,
|
||||
strings.payment_cash.format(user_cash_id=self.user.identifiable_str()),
|
||||
parse_mode="HTML")
|
||||
strings.payment_cash.format(user_cash_id=self.user.identifiable_str()))
|
||||
# If the user has selected the Credit Card option...
|
||||
elif selection == strings.menu_credit_card:
|
||||
# Go to the pay with credit card function
|
||||
|
@ -621,7 +614,7 @@ class ChatWorker(threading.Thread):
|
|||
|
||||
def __bot_info(self):
|
||||
"""Send information about the bot."""
|
||||
self.bot.send_message(self.chat.id, strings.bot_info, parse_mode="HTML")
|
||||
self.bot.send_message(self.chat.id, strings.bot_info)
|
||||
|
||||
def __admin_menu(self):
|
||||
"""Function called from the run method when the user is an administrator.
|
||||
|
@ -640,7 +633,7 @@ class ChatWorker(threading.Thread):
|
|||
# Send the previously created keyboard to the user (ensuring it can be clicked only 1 time)
|
||||
self.bot.send_message(self.chat.id, strings.conversation_open_admin_menu,
|
||||
reply_markup=telegram.ReplyKeyboardMarkup(keyboard, one_time_keyboard=True),
|
||||
parse_mode="HTML")
|
||||
)
|
||||
# Wait for a reply from the user
|
||||
selection = self.__wait_for_specific_message([strings.menu_products, strings.menu_orders,
|
||||
strings.menu_user_mode, strings.menu_edit_credit,
|
||||
|
@ -718,7 +711,6 @@ class ChatWorker(threading.Thread):
|
|||
# Display the current name if you're editing an existing product
|
||||
if product:
|
||||
self.bot.send_message(self.chat.id, strings.edit_current_value.format(value=escape(product.name)),
|
||||
parse_mode="HTML",
|
||||
reply_markup=cancel)
|
||||
# Wait for an answer
|
||||
name = self.__wait_for_regex(r"(.*)", cancellable=bool(product))
|
||||
|
@ -734,21 +726,18 @@ class ChatWorker(threading.Thread):
|
|||
if product:
|
||||
self.bot.send_message(self.chat.id,
|
||||
strings.edit_current_value.format(value=escape(product.description)),
|
||||
parse_mode="HTML",
|
||||
reply_markup=cancel)
|
||||
# Wait for an answer
|
||||
description = self.__wait_for_regex(r"(.*)", cancellable=bool(product))
|
||||
# Ask for the product price
|
||||
self.bot.send_message(self.chat.id,
|
||||
strings.ask_product_price,
|
||||
parse_mode="HTML")
|
||||
strings.ask_product_price)
|
||||
# Display the current name if you're editing an existing product
|
||||
if product:
|
||||
self.bot.send_message(self.chat.id,
|
||||
strings.edit_current_value.format(
|
||||
value=(str(utils.Price(product.price))
|
||||
if product.price is not None else 'Non in vendita')),
|
||||
parse_mode="HTML",
|
||||
reply_markup=cancel)
|
||||
# Wait for an answer
|
||||
price = self.__wait_for_regex(r"([0-9]{1,3}(?:[.,][0-9]{1,2})?|[Xx])",
|
||||
|
@ -833,8 +822,7 @@ class ChatWorker(threading.Thread):
|
|||
cancel_keyboard = telegram.InlineKeyboardMarkup([[telegram.InlineKeyboardButton(strings.menu_cancel,
|
||||
callback_data="cmd_cancel")]])
|
||||
# Send a small intro message on the Live Orders mode
|
||||
self.bot.send_message(self.chat.id, strings.conversation_live_orders_start, reply_markup=stop_keyboard,
|
||||
parse_mode="HTML")
|
||||
self.bot.send_message(self.chat.id, strings.conversation_live_orders_start, reply_markup=stop_keyboard)
|
||||
# Create the order keyboard
|
||||
order_keyboard = telegram.InlineKeyboardMarkup([[telegram.InlineKeyboardButton(strings.menu_complete,
|
||||
callback_data="order_complete")],
|
||||
|
@ -886,7 +874,8 @@ class ChatWorker(threading.Thread):
|
|||
# If the user pressed the refund order button, refund the order...
|
||||
elif update.data == "order_refund":
|
||||
# Ask for a refund reason
|
||||
reason_msg = self.bot.send_message(self.chat.id, strings.ask_refund_reason, reply_markup=cancel_keyboard)
|
||||
reason_msg = self.bot.send_message(self.chat.id, strings.ask_refund_reason,
|
||||
reply_markup=cancel_keyboard)
|
||||
# Wait for a reply
|
||||
reply = self.__wait_for_regex("(.*)", cancellable=True)
|
||||
# If the user pressed the cancel button, cancel the refund
|
||||
|
@ -968,8 +957,7 @@ class ChatWorker(threading.Thread):
|
|||
self.session.commit()
|
||||
# Notify the user of the credit/debit
|
||||
self.bot.send_message(user.user_id,
|
||||
strings.notification_transaction_created.format(transaction=str(transaction)),
|
||||
parse_mode="HTML")
|
||||
strings.notification_transaction_created.format(transaction=str(transaction)))
|
||||
# Notify the admin of the success
|
||||
self.bot.send_message(self.chat.id, strings.success_transaction_created.format(transaction=str(transaction)))
|
||||
|
||||
|
@ -983,8 +971,7 @@ class ChatWorker(threading.Thread):
|
|||
# Send the previously created keyboard to the user (ensuring it can be clicked only 1 time)
|
||||
self.bot.send_message(self.chat.id,
|
||||
strings.conversation_open_help_menu,
|
||||
reply_markup=telegram.ReplyKeyboardMarkup(keyboard, one_time_keyboard=True),
|
||||
parse_mode="HTML")
|
||||
reply_markup=telegram.ReplyKeyboardMarkup(keyboard, one_time_keyboard=True))
|
||||
# Wait for a reply from the user
|
||||
selection = self.__wait_for_specific_message([strings.menu_guide, strings.menu_contact_shopkeeper,
|
||||
strings.menu_cancel])
|
||||
|
@ -1007,7 +994,7 @@ class ChatWorker(threading.Thread):
|
|||
# Page number
|
||||
page = 0
|
||||
# Create and send a placeholder message to be populated
|
||||
message = self.bot.send_message(self.chat.id, strings.loading_transactions, parse_mode="HTML")
|
||||
message = self.bot.send_message(self.chat.id, strings.loading_transactions)
|
||||
# Loop used to move between pages
|
||||
while True:
|
||||
# Retrieve the 10 transactions in that page
|
||||
|
@ -1040,7 +1027,7 @@ class ChatWorker(threading.Thread):
|
|||
transactions=transactions_string)
|
||||
# Update the previously sent message
|
||||
self.bot.edit_message_text(chat_id=self.chat.id, message_id=message.message_id, text=text,
|
||||
reply_markup=inline_keyboard, parse_mode="HTML")
|
||||
reply_markup=inline_keyboard)
|
||||
# Wait for user input
|
||||
selection = self.__wait_for_inlinekeyboard_callback()
|
||||
# If Previous was selected...
|
||||
|
|
Loading…
Reference in a new issue