mirror of
https://github.com/Steffo99/greed.git
synced 2024-11-25 15:24:17 +00:00
stuff
This commit is contained in:
parent
3e1f8dfb3a
commit
0eaa0188b9
3 changed files with 71 additions and 5 deletions
13
strings.py
13
strings.py
|
@ -269,17 +269,20 @@ ask_credit = "Di quanto vuoi modificare il credito del cliente?\n" \
|
||||||
"Metti un segno </i><code>+</code><i> se vuoi aggiungere credito all'account del cliente," \
|
"Metti un segno </i><code>+</code><i> se vuoi aggiungere credito all'account del cliente," \
|
||||||
" oppure un segno </i><code>-</code><i> se vuoi dedurlo.</i>"
|
" oppure un segno </i><code>-</code><i> se vuoi dedurlo.</i>"
|
||||||
|
|
||||||
|
# Header for the edit admin message
|
||||||
|
admin_properties = "<b>Permessi di {name}:</b>"
|
||||||
|
|
||||||
# Edit admin: can edit products?
|
# Edit admin: can edit products?
|
||||||
ask_edit_products = "Vuoi che questo 💼 Gestore sia autorizzato a modificare la configurazione dei prodotti?"
|
prop_edit_products = "Modifica prodotti"
|
||||||
|
|
||||||
# Edit admin: can receive orders?
|
# Edit admin: can receive orders?
|
||||||
ask_receive_orders = "Vuoi che questo 💼 Gestore sia autorizzato a ricevere e gestire gli ordini?"
|
prop_receive_orders = "Gestisci ordini"
|
||||||
|
|
||||||
# Edit admin: can create transactions?
|
# Edit admin: can create transactions?
|
||||||
ask_create_transactions = "Vuoi che questo 💼 Gestore sia autorizzato a creare nuove transazioni?"
|
prop_create_transactions = "Crea transazioni"
|
||||||
|
|
||||||
# Edit admin: should be displayed on help
|
# Edit admin: show on help message?
|
||||||
ask_display_on_help = "Vuoi che questo 💼 Gestore venga visualizzato nella sezione Contatta il negozio?"
|
prop_display_on_help = "Assistenza cliente"
|
||||||
|
|
||||||
# Thread has started downloading an image and might be unresponsive
|
# Thread has started downloading an image and might be unresponsive
|
||||||
downloading_image = "Sto scaricando la tua foto!\n" \
|
downloading_image = "Sto scaricando la tua foto!\n" \
|
||||||
|
|
5
utils.py
5
utils.py
|
@ -6,6 +6,7 @@ from strings import currency_format_string, currency_symbol
|
||||||
import typing
|
import typing
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
import strings
|
||||||
|
|
||||||
if config["Error Reporting"]["sentry_token"] != \
|
if config["Error Reporting"]["sentry_token"] != \
|
||||||
"https://00000000000000000000000000000000:00000000000000000000000000000000@sentry.io/0000000":
|
"https://00000000000000000000000000000000:00000000000000000000000000000000@sentry.io/0000000":
|
||||||
|
@ -211,3 +212,7 @@ class DuckBot:
|
||||||
return self.bot.send_document(*args, **kwargs)
|
return self.bot.send_document(*args, **kwargs)
|
||||||
|
|
||||||
# More methods can be added here
|
# More methods can be added here
|
||||||
|
|
||||||
|
|
||||||
|
def boolmoji(boolean: bool):
|
||||||
|
return strings.emoji_yes if boolean else strings.emoji_no
|
||||||
|
|
58
worker.py
58
worker.py
|
@ -1126,6 +1126,64 @@ class ChatWorker(threading.Thread):
|
||||||
# Delete the created file
|
# Delete the created file
|
||||||
os.remove(f"transactions_{self.chat.id}.csv")
|
os.remove(f"transactions_{self.chat.id}.csv")
|
||||||
|
|
||||||
|
def __add_admin(self):
|
||||||
|
"""Add an administrator to the bot."""
|
||||||
|
# Let the admin select an administrator to promote
|
||||||
|
user = self.__user_select()
|
||||||
|
# Check if the user is already an administrator
|
||||||
|
admin = self.session.query(db.Admin).filter_by(user_id=user.user_id).one_or_none()
|
||||||
|
if admin is None:
|
||||||
|
# Create the keyboard to be sent
|
||||||
|
keyboard = telegram.ReplyKeyboardMarkup([[strings.emoji_yes, strings.emoji_no]])
|
||||||
|
# Ask for confirmation
|
||||||
|
self.bot.send_message(self.chat.id, strings.conversation_confirm_admin_promotion, reply_markup=keyboard)
|
||||||
|
# Wait for an answer
|
||||||
|
selection = self.__wait_for_specific_message([strings.emoji_yes, strings.emoji_no])
|
||||||
|
# Proceed only if the answer is yes
|
||||||
|
if selection == strings.emoji_no:
|
||||||
|
return
|
||||||
|
# Create a new admin
|
||||||
|
admin = db.Admin(user=user,
|
||||||
|
edit_products=False,
|
||||||
|
receive_orders=False,
|
||||||
|
create_transactions=False,
|
||||||
|
is_owner=False,
|
||||||
|
display_on_help=False)
|
||||||
|
# Send the empty admin message and record the id
|
||||||
|
message = self.bot.send_message(self.chat.id, strings.admin_properties.format(name=str(admin.user)))
|
||||||
|
# Start accepting edits
|
||||||
|
while True:
|
||||||
|
# Create the inline keyboard with the admin status
|
||||||
|
inline_keyboard = telegram.InlineKeyboardMarkup([
|
||||||
|
[telegram.InlineKeyboardButton(f"{utils.boolmoji(admin.edit_products)} {strings.prop_edit_products}",
|
||||||
|
callback_data="toggle_edit_products")],
|
||||||
|
[telegram.InlineKeyboardButton(f"{utils.boolmoji(admin.receive_orders)} {strings.prop_receive_orders}",
|
||||||
|
callback_data="toggle_receive_orders")],
|
||||||
|
[telegram.InlineKeyboardButton(
|
||||||
|
f"{utils.boolmoji(admin.create_transactions)} {strings.prop_create_transactions}",
|
||||||
|
callback_data="toggle_create_transactions")],
|
||||||
|
[telegram.InlineKeyboardButton(
|
||||||
|
f"{utils.boolmoji(admin.display_on_help)} {strings.prop_display_on_help}",
|
||||||
|
callback_data="toggle_display_on_help")],
|
||||||
|
[telegram.InlineKeyboardButton(strings.menu_done, callback_data="cmd_done")]
|
||||||
|
])
|
||||||
|
# Update the inline keyboard
|
||||||
|
self.bot.edit_message_reply_markup(message, reply_markup=inline_keyboard)
|
||||||
|
# Wait for an user answer
|
||||||
|
callback = self.__wait_for_inlinekeyboard_callback()
|
||||||
|
# Toggle the correct property
|
||||||
|
if callback.data == "toggle_edit_products":
|
||||||
|
admin.edit_products = not admin.edit_products
|
||||||
|
elif callback.data == "toggle_receive_orders":
|
||||||
|
admin.receive_orders = not admin.receive_orders
|
||||||
|
elif callback.data == "toggle_create_transactions":
|
||||||
|
admin.create_transactions = not admin.create_transactions
|
||||||
|
elif callback.data == "toggle_display_on_help":
|
||||||
|
admin.display_on_help = not admin.display_on_help
|
||||||
|
elif callback.data == "cmd_done":
|
||||||
|
break
|
||||||
|
self.session.commit()
|
||||||
|
|
||||||
def __graceful_stop(self, stop_trigger: StopSignal):
|
def __graceful_stop(self, stop_trigger: StopSignal):
|
||||||
"""Handle the graceful stop of the thread."""
|
"""Handle the graceful stop of the thread."""
|
||||||
# If the session has expired...
|
# If the session has expired...
|
||||||
|
|
Loading…
Reference in a new issue