myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 

> FirstRusHubBot, приводим RusHub к рабочему виду функционалом скриптов

Nickolya
сообщение 2.1.2010, 4:33
Сообщение #1


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Итак, выкладываю скрипт дающий пока небольшой функционал для управления новоиспеченным RusHub'ом.

Что сделано:
  • Приветствие, меняется в отдельном файлике hello.txt, все возможные значения для замены в нем уже присутствуют
  • Регистрация - расширение того, что выложил Илья, теперь команда регистрации доступна только тем кто не зарегистрирован, команда смены пароля, просмотра своего пароля и удаления своей регистрации. По умолчанию удалять свою регистрацию могут только пользователи с профилем 3, менять пароль могут все зарегистрированные. У администраторов теперь есть команды просмотра паролей пользователей, смены профилей пользователей, удаления и добавления регистраций пользователей. Везде ведется контроль за уровнем профиля, т.е. оператор не может добавить к зарегистрированным администратора. Есть мысль регистрировать первого юзера с профилем 0
  • Маленькие команды помощи, просмотра своего айпи и отсылки сообщения от 3 лица.
  • Управление скриптами, двигать пока нет возможности, но все остальное доступно. Работа с логом ошибок так же будет позже.
  • Положено начало системе наказаний командой отключения от хаба, баны будут в следующей версии.

Получилась гибкая легко изменяемая система, команды лежат в файле cmds.lua, по шаблону легко добавляется что угодно. Так же возможные настройки: имя бота и хабтопик, можно задать какие профили будут иметь ключик, за это отвечает параметр bHaveKey таблицы tProfiles что находится в самом начале файла FirstRusHubBot.lua. Пока все, позже будет больше, тестируйте. Для того чтобы стать админом необходимо зарегистрироваться, залезть в файл RegUsers.dat, поменять там параметр ["iProfile"] на 0 рядом с нужным ником, затем перезагрузить скрипты.

Изменения в версии 0.2 по сравнению с предыдущей:
  1. Исправлена совместимость с текущей версией хаба
  2. Ввиду поправленого косяка с функцией скриптов теперь работает управление скриптами
  3. Мониторинг команд профиля, чтобы профиль ниже рангом не мог воздействовать на пользователя имеющего профиль выше
  4. Раширены команды управления регистрацией: пользователь теперь может смотреть свой айпи, администраторы могут смотреть пароли, изменять профиль (забыл про смену пароля юзеру, это записано в todo) и удалять регистрацию пользователей
  5. Команда отключения юзера от хаба


Вот возможности профилей по умолчанию в скрипте на текущую версию:
Администратор
<RusHubBot> *** Доступные вам команды:

*** Команды вашего профиля "администратор":

!mypass - напоминает пароль для входа на хаб. Альтернативы: !мойпароль
!changepass <новый пароль> - меняет пароль необходимый для входа на хаб. Альтернативы: !сменитьпароль
!seepass <ник> - позволяет посмотреть пароль пользователя. Альтернативы: !смотретьпароль
!addreguser <ник> <пароль> <профиль> - добавляет регистрацию ника с заданым паролем и профилем. Альтернативы: !добавитьюзера
!changereguser <ник> <профиль> - меняет профиль у указанного ника. Альтернативы: !поменятьюзера
!delreguser <ник> - удаляет регистрацию пользователя. Альтернативы: !удалитьюзера
!getscripts - показывает список всех скриптов. Альтернативы: !скрипты, !получитьскрипты
!restartscripts - перезапускает все скрипты. Альтернативы: !перезапускскриптов
!startscript <имя скрипта> - запускает указанный скрипт. Альтернативы: !запуститьскрипт
!restartscript <имя скрипта> - перезапускает указанный скрипт. Альтернативы: !перезапуститьскрипт
!stopscript <имя скрипта> - останавливает указанный скрипт. Альтернативы: !остановитьскрипт
!drop <ник> - отключает от хаба выбранного пользователя. Альтернативы: !отключить

*** Глобальные команды:

!help - вот эта справка по командам. Альтернативы: !помощь
!myip - покажет вам ваш ip-адрес. Альтернативы: !мойайпи, !мойип
!me <сообщение> - отправить в чат сообщение от 3 лица. Альтернативы: !ми, !я

Оператор
<RusHubBot> *** Доступные вам команды:

*** Команды вашего профиля "оператор":

