def specify_adress(self, update, context): chat_id = update.message.chat_id msg = update.message.text if msg: normal_msg = normalize_adrs(msg) addresses = search_address(normal_msg) # try to find by geolocation loc = update.message.location if loc: # We catch Filter.location msg = find_address(longitude=loc.longitude, latitude=loc.latitude) if not normalize_from_geocoder(msg): self.view.not_found(chat_id, 'ваши координаты') return self.states_dict['WAIT_INPUT'] normal_msg = normalize_from_geocoder(msg) addresses = search_address(normal_msg) if not addresses: self.view.not_found(chat_id, msg) return self.states_dict['WAIT_INPUT'] # TODO: Add interaction for alone get address # if len(addresses) == 1: # return self.process_options(addresses[0]) if len(addresses) > 20: self.view.too_many_found(chat_id, msg, len(addresses)) return self.states_dict['WAIT_INPUT'] if len(addresses) <= 20: self.view.choose_address(chat_id, addresses) self.address_options = [adr.name for adr in addresses] return self.states_dict['CHOOSE_OPTIONS']
def specify_adress(self, update, context): if hasattr(update, 'callback_query'): chat_id = update.message.chat_id msg = update.message.text else: chat_id = update.callback_query.chat_instance msg = update.message.text normal_msg = normalize_adrs(msg) addresses = search_address(normal_msg) if not addresses: self.view.not_found(chat_id, msg) return self.states_dict['REPEAT'] # TODO: Addd interaction for alone get address # if len(addresses) == 1: # return self.process_options(addresses[0]) if len(addresses) > 20: self.view.too_many_found(chat_id, msg, len(addresses)) return self.states_dict['REPEAT'] if len(addresses) <= 20: self.view.choose_address(chat_id, addresses) self.address_options = [adr.name for adr in addresses] return self.states_dict['CHOOSE_OPTIONS']
def specify_adress(self, update, context): if hasattr(update, 'callback_query'): chat_id = update.message.chat_id msg = update.message.text else: chat_id = update.callback_query.chat_instance msg = update.message.text logger.debug('----111---') loc = update.message.location if loc: # We catch Filter.location logger.debug('----exist---') msg = find_address(longitude=loc.longitude, latitude=loc.latitude) normal_msg = normalize_adrs(msg) addresses = search_address(normal_msg) if not addresses: self.view.not_found(chat_id, msg) return self.states_dict['REPEAT'] # TODO: Addd interaction for alone get address # if len(addresses) == 1: # return self.process_options(addresses[0]) if len(addresses) > 20: self.view.too_many_found(chat_id, msg, len(addresses)) return self.states_dict['REPEAT'] if len(addresses) <= 20: self.view.choose_address(chat_id, addresses) self.address_options = [adr.name for adr in addresses] return self.states_dict['CHOOSE_OPTIONS']
def process_options(self, update, context): chat_id = update.effective_chat.id adress_name = update.callback_query.data if adress_name not in self.address_options: return self.specify_adress(update, context) adr = search_address(adress_name) if not adr: self.view.not_found(chat_id, adress_name) return self.states_dict["REPEAT"] events = get_events(adr[0].id) self.view.reply_success(chat_id, {'adr': adr[0], 'events': events}) return self.states_dict["WAIT_INPUT"]