import vk_api token = 'token' api = vk_api.VkApi(token=token).get_api() mode = input('Какие беседы показать? 1 - все, 2 - только те, в которых ты состоишь, 3 - только те, где ты не состоишь и не очистил историю, 4 - только те, где ты состоишь и очистил историю: ') if not int(mode) in [1,2,3,4]: exit('Неверное значение') print('Получаю беседы...') for i in range(1, 100000001): try: chat = api.messages.getChat(chat_id=i) except Exception as e: if str(e) == "[946] Chat not supported": print(str(i)+': Фантом-чат') elif str(e) == "[100] One of the parameters specified was missing or invalid: chat_id param is incorrect": break else: print(e) break chat_info = str(chat['id'])+': '+str(chat['title'])+'. ' if 'left' in chat: chat_info += 'Вышел, ' if mode in ['2', '4']: continue elif 'kicked' in chat: chat_info += 'Исключен, ' if mode in ['2', '4']: continue else: chat_info += 'В составе, ' if mode == '3': continue if api.messages.getHistory(peer_id=2000000000+chat['id'])['count'] == 0: chat_info += 'история очищена.' if mode == '3': continue else: chat_info += 'история не очищена.' if mode == '4': continue print(chat_info) input('Всё!\n') Python import vk_api token = 'token' api = vk_api.VkApi(token=token).get_api() mode = input('Какие беседы показать? 1 - все, 2 - только те, в которых ты состоишь, 3 - только те, где ты не состоишь и не очистил историю, 4 - только те, где ты состоишь и очистил историю: ') if not int(mode) in [1,2,3,4]: exit('Неверное значение') print('Получаю беседы...') for i in range(1, 100000001): try: chat = api.messages.getChat(chat_id=i) except Exception as e: if str(e) == "[946] Chat not supported": print(str(i)+': Фантом-чат') elif str(e) == "[100] One of the parameters specified was missing or invalid: chat_id param is incorrect": break else: print(e) break chat_info = str(chat['id'])+': '+str(chat['title'])+'. ' if 'left' in chat: chat_info += 'Вышел, ' if mode in ['2', '4']: continue elif 'kicked' in chat: chat_info += 'Исключен, ' if mode in ['2', '4']: continue else: chat_info += 'В составе, ' if mode == '3': continue if api.messages.getHistory(peer_id=2000000000+chat['id'])['count'] == 0: chat_info += 'история очищена.' if mode == '3': continue else: chat_info += 'история не очищена.' if mode == '4': continue print(chat_info) input('Всё!\n') Использование: в переменную token вставить токен. Почему я не использовал chat_ids, чтобы получить сразу несколько бесед? Потому что существуют фантом-чаты... Допустим, беседы с ID 1, 2, 3 - обычные беседы, с ID 4 - фантом-чат, ID 5 - несуществующая беседа (то есть всего 4 беседы). Если я в chat_ids подставлю 1,4 - будет ошибка. Если 1,2,5 - тоже будет ошибка. Поэтому, после долгих эскперементов, я думаю, что лучше всего получать беседы по одной. Другие скрипты на GitHub
Используй однострочное условие, а не вот Это if not int(mode) in [1,2,3,4]: exit('Неверное значение')
ZeN, ну смотри. Для примера возьмём ту строчку, что я указал Всё это можно поместить в одну строчку по схеме действие1 if условие else действие2 и оно будет нормально работать не нарушай правила PEP8 Если переделать, то получится: exit("Неверное значение") if not int(mode) in range(1,4) else pass
for i in range(1, 100000001): откуда взялось 100000001 ? Что смеяться. Есть методы, которые позволят узнать сколько бесед есть Простой код. Полезен