Trixbox и iMacros

26 Сен
2011

Стоит задача: создать 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

Все. Можно запускать скрипт (именно скрипт, а не макрос) и пойти налить себе кофе.
Целью этого топика является не столько выполнение именно этого задания, сколько показать, как простыми манипуляциями свернуть огромный массив нудной и однообразной работы в несколько минут.
По материалам Хабрахабр.



загрузка...

Комментарии:

Наверх