Pull to refresh

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


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

Целью этого топика является не столько выполнение именно этого задания, сколько показать, как простыми манипуляциями свернуть огромный массив нудной и однообразной работы в несколько минут.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.