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

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

MyDC.ru _ Служебные скрипты [PtokaX] _ Registrator

Автор: alex82 20.7.2009, 18:58

Registrator

Версия: 1.00 beta
Версия API: API2
Автор: alex82

Описание: Скрипт регистрации юзеров с расширенными возможностями.

Возможности скрипта:
•Контрольные вопросы при регистрации. Вопросы и варианты ответов выдаются в случайном порядке, что усложняет регистрацию спам-ботам.
•Блокирование главного чата и ЛС для незарегистрированных юзеров.
•Возможность запрета/разрешения регистрации с определенных IP и диапазонов IP.
•Возможность запрета множественных регистраций с одного IP.
•Команды для операторов - регистрация юзеров, изменение и удаление аккаунтов.


 Registrator_1.00_beta.rar ( 7.89 килобайт ) : 1696

Автор: whuru 21.7.2009, 0:03

Взял... Затестим...

Автор: Cerberus 21.7.2009, 12:52

ыыыыыыы видел где то пол года назад на одном из хабов в фосе)))но они от него быстро отказались))) надо тож затестить

Автор: alex82 21.7.2009, 13:15

Цитата(Cerberus @ 21.7.2009, 12:52) *
ыыыыыыы видел где то пол года назад на одном из хабов в фосе)))но они от него быстро отказались))) надо тож затестить
what.gif Ты не мог его полгода назад видеть. Я начал писать его неделю назад.

Автор: Drakula 25.7.2009, 11:32

давно искал скрипт где можно изменять: Профиль, присваиваемый юзерам при регистрации
+Вопросы тоже неплохо=) Надеюсь данный скрипт будет развиваться и станет полноценным, т.к. это оч полезный скрипт.
Тер о работе. Пока нечё не нашол на что пожаловаться мона.

Автор: Rez911 16.9.2009, 19:14

Выдает вот такую ошибку не знаю че делать

Код
17.09.2009 00:02:12 - /usr/local/ptokax/scripts/Registrator.lua:14: attempt to index a nil value


Разобрался с ошибкой теперь и на люнексе работает.
Это
Код
path = debug.getinfo(1).source:match("^@(.+\\).-$"):gsub("\\","/").."Registrator/"

заменил на это
Код
path = debug.getinfo(1).source:match("^@(.+[/\\]).-$"):gsub("\\","/").."Registrator/"

Автор: Мультик 25.9.2009, 0:10

Помогите - нужен скрипт для PtokaX 0.4.1.1 Lua 5.1.3 Просто саморегистрация для юзеров с менюшкой, что то все тут перепробовал. Не помогает. Спасибо.

Автор: Артём 25.9.2009, 1:42

Мультик
... папка Registrator (скрипт с первого поста) открывай скрипт - настроек settings.lua и настраивай под свой хаб

Автор: NiceSleep 14.10.2009, 18:41

Для любителей українского язика перевел на с рус. на укр.

 Registrator.rar ( 7.94 килобайт ) : 17

Автор: Артём 14.10.2009, 18:49

Цитата
Для любителей українского язика перевел на с рус. на укр.

laughing.gif laughing.gif extreme_sexy_girl.gif

Автор: alex82 15.10.2009, 2:42

Цитата
Для любителей українского язика перевел на с рус. на укр.
Ещё бы на олбанский перевел...

Цитата
Реєстрація декілька аккаунтов з однієї IP-адреса не вирішується.
Для Вашої IP-адреса не допускається самостійна реєстрація.
Вказаний профіль вищий за Ваше.
Гуглом переводил?

Цитата
Помилка при удалении регистрации
Гугл перешел на суржик...

PS. Видео в тему: http://mydc.ru/r/?http://www.youtube.com/watch?v=5TzZ20A7UTE

Автор: Мультик 19.10.2009, 21:38

Цитата(Артём @ 25.9.2009, 2:42) *
Мультик
... папка Registrator (скрипт с первого поста) открывай скрипт - настроек settings.lua и настраивай под свой хаб

Спасибо.

Автор: m3gap1x3L 23.11.2009, 9:11

Хорошая рега , тока пользователей бесит big_smile.gif) Мне потом писали , ставь обычную регу как была....

Автор: Sergey613 23.11.2009, 23:32

Возможность запрета множественных регистраций с одного IP

