Advertisement
tiom4eg

жидкий понос v0.1

Apr 13th, 2022
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.62 KB | None | 0 0
  1. # Libs
  2. import keyboard as kb
  3. import pyautogui
  4. import time
  5.  
  6. positions = [] # Позиции кнопок и текстовых полей
  7. current = [] # Позиции кнопок и текстовых полей для текущего вопроса
  8. is_text = [] # Является ли вопрос текстовым
  9. answers = [] # Ответы на вопросы
  10.  
  11. help_text = """
  12. Документация:
  13. - Для после запуска программы можно открывать тест. Убедитесь, что позиция окна на экране не будет меняться всё время запуска
  14. - Для того, чтобы запомнить кнопку, подведите к ней мышь и нажмите 1. Помните, что кнопку "Ответить" тоже нужно запомнить, но самой последней. Остальные кнопки запоминать в том порядке, в котором они идут сверху вниз
  15. - После перехода на следующий вопрос после вопроса с кнопками нажмите 2, чтобы программа поняла, что предыдущий вопрос завершён
  16. - Если вопрос содержит текстовое поле, после вопроса нажмите 3. Убедитесь, что программа запомнила только два объекта - текстовое поле и кнопку ответа
  17. - После того, как программа запомнила все кнопки, нажмите 4. Программа попросит вас ввести все ответы, после этого она подождет 5 секунд, чтобы вы успели переключиться и начать тест и начнёт сама заполнять их
  18. - Если вы хотите удалить всё, что запомнила программа, нажмите 5
  19. - Если хотите отладить программу (вывести все данные), нажмите 6
  20. - Если вы хотите получить помощь, нажмите 7
  21. """
  22.  
  23. def get():
  24.     return pyautogui.position()
  25.  
  26. def split_button():
  27.     global positions, current, is_text
  28.     positions.append(current)
  29.     is_text.append(0)
  30.     current = []
  31.     print("Запомнил кнопки для вопроса")
  32.  
  33. def split_text():
  34.     global positions, current, is_text
  35.     is_text.append(1)
  36.     positions.append(current)
  37.     current = []
  38.     print("Запомнил кнопки для вопроса с текстом")
  39.  
  40. def read_button():
  41.     global current
  42.     current.append(get())
  43.     print("Запомнил объект")
  44.  
  45. def clear_data():
  46.     global positions, current, is_text
  47.     positions = []
  48.     current = []
  49.     is_text = []
  50.     print("Стёр все")
  51.  
  52. def debug():
  53.     global positions, current, is_text
  54.     print(positions)
  55.     print(current)
  56.     print(is_text)
  57.     print(answers)
  58.  
  59. def help_me():
  60.     print(help_text)
  61.  
  62. def run(sleep_time = 0.5):
  63.     global positions, is_text, answers
  64.     for i in range(len(positions)):
  65.         print(f"Вопрос {i + 1}, ", end="")
  66.         if not is_text[i]:
  67.             print("тип: варианты ответа")
  68.             answer = list(map(int, input("Введите варианты ответа через пробел: ").split(" ")))
  69.             answers.append(answer)
  70.         else:
  71.             print("тип: текст")
  72.             answer = input("Введите правильный ответ без лишних символов: ")
  73.             answers.append(answer)
  74.     print("Удачи")
  75.     for i in range(5):
  76.         print(5 - i)
  77.         time.sleep(1)
  78.     for i in range(len(positions)):
  79.         if is_text[i]:
  80.             pyautogui.moveTo(positions[i][0][0], positions[i][0][1])
  81.             pyautogui.click()
  82.             pyautogui.write(answers[i])
  83.             pyautogui.moveTo(positions[i][1][0], positions[i][1][1])
  84.             pyautogui.click()
  85.         else:
  86.             for num in answers[i]:
  87.                 pyautogui.moveTo(positions[i][num - 1][0], positions[i][num - 1][1])
  88.                 pyautogui.click()
  89.             pyautogui.moveTo(positions[i][-1][0], positions[i][-1][1])
  90.             pyautogui.click()
  91.         time.sleep(sleep_time)
  92.     print("Готово")
  93.  
  94. print(help_text)
  95. kb.add_hotkey("1", read_button)
  96. kb.add_hotkey("2", split_button)
  97. kb.add_hotkey("3", split_text)
  98. kb.add_hotkey("4", run)
  99. kb.add_hotkey("5", clear_data)
  100. kb.add_hotkey("6", debug)
  101. kb.add_hotkey("7", help_me)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement