Что нового

[Автоматизация] JAdmin v2 - бот для администрирования по протоколу Jabber + Plugins!

Nik_rus

Python The Snake.
Сообщения
214
Репутация
62
AutoIt: >= 3.1
Версия: 2.0

Категория: Администрирование, Автоматизация, Вспомогательные функции, Разное

Описание: JAdmin v2.0 AutoIt Edition - это тот же JAdmin, но теперь с очень приятной фичей - плагинами.
Да-да, вы не "очитались", с плагинами. Причем плагины на том же Au3. Таким образом можно спокойно добавлять свои функции не разбирая тонны кода в теле бота.
И, может для кого-то -, может для кого-то +, теперь, чтобы плагины подгружались динамически, нужно держать бота в OpenSource режиме, т.е. не компилированным. Но если очень надо - можно сделать компилированную версию с предустановленной связкой плагинов.
Starter.au3 - Старт бота с подгрузкой плагинов.
GetPlugins.au3 - Собрать плагины для компиляции.
Plugins4AutoIt... LIVE!

Стадия разработки: Добавление фенечек и переписывание функций в плагины. Так-то!
TODO:
* Поставить Pre функции а-ля блокировщики других функций (для WModa и банов)
* Доделать WMod (Pre, массивы админов)
* Добавить систему событий (выключение/включение и т.д.)

Код/Пример: Пример плагина
Код:
_RegisterPlugin("[!./]testplug","_StartTestPlugin","Test plugin")

Func _StartTestPlugin($from,$messbody,$sock)
	_JabMsg($from,"Testing ok",$sock)
EndFunc

Синтаксис плагина:
Код:
_RegisterPlugin("команда, на которую реагировать (в стиле регекспа)","вызываемая функция","Описание плагина")
Func _ВашаФункция($от_кого,$тело_сообщения,$sock)
    ; тут весь функционал...
EndFunc

Файл: Скачать
WARNING: Т.к. выкладываю dev версию, кое-что может не работать (WMod если не ошибаюсь не доделан). Сильно не пинайте :smile:.

История версий:
v2.0
Немного переделана библиотека Jabber.
Добавлена поддержка плагинов.
Пофиксена проблема с download (RegExp и InetGet)
v1.4
Баг-фиксы и новые функции.
!wmod <file>, !wsave и !wcancel - отмена без сохранения
!cnt <file> - содержание файла file
!addadmin <jid> - добавляет нового админа
!deladmin <jid> - удаляет админа
!login <пароль> - вход в систему для jid, не перечисленных в admins
!logout - выход изи сессии
!rb - перезагрузка бота (вобщем сделал скорее для себя... так как надоело при выловке багов перезапускать эту махину)
!logoff - выход из сессии винды
!download <файл в интернете> <локальный путь> - качает файл <инет> в файл <локальный>
!ban <jid> - забанить jid
!unban <jid> - разбанить jid
!banlist - список забаненых
!admins - админы онлайн
v1.3
Разделение бота на тело, функции бота и функции протокола.
v1.2
Баг-фиксы, новые функции.
!cnt <файл> - показывает контент файла
!wmod <файл> - режим создания файла
В пежиме создания:
<строка> - ввод строки
!wmsave - сохранение всех изменений
v1.1
Баг-фиксы для первой версии.
v1.0
Самая первая версия, релиз.
!help - вывод команд, описаных ниже
!cmd <команда> - командная строка (имхо, самое полезное)
!tree <папка> - выводит список файлов - [папок]
!sd - вырубает бота
!plist - лист процессов
!cln <path> - очищает папку (!cln %WINDIR% :DD)
!del <file or path> - удаляет папку или файл
!drv - лист дисков (Fixed = жескач, Removable = флоппи, CDROM = сиди/дивиди-ром)
!kill <процесс> - убить процесс
!send <кому> <что> - отсылка сообщения
!tsd - вырубить комп
!reboot - перезагрузить комп

Автор(ы): Nik_rus
 
Автор
N

Nik_rus

Python The Snake.
Сообщения
214
Репутация
62
Файл с первой версией и все фиксами был перезалит втрой версией.
Ждем перевода всех функций в плагины :D.
 

spider_xr