А если ИПы раздаются сервером, и меняются при каждом входе в сеть?

Автор: Артём 23.11.2009, 23:50

папка Registrator файл settings
Код
    RegProfile = 3,    -- Профиль, присваиваемый юзерам при регистрации

    ShowToUnreg = y,    -- Отправлять незарегистрированным юзерам сообщение о необходимости регистрации
    ShowToAll = y,    -- показывать всем пользователям, что на хабе новый зарегистрированный участник

    PassMin = 3,    -- Минимальная длина пароля
    PassMax = 24,    -- Максимальная длина пароля
    RandPass = n,    -- Генерировать случайный пароль, если юзер не указал его.
    RandLen = 6,    -- Длина случайно сгенерированного пароля (не менее 2 и не более 14)

    OneNickIP = n,    -- Запрещать регистрацию с одного IP-адреса более одного аккаунта

    Verify = 1,    -- Подтверждение регистрации юзера. 1 - контрольные вопросы. Установите false, чтобы отключить функцию

    CheckIP = n,    -- Проверять IP-адрес юзера при регистрации.
    CheckIPMethod = 1,    -- Метод проверки адреса. 1 - разрешать регистрацию всем юзерам кроме тех, чей адрес содержится в списке. 2 - разрешать регистрацию только адресам из списка.

    CheckRange = n,    -- Проверять IP-адрес юзера по списку диапазонов.
    CheckRangeMethod = 1,    -- Метод проверки адреса. 1 - разрешать регистрацию всем юзерам кроме тех, чей адрес содержится в списке. 2 - разрешать регистрацию только адресам из списка.

Автор: alex82 24.11.2009, 7:32

Цитата(Sergey613 @ 23.11.2009, 22:32) *
А если ИПы раздаются сервером, и меняются при каждом входе в сеть?
Ну, тогда не используй эту функцию.

Автор: Gate001 27.1.2010, 21:53

Ситуация такая-нужно, чтобы функция запрета регистрации многих пользователей с одного ip работала для всех, кроме определенных ip адресов.
Вижу такое решение:
1. Снести из базы данных упоминания о регистрации с айпишника
2. Изменить функцию SaveNickIP() так, чтобы если ip совпадает с исключенным, чтобы он не заносился в базу.
Что нужно добавить, чтобы при определенном ip запись в базу не добавлялась?

Код
function SaveNickIP()
    local f = io.open(tFiles.OneNickIP,"w")
    if f then
        Serialize(tNickIP,"tNickIP",f)
        f:close()
    else
        OnError("Невозможно открыть файл "..Files.OneNickIP)
    end
end

Или хотя бы скажите, в какой функции содержится запись айпишника нового пользователя в базу.

Автор: alex82 31.1.2010, 16:47

Цитата(Gate001 @ 27.1.2010, 20:53) *
Ситуация такая-нужно, чтобы функция запрета регистрации многих пользователей с одного ip работала для всех, кроме определенных ip адресов

Меняешь строку 133
Код
        if tCfg.OneNickIP and tNickIP[user.sIP] then

на эту:
Код
        if tCfg.OneNickIP and tNickIP[user.sIP] and not tMultipleReg[user.sIP] then

После чего можно добавлять IP-адреса в таблицу tMultipleReg:
Код
tMultipleReg = {
    ["123.123.123.123"] = true
    ["111.111.111.111"] = true
}

Автор: baralgin 20.5.2010, 12:54

еще раз спасибо автору за скрипт. но есть такой вопрос: можно ли переделать этот скрипт так, что бы список зарегестрированных пользователей чистился сам, например если с аккаунта не выходили месяц , то он удаляется автоматически. и добавить ограничение на скорость скачки незарегестрированным юзерам. заранее спасибо.

Автор: alex82 20.5.2010, 15:51

baralgin

Цитата
можно ли переделать этот скрипт так, что бы список зарегестрированных пользователей чистился сам, например если с аккаунта не выходили месяц , то он удаляется автоматически
Это можно реализовать отдельным скриптом. Где-то на форуме такой валялся (название даже приблизительно не помню).

Цитата
и добавить ограничение на скорость скачки незарегестрированным юзерам

Это нереализуемо в принципе - скачка происходит напрямую между клиентами, и хаб не может контролировать ее.

