myDC.ru

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

 

> Hub's Big Ass Bot, API2 | HUBBABOT v.2.28

Рейтинг 4 V
Теги
Нет тегов для показа
Wariner
сообщение 30.6.2008, 11:28
Сообщение #181


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

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




Название скрипта: HUB's Big Ass Bot(HUBBABOT)
Версия: v.2.28 RC3c
Авторы оригинального скрипта: NoNick & NRJ
Версия API: API2.
Перевод под API2: X-Ray
Совместимость: PtokaX 0.4.0.0b и выше.
Описание: Скрипт-бот всё в одном(Прикрепляю мануал написанный автором)
Ссылки:
http://nonick.z-host.ru/?prr=2 - необновляеммая страничка
http://forum.proc.ru/index.php?showtopic=31658 - страничка бота на процентре


От меня:
  • Исправил ошибку при скрытия бота из списка юзеров
  • Исправил ошибку шаратопа + исправленно отображение(by Setuper)
  • Исправил ошибку "Синтаксис scripts/HUBBABOT/functions.lu:223: bad argument #1 to 'GetUser' (string expected, got nil)"
  • Добавил фразу ваш вклад в шару хаба xx %
  • Исправил ошибку изменения настроек из меню
  • Исправил ошибку оффсообщений


Для использования скрипта на nix системах нужно:
  • Открыть файл io.lu и исправить функцию loadtext на это:
    Код
    function loadtext(filename)
        local message = ""
        local f = io.open( filename, "r" )
        if f then
            message=f:read("*all")
            --message=string.gsub(message,"|","")
            --message=string.gsub(message,"\n","\r\n")
            f:close()
        end
        return message
    end
  • Преобразовать все файлы бота в nix формат. Особенно файлы с настройками!
  • Так же заменить все строки \r\n на \n

Прикрепленные файлы
Прикрепленный файл  HUBBABOT_2.28_RC3c.rar ( 69.58 килобайт ) Кол-во скачиваний: 2557
Прикрепленный файл  Мануал_по_HUBBABOT_у.html ( 22.59 килобайт ) Кол-во скачиваний: 2013
 
Go to the top of the page
+Quote Post
17 страниц V  « < 8 9 10 11 12 > »   
Начать новую тему
Ответов
Nickolya
сообщение 21.2.2010, 13:31
Сообщение #182


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

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




Попробуйте заменить код
Код
function ConnectToMeArrival(sUser,sData)
    Core.GetUserAllData(sUser)
    local _,_,towho = string.find(sData, "%p%S+%s+(%S+)%s+.*|")
на
Код
function ConnectToMeArrival(sUser,sData)
    Core.GetUserAllData(sUser)
    local _,_,towho = string.find(sData, "^%p%S+%s+(%S+).*|$")

Это 848 строка в файле hubbabot2.lua


Спасибо сказали:
Go to the top of the page
+Quote Post
Setuper
сообщение 21.2.2010, 14:04
Сообщение #183


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

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




Баги птохи))

http://mydc.ru/index.html?showtopic=915&am...post&p=6692
Цитата
Обратите внимание, что в скриптовую функцию PtokaX данная команда передаётся без символа вертикальной черты '|' на конце.


Поэтому наверное нужно так:
Код
function ConnectToMeArrival(sUser,sData)
    Core.GetUserAllData(sUser)
    local _,_,towho = string.find(sData, "^%p%S+%s+(%S+).*")


Спасибо сказали:
Go to the top of the page
+Quote Post
mastersweet
сообщение 21.2.2010, 16:16
Сообщение #184


Абсолютный новичок


Группа: Пользователи
Сообщений: 7
Регистрация: 21.12.2009
Из: Новосибирск
Пользователь №: 5 434
Спасибо сказали: 0 раз




Ребята, всё в общем заработало, но! Ограничение не работает если пассив качает с актива, который установил ограничения.
В файле HUBBABOT/functions.lu, рядом с функцией checkDL (которая и и сообщает, ограничивать ли доступ или нет), написана функция checkDLP (Описание к ней из functions.lu: проверка права скачивать для пассивного юзера)

Так вот эта функция нигде в Хубеботе не используется, вероятно поэтому пассивы и могут качать т.к. на них проверки нет.
Что я решил проверить, я попробовал модифицировать функцию ConnectToMeArrival(sUser,sData) и вместо:
Код
return checkDL(sUser,towho);

вставил:
Код
    if checkDL(sUser,towho) == false then

        if checkDLP(sUser,towho) == false then

            return false

        else

            return true

        end

    else

        return true    

    end

