Hub's Big Ass Bot, API2 | HUBBABOT v.2.28 |
Здравствуйте, гость ( Вход | Регистрация )
Hub's Big Ass Bot, API2 | HUBBABOT v.2.28 |
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 и выше. Описание: Скрипт-бот всё в одном(Прикрепляю мануал написанный автором) Ссылки: От меня:
Для использования скрипта на nix системах нужно:
Прикрепленные файлы
HUBBABOT_2.28_RC3c.rar ( 69.58 килобайт )
Кол-во скачиваний: 2557
Мануал_по_HUBBABOT_у.html ( 22.59 килобайт ) Кол-во скачиваний: 2013 Спасибо сказали: |
|
|
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 |
|
|
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+).*") |
|
|
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 В этом случае мои надежды на работоспособность пропали т.к. ничего не заработало. Уважаемые знатоки, помогите пожалуйста! |
|
|
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 |
|
|
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 И всё заработало, сообщение вылазит а шара недоступна, как расшарил необходимую шару, доступ появился (работает это в обоих режимах актив->пассив, актив->актив). Большая просьба к модераторам раздела обновить дистрибутив Хубыбота с новыми поправками. Спасибо!! |
|
|
21.2.2010, 21:08
Сообщение
#187
|
|
Активный участник Группа: Пользователи Сообщений: 63 Регистрация: 6.9.2009 Из: Беларусь Пользователь №: 4 371 Спасибо сказали: 2 раза |
Думал тоже сначало, что помогло. А вот и нет: как качали, так и продолжают качать все (активы и пассивы). Сделал все как написано в Сообщение #214.
|
|
|
21.2.2010, 21:14
Сообщение
#188
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 7 Регистрация: 21.12.2009 Из: Новосибирск Пользователь №: 5 434 Спасибо сказали: 0 раз |
Думал тоже сначало, что помогло. А вот и нет: как качали, так и продолжают качать все (активы и пассивы). Сделал все как написано в Сообщение #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 |
|
|
21.2.2010, 21:29
Сообщение
#189
|
|
Активный участник Группа: Пользователи Сообщений: 63 Регистрация: 6.9.2009 Из: Беларусь Пользователь №: 4 371 Спасибо сказали: 2 раза |
Сейчас пошёл тестировать. Кстати моя функция ConnectToMeArrival в файле hubbabot2.lua немного отличалась от того что в предыдущем посте. Хотя ставил из оригинала.
P.S. Интересно получается: поидее нужно тогда редактировать все файлы Хуббабота, где есть return 0/1, т.к. эти функции так или иначе неправильно работают, или я что-то не так понимаю? |
|
|
21.2.2010, 21:46
Сообщение
#190
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 7 Регистрация: 21.12.2009 Из: Новосибирск Пользователь №: 5 434 Спасибо сказали: 0 раз |
Теоретически да, но раз так работает, то и хрен с ним. К примеру, не во всех функциях под return 1 понимается как логическое return true. Функция возможно и должна возвращать число, поэтому замена return 1 на return true приведёт к ошибке скрипта. Так что переписывать всего хуббабота надо с полным пониманием чего функции делают и возвращают. В общем раз всё рабоает и так, то лучше не трогать.
|
|
|
21.2.2010, 22:48
Сообщение
#191
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Изменять return 1 на return true нужно аккуратно, - так чтобы в итоге нужное событие возвращало true, а не 1.
|
|
|
23.2.2010, 14:41
Сообщение
#192
|
|
Продвинутый участник Группа: Пользователи Сообщений: 110 Регистрация: 25.6.2009 Пользователь №: 3 706 Спасибо сказали: 1 раз |
Спасибо админам!!!!!!!!!!!!!!!!!!!! За все!!
|
|
|
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 |
|
|
24.2.2010, 15:32
Сообщение
#194
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 7 Регистрация: 21.12.2009 Из: Новосибирск Пользователь №: 5 434 Спасибо сказали: 0 раз |
... пытаюсь любой из этих скриптов поставить ниже хаббы, на отрез отказываются работать! >< в чем может быть проблема? птока 0.4.1.1, луа 5.1.3 ... Хубабот блокирует неизвестные ему команды в чат и потому все твои скрипты просто не видят команды. Как вариант можно настроить хубабота, чтобы он пропускал неизвестные команды в чат. Для этого выключаем хубабота (ну или хаб) Открываем: \HUBBABOT\DATA\cfg.dat И там ставим: AllowOtherCommands=1, Сохраняемся и запускаем хаб и хубабота. Теперь он не будет блокировать команды. |
|
|
24.2.2010, 15:35
Сообщение
#195
|
|
Начинающий Группа: Пользователи Сообщений: 14 Регистрация: 11.10.2009 Пользователь №: 4 692 Спасибо сказали: 0 раз |
Цитата Хубабот блокирует неизвестные ему команды в чат Спасибо за совет, но все же ... В конфиге стоит, как бы то что надо: Код -- Пропускать неизветсные команды хабу? -- 1: Бот пропускает неизвестные команды в хаб; -- 0: бот блокирует прохождение неизвестных команд в хаб, сообщая о неправильности команд пользователю. AllowOtherCommands=1, че не нравится хз((( |
|
|
11.3.2010, 12:31
Сообщение
#196
|
|
Участник Группа: Пользователи Сообщений: 42 Регистрация: 4.10.2008 Пользователь №: 731 Спасибо сказали: 0 раз |
Вопрос знатокам! Бот позволяет допускать до хаба только с определенных IP, которые прописаны в allow_enter_ip.dat, но инфу из него бот берет только при перезапуске скрипта или хаба, а у нас этот список обновляется раз в несколько минут. как заставить бота перечитывать инфу из этого файла скажем раз в 10 минут?
|
|
|
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() и теперь в самый конец функции OnStartup добавляем таймер:IPCHECKS.ALLOW_ENTER = readIPs(F_ALLOW_ENTER_IP) end Код TmrMan.AddTimer(10*60*1000, "LoadDataFromFileEvery10Minutes") этот код надо вставить послеКод saveUSExpress() вот и все, теперь бот будет подгружать каждые 10*60 секунд файл с айпи...
AddSysLog(messages[83]) |
|
|
11.3.2010, 15:41
Сообщение
#198
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 8 Регистрация: 22.2.2010 Из: Чебоксары Пользователь №: 6 160 Спасибо сказали: 0 раз |
не могу настроить антирекламу поставил разрешение на 2 рекламы в час и не фига всеравно глушит пользователей сразу как исправить помогите плиз...
P.S. отключать совсем не хочу |
|
|
11.3.2010, 18:23
Сообщение
#199
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
в хуббе вроде бы нет разрешений на рекламу...
|
|
|
21.3.2010, 13:14
Сообщение
#200
|
|
Активный участник Группа: Пользователи Сообщений: 62 Регистрация: 9.3.2010 Из: Новосибирск Пользователь №: 6 299 Спасибо сказали: 0 раз |
Не подскажете товарищи как отключить новости хаба. В конфиге отключил теперь они не появляются при входе на хаб, но через кадые 30 мину вылазяют в общий чат -- Показ новостей -- 0: Показывать новости -- 1: Отключить показ новостей ShowNews=0, вот так должно быть чтобы при входе на хаб новости не появлялись ???? у меня че то все равно появляеться |
|
|
21.3.2010, 16:50
Сообщение
#201
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 5 Регистрация: 25.9.2008 Пользователь №: 589 Спасибо сказали: 0 раз |
Как можно сократить нагрузку скрипта на сервер при 1700 пользователях на хабе?
Или подскажите какая функция скрипта так сильно может загружать хаб? |
|
|
|
Сейчас: 14.11.2024, 9:38 |