Автор: Saymon 20.5.2010, 16:03

Цитата
например если с аккаунта не выходили месяц , то он удаляется автоматически

http://mydc.ru/topic1230.html

Автор: baralgin 20.5.2010, 18:45

по поводу отчиски скрипт помог. а вот по поводу ограничений скорости - при входе на хаб сам сервер не сможет на клиенте юзера поправить настройки? what.gif

Автор: Ksan 20.5.2010, 20:02

Слишком ты много хочешь. Со стороны хаба никак на клиент не повлиять.

Автор: xXx-Portal 3.9.2010, 9:10

Здрасти вам!

Возможно дописать в скрипте запрет на скачку незарегистрированным юзерам?
Просто нужно это, а если есть другой скрипт пожалуста дайте ссылочку, в поиске бродил не нашол(

Автор: alex82 3.9.2010, 13:50

xXx-Portal

http://mydc.ru/index.html?showtopic=1164&view=findpost&p=9560

Автор: xXx-Portal 3.9.2010, 14:02

alex82 - Я так понимаю это нужно дописать в скрипте? baffle.gif

Автор: Nickolya 3.9.2010, 16:16

Можно и исключительно отдельным скриптом дабы не было конфликтов. Конечно, лучше когда скриптов меньше. Пробуй, потом задавай вопросы... Ничего страшного от твоих пары тысяч кривых попыток не случится.

Автор: xXx-Portal 3.9.2010, 17:16

Вот собственно сам скрипт  no_poisk_ska4ka_by_xXx.lua ( 358 байт ) : 19

Сообщение видно что поиск и скачка запрещена!

Однако всё равно ищется и качается.
Наверное дело в скрипте, либо он просто не дописан... nothing_to_say.gif

ЗЫ - В скрипт регистрации дописывал, тоже самое 0

Автор: Nickolya 3.9.2010, 17:29

1. Ставь выше всех. 2. Какая версия апи/хаба у тебя?

Автор: xXx-Portal 3.9.2010, 17:39

птаха 0.4.1.2 апи2
скрипт в верху, результата нету.... after_boom.gif

Автор: Strannik 3.9.2010, 17:57

Проверил на птаха 0.4.1.2 апи2 все работает ищи конфликт с другими скриптами

Автор: xXx-Portal 3.9.2010, 18:13

каким-то чудом у меня тоже заработало waaaht.gif

Автор: Has21 9.9.2010, 14:29

Ptokax 4.1.2
Oc win2003

Переодически выдает ошибку

Код
D:\DC\ptokax\scripts\Registrator.lua:453: invalid capture index
D:\DC\ptokax\scripts\Registrator.lua:197: attempt to index local 'data' (a nil value)

Автор: alex82 9.9.2010, 20:49

Has21

Первая ошибка возникает из-за наличия символа процента в нике юзера, вторая - из-за использования команды смены пароля без аргументов.

Лечатся так:

Код
return (tMsg.Reg:gsub("%[nick%]",user.sNick):gsub("%[pass%]",pass))
заменить на
Код
return (tMsg.Reg:gsub("%[nick%]",user.sNick:gsub("%%","%%%%")):gsub("%[pass%]",pass:gsub("%%","%%%%")))


Код
    [tCmd.NewPass] = function(user,data)
        local tReg = RegMan.GetReg(user.sNick)
        if tReg then
            local pass = data:match("^(%S+)")
            local newpass = data:match("^%S+%s+(%S+)")
            if pass and newpass then
                if tReg.sPassword == pass then
                    RegMan.ChangeReg(tReg.sNick,newpass,tReg.iProfile)
                    return "Пароль изменён. Новый пароль - "..newpass..". Не забудьте исправить пароль в настройках избранного хаба."
                else
                    return "Неверный пароль."
                end
            else
                return "Ошибка синтаксиса. Синтаксис: "..sPrefix..tCmd.NewPass.." <старый пароль> <новый пароль>."
            end
        else
            return "Команда доступна только для зарегистрированных пользователей!"
        end
    end,
заменить на
Код
    [tCmd.NewPass] = function(user,data)
        if data then
            local tReg = RegMan.GetReg(user.sNick)
            if tReg then
                local pass = data:match("^(%S+)")
                local newpass = data:match("^%S+%s+(%S+)")
                if pass and newpass then
                    if tReg.sPassword == pass then
                        RegMan.ChangeReg(tReg.sNick,newpass,tReg.iProfile)
                        return "Пароль изменён. Новый пароль - "..newpass..". Не забудьте исправить пароль в настройках избранного хаба."
                    else
                        return "Неверный пароль."
                    end
                else
                    return "Ошибка синтаксиса. Синтаксис: "..sPrefix..tCmd.NewPass.." <старый пароль> <новый пароль>."
                end
            else
                return "Команда доступна только для зарегистрированных пользователей!"
            end
        end
        return "Ошибка синтаксиса команды"
    end,

Автор: Алекс-Д 11.9.2010, 16:53

Цитата(Артём @ 25.9.2009, 2:42) *
Мультик
... папка Registrator (скрипт с первого поста) открывай скрипт - настроек settings.lua и настраивай под свой хаб

Артём, а как открывать сеттингс? какой прогой? и как настраивать? tire.gif
подскажите пожалуйста! я хочу просто убрать вопросы при регистрации.... как это сделать?

Автор: alex82 11.9.2010, 17:53

Алекс-Д

Notepad++

Автор: xXx-Portal 12.9.2010, 1:55

Алекс-Д

Готовый и настроенный!  Registrator.lua.rar ( 7.89 килобайт ) : 86

Автор: Алекс-Д 12.9.2010, 8:27

Цитата(xXx-Portal @ 12.9.2010, 2:55) *
Готовый и настроенный!  Registrator.lua.rar ( 7.89 килобайт ) : 86

чем он отличается от того,что в шапке? feel_good.gif

Цитата(alex82 @ 11.9.2010, 18:53) *
Notepad++

установил ноутпад, вставил там n в менюшке про вопросы.. ситуация не изменилась.. tire.gif подскажите пожалуйста- как правильно редактировать? что нужно сделать что бы вопросы убрать при реге?

Всё,разобрался.. still_dreaming.gif надо было в самой птохе перезапустить скрипты.. ) всё работает!