Знающий
Сообщения
14
Репутация
7
эм.. функция _AdminAdd добавляет админа +/ресурс, а при проверки на одминские прова функцией _IsAdmin этот самый "/ресурс" игнорируется. таким образом если вы залогинились используя метку бот не будет выполнять команды даже если вы админ

з.ы. просто добавить в _AdminAdd (_AdminDelete) игнор метки
 

beve

Осваивающий
Сообщения
104
Репутация
31
Маленькое уточнение: В скрипте Bot.au3, идет неправильный вызов функции - _JabStart($jid,$jidpass,$port,$res), ибо параметр $res не задан в строке Global $socket = _JabStart($jid,$jidpass,5222), а исходя из функции должен быть задан обязательно. Для исправления можно исправить эту строку так: Global $socket = _JabStart($jid,$jidpass,5222,"jaba").
 
Автор
N

Nik_rus

Python The Snake.
Сообщения
214
Репутация
62
spider_xr сказал(а):
эм.. функция _AdminAdd добавляет админа +/ресурс, а при проверки на одминские прова функцией _IsAdmin этот самый "/ресурс" игнорируется. таким образом если вы залогинились используя метку бот не будет выполнять команды даже если вы админ

з.ы. просто добавить в _AdminAdd (_AdminDelete) игнор метки
Fixed, ссылка изменена
beve сказал(а):
Маленькое уточнение: В скрипте Bot.au3, идет неправильный вызов функции - _JabStart($jid,$jidpass,$port,$res), ибо параметр $res не задан в строке Global $socket = _JabStart($jid,$jidpass,5222), а исходя из функции должен быть задан обязательно. Для исправления можно исправить эту строку так: Global $socket = _JabStart($jid,$jidpass,5222,"jaba").
Fixed
 

grayvolf

Новичок
Сообщения
1
Репутация
0
Пробую запускать бота, что то не пойму в чем косяк. В общем сокет открывает, но дальше никакой реакции. Отправляешь что либо боту - он молчит. Вероятно не проходит аутентийикацию либо что-то еще. Пытаюсь отследить что отвечает сервер на пакеты авторизации:
Код:
TCPSend($socket, "<iq type='get' to='" & $server & "' id='auth1'><query xmlns='jabber:iq:auth'><username>" & $JabUser & "</username></query></iq>")

	$txt = TCPRecv($socket, 2048)
	MsgBox(0, "_jabauth_1", ($txt))

в результате в переменной $txt почему то не строка а значение 0x15030100020250. Попытки конвертировать ее в текст ни к чему не приводят. В чем может быть трабл не пойму.
 
Автор
N

Nik_rus

Python The Snake.
Сообщения
214
Репутация
62
Опишите подробнее, на каком сервере/как вы подключаетесь, потому что такого быть не может :smile:.
И отследите параметры - может сервер или юзер неверный.
 

simeo

Новичок
Сообщения
4
Репутация
0
Ссылка не работает

Nik_rus сказал(а):
AutoIt: >= 3.1
Версия: 2.0

Категория: Администрирование, Автоматизация, Вспомогательные функции, Разное

Описание: JAdmin v2.0 AutoIt Edition - это тот же JAdmin, но теперь с очень приятной фичей - плагинами.
Да-да, вы не "очитались", с плагинами. Причем плагины на том же Au3. Таким образом можно спокойно добавлять свои функции не разбирая тонны кода в теле бота.
И, может для кого-то -, может для кого-то +, теперь, чтобы плагины подгружались динамически, нужно держать бота в OpenSource режиме, т.е. не компилированным. Но если очень надо - можно сделать компилированную версию с предустановленной связкой плагинов.
Starter.au3 - Старт бота с подгрузкой плагинов.
GetPlugins.au3 - Собрать плагины для компиляции.
Plugins4AutoIt... LIVE!

Код/Пример: Пример плагина
Код:
_RegisterPlugin("[!./]testplug","_StartTestPlugin","Test plugin")

Func _StartTestPlugin($from,$messbody,$sock)
	_JabMsg($from,"Testing ok",$sock)
EndFunc

Синтаксис плагина:
Код:
_RegisterPlugin("команда, на которую реагировать (в стиле регекспа)","вызываемая функция","Описание плагина")
Func _ВашаФункция($от_кого,$тело_сообщения,$sock)
    ; тут весь функционал...