!mypass - напоминает пароль для входа на хаб. Альтернативы: !мойпароль
!changepass <новый пароль> - меняет пароль необходимый для входа на хаб. Альтернативы: !сменитьпароль
!seepass <ник> - позволяет посмотреть пароль пользователя. Альтернативы: !смотретьпароль
!addreguser <ник> <пароль> <профиль> - добавляет регистрацию ника с заданым паролем и профилем. Альтернативы: !добавитьюзера
!changereguser <ник> <профиль> - меняет профиль у указанного ника. Альтернативы: !поменятьюзера
!delreguser <ник> - удаляет регистрацию пользователя. Альтернативы: !удалитьюзера
!getscripts - показывает список всех скриптов. Альтернативы: !скрипты, !получитьскрипты
!restartscript <имя скрипта> - перезапускает указанный скрипт.
!stopscript <имя скрипта> - останавливает указанный скрипт.
!drop <ник> - отключает от хаба выбранного пользователя. Альтернативы: !отключить

*** Глобальные команды:

!help - вот эта справка по командам. Альтернативы: !помощь
!myip - покажет вам ваш ip-адрес. Альтернативы: !мойайпи, !мойип
!me <сообщение> - отправить в чат сообщение от 3 лица. Альтернативы: !ми, !я

vip
<RusHubBot> *** Доступные вам команды:

*** Команды вашего профиля "VIP":

!mypass - напоминает пароль для входа на хаб. Альтернативы: !мойпароль
!changepass <новый пароль> - меняет пароль необходимый для входа на хаб. Альтернативы: !сменитьпароль
!drop <ник> - отключает от хаба выбранного пользователя. Альтернативы: !отключить

*** Глобальные команды:

!help - вот эта справка по командам. Альтернативы: !помощь
!myip - покажет вам ваш ip-адрес. Альтернативы: !мойайпи, !мойип
!me <сообщение> - отправить в чат сообщение от 3 лица. Альтернативы: !ми, !я

Пользователь
<RusHubBot> *** Доступные вам команды:

*** Команды вашего профиля "пользователь":

!unreg - удалить свою регистрацию на хабе. Альтернативы: !удалитьрегистрацию
!mypass - напоминает пароль для входа на хаб. Альтернативы: !мойпароль
!changepass <новый пароль> - меняет пароль необходимый для входа на хаб. Альтернативы: !сменитьпароль

*** Глобальные команды:

!help - вот эта справка по командам. Альтернативы: !помощь
!myip - покажет вам ваш ip-адрес. Альтернативы: !мойайпи, !мойип
!me <сообщение> - отправить в чат сообщение от 3 лица. Альтернативы: !ми, !я

Гость
<RusHubBot> *** Доступные вам команды:

*** Команды вашего профиля "гость":

!regme <пароль> - зарегистрироваться на хабе. Альтернативы: !регми, !зарегистрироваться

*** Глобальные команды:

!help - вот эта справка по командам. Альтернативы: !помощь
!myip - покажет вам ваш ip-адрес. Альтернативы: !мойайпи, !мойип
!me <сообщение> - отправить в чат сообщение от 3 лица. Альтернативы: !ми, !я

Прикрепленные файлы
Прикрепленный файл  FirstRusHubBot_v0.2.rar ( 7.59 килобайт ) Кол-во скачиваний: 323
 
Go to the top of the page
+Quote Post
4 страниц V   1 2 3 > »   
Начать новую тему
Ответов
knuckles
сообщение 2.1.2010, 17:04
Сообщение #2


Начинающий
*

Группа: Пользователи
Сообщений: 26
Регистрация: 4.7.2009
Пользователь №: 3 786
Спасибо сказали: 1 раз




я скачал файл кинул папку skript. а потом начинаю активировать скрипт. и пишет ошибку критическую хотя я ничего неделал в скрипте ?
Go to the top of the page
+Quote Post
Setuper
сообщение 2.1.2010, 18:55
Сообщение #3


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




knuckles, этот скрипт написан под RusHub, а не под PtokaX !