В этом случае мои надежды на работоспособность пропали т.к. ничего не заработало.

Уважаемые знатоки, помогите пожалуйста! tire.gif
Go to the top of the page
+Quote Post
Setuper
сообщение 21.2.2010, 18:54
Сообщение #185


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

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




Для пассивного соединения совершенно другой синтаксис команды. Поэтому ничего и не получается.

Код
function ConnectToMeArrival(sUser,sData)
  Core.GetUserAllData(sUser)
  local towho = ''
  if sUser.bActive then
    towho = sData:match"%$ConnectToMe (%S+)"
  else
    towho = sData:match"%$RevConnectToMe %S+ (%S+)|$"
  end
  if CFG.InetDown==1 then
    local vUser = Core.GetUser(towho,true)
    if vUser~= nil then
      if inDiap(sUser.sIP,IPCHECKS.INET_DOWN) and (US[vUser.sIP].InetDown =="0") then
        return true
      end
      if inDiap(vUser.sIP,IPCHECKS.INET_DOWN) and (US[sUser.sIP].InetDown =="0") then
        return true
      end
    end
  end
  if sUser.iProfile == 0 then return false end
  if inDiap(sUser.sIP,IPCHECKS.CHAT_ONLY) then
    local tRulesText= CHAT_ONLY_TEXT;
    tRulesText = string.gsub(tRulesText, "%[IP%]", sUser.sIP)
    tRulesText = string.gsub(tRulesText, "%[HUBOWNER%]", OWNER.Nick)
    tRulesText = string.gsub(tRulesText, "%[OWNERCONTACT%]", OWNER.Contact)
    BotSayToUser(sUser, tRulesText)
    return true
  end
  if sUser.bActive then
    return checkDL(sUser,towho)
  else
    return checkDLP(sUser,towho)
  end
end
Go to the top of the page
+Quote Post
mastersweet
сообщение 21.2.2010, 20:23
Сообщение #186


Абсолютный новичок


Группа: Пользователи
Сообщений: 7
Регистрация: 21.12.2009
Из: Новосибирск
Пользователь №: 5 434
Спасибо сказали: 0 раз




Ребята! Дорогие вы мои! Разобрался, громадное спасибо Nickolya, а самое громадное Setuper.

Но поясню! Заменить функцию которую дал Setuper недостаточно. При этой замене скачка тоже работает (актив->пассив, актив->актив), хотя и вылазит сообщение об ограничении шары. Я вспомнил что в API2 вместо логических 1 и 0 стало использоваться true и false (на этом же форуме читал спецификацию что нового в API2), а функции checkDL и checkDLP возвращали 1 и 0, как на старый лад т.е. API1. Я в этих функциях поменял:
Код
return 0

на
Код
return false

и
Код
return 1

на
Код
return true

И всё заработало, сообщение вылазит а шара недоступна, как расшарил необходимую шару, доступ появился (работает это в обоих режимах актив->пассив, актив->актив).

Большая просьба к модераторам раздела обновить дистрибутив Хубыбота с новыми поправками.

Спасибо!!
Go to the top of the page
+Quote Post
thehawk
сообщение 21.2.2010, 21:08
Сообщение #187


Активный участник
***

Группа: Пользователи
Сообщений: 63
Регистрация: 6.9.2009
Из: Беларусь
Пользователь №: 4 371
Спасибо сказали: 2 раза




Думал тоже сначало, что помогло. А вот и нет: как качали, так и продолжают качать все (активы и пассивы). Сделал все как написано в Сообщение #214.
Go to the top of the page
+Quote Post
mastersweet
сообщение 21.2.2010, 21:14
Сообщение #188


Абсолютный новичок


Группа: Пользователи
Сообщений: 7
Регистрация: 21.12.2009
Из: Новосибирск
Пользователь №: 5 434
Спасибо сказали: 0 раз




Цитата(thehawk @ 21.2.2010, 23:08) *
Думал тоже сначало, что помогло. А вот и нет: как качали, так и продолжают качать все (активы и пассивы). Сделал все как написано в Сообщение #214.

Чтобы исправить проблему с неработающим ограничением по шаре, нужно отредактировать 2 файла из ХубыБота 2.28 RC3c. Файл hubbabot2.lua и functions.lu

