L0re
@L0re

Как написать правильную последовательность действий бота?

for event in longpoll.listen():
    if event.type == VkEventType.MESSAGE_NEW and event.to_me:
        print("Текст сообщения: " + event.text)
        ans = event.text.lower()
        res = vk_session.method("messages.getById", {"message_ids": [event.message_id], "group_id": 196640056})
        if ans == "1":
            vk_session.method('messages.send', {'user_id': event.user_id, "message": 'Отправь фото', 'random_id': get_random_id()})
            if event.type == VkEventType.MESSAGE_NEW and event.to_me and not event.text:
                 # Дальше код не идет
                vk_session.method('messages.send', {'user_id': event.user_id, "message": 'Как называется ваше достижение? ', 'random_id': get_random_id()})
                if event.type == VkEventType.MESSAGE_NEW and event.to_me and event.text:
                    big_text = event.text
                try:
                    image_url = res['items'][0]['attachments'][0]['photo']['sizes'][0]
                    url = '{}'.format(image_url['url'])         #Получает url       
                    urlretrieve(url, "photo.png")  
                except:
                    pass

Что делать, код не проходит полностью. Останавливается на середине.
Каким образом я только не переписывал его, все равно не получается.
  • Вопрос задан
  • 197 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Guerro69
Как нибудь вот-так:
vk_s = vk_api.VkApi(token='token')
api = vk_s.get_api()

for event in longpoll.listen():
	if event.type == VkEventType.MESSAGE_NEW and event.to_me:
		msg = event.text.split(' ')
		print('Текст сообщения: {}'.format(event.text))
		if msg[0] == '1':
			try:
				mess = api.messages.getById(message_ids=event.message_id)
				image_url = mess['items'][0]['attachments'][0]['photo']['sizes'][0]
				url = '{}'.format(image_url['url'])
				text = event.text.replace("1", "")
				if text == '':
					api.messages.send(message="Как называется ваше достижение?", user_id=event.user_id, random_id=0)
				else:
					api.messages.send(message="Ваша фотография: {}\n\nВаше достижение: {}".format(url, text), user_id=event.user_id, random_id=0)
			except IndexError:
				api.messages.send(message="Отправь мне фото", user_id=event.user_id, random_id=0)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы