tiom4eg

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

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