Насчет ветки, думаю можно в ближайшее время. А пока могут быть некоторые незначительные изменения api, поэтому, дабы не переписывать по 10 раз скрипты, прямо сейчас, я думаю, не стоит открывать ветку.
Go to the top of the page
+Quote Post
Nickolya
сообщение 5.1.2010, 7:47
Сообщение #4


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Выложил версию 0.2, все изменения в первом посту, пользуйтесь.
Go to the top of the page
+Quote Post
Setuper
сообщение 5.1.2010, 13:27
Сообщение #5


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Ух... Отличная работа!
Единственное только профили сделаны как в птохе:
-1 - анрег
0 - админ
1 - оп
2 - вип
3 - рег

Однако, эта система профилей не очень хороша тем, что анрег выпадает из иерархии (админ < оп < вип < рег, но анрег < админ).
Предлагаю сделать так (чем больше профиль, тем больше статус):
-1 - анрег
0 - рег
1 - вип
2 - оп
3 - админ

Тогда будет иерархическая лестница. И для проверки различных доступов можно будет применять всего одну операцию сравнения. Думаю это логичнее и оптимальнее.
Go to the top of the page
+Quote Post
Wariner
сообщение 5.1.2010, 14:28
Сообщение #6


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




а если сделать как у Колюхи, токо выкинуть профиль анрегов... нафиг он им вообще? т.е. если нет профиля значит анрег)))

Илюх если сделать как у тебя, то мне кажется возникнет проблема с добавлением профилей...
Go to the top of the page
+Quote Post
Setuper
сообщение 5.1.2010, 14:47
Сообщение #7


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Просто в скрипте итак всё построено на знаке сравнения профилей. Поэтому речь о добавлении какого-то ещё профиля тут в принципе не идёт, так как в этом случае порушится вся задумка
Go to the top of the page
+Quote Post
Wariner
сообщение 5.1.2010, 15:03
Сообщение #8


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




но надо сделать так чтоб система профилей была гибкой, а не привязанной к определённому числу....
Go to the top of the page
+Quote Post
Setuper
сообщение 5.1.2010, 15:45
Сообщение #9


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Тогда для иерархической лестницы предлагаю ввести ранее мною упомянутое понятие класса. То есть ставить профилю в соответствие иерархическое значение класса, и проверять права на использование того или иного действия используя команду сравнения для классов, а не для профилей.

Классы можно будет перестраивать после добавления нового профиля. В этом нет проблем, так как классы можно хранить как индексы таблицы, а профили как значения в таблице и добавлять новый класс при помощи функции table.insert(table, class, profile), сдвигая тем самым значения прочих классов.

До добавления нового профиля:

профиль <=> класс
--------------------------
-1(анрег) <=> 1
0(админ) <=> 5
1(оп) <=> 4
2(вип) <=> 3
3(рег) <=> 2

После добавления:

профиль <=> класс
--------------------------
-1(анрег) <=> 1
0(админ) <=> 6
1(оп) <=> 4
2(вип) <=> 3
3(рег) <=> 2
4(модер) <=> 5
Go to the top of the page
+Quote Post
KamoK
сообщение 7.1.2010, 12:10
Сообщение #10


Начинающий
*

Группа: Пользователи
Сообщений: 17
Регистрация: 1.9.2009
Пользователь №: 4 319
Спасибо сказали: 1 раз




Чета непашет у меня етот скрипт(((
Платформа хаба очень понравилась
как тока будут нормальные модули и скрипты сразу переву свой хаб на него)))
Go to the top of the page
+Quote Post
Accelerator
сообщение 7.1.2010, 12:16
Сообщение #11


Developer
******

Группа: Модераторы
Сообщений: 541
Регистрация: 11.11.2008
Пользователь №: 1 075
Спасибо сказали: 244 раза




В связи с выходом новой версии хаба и плагина изменились пути до файлов. Чтобы скрипт заработал, необходимо открыть файл FirstRusHubBot.lua и
Код
    sMainDir = Core.GetMainDir()
    sScriptsDir = Core.GetScriptsDir()

поменять на
Код
    sMainDir = Core.sMainDir
    sScriptsDir = Core.sScriptsDir