Автор: sexynapku 11.12.2010, 12:07

Привет всем =)

скажите как сделать чтобы сообщение "что вы не зарегистрированы"приходила в лч а не в общий чат ?

Автор: Артём 11.12.2010, 13:50

sexynapku,
в самом скрипте 46 строка
место

Код
ToUser(user,tMsg.Unreg)

сделай
Код
PmToUser(user,tMsg.Unreg)
big_smile.gif

Автор: ProGeTTo 12.12.2010, 20:11

Отличный скрипт! Спасибо!
Ещё б функцию "Напоминание пароля" и вообще идельно) baffle.gif

Автор: sexynapku 13.12.2010, 13:03

подскажите как сделать чтобы сообщение что вы зарегистрированы шло в лч а не в общий чат ?)

Автор: Ksan 13.12.2010, 13:53

sexynapku, Ты ведь уже спрашивал 2 дня назад тут же то же самое и тебе уже ответили и ты даже "спасибо" нажал! В чём дело?

Автор: Saymon 13.12.2010, 14:06

sexynapku,
http://mydc.ru/topic118.html

Автор: sexynapku 13.12.2010, 15:14

там было другое

Цитата
скажите как сделать чтобы сообщение "что вы не зарегистрированы"приходила в лч а не в общий чат ?