Файл hubbabot2.lua (обновляем функцию ConnectToMeArrival)
Код
function ConnectToMeArrival(sUser,sData)
  Core.GetUserAllData(sUser)
  local towho = ''
  if sUser.bActive then
    towho = sData:match"%$ConnectToMe (%S+)"
  else
    towho = sData:match"%$RevConnectToMe %S+ (%S+)|$"
  end
  if CFG.InetDown==1 then
    local vUser = Core.GetUser(towho,true)
    if vUser~= nil then
      if inDiap(sUser.sIP,IPCHECKS.INET_DOWN) and (US[vUser.sIP].InetDown =="0") then
        return true
      end
      if inDiap(vUser.sIP,IPCHECKS.INET_DOWN) and (US[sUser.sIP].InetDown =="0") then
        return true
      end
    end
  end
  if sUser.iProfile == 0 then return false end
  if inDiap(sUser.sIP,IPCHECKS.CHAT_ONLY) then
    local tRulesText= CHAT_ONLY_TEXT;
    tRulesText = string.gsub(tRulesText, "%[IP%]", sUser.sIP)
    tRulesText = string.gsub(tRulesText, "%[HUBOWNER%]", OWNER.Nick)
    tRulesText = string.gsub(tRulesText, "%[OWNERCONTACT%]", OWNER.Contact)
    BotSayToUser(sUser, tRulesText)
    return true
  end
  if sUser.bActive then
    return checkDL(sUser,towho)
  else
    return checkDLP(sUser,towho)
  end
end


Файл HUBBABOT/functions.lu (обновляем функцию checkDL и checkDLP)
Код
-- проверка права скачивать для активного юзера
function checkDL(sUser,towho)
    local vUser = Core.GetUser(towho,true)
    if vUser~= nil then
        if inDiap(vUser.sIP,IPCHECKS.CHAT_ONLY) then
            local ttext = messages[178]
            ttext = string.gsub(ttext , "%[NICK%]", towho)
            BotSayToUser(sUser,ttext)
            return true
        end
        if getNLCHECK(vUser.sIP,sUser.sIP)==1 then
           NLCHECK[vUser.sIP][sUser.sIP]=nil;
           return false
        end
        if US[vUser.sIP].noleech~=0 then
            if sUser.iShareSize <= US[vUser.sIP].noleech then
                if CFG.NoLeechTime>0 then
                    local curtime=os.time();
                    if (NLT[sUser.sNick]) then
                        if (NLT[sUser.sNick][vUser.sNick]) then
                            if (curtime - NLT[sUser.sNick][vUser.sNick] > CFG.NoLeechTime) then
                                NLT[sUser.sNick][vUser.sNick]=curtime;
                            else
                                return true
                            end
                        else
                            NLT[sUser.sNick][vUser.sNick]=curtime;
                        end                        
                    else
                        NLT[sUser.sNick]={}
                        NLT[sUser.sNick][vUser.sNick]=curtime;
                    end
                end
                local tNOLEECHText =NOLEECHTEXT
                tNOLEECHText = string.gsub(tNOLEECHText , "%[USER%]", towho)
                tNOLEECHText = string.gsub(tNOLEECHText , "%[MINSHARE%]", getNormalShare(US[vUser.sIP].noleech))
                tNOLEECHText = string.gsub(tNOLEECHText , "%[CURSHARE%]", getNormalShare(sUser.iShareSize))
                BotSayToUser(sUser,tNOLEECHText)
                return true
            end
        end    
    end
    return false
end
--------------------------------------------------------------------------------------------------------------------------------------------
-- проверка права скачивать для пассивного юзера
function checkDLP(sUser,towho)
    local vUser = Core.GetUser(towho,true)
    if vUser~= nil then
        if inDiap(vUser.sIP,IPCHECKS.CHAT_ONLY) then
            local ttext = messages[178]
            ttext = string.gsub(ttext , "%[NICK%]", towho)
            BotSayToUser(sUser,ttext)
            return true
        end
        if US[vUser.sIP].noleech~=0 then
            if sUser.iShareSize <= US[vUser.sIP].noleech then
                if CFG.NoLeechTime>0 then
                    local curtime=os.time();
                    if (NLT[sUser.sNick]) then
                        if (NLT[sUser.sNick][vUser.sNick]) then
                            if (curtime - NLT[sUser.sNick][vUser.sNick] > CFG.NoLeechTime) then
                                NLT[sUser.sNick][vUser.sNick]=curtime;
                            else
                                return true
                            end
                        else
                            NLT[sUser.sNick][vUser.sNick]=curtime;
                        end                        
                    else
                        NLT[sUser.sNick]={}
                        NLT[sUser.sNick][vUser.sNick]=curtime;
                    end
                end
                local tNOLEECHText =NOLEECHTEXT
                tNOLEECHText = string.gsub(tNOLEECHText , "%[USER%]", towho)
                tNOLEECHText = string.gsub(tNOLEECHText , "%[MINSHARE%]", getNormalShare(US[vUser.sIP].noleech))
                tNOLEECHText = string.gsub(tNOLEECHText , "%[CURSHARE%]", getNormalShare(sUser.iShareSize))
                BotSayToUser(sUser,tNOLEECHText)
                return true
            end
        end    
        if US[sUser.sIP].noleech~=0 then
            if vUser.iShareSize <= US[sUser.sIP].noleech then
                setNLCHECK(sUser.sIP,vUser.sIP,1)
                return false
            end    
        end
    end    
    return false