Спасибо сказали:
Go to the top of the page
+Quote Post
Nickolya
сообщение 7.1.2010, 17:41
Сообщение #12


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Цитата
Для того чтобы стать админом необходимо зарегистрироваться, залезть в файл RegUsers.dat, поменять там параметр ["iProfile"] на 0 рядом с нужным ником, затем перезагрузить скрипты.
Простите, сейчас немного занят, попробую вскоре сделать новую версию с более широкими возможностями и настройками хаба.
Go to the top of the page
+Quote Post
Setuper
сообщение 5.3.2010, 19:20
Сообщение #13


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Немного отредактировал скрипт. Добавил строку, отвечающую за отсылку ip адресов всех пользователей операторам, а также добавил функцию ContextMenu для использования совместно со скриптом ContextMenu.lua. По умолчанию контекстные менюшки отсылаются при входе. Если у вас установлен скрипт ContextMenu.lua, то для того чтобы менюшки отсылались только по команде, а не при входе нужно в конце функции OnUserEnter закомментировать строку ContextMenu(UID).


Спасибо сказали:
Go to the top of the page
+Quote Post
Otshelnik-Fm
сообщение 5.3.2010, 20:12
Сообщение #14


Я коварный Санта Клаус
******

Группа: Пользователи
Сообщений: 523
Регистрация: 4.11.2008
Из: Саратов
Пользователь №: 985
Спасибо сказали: 54 раза




Когда заккоментировал строку
Код
--Core.SendToUser(UID, sMenu)
, то не отсылается меню "прислать менюшку" если раскомментировать ее (то есть оставить так как было) - то отсылается пользователю "прислать менюшку" но и остальное меню (от FirstRusHubBot) приходит с нею.
Go to the top of the page
+Quote Post
Saymon21
сообщение 5.3.2010, 20:18
Сообщение #15


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




перекачай, у меня сейчас всё нормально.
Go to the top of the page
+Quote Post
Setuper
сообщение 5.3.2010, 20:18
Сообщение #16


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Скрипт ContextMenu.lua не трогаем. Я говорил про комментирование строки в текущем скрипте!
Go to the top of the page
+Quote Post
Otshelnik-Fm
сообщение 5.3.2010, 20:22
Сообщение #17


Я коварный Санта Клаус
******

Группа: Пользователи
Сообщений: 523
Регистрация: 4.11.2008
Из: Саратов
Пользователь №: 985
Спасибо сказали: 54 раза




Спасибо. А я с дуру закомментировал в ContextMenu.lua . FirstRusHubBot.lua - его отредактировать надо. Работает.
Go to the top of the page
+Quote Post
Setuper
сообщение 5.3.2010, 20:22
Сообщение #18


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




В текущем скрипте (FirstRusHubBot) есть функция OnUserEnter. В самом конце этой функции есть вызов функции ContextMenu:
Код
function OnUserEnter(UID)
  ...
  ContextMenu(UID)
end

Комментируем этот вызов:
Код
function OnUserEnter(UID)
  ...
  --ContextMenu(UID)
end


Я оставил этот вызов в скрипте незакомментированным, так как FirstRusHubBot - основной бот и иногда просто необходимо чтобы этот скрипт работал и были доступны только его функции.
Go to the top of the page
+Quote Post
lewonchik
сообщение 11.3.2010, 18:22
Сообщение #19


Начинающий
*

Группа: Пользователи
Сообщений: 20
Регистрация: 12.9.2009
Из: г.Екатеринбург
Пользователь №: 4 427
Спасибо сказали: 0 раз




Код
[Thu Mar 11 20:18:42 2010] E:/VESSEL~1/scripts/FirstRusHubBot.lua:106: attempt to index field '?' (a nil value)

Выскочила ошибка, прошу помочь исправить...
Go to the top of the page
+Quote Post
Setuper
сообщение 11.3.2010, 19:18
Сообщение #20


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




в 106 строчке вместо:
Код
if tProfiles[iProfile].bHaveKey then
напиши:
Код
if tProfiles[iProfile] and tProfiles[iProfile].bHaveKey then


А вообще, эта ошибка означает, что у тебя в таблице tProfiles описаны не все профили, которые используются.
По всей видимости есть какой-нибудь профиль с номером 4 (какой-нибудь модератор) big_smile.gif
Go to the top of the page
+Quote Post

4 страниц V   1 2 3 > » 
Ответить в данную темуНачать новую тему
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts От: FirstRusHubBot
От темы с ID: 2878
3 Satib 5 371 14.2.2013, 20:45 Посл. сообщение: KCAHDEP
No New Posts Topic has attachmentsОт: FirstRusHubBot
От темы с ID: 2878
2 Hellsing 4 467 17.5.2011, 11:35 Посл. сообщение: CrazyKiller

 



RSS Сейчас: 27.11.2024, 3:13