mirror of
https://github.com/Steffo99/greed.git
synced 2024-11-22 05:54:18 +00:00
#44: Change CancelSignal handling
This commit is contained in:
parent
357b0e5680
commit
279b8f1539
1 changed files with 40 additions and 19 deletions
43
worker.py
43
worker.py
|
@ -153,8 +153,9 @@ class ChatWorker(threading.Thread):
|
||||||
while True:
|
while True:
|
||||||
# Get the next update
|
# Get the next update
|
||||||
update = self.__receive_next_update()
|
update = self.__receive_next_update()
|
||||||
# Ensure the update isn't a CancelSignal
|
# If a CancelSignal is received...
|
||||||
if isinstance(update, CancelSignal):
|
if isinstance(update, CancelSignal):
|
||||||
|
# And the wait is cancellable...
|
||||||
if cancellable:
|
if cancellable:
|
||||||
# Return the CancelSignal
|
# Return the CancelSignal
|
||||||
return update
|
return update
|
||||||
|
@ -178,10 +179,15 @@ class ChatWorker(threading.Thread):
|
||||||
while True:
|
while True:
|
||||||
# Get the next update
|
# Get the next update
|
||||||
update = self.__receive_next_update()
|
update = self.__receive_next_update()
|
||||||
# Ensure the update isn't a CancelSignal
|
# If a CancelSignal is received...
|
||||||
if cancellable and isinstance(update, CancelSignal):
|
if isinstance(update, CancelSignal):
|
||||||
|
# And the wait is cancellable...
|
||||||
|
if cancellable:
|
||||||
# Return the CancelSignal
|
# Return the CancelSignal
|
||||||
return update
|
return update
|
||||||
|
else:
|
||||||
|
# Ignore the signal
|
||||||
|
continue
|
||||||
# Ensure the update contains a message
|
# Ensure the update contains a message
|
||||||
if update.message is None:
|
if update.message is None:
|
||||||
continue
|
continue
|
||||||
|
@ -203,10 +209,15 @@ class ChatWorker(threading.Thread):
|
||||||
while True:
|
while True:
|
||||||
# Get the next update
|
# Get the next update
|
||||||
update = self.__receive_next_update()
|
update = self.__receive_next_update()
|
||||||
# Ensure the update isn't a CancelSignal
|
# If a CancelSignal is received...
|
||||||
if cancellable and isinstance(update, CancelSignal):
|
if isinstance(update, CancelSignal):
|
||||||
|
# And the wait is cancellable...
|
||||||
|
if cancellable:
|
||||||
# Return the CancelSignal
|
# Return the CancelSignal
|
||||||
return update
|
return update
|
||||||
|
else:
|
||||||
|
# Ignore the signal
|
||||||
|
continue
|
||||||
# Ensure the update contains a precheckoutquery
|
# Ensure the update contains a precheckoutquery
|
||||||
if update.pre_checkout_query is None:
|
if update.pre_checkout_query is None:
|
||||||
continue
|
continue
|
||||||
|
@ -232,10 +243,15 @@ class ChatWorker(threading.Thread):
|
||||||
while True:
|
while True:
|
||||||
# Get the next update
|
# Get the next update
|
||||||
update = self.__receive_next_update()
|
update = self.__receive_next_update()
|
||||||
# Ensure the update isn't a CancelSignal
|
# If a CancelSignal is received...
|
||||||
if cancellable and isinstance(update, CancelSignal):
|
if isinstance(update, CancelSignal):
|
||||||
|
# And the wait is cancellable...
|
||||||
|
if cancellable:
|
||||||
# Return the CancelSignal
|
# Return the CancelSignal
|
||||||
return update
|
return update
|
||||||
|
else:
|
||||||
|
# Ignore the signal
|
||||||
|
continue
|
||||||
# Ensure the update contains a message
|
# Ensure the update contains a message
|
||||||
if update.message is None:
|
if update.message is None:
|
||||||
continue
|
continue
|
||||||
|
@ -245,16 +261,21 @@ class ChatWorker(threading.Thread):
|
||||||
# Return the photo array
|
# Return the photo array
|
||||||
return update.message.photo
|
return update.message.photo
|
||||||
|
|
||||||
def __wait_for_inlinekeyboard_callback(self, cancellable: bool = True) \
|
def __wait_for_inlinekeyboard_callback(self, cancellable: bool = False) \
|
||||||
-> Union[telegram.CallbackQuery, CancelSignal]:
|
-> Union[telegram.CallbackQuery, CancelSignal]:
|
||||||
"""Continue getting updates until an inline keyboard callback is received, then return it."""
|
"""Continue getting updates until an inline keyboard callback is received, then return it."""
|
||||||
while True:
|
while True:
|
||||||
# Get the next update
|
# Get the next update
|
||||||
update = self.__receive_next_update()
|
update = self.__receive_next_update()
|
||||||
# Ensure the update isn't a CancelSignal
|
# If a CancelSignal is received...
|
||||||
if cancellable and isinstance(update, CancelSignal):
|
if isinstance(update, CancelSignal):
|
||||||
|
# And the wait is cancellable...
|
||||||
|
if cancellable:
|
||||||
# Return the CancelSignal
|
# Return the CancelSignal
|
||||||
return update
|
return update
|
||||||
|
else:
|
||||||
|
# Ignore the signal
|
||||||
|
continue
|
||||||
# Ensure the update is a CallbackQuery
|
# Ensure the update is a CallbackQuery
|
||||||
if update.callback_query is None:
|
if update.callback_query is None:
|
||||||
continue
|
continue
|
||||||
|
@ -1229,7 +1250,7 @@ class ChatWorker(threading.Thread):
|
||||||
callback = self.__wait_for_inlinekeyboard_callback()
|
callback = self.__wait_for_inlinekeyboard_callback()
|
||||||
# Toggle the correct property
|
# Toggle the correct property
|
||||||
if callback.data == "toggle_edit_products":
|
if callback.data == "toggle_edit_products":
|
||||||
admin.edit_products = not admin.edit_products
|
admin.edit_products = not admin.edit_products1
|
||||||
elif callback.data == "toggle_receive_orders":
|
elif callback.data == "toggle_receive_orders":
|
||||||
admin.receive_orders = not admin.receive_orders
|
admin.receive_orders = not admin.receive_orders
|
||||||
elif callback.data == "toggle_create_transactions":
|
elif callback.data == "toggle_create_transactions":
|
||||||
|
|
Loading…
Reference in a new issue