EndFunc

Файл: Скачать

История версий:
v2.0
Немного переделана библиотека Jabber.
Добавлена поддержка плагинов.
v1.4
Баг-фиксы и новые функции.
!wmod <file>, !wsave и !wcancel - отмена без сохранения
!cnt <file> - содержание файла file
!addadmin <jid> - добавляет нового админа
!deladmin <jid> - удаляет админа
!login <пароль> - вход в систему для jid, не перечисленных в admins
!logout - выход изи сессии
!rb - перезагрузка бота (вобщем сделал скорее для себя... так как надоело при выловке багов перезапускать эту махину)
!logoff - выход из сессии винды
!download <файл в интернете> <локальный путь> - качает файл <инет> в файл <локальный>
!ban <jid> - забанить jid
!unban <jid> - разбанить jid
!banlist - список забаненых
!admins - админы онлайн
v1.3
Разделение бота на тело, функции бота и функции протокола.
v1.2
Баг-фиксы, новые функции.
!cnt <файл> - показывает контент файла
!wmod <файл> - режим создания файла
В пежиме создания:
<строка> - ввод строки
!wmsave - сохранение всех изменений
v1.1
Баг-фиксы для первой версии.
v1.0
Самая первая версия, релиз.
!help - вывод команд, описаных ниже
!cmd <команда> - командная строка (имхо, самое полезное)
!tree <папка> - выводит список файлов - [папок]
!sd - вырубает бота
!plist - лист процессов
!cln <path> - очищает папку (!cln %WINDIR% :DD)
!del <file or path> - удаляет папку или файл
!drv - лист дисков (Fixed = жескач, Removable = флоппи, CDROM = сиди/дивиди-ром)
!kill <процесс> - убить процесс
!send <кому> <что> - отсылка сообщения
!tsd - вырубить комп
!reboot - перезагрузить комп

Автор(ы): Nik_rus
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
simeo [?]
Ссылка не работает
Ну и зачем цитировать всё сообщение?

Nik_rus
Название темы неприемлемо, переименуй пожалуйста тему в соответствий с правилами.
 

simeo

Новичок
Сообщения
4
Репутация
0
Извините за сообщение, прежде чем я наконец нашел ссылку. Кажется, что отправка файлов не будет работать с версии 2.0, я думал, что это была проблема с моим Jabber сервер и пытался подключиться к jabber.org, но тоже не работает, вы помогли отправлять файлы и для подключения к jabber.org?

Приветствия и благодарности
 
Автор
N

Nik_rus

Python The Snake.
Сообщения
214
Репутация
62
Link updated, Fixed some bugs with Regular Expression and InetGet retrieve.
---
Ссылку обновил, пофиксил баг с регуляркой в загрузке и InetGet (он на success возвращает не 1, а кол-во скачанных байт).
 

simeo

Новичок
Сообщения
4
Репутация
0
Exactly! inetget=1 is incorrect, must be inetget>0. I can't find the improved version, where is the new link ? Thanks a lot
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Nik_rus
simeo
Эмм... я что то упускаю? Вам хочется пообщаться по английский, тогда в ПМ или на оф. форум.
 

simeo

Новичок
Сообщения
4
Репутация
0
Извините, к сожалению, не все из русских (я использую Google переводчик) и я не могу понять смысл ваших слов. Приветствия
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
simeo [?]
я не могу понять смысл ваших слов
Please use PM to talk on english, this is a Russian Community forum, for english you have the official forum (http://autoitscript.com/forum/).
 
Автор
N

Nik_rus

Python The Snake.
Сообщения
214
Репутация
62
OffTopic:
я просто на офф форуме не выставлял JAdmin :smile:
 

xklx

Новичок
Сообщения
50
Репутация
3
В функции _HelpMe() два раза написано sendfile <file> :smile:
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
домен каюкнулся?
 

MaLiVer

Новичок
Сообщения
7
Репутация
1
Пытаюсь скачать. Что-то ссылка не работает, проверьте!
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Домен упал. У кого остался JAdmin выложить его в приложениях - я изменю в шапке
 
Верх