30 апр 09:30
6 минут

Текстовый интерфейс для МЭШ


Зачем он нужен?


Интерфейс МЭШ заточен под управление тыками мыши, причём все элементы управления в разных местах (и эти места ещё отличаются для разных режимов / размеров списка учащихся / количества уроков / темы урока и пр.). Каждое действие требует множества тыков в разные точки окна браузера.

Гораздо проще набирать команды текстом, например:

«дз» — вставить текст ДЗ из буфера обмена в поле ввода уже открытого урока;

«иванов 5» — поставить указанную оценку выбранному ученику в уже открытом журнале;

«вт 3 у» — открыть журнал на вкладке «Урок» для третьего урока во вторник — из открытого расписания.


Мой скрипт предоставляет такую возможность. В силу особенностей интерфейса системы, он не универсален и требует некоторой настройки для каждого действия. Зато даёт как увеличение скорости работы, так и уменьшение урона здоровью, которое мы — преподаватели — получаем из-за значительного напряжения глаз и общей нервозности от множества кликов, когда каждый нужный элемент необходимо «поймать» мышью.

Скрипт никак не взаимодействует с базами данных или содержимым страницы — это простое управление мышью.


Скрипт я делала для себя. Но буду рада, если он пригодится и вам, коллеги.

Тестировалось в Яндекс-браузере на группах до 22 человек и максимальном количестве уроков в день — 6 (не считая «окон», которые в расписании не отображаются).


ИНСТРУКЦИЯ


Запускаем МЭШ в Яндекс-браузере.

Страница журнала должна быть открыта в масштабе 90%. Изменение масштаба отображения: [Ctrl]+[+] и [Ctrl]+[-].

Начинаем работу со страницы расписания.

Страница расписания МЭШ, открытая в Яндекс-браузере в масштабе 90%
Страница расписания МЭШ, открытая в Яндекс-браузере в масштабе 90%


► Открываем страницу урока в заданном режиме: урок / журнал

Команда:

день номер у/ж <строк>

где день = пн / вт / ср / чт / пт

номер = 1.6

<строк> (необязательный) = количество строк в теме урока (положение кнопки открытия зависит от длины строки темы)

Например:

вт 3 у
пт 6 ж 4


Тонкости:

• Я не знаю, как ведёт себя журнал, если уроков в вашем расписании больше шести в день без учёта «окон». У меня уроков по семь, но с окном — клеточек в расписании шесть. И они как раз занимают все пространство окна сверху донизу.

При более шести плашек уроков, наверное, либо требуется прокрутка, либо элементы разъезжаются (плашки уменьшаются). В обоих случаях скрипт использовать не получится или требуется подгонка координат.


► Ставим метку «Без домашнего задания» при открытой вкладке «Урок»

Команда:

бдз


► Копируем описание домашнего задания из буфера обмена в поле конкретного урока

Команда:

дз

Текст домашнего задания должен быть заранее скопирован в буфер обмена (например, через [Ctrl]+[C] или меню Правка → Копировать)


► Переходим в режим выставления оценок

Команда:

оценки положение группа

где положение = п / л — к какому краю сетки прижата колонка, куда будут выставляться оценки;

группа = название группы как в файле students.dat

Например:

оценки п 9а1
оценки л 10б


Предварительно:

• МЭШ должен быть открыт в режиме журнала на выбранном уроке

• Колонка оценок должна быть прижата к левому или правому краю сетки (см. скриншот)

Колонка, в которую мы будем выставлять оценки, прижата к правому краю списка.
Колонка, в которую мы будем выставлять оценки, прижата к правому краю списка.

Я не знаю, как это будет работать в начале года для нескольких уроков. Первый очевидно будет автоматически прижат к левому краю, а вот можно ли подвинуть влево второй-третий и т. д., пока не накопится целая страница колонок — надо будет проверять в следующем году.

• В журнале должен быть выбран «Расширенный режим», чтобы окошко выставления оценки распахивалось сверху донизу окна браузера (см. скриншот), иначе это окошко всегда оказывается в разных (непредсказуемых) местах, и скрипт не сможет «поймать» кнопку оценки

«Расширенный режим» журнала (кнопка переключения выделена красным)
«Расширенный режим» журнала (кнопка переключения выделена красным)

• Файл students.dat должен быть заполнен (см. ниже формат файла)

• Для колонки должен быть заранее выбран тип работы (кроме «Домашнего задания», см. дальше).

• Темой урока не может быть «Повторение», т. к. в этом случае требуется выбирать тему для каждой оценки.


► Выставляем оценку ученику в режиме выставления оценок

Команда:

иванов 5 <2>

где иванов = фамилия учащегося в любом регистре

5 = оценка 2.5

<2> (необязательный) — вторая оценка в той же клетке.


► Формат файла students.dat

На каждой строке — сведения об одном ученике.

группа|номер|фамилия

Например

9а1|1|Иванов
9а1|2|Петров
10б|1|Сидоров
и т.д. 

Необязательно вся группа подряд.

Номер должен соответствовать номеру учащегося в списке группы — точно как в МЭШ на странице выставления оценок.


Тонкости:

• Для типа работы «Домашнее задание» добавили дополнительные элементы интерфейса, и теперь кнопки оценок находятся не там, где для других типов.

Я решаю эту проблему так:

— выбираю другой тип работы;

— выставляю оценки;

— меняю тип работы на «домашнее задание»

• Для урока повторения приходится выбирать тему для каждой оценки. Скрипт поставит оценку, но без темы сохранить её не сможет.


Прикреплённые файлы:

► txtgui4mash.exe — скомпилированная автономная программа, ничего не требует, кроме Windows. Запакована в zip-архив, т. к. 12 Mb размером (потому что Python).

► txtgui4mash.py — исходный код программы (если вы боитесь exe-шников или хотите изменить скрипт под свои нужды). Для работы нужно установить библиотеку pyautogui.

► students.dat — пример файла с данными учеников. Должен находиться в той же папке, что и txtgui4mash.exe (или в папке Python-проекта). Кодировка: ANSI (Windows-1251).


txtgui4mash.zip
11.64 MB
students.dat
55.00
txtgui4mash.py
6.40 KB
Бесплатный
Комментарии
avatar
Здесь будут комментарии к публикации