Как стать автором
Обновить

Trixbox и iMacros

Стоит задача: создать 300 аккаунтов в IP PBX Trixbox.
Исходные данные: 300 соответствующих пар номеров и паролей.

Trixbox управляется с помощью web-интерфейса. Поэтому для создания пользователей необходимо заполнить немаленькую форму 300 раз, причем отличия состоят только в идентификаторах и паролях. Постараемся упростить эту нелегкую задачу.


Для начала нам необходимо создать макрос создания аккаунтов. Для этого воспользуемся известным аддоном к броузеру Firefox — iMacros. Все очень просто — нажимаем «Запись», создаем пользователя, нажимаем «Стоп». По результату получаем примерно такой вот макрос:

VERSION BUILD=6700624 RECORDER=FX
TAB T=1
FRAME F=1
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:frm_extensions ATTR=NAME:Submit&&VALUE:Submit
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:frm_extensions ATTR=ID:extension CONTENT=1101
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:frm_extensions ATTR=ID:name CONTENT=1101
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:frm_extensions ATTR=ID:sipname CONTENT=1101
TAG POS=1 TYPE=SELECT FORM=NAME:frm_extensions ATTR=ID:callwaiting CONTENT=%disabled
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:frm_extensions ATTR=ID:devinfo_secret CONTENT=sCrtpass
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:frm_extensions ATTR=ID:langcode CONTENT=ru
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:frm_extensions ATTR=NAME:Submit&&VALUE:Submit


Сохраняем его к примеру trixbos.iim

Следующим шагом будет подготовка исходных данных в необходимый формат. Нам нужен формат — CSV с разделителями запятыми. Сделать это будет очень просто, особенно, если данные у нас хранятся в какой-нибудь таблице, с помощью того же Exel или LibreOffice Calc. В итоге получаем наш tb-pswd.csv и кладем его в папку Datasources. Вы ее найдете в ДомашняяПапка -> iMacros.

Едем дальше. В iMacros создаем скрипт такого содержания:

var i;

for (i=1;i<=300;i++){
iimSet("LINE",i);
iimPlay("trixbox.iim",60);
}


Этот скрипт 300 раз вызывает макрос trixbox.iim, передавая ему параметр LINE, равный номеру вызова. Все просто.
Правим наш макрос:

VERSION BUILD=6700624 RECORDER=FX
TAB T=1
FRAME F=1
CMDLINE !DATASOURCE tb-pswd.csv
SET !DATASOURCE_COLUMNS 2
SET !DATASOURCE_LINE {{LINE}}
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:frm_extensions ATTR=NAME:Submit&&VALUE:Submit
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:frm_extensions ATTR=ID:extension CONTENT={{!COL1}}
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:frm_extensions ATTR=ID:name CONTENT={{!COL1}}
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:frm_extensions ATTR=ID:sipname CONTENT={{!COL1}}
TAG POS=1 TYPE=SELECT FORM=NAME:frm_extensions ATTR=ID:callwaiting CONTENT=%disabled
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:frm_extensions ATTR=ID:devinfo_secret CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:frm_extensions ATTR=ID:langcode CONTENT=ru
TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:frm_extensions ATTR=NAME:Submit&&VALUE:Submit


Все. Можно запускать скрипт (именно скрипт, а не макрос) и пойти налить себе кофе.

Целью этого топика является не столько выполнение именно этого задания, сколько показать, как простыми манипуляциями свернуть огромный массив нудной и однообразной работы в несколько минут.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.