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

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

MyDC.ru _ Запросы скриптов для PtokaX _ Есть ли такой скрипт?

Автор: dj hoodo 11.2.2012, 17:24

в общем, надо бы изменить домен. старый на новый. старый пока работает, но как долго он будет работать.. ХЗ
есть ли скрипт для PtokaX. который может переписать адрес хаба в настройках favarites клиентов?
или что можно предпринять, кроме предупреждения на самом хабе?

Автор: Ksan 11.2.2012, 17:44

Пора бы уже знать, что на клиенте ты ничего не можешь менять с хаба, хоть тресни..
Посылать каждому при каждом входе в личку и в чате оповещение о новом адресе, пусть помнят и держат под рукой. И так до тех пор, пока не перейдёте на новый адрес.
И поспеши, а то можешь остаться без юзеров, если вдруг сегодня/завтра старый домен умрёт.

Автор: dj hoodo 11.2.2012, 20:53

значит я фигню спросил. big_smile.gif спасибо.
тогда переформулирую вопрс:
хаб подключен к 2м сетям. локальная и внешняя.
меняется только внешний домен.
есть ли возможность отправить сообщение только юзерам с внешней сети? или только тем, у кого "неправильный" домен?

Автор: Артём 11.2.2012, 22:21

Цитата
есть ли возможность отправить сообщение только юзерам с внешней сети?

так можно. big_smile.gif
Возьми http://mydc.ru/topic5051.html скрипт и попробуй подогнать под свои нужды.

Автор: dj hoodo 12.2.2012, 1:23

да тут как я понял надо вычленить функцию редиректа, чтоб сообщение было а редиректа небыло. ибо редиректить некуда.
Артём, получает благодарность,с занесением в грудную клетку big_smile.gif Только скрипт в теме запакуй в архив zip (линукс детектед нет винрар), ато он вместо скачивания просто открывается в браузере..
Кто подскажет, где закоментировать, чтоб редирект не срабатывал? я если чесно в этом не в зуб ногой big_smile.gif