не нашел (((
я знаю что там надо pm написать надо пред чем то только не знаю перед чем додскажи

привет помоги с тем скриптом регистрации

Автор: Enyby 13.12.2010, 20:30

Опиши конкретнее что нужно. Перенаправить только одно конкретное сообщение или перенести весь диалог в ЛС?

Автор: Артём 13.12.2010, 22:00

sexynapku, я же написал, что нада в основном скрипте/коде изменить!!! bad_smile.gif

Автор: Enyby 13.12.2010, 23:18

Артём, Там не все так тривиально , как может показаться. Это не самый простой скрипт для понимания неподготовленным человеком.

Автор: Артём 13.12.2010, 23:31

Enyby, я включил скрипт, прописал отправку в ЛС, сработало, а потом написал что и где сменить, если у него руки не с того места, он сам виноват big_smile.gif

Автор: sexynapku 14.12.2010, 10:50

Надо ,когда юзер зарегистрировался после етого ему приходит лч что вы зарегистрированы

как это лч сделать чтобы бело в лч а не в общий чат

Автор: Ksan 14.12.2010, 11:06

sexynapku, прочти своё сообщение. Из него видно, что сообщение уже приходит в личку.
И вообще, тебе уже давали ссылку http://mydc.ru/topic118.html

Автор: sexynapku 14.12.2010, 11:19

НЕТ !!!! Вот это сообщение

Цитата
[14:18:53] <Палата> Вы были зарегистрированы на Hot-хабе. Ваш ник:Помогите!!!, пароль:12345. Не забудьте переподключиться к хабу!

Теперь для входа на хаб под вашим ником необходимо знать пароль. Вы можете вводить его каждый раз вручную, либо прописать пароль в настройках клиента.
Для этого найдите в списке избранных хабов (Ctrl+F) этот хаб, зайдите в его свойства и пропишите в строках Ник (Nick) и Пароль (Password) ваши ник и пароль.

Автор: Accelerator 14.12.2010, 11:37

В Registrator.lua

Код
return (tMsg.Reg:gsub("%[nick%]",user.sNick):gsub("%[pass%]",pass))
на
Код
return PmToUser(user, (tMsg.Reg:gsub("%[nick%]",user.sNick):gsub("%[pass%]",pass)))

Автор: Enyby 14.12.2010, 15:09

Я не знаю что вы там делали, но я поставил скрипт и он по дефолту пишет все в ЛС.

Автор: STIVAN 31.3.2011, 0:56

А можно его переделать, этот скрипт с потверждением регистрациии операторам или мастером. (Именно этот скрипт)
И что бы показываало в статистике хаба: Последний зарегистрировавшийся пользователь: .....

Сделайте пожалуйста, очень вас прошу.
Спасибо.

Автор: CrazyKiller 8.5.2011, 17:36

Всё отлично, вот только пишет ошибку Синтаксис [string "y,n = true,false..."]:2: attempt to index a nil value
на 0.4.1.2 Птоке, как решить ?

Автор: Артём 8.5.2011, 20:33

CrazyKiller, быть такого не может, конечно если ты что-то сам не удалял в скрипте, а скрипт рабочий, только что на 0.4.1.2 проверил big_smile.gif
P.S. Я всё конечно понимаю, но вот спамить не хорошо!!! Я, тебе CrazyKiller!!! choler.gif

Автор: DemonHunter614 15.2.2012, 23:05

Юзеру не отправляется сообщение:
1 о том что его зарегил опер
2 о том что сменили профиль (на вип и на рег)
3 о смене пароля (не отправляется новый пароль)

Автор: uswer 15.9.2013, 0:17

Версия PtokaX 0.5.0.0
Если в settings.lua параметр Verify = 1,
То первый вопрос верификации приходит в ПМ однако ответ там не воспринимается.
Если ответить в главный чат, то все остальные вопросы выходят в главном чате и как бы с регистрацией проблем нет.
Пришлось временно поставить Verify = n, дабы работало без верификации на человечность.

Есть мысли как побороть, чтобы в ПМ тоже все работало?

Автор: Mustang 3.1.2014, 15:10

скрипт работает хорошо. пока багов не замечано. автору спасибо. других штуки 3 перепробовал, птока ругался на синтаксис, тут же все отлично.
верификация проходит, вопросы все в личке задаются. в чат не дает писать если не зареган.
версия PtokaX DC Hub 0.5.0.1

Автор: PAUK 23.4.2014, 16:49

глупый наверное вопрос но зачем 2 меню, меню админестрации и юзер если в них все одно и тоже как убрать меню юзер оно совершенно никчему

Автор: alex82 23.4.2014, 16:52

В первом меню лежат общие команды, а во втором - команды, применимые к конкретному юзеру. Убрать можно открыв файл скрипта в блокноте и закомментировов лишние строки.

Автор: Дьяволёнок 2.6.2014, 0:56

спасибо

Автор: jemmini 5.6.2018, 22:10

пожалуйста, посоветуйте регистратор под PtokaX 0.5.2.2 с lua 5.3

Автор: KCAHDEP 6.6.2018, 5:51

Походу нет такого. А вообще на птоку уже даже разраб забил. Сейчас развивается только Verlihub http://mydc.ru/r/?https://github.com/VerliHub/verlihub