end
Go to the top of the page
+Quote Post
thehawk
сообщение 21.2.2010, 21:29
Сообщение #189


Активный участник
***

Группа: Пользователи
Сообщений: 63
Регистрация: 6.9.2009
Из: Беларусь
Пользователь №: 4 371
Спасибо сказали: 2 раза




Сейчас пошёл тестировать. Кстати моя функция ConnectToMeArrival в файле hubbabot2.lua немного отличалась от того что в предыдущем посте. Хотя ставил из оригинала.
P.S. Интересно получается: поидее нужно тогда редактировать все файлы Хуббабота, где есть return 0/1, т.к. эти функции так или иначе неправильно работают, или я что-то не так понимаю?
Go to the top of the page
+Quote Post
mastersweet
сообщение 21.2.2010, 21:46
Сообщение #190


Абсолютный новичок


Группа: Пользователи
Сообщений: 7
Регистрация: 21.12.2009
Из: Новосибирск
Пользователь №: 5 434
Спасибо сказали: 0 раз




Теоретически да, но раз так работает, то и хрен с ним. К примеру, не во всех функциях под return 1 понимается как логическое return true. Функция возможно и должна возвращать число, поэтому замена return 1 на return true приведёт к ошибке скрипта. Так что переписывать всего хуббабота надо с полным пониманием чего функции делают и возвращают. В общем раз всё рабоает и так, то лучше не трогать.
Go to the top of the page
+Quote Post
Setuper
сообщение 21.2.2010, 22:48
Сообщение #191


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

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




Изменять return 1 на return true нужно аккуратно, - так чтобы в итоге нужное событие возвращало true, а не 1.
Go to the top of the page
+Quote Post
voronf4
сообщение 23.2.2010, 14:41
Сообщение #192


Продвинутый участник
****

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




Спасибо админам!!!!!!!!!!!!!!!!!!!! За все!! black_heart.gif
Go to the top of the page
+Quote Post
shmeks
сообщение 24.2.2010, 15:23
Сообщение #193


Начинающий
*

Группа: Пользователи
Сообщений: 14
Регистрация: 11.10.2009
Пользователь №: 4 692
Спасибо сказали: 0 раз




Простите если уже было, но 12 страниц не осилил..

Есть такая проблема, стоят следующие скрипты:
StatPX - веб статистика
TopSeach - статистика поиска на хабе
rss_links - рсс лента
chat_history - последние n сообщений
hubbabot2 - хаббабот 2.28 RC3c

пытаюсь любой из этих скриптов поставить ниже хаббы, на отрез отказываются работать! ><
в чем может быть проблема?

птока 0.4.1.1, луа 5.1.3
Go to the top of the page
+Quote Post
mastersweet
сообщение 24.2.2010, 15:32
Сообщение #194


Абсолютный новичок


Группа: Пользователи
Сообщений: 7
Регистрация: 21.12.2009
Из: Новосибирск
Пользователь №: 5 434
Спасибо сказали: 0 раз




Цитата(shmeks @ 24.2.2010, 16:23) *
...
пытаюсь любой из этих скриптов поставить ниже хаббы, на отрез отказываются работать! ><
в чем может быть проблема?

птока 0.4.1.1, луа 5.1.3
...

Хубабот блокирует неизвестные ему команды в чат и потому все твои скрипты просто не видят команды. Как вариант можно настроить хубабота, чтобы он пропускал неизвестные команды в чат. Для этого выключаем хубабота (ну или хаб)
Открываем: \HUBBABOT\DATA\cfg.dat
И там ставим:
AllowOtherCommands=1,

Сохраняемся и запускаем хаб и хубабота. Теперь он не будет блокировать команды.
Go to the top of the page
+Quote Post
shmeks
сообщение 24.2.2010, 15:35
Сообщение #195


Начинающий
*