Скрипт?
Код
--------------------------------------------------------------------------------------------------------------------------------------------
-- Скрипт редиректа всех чья шара ниже iMinShare , кроме IP-диапазонов внисенных ниже в таблицу tRanks , их просто отключаем с сообщением --
-- Автор: Nickolya ( Портал для админов http://MyDc.ru )                                                                                  --
--------------------------------------------------------------------------------------------------------------------------------------------
-- Адрес хаба на который редиректим
local sAddress = "dchub://123"
-- Сообщение которое получают пользователи при редиректе
local sMsg = "Вы перенаправленны из-за недопустимо маленькой шары. "
--Диапозон IP который не редиректим
local tRanks = {
{"10.0.0.0","10.255.255.255"},
{"172.16.0.0","172.16.255.255"},
{"192.168.0.0","192.168.255.255"},
{"172.20.0.0","172.20.255.255"},
}
-- Минимальная для входа шара, в байтах:
iMinShare = 500*1024^3 -- 50 Gb
---------------------------------------------------------------
function iIp(sIP)
        local a, b, c, d = sIP:match"^(%d+)%.(%d+)%.(%d+)%.(%d+)$"
        return a * 16777216 + b * 65536 + c * 256 + d
end

function OnStartup()
        for k, v in ipairs(tRanks) do
        tRanks[k][1], tRanks[k][2] = iIp(v[1]), iIp(v[2])
    end
end
function UserConnected(tUser)
    if (Core.GetUserValue(tUser, 16) or 0) < iMinShare then
        local iIP = iIp(tUser.sIP)
        local bIsLocal = false
        for _, v in ipairs(tRanks) do
            if iIP > v[1] and iIP < v[2] then
                bIsLocal = true
                break
            end
        end
        if bIsLocal then
            Core.SendToUser(tUser, " *** Внимание!!! У вас мало шары.")
            Core.Disconnect(tUser)
            Core.SendToOpChat("Локальный Юзер "..tUser.sNick.." IP "..tUser.sIP.." пытался войти на хаб.")
        else
            Core.SendToUser(tUser, " *** Внимание!!! сейчас вы будете перенаправленны на "..sAddress.." из-за маленькой шары")
            Core.Redirect(tUser, sAddress, sMsg)
            Core.SendToOpChat("Интернет Юзер "..tUser.sNick.." IP "..tUser.sIP.." пытался войти на хаб, но был перенаправлен на "..sAddress.." из-за маленькой шары.")
        end
    end
end



Автор: Артём 12.2.2012, 1:40

dj hoodo

Код
--Core.Redirect(tUser, sAddress, sMsg)

так же и с локальным
Код
--Core.Disconnect(tUser)

чтобы не отключало

Автор: dj hoodo 12.2.2012, 3:47

Код
--Core.Redirect(tUser, sAddress, sMsg)

да, таки работает. а можно вместо этой строки, написать чтото вроде -
Код
отправить юзеру ПМ "сообщение" ?

как такая строка должна выглядить?

Автор: Артём 12.2.2012, 6:48

dj hoodo, как ты написал нельзя, можно или в чат или в ЛС
Core.SendToUser - В Чат
Core.SendPmToUser(tUser, SetMan.GetString(21) " *** Внимание!!! - В ЛС

Код
Core.SendToUser(tUser, " *** Внимание!!! наш хаб меняет адрес хаба на новый "..sAddress.."")

Здесь новый адрес впишешь
Код
local sAddress = "dchub://123"

Раскрывушка
Код
--------------------------------------------------------------------------------------------------------------------------------------------
-- Скрипт редиректа всех чья шара ниже iMinShare , кроме IP-диапазонов внисенных ниже в таблицу tRanks , их просто отключаем с сообщением --
-- Автор: Nickolya ( Портал для админов http://MyDc.ru )                                                                                  --
--------------------------------------------------------------------------------------------------------------------------------------------
-- Адрес хаба на который редиректим
local sAddress = "dchub://123"
-- Сообщение которое получают пользователи при редиректе
--local sMsg = "Вы перенаправленны из-за недопустимо маленькой шары. "
local sBot = "Раскривушка;)"
--Диапозон IP которым не сообщаем
local tRanks = {
{"10.0.0.0","10.255.255.255"},
{"172.16.0.0","172.16.255.255"},
{"192.168.0.0","192.168.255.255"},
{"172.20.0.0","172.20.255.255"},
}
-- Минимальная для входа шара, в байтах:
--iMinShare = 500*1024^3 -- 50 Gb
---------------------------------------------------------------
function iIp(sIP)
        local a, b, c, d = sIP:match"^(%d+)%.(%d+)%.(%d+)%.(%d+)$"
        return a * 16777216 + b * 65536 + c * 256 + d
end

function OnStartup()
        for k, v in ipairs(tRanks) do
        tRanks[k][1], tRanks[k][2] = iIp(v[1]), iIp(v[2])
    end
end
function UserConnected(tUser)
    if (Core.GetUserValue(tUser, 16) or 0) then--< iMinShare then
        local iIP = iIp(tUser.sIP)
        local bIsLocal = false
        for _, v in ipairs(tRanks) do
            if iIP > v[1] and iIP < v[2] then
                bIsLocal = true
                break
            end
        end
        if bIsLocal then
            Core.SendToUser(tUser, "<"..sBot.."> *** Сиди спокойно старый друХ;).")
        --    Core.Disconnect(tUser)
        --    Core.SendToOpChat("Локальный Юзер "..tUser.sNick.." IP "..tUser.sIP.." пытался войти на хаб.")
        else
            Core.SendPmToUser(tUser, "Извозчик", " *** Внимание!!! Наш хаб перезжает на новый адрес: "..sAddress.." Зайдите в 'Избранные хабы' "..
            "найдите наш хаб и смените старый адрес на новый.")
        --    Core.Redirect(tUser, sAddress, sMsg)
        --    Core.SendToOpChat("Интернет Юзер "..tUser.sNick.." IP "..tUser.sIP.." пытался войти на хаб, но был перенаправлен на "..sAddress.." из-за маленькой шары.")
        end
    end
end

Автор: dj hoodo 12.2.2012, 20:14

все работает... тока регам сообщение не отсылается?

Автор: Артём 12.2.2012, 20:41

dj hoodo, в самом низу

Код
OpConnected = UserConnected; RegConnected = UserConnected

добавь и всем, даже опам будет слать big_smile.gif
если только рег и унрег юзерам то
Код
RegConnected = UserConnected

Автор: dj hoodo 12.2.2012, 23:00

Вот теперь все работает как надо big_smile.gif
Артём, снова благодарность с занесением в грудную клетку big_smile.gif