data = {'Что такое регрессионное тестирование?' : 'Тестирование, направленное на обнаружение вызванных внесенными изменениями багов в уже существующей функциональности', 'Для чего нужно нагрузочное тестирование?': 'Для анализа изменения состояния приложения под нагрузкой', 'Чем тестирование производительности отличаются от нагрузочного тестирования?' : 'Нагрузочное - при максимальных нагрузках, производительности - время отклика при различных нагрузках', 'Что такое XSS?' : 'Межсайтовый скриптинг', 'Что из перечисленного является устойчивым названием одного из элементов пользовательского интерфейса?' : 'Radio button', 'Какой из этих тестов негативный?' : 'Забегает в бар и заказывает 0 кружек пива', 'Объясните фразу "Я знаю отличную шутку про UDP, но не факт, что она до вас дойдет".' : 'UDP предоставляет ненадёжный сервис', 'Расшифруйте аббревиатуру MVP' : 'Model-View-Presenter', 'В чем отличие локализации от интернационализации?' : 'Интернационализация - адаптация продукта для использования везде, локализация - в конкретных регионах', 'От чего зависит отображение сайта в браузере?' : 'Масштаба', 'Чем альфа-тестирование отличается от бета-тестирования?' : 'Кругом лиц', 'Что полезного можно найти в системных логах?' : 'Сообщения об ошибках', 'Что полезного для тестирования хранится в системных логах?' : 'Сообщения об ошибках', 'Как можно посмотреть содержимое icmp-пакетов?' : 'С помощью tcpdump', 'Зачем придумали DNS?' : 'Для информации о доменах', 'Зачем тестировщику ***?' : 'Для тестирования локализации', 'Какой из этих элементов присутствует в трехуровневой архитектуре программного комплекса?' : 'Сервер базы данных', 'Что не используют для измерения объемов памяти?' : 'Киобит', 'Что подразумевается под чек-листами в тестировании?' : 'Список найденых багов', 'Чем отличаются браузеры?' : 'Движком', 'В чем заключается разница между статическим и динамическим тестированием?' : 'Статическое тестирование проводится путем изучения и анализа программного кода без его запуска', 'Расшифруйте аббревиатуру QA.' : 'Quality Assurance', 'Зачем для тестирования используют консоль в браузере?' : 'Для получения дополнительной информации', 'Что из этого не является частью тестирования производительности?' : 'Функциональное тестирование', 'Для чего тестировщику менять ширину канала?' : 'Моделировать проблемы с сетевым подключением', 'Зачем тестировщику консоль в браузере?' : 'Для дополнительной информации', 'Что такое FTP?' : 'Протокол для передачи данных по сети, основан на TCP'} import time import vk import requests import sys def wait(): input('иди нахуй (нажми энтер, чтобы ответить на вопрос)') login = input('login: ') password = input('password: ') session = vk.AuthSession(app_id='2685278', user_login=login, user_password=password) #using KateMobile id vk_api = vk.API(session) params = {'message': '/start', 'peer_id':'-84585194', 'v': '5.38'} vk_api.messages.send(**params) def get_question(): params = {'start_message_id': -1, 'peer_id': '-84585194', 'count': 1, 'v': '5.38'} question = vk_api.messages.getHistory(**params)['items'][0]['body'].split(')')[0][:-2] return question def get_ans(question): ans_str = data.get(question) return ans_str def define_ans(ans_str): params = {'start_message_id': -1, 'peer_id': '-84585194', 'count': 1, 'v': '5.38'} question = vk_api.messages.getHistory(**params)['items'][0]['body'] ans1, ans2, ans3 = question.split(')')[1], question.split(')')[2], question.split(')')[3] ans1 = ' '.join(ans1.split()[:len(ans1.split()) - 1]) ans2 = ' '.join(ans2.split()[:len(ans2.split()) - 1]) ans3 = ' '.join(ans3.split()) dict_ans = {ans1 : '1', ans2 : '2', ans3 : '3'} return dict_ans def post_ans(dict_ans, ans_str): import random if ans_str is None: answer = str(random.randint(1, 3)) else: answer = dict_ans[ans_str] params = {'message': answer, 'peer_id':'-84585194', 'v': '5.38'} vk_api.messages.send(**params) not_done = True while not_done: wait() question = get_question() ans_str = get_ans(question) dict_ans = define_ans(ans_str) post_ans(dict_ans, ans_str) Код data = {'Что такое регрессионное тестирование?' : 'Тестирование, направленное на обнаружение вызванных внесенными изменениями багов в уже существующей функциональности', 'Для чего нужно нагрузочное тестирование?': 'Для анализа изменения состояния приложения под нагрузкой', 'Чем тестирование производительности отличаются от нагрузочного тестирования?' : 'Нагрузочное - при максимальных нагрузках, производительности - время отклика при различных нагрузках', 'Что такое XSS?' : 'Межсайтовый скриптинг', 'Что из перечисленного является устойчивым названием одного из элементов пользовательского интерфейса?' : 'Radio button', 'Какой из этих тестов негативный?' : 'Забегает в бар и заказывает 0 кружек пива', 'Объясните фразу "Я знаю отличную шутку про UDP, но не факт, что она до вас дойдет".' : 'UDP предоставляет ненадёжный сервис', 'Расшифруйте аббревиатуру MVP' : 'Model-View-Presenter', 'В чем отличие локализации от интернационализации?' : 'Интернационализация - адаптация продукта для использования везде, локализация - в конкретных регионах', 'От чего зависит отображение сайта в браузере?' : 'Масштаба', 'Чем альфа-тестирование отличается от бета-тестирования?' : 'Кругом лиц', 'Что полезного можно найти в системных логах?' : 'Сообщения об ошибках', 'Что полезного для тестирования хранится в системных логах?' : 'Сообщения об ошибках', 'Как можно посмотреть содержимое icmp-пакетов?' : 'С помощью tcpdump', 'Зачем придумали DNS?' : 'Для информации о доменах', 'Зачем тестировщику ***?' : 'Для тестирования локализации', 'Какой из этих элементов присутствует в трехуровневой архитектуре программного комплекса?' : 'Сервер базы данных', 'Что не используют для измерения объемов памяти?' : 'Киобит', 'Что подразумевается под чек-листами в тестировании?' : 'Список найденых багов', 'Чем отличаются браузеры?' : 'Движком', 'В чем заключается разница между статическим и динамическим тестированием?' : 'Статическое тестирование проводится путем изучения и анализа программного кода без его запуска', 'Расшифруйте аббревиатуру QA.' : 'Quality Assurance', 'Зачем для тестирования используют консоль в браузере?' : 'Для получения дополнительной информации', 'Что из этого не является частью тестирования производительности?' : 'Функциональное тестирование', 'Для чего тестировщику менять ширину канала?' : 'Моделировать проблемы с сетевым подключением', 'Зачем тестировщику консоль в браузере?' : 'Для дополнительной информации', 'Что такое FTP?' : 'Протокол для передачи данных по сети, основан на TCP'} import time import vk import requests import sys def wait(): input('иди нахуй (нажми энтер, чтобы ответить на вопрос)') login = input('login: ') password = input('password: ') session = vk.AuthSession(app_id='2685278', user_login=login, user_password=password) #using KateMobile id vk_api = vk.API(session) params = {'message': '/start', 'peer_id':'-84585194', 'v': '5.38'} vk_api.messages.send(**params) def get_question(): params = {'start_message_id': -1, 'peer_id': '-84585194', 'count': 1, 'v': '5.38'} question = vk_api.messages.getHistory(**params)['items'][0]['body'].split(')')[0][:-2] return question def get_ans(question): ans_str = data.get(question) return ans_str def define_ans(ans_str): params = {'start_message_id': -1, 'peer_id': '-84585194', 'count': 1, 'v': '5.38'} question = vk_api.messages.getHistory(**params)['items'][0]['body'] ans1, ans2, ans3 = question.split(')')[1], question.split(')')[2], question.split(')')[3] ans1 = ' '.join(ans1.split()[:len(ans1.split()) - 1]) ans2 = ' '.join(ans2.split()[:len(ans2.split()) - 1]) ans3 = ' '.join(ans3.split()) dict_ans = {ans1 : '1', ans2 : '2', ans3 : '3'} return dict_ans def post_ans(dict_ans, ans_str): import random if ans_str is None: answer = str(random.randint(1, 3)) else: answer = dict_ans[ans_str] params = {'message': answer, 'peer_id':'-84585194', 'v': '5.38'} vk_api.messages.send(**params) not_done = True while not_done: wait() question = get_question() ans_str = get_ans(question) dict_ans = define_ans(ans_str) post_ans(dict_ans, ans_str) Ошибка:
api = vk.API(vk.AuthSession(app_id='2685278', user_login=login, user_password=password)) Код api = vk.API(vk.AuthSession(app_id='2685278', user_login=login, user_password=password)) может так надо --- Сообщение объединено с предыдущим 31 июл 2019 https://github.com/voronind/vk/issues/116 ...вот почитай может то что ты хотел
ans3 = ' '.join(ans3.split()[:len(ans3.split()) - 1]) Код ans3 = ' '.join(ans3.split()[:len(ans3.split()) - 1]) попробуй так