Группа: Пользователи
Сообщений: 14
Регистрация: 11.10.2009
Пользователь №: 4 692
Спасибо сказали: 0 раз




Цитата
Хубабот блокирует неизвестные ему команды в чат

Спасибо за совет, но все же ...

В конфиге стоит, как бы то что надо:
Код
-- Пропускать неизветсные команды хабу?
-- 1: Бот пропускает неизвестные команды в хаб;
-- 0: бот блокирует прохождение неизвестных команд в хаб, сообщая о неправильности команд пользователю.
AllowOtherCommands=1,


че не нравится хз(((
Go to the top of the page
+Quote Post
epson950
сообщение 11.3.2010, 12:31
Сообщение #196


Участник
**

Группа: Пользователи
Сообщений: 42
Регистрация: 4.10.2008
Пользователь №: 731
Спасибо сказали: 0 раз




Вопрос знатокам! Бот позволяет допускать до хаба только с определенных IP, которые прописаны в allow_enter_ip.dat, но инфу из него бот берет только при перезапуске скрипта или хаба, а у нас этот список обновляется раз в несколько минут. как заставить бота перечитывать инфу из этого файла скажем раз в 10 минут?
Go to the top of the page
+Quote Post
Nickolya
сообщение 11.3.2010, 13:13
Сообщение #197


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

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




Проводим для этого аналитический анализ...
Ищем allow_enter_ip.dat в скрипте. Нам повезло, нашли в 61 строке:
Код
F_ALLOW_ENTER_IP =         CFGPATH .. "allow_enter_ip.dat"
тут мы видим что переменная F_ALLOW_ENTER_IP получает полный путь к файлу. Теперь ищем эту переменную в скрипте, находим вот что в 341 строке:
Код
    IPCHECKS.ALLOW_ENTER =    readIPs(F_ALLOW_ENTER_IP)
тут мы видим что считываются айпи из файла, вот эту операцию нам надо проделывать раз в 10 минут, для этого нам надо добавить в конец скрипта такую функцию:
Код
function LoadDataFromFileEvery10Minutes()
    IPCHECKS.ALLOW_ENTER =    readIPs(F_ALLOW_ENTER_IP)
end
и теперь в самый конец функции OnStartup добавляем таймер:
Код
TmrMan.AddTimer(10*60*1000, "LoadDataFromFileEvery10Minutes")
этот код надо вставить после
Код
    saveUSExpress()
    AddSysLog(messages[83])
вот и все, теперь бот будет подгружать каждые 10*60 секунд файл с айпи...
Go to the top of the page
+Quote Post
noBap
сообщение 11.3.2010, 15:41
Сообщение #198


Абсолютный новичок


Группа: Пользователи
Сообщений: 8
Регистрация: 22.2.2010
Из: Чебоксары
Пользователь №: 6 160
Спасибо сказали: 0 раз




не могу настроить антирекламу поставил разрешение на 2 рекламы в час и не фига всеравно глушит пользователей сразу как исправить помогите плиз...
P.S. отключать совсем не хочу
Go to the top of the page
+Quote Post
Wariner
сообщение 11.3.2010, 18:23
Сообщение #199


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

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




в хуббе вроде бы нет разрешений на рекламу...
Go to the top of the page
+Quote Post
Kocha
сообщение 21.3.2010, 13:14
Сообщение #200


Активный участник
***

Группа: Пользователи
Сообщений: 62
Регистрация: 9.3.2010
Из: Новосибирск
Пользователь №: 6 299
Спасибо сказали: 0 раз




Цитата(focus @ 4.4.2009, 12:08) *
Не подскажете товарищи как отключить новости хаба. В конфиге отключил теперь они не появляются при входе на хаб, но через кадые 30 мину вылазяют в общий чат still_dreaming.gif

-- Показ новостей
-- 0: Показывать новости
-- 1: Отключить показ новостей
ShowNews=0,
вот так должно быть чтобы при входе на хаб новости не появлялись ????
у меня че то все равно появляеться
Go to the top of the page
+Quote Post
drop
сообщение 21.3.2010, 16:50
Сообщение #201


Абсолютный новичок


Группа: Пользователи
Сообщений: 5
Регистрация: 25.9.2008
Пользователь №: 589
Спасибо сказали: 0 раз




Как можно сократить нагрузку скрипта на сервер при 1700 пользователях на хабе?
Или подскажите какая функция скрипта так сильно может загружать хаб?
Go to the top of the page
+Quote Post

17 страниц V  « < 8 9 10 11 12 > » 
Ответить в данную темуНачать новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



RSS Сейчас: 18.4.2024, 9:29