Externalized processing of requests to another method
Now it is easier to get the finished messages and send it if no reply is possible
This commit is contained in:
parent
0e08ae8b2b
commit
86438abdec
1 changed files with 19 additions and 11 deletions
30
bot.py
30
bot.py
|
@ -40,30 +40,38 @@ def search_station(query):
|
||||||
return request.json()[0]['stationId']
|
return request.json()[0]['stationId']
|
||||||
|
|
||||||
|
|
||||||
def get_vvs_departures(update, context):
|
def handle_vvs(update, context):
|
||||||
if len(context.args) == 0:
|
for reply in get_vvs_departures(context.args):
|
||||||
update.message.reply_text("No argument specified")
|
update.message.reply_text(reply)
|
||||||
return
|
|
||||||
query = Query(context.args)
|
|
||||||
|
def get_vvs_departures(args):
|
||||||
|
reply = []
|
||||||
|
if len(args) == 0:
|
||||||
|
reply.append("No argument specified")
|
||||||
|
return reply
|
||||||
|
query = Query(args)
|
||||||
if query.station_id == -1:
|
if query.station_id == -1:
|
||||||
update.message.reply_text("No station matching this name found!")
|
reply.append("No station matching this name found!")
|
||||||
return
|
return reply
|
||||||
request = requests.get("https://efa-api.asw.io/api/v1/station/" + query.station_id + "/departures")
|
request = requests.get("https://efa-api.asw.io/api/v1/station/" + query.station_id + "/departures")
|
||||||
if request.status_code != 200:
|
if request.status_code != 200:
|
||||||
update.message.reply_text("Error with server communication")
|
reply.append("Error with server communication")
|
||||||
update.message.reply_text("Next departures:")
|
return reply
|
||||||
|
reply.append("Next departures:")
|
||||||
printed_departures = 0
|
printed_departures = 0
|
||||||
for station in request.json():
|
for station in request.json():
|
||||||
if station['direction'].casefold().find(query.destination) != -1 or station['direction'].find(
|
if station['direction'].casefold().find(query.destination) != -1 or station['direction'].find(
|
||||||
query.destination) != -1:
|
query.destination) != -1:
|
||||||
if query.line == '' or (query.line != -1 and station['number'] == query.line):
|
if query.line == '' or (query.line != -1 and station['number'] == query.line):
|
||||||
update.message.reply_text(
|
reply.append(
|
||||||
"Line " + station['number'] + " to \"" + station['direction'] + "\" at "
|
"Line " + station['number'] + " to \"" + station['direction'] + "\" at "
|
||||||
+ station['departureTime']['hour'].zfill(2) + ':' + station['departureTime']['minute'].zfill(2)
|
+ station['departureTime']['hour'].zfill(2) + ':' + station['departureTime']['minute'].zfill(2)
|
||||||
+ " +" + str(station['delay']))
|
+ " +" + str(station['delay']))
|
||||||
printed_departures += 1
|
printed_departures += 1
|
||||||
if printed_departures >= query.departure_count:
|
if printed_departures >= query.departure_count:
|
||||||
break
|
break
|
||||||
|
return reply
|
||||||
|
|
||||||
|
|
||||||
def inline_station_search(update, context):
|
def inline_station_search(update, context):
|
||||||
|
@ -91,7 +99,7 @@ inline_station_search_handler = InlineQueryHandler(inline_station_search)
|
||||||
|
|
||||||
dispatcher.add_handler(inline_station_search_handler)
|
dispatcher.add_handler(inline_station_search_handler)
|
||||||
|
|
||||||
updater.dispatcher.add_handler(CommandHandler('vvs', get_vvs_departures))
|
updater.dispatcher.add_handler(CommandHandler('vvs', handle_vvs))
|
||||||
|
|
||||||
updater.start_polling()
|
updater.start_polling()
|
||||||
updater.idle()
|
updater.idle()
|
||||||
|
|
Loading…
Reference in a new issue