Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Запросы скриптов для PtokaX _ Требуется скрипт

Автор: Nikolaevich 19.4.2016, 0:09

Друзья, нужен скрипт, который бы запрещал некоторым видам клиентов подключение к хабу (например Shareaza)

Автор: Ksan 19.4.2016, 21:59

Nikolaevich,
Вот простецкий скриптик, работает через sTag (хотя можно было бы и через sClient сделать). В таблицу можете сами добавить других клиентов по аналогии с уже включенным. Если не хотите уведомлять юзера перед дисконнектом о неправильном клиенте, можете закомментить ту строку.

Код
Код
local sBot = SetMan.GetString(21)
tClients = {
    "Shareaza",
--    (тут можете вписать другие названия нехороших клиентов, присутствующие в тэгах)
}

function UserConnected(tUser)
    if tUser.sTag then
        for i = 1, #tClients do
            if tUser.sTag:find(tClients[i]) then
                Core.SendToNick(tUser.sNick, "<"..sBot..">: *** В наш хаб запрещено заходить через ваш клиент.")
                Core.Disconnect(tUser)
                break
            end
        end
    end
end
RegConnected = UserConnected

Но учтите, многие клиенты имеют возможность в настройках подменять название клиента. Если юзер воспользуется этим, то скрипт не поможет. Но ваша совесть будет чиста.
Если не хотите пускать юзеров без тэга (а такие могут быть), можете в настройках хаба запретить таким вход (либо перенаправить в другой хаб).

Автор: 0 16.8.2016, 4:45

Цитата(Ksan @ 19.4.2016, 22:59) *
Nikolaevich,
Вот простецкий скриптик, работает через sTag (хотя можно было бы и через sClient сделать). В таблицу можете сами добавить других клиентов по аналогии с уже включенным. Если не хотите уведомлять юзера перед дисконнектом о неправильном клиенте, можете закомментить ту строку.
Код
Код
local sBot = SetMan.GetString(21)
tClients = {
    "Shareaza",
--    (тут можете вписать другие названия нехороших клиентов, присутствующие в тэгах)
}

function UserConnected(tUser)
    if tUser.sTag then
        for i = 1, #tClients do
            if tUser.sTag:find(tClients[i]) then
                Core.SendToNick(tUser.sNick, "<"..sBot..">: *** В наш хаб запрещено заходить через ваш клиент.")
                Core.Disconnect(tUser)
                break
            end
        end
    end
end
RegConnected = UserConnected

Но учтите, многие клиенты имеют возможность в настройках подменять название клиента. Если юзер воспользуется этим, то скрипт не поможет. Но ваша совесть будет чиста.
Если не хотите пускать юзеров без тэга (а такие могут быть), можете в настройках хаба запретить таким вход (либо перенаправить в другой хаб).

Сможешь на RusHub перевести?!

Автор: Артём 19.8.2016, 19:20

000000, http://mydc.ru/r/?http://wiki.mydc.ru/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8_Lua_API_%D0%B2_RusHub сам пробуй переводить, ничего сложного там нет.

Автор: 0 20.8.2016, 14:56

Юзер на хабе сидит с таким ТЭГОМ - <++ V:0.674,M:A,H:1/1/1,S:9> Подскажите пожалуйста, каким клиентом пользуется юзер!

Цитата(Ksan @ 19.4.2016, 21:59) *
Nikolaevich,
Вот простецкий скриптик, работает через sTag (хотя можно было бы и через sClient сделать). В таблицу можете сами добавить других клиентов по аналогии с уже включенным. Если не хотите уведомлять юзера перед дисконнектом о неправильном клиенте, можете закомментить ту строку.
Код
Код
local sBot = SetMan.GetString(21)
tClients = {
    "Shareaza",
--    (тут можете вписать другие названия нехороших клиентов, присутствующие в тэгах)
}

function UserConnected(tUser)
    if tUser.sTag then
        for i = 1, #tClients do
            if tUser.sTag:find(tClients[i]) then
                Core.SendToNick(tUser.sNick, "<"..sBot..">: *** В наш хаб запрещено заходить через ваш клиент.")
                Core.Disconnect(tUser)
                break
            end
        end
    end
end
RegConnected = UserConnected

Но учтите, многие клиенты имеют возможность в настройках подменять название клиента. Если юзер воспользуется этим, то скрипт не поможет. Но ваша совесть будет чиста.
Если не хотите пускать юзеров без тэга (а такие могут быть), можете в настройках хаба запретить таким вход (либо перенаправить в другой хаб).

Скрипт нерабочий и пропускает все клиенты! Поставил Shareaza в запреты на вход, попробовал зайти с клиента Shareaza и МЕНЯ ПРЕКРАСНО ПУСТИЛО на хаб!

Автор: Ksan 20.8.2016, 19:52

000000, должен бы работать. Ах, да, надо было ещё одну строку добавить в скрипт:

Код
function UserConnected(tUser)
    Core.GetUserAllData(tUser)  --  это новая строка

Но всё же рекомендую поднять скрипт выше всех остальных, чтоб при попытке зайти с запрещённым клиентом юзер получал как можно меньше информации. Если поднять на самый верх, он получит только такое сообщение от хаба типа этого:
Цитата
[23:45:41] <-Bot-Test> Этот хаб работает под управлением PtokaX DC Hub 0.5.0.1 mod 9 (Время работы: 0 дней, 0 часов, 10 минут / Юзеры: 0)
[23:52:44] <-Bot-Test>: *** В наш хаб запрещено заходить через ваш клиент.
[23:52:44] *** This socket has been closed...

Если так не сделать. лично в моём хабе юзер получит кучу информации о хабе, о самом себе, некоторые предупреждения, рекомендации, лог чата.. big_smile.gif А зачем они, если ты его всё равно выкидываешь..