@run_async
def request_acceptable_price(bot, update):
do_stuff()
job_queue.run_once(wait_for_price, when=1, context={
'client': get_uber_client(update.message.chat.id),
'chat_id': update.message.chat.id,
'message_id': data['last_message_id'],
'from_latitude': data['from_latitude'],
'from_longitude': data['from_longitude'],
'to_latitude': data['to_latitude'],
'to_longitude': data['to_longitude'],
'capacity': data['wait']['capacity'],
'price': price,
'msg_ln': msg_ln
}, name=update.message.chat.id)
return CANCEL_REQ
def wait_for_price(bot, job):
do_stuff()
job_queue.run_once(wait_for_price, when=10, context=job.context, name=int(job.context['chat_id']))
return CANCEL_REQ
@run_async
def cancel_request(bot, update):
connection = persist.connection()
cursor = connection.cursor()
cursor.execute("SELECT `data` FROM `chat` WHERE `chat_id` = %s LIMIT 1", [
update.callback_query.message.chat.id
])
data = json.loads(cursor.fetchone()[0])
if 'ride' in data:
client = get_uber_client(update.callback_query.message.chat.id)
client.cancel_current_ride()
else:
jobs = job_queue.get_jobs_by_name(name=update.callback_query.message.chat.id)
for job in jobs:
job.schedule_removal()
updater.bot.edit_message_text(
chat_id=update.callback_query.message.chat.id,
message_id=data['last_message_id'],
text=EMOJI_STATUS + 'You have cancelled'
)
return
Comments