Yoko
http://forum.yoko.com.ua/

Генератор списка для Openfire.
http://forum.yoko.com.ua/viewtopic.php?f=20&t=17372
Page 1 of 1

Author:  Mirage [ 2014-01-06 12:16:08 ]
Post subject:  Генератор списка для Openfire.

Из области "дело было вечером, делать было нечего".
Поставил на работе сервер jabber-а Openfire. Посчитал сколько надо руками забивать юзверев и понял что лениво, а поручить не кому. Под руку подвернулся генератор для лесоруба и после получаса ковыряния и тестов родился вот такой скрипт:

Code:
sub Openfire_gen()
   var i, NumCount, f, f2
   var file=('D:\file.txt')
   var fin=('D:\fin.xml')
   dim  Num[1000]
   dim  Name1[1000]
   dim  Name2[1000]
   dim  Pass[1000]
   uo.textclear()
   f=file(file)
   f.Open()
   fin=file(fin)
   fin.Open()
   NumCount=safe call f.ReadNumber()
   fin.writeln('<?xml version="1.0" encoding="UTF-8"?>')
   fin.writeln('')
   fin.writeln('<Openfire>')
   for i=1 to NumCount
      Num[i]=safe call f.ReadString()
      Name1[i]=safe call f.ReadString()
      Name2[i]=safe call f.ReadString()
      Pass[i]=safe call f.ReadString()

      fin.writeln('  <User>')
      fin.writeln('    <Username>'+Num[i]+'</Username>')
      fin.writeln('    <Password>'+Pass[i]+'</Password>')
      fin.writeln('    <Email>test@mail37.ru</Email>')
      fin.writeln('    <Name>'+Name1[i]+' '+Name2[i]+'</Name>')
      fin.writeln('    <CreationDate>1382777300412</CreationDate>')
      fin.writeln('    <ModifiedDate>1382777300412</ModifiedDate>')
      fin.writeln('    <Roster/>')
      fin.writeln('  </User>')
   next
   fin.writeln('<Openfire>')
   f.Close()
   fin.Close()
end sub


В экселевской табличке делаем список номеров, должностей, ФИО, паролей и копируем в файл file.txt
Quote:
4
a001 Директор Магазин1 пароль
a002 Оператор Магазин1 пароль
b001 Иванищенко Вячеслав пароль
b002 Перекатиполе Петр_Петрович пароль


Именами_Отчествами я не стал особо заморачиваться так как таких не много и проще потом руками поправить.
Почтовые адреса я сделал стандартными - они у нас не завязаны и не у всех есть. У кого есть - дописывал руками.

На выходе получается файл fin.xml
Quote:
<?xml version="1.0" encoding="UTF-8"?>

<Openfire>
<User>
<Username>a001</Username>
<Password>пароль</Password>
<Email>test@mail37.ru</Email>
<Name>Директор Магазин1</Name>
<CreationDate>1382777300412</CreationDate>
<ModifiedDate>1382777300412</ModifiedDate>
<Roster/>
</User>
<User>
<Username>a002</Username>
<Password>пароль</Password>
<Email>test@mail37.ru</Email>
<Name>Оператор Магазин1</Name>
<CreationDate>1382777300412</CreationDate>
<ModifiedDate>1382777300412</ModifiedDate>
<Roster/>
</User>
<User>
<Username>b001</Username>
<Password>пароль</Password>
<Email>test@mail37.ru</Email>
<Name>Иванищенко Вячеслав</Name>
<CreationDate>1382777300412</CreationDate>
<ModifiedDate>1382777300412</ModifiedDate>
<Roster/>
</User>
<User>
<Username>b002</Username>
<Password>пароль</Password>
<Email>test@mail37.ru</Email>
<Name>Перекатиполе Петр_Петрович</Name>
<CreationDate>1382777300412</CreationDate>
<ModifiedDate>1382777300412</ModifiedDate>
<Roster/>
</User>
</Openfire>

который спокойно импортируется в панельке Openfire-а.

В итоге мои 300 с чем то контактов сформировались за долю секунды. :D
Жаль скриптом нельзя их на местах поставить :mrgreen:

Из минусов - проблема с кодировкой. Не получилось сразу в Utf-8 кодировке сделать, приходится пересохранять файл fin.xml. Но это уже глюки инжекта.

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/