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

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

MyDC.ru _ Скрипты для RusHub'а _ Скрипт для пингеров

Автор: Setuper 2.1.2010, 20:27

Название скрипта: pinger
Скрипт для: RusHub
Версия скрипта: 1.0
Описание: Скрипт для пингеров. Отправляет пингерам, которые заходят на хаб, команду, содержащую информацию о хабе.
Автор: Setuper

 pinger.lua ( 885 байт ) : 145

Автор: Nickolya 5.1.2010, 4:37

А почему этот функционал не присутствует в самом хабе? По-моему это его нужная часть! А скриптом можно выводить и не очень корректные данные для пингера... Или это только пока так, потом все включится?

Автор: Setuper 5.1.2010, 13:42

Я убрал из хаба практически всё. Оставил только самое нужное. Остальное оставил на скрипты.

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

Я могу нагромоздить это всё в хабе, однако, разве это нужно?

Автор: Nickolya 5.1.2010, 18:04

Нет, нагромождения нам не надо, мы лучше нагородим все в одном скрипте который будет идти как хорошая надстройка big_smile.gif

Автор: Saymon 27.3.2010, 15:49

Сегодня добавил хаб на dchublist.com - проблема, хаблист считывает только статус хаба, онлайн хаб или нет больше ничего.
Проблема на dchublist.ru - считывается только: статус хаба (онлайн / оффлайн) и количество юзеров на хабе онлайн.
Рекорды юзеров и шары не считыват.

Setuper, Илья, что можешь сказать про это? Вроде раньше я писал эту проблему....

Автор: Setuper 31.3.2010, 15:51

Пингер разъединялся до получения списка пользователей, поэтому не было никаких рекордов и тд.
Разъединение происходило после отработки события OnUnknown. Вернув true, мы предотвращаем разъединение.
Так уж устроено событие OnUnknown, которое разъединяет всякий раз, если в нём не возвращается true. Сделано это специально для безопасности и от возможных атак на хаб.

Скрипт перезалит в первом посту.

Качаем и пробуем. Проблем не должно быть big_smile.gif
Если по-прежнему будут проблемы с рекордами, то будем дальше разбираться в чём ещё проблемы.

Автор: Saymon 1.4.2010, 0:23

Setuper,
На хаблисте который com всё нормально теперь, а вот с ру та же проблема.
Рекорды не считывает http://mydc.ru/r/?http://dchublist.ru/hubs/1565/
Там за всё время работы максимум на хабе было 50 чел big_smile.gif

Автор: Setuper 1.4.2010, 0:25

Ну это уж я не знаю откуда он такие цифры берёт

Автор: Saymon 1.4.2010, 0:28

Может проблемы что новый софт хаба и хаблисту не знаком? Или бред это?

Автор: Setuper 1.4.2010, 0:29

Может этот рекорд был зафиксирован ещё раньше.

Автор: Saymon 1.4.2010, 0:31

Ну тогда должно же быть обновление big_smile.gif
А его нет и это странно.....

Автор: Setuper 1.4.2010, 0:34

На то он и рекорд, что его можно только превысить.
А текущее количество пользователей должно обновляться не чаще чем 1 раз в 8 минут

Автор: Saymon 1.4.2010, 0:37

Блин , хотя да, ступил я. Извиняюсь unhappy.gif
Будем надеяться и ждать big_smile.gif

Автор: Sekretchik 7.1.2011, 6:26

За скрипт - спасибо. Минимальный размер шары так же указывать в байтах? Например: iMinShare = 5368709120 - это 5 Гб. (5368709120 байт)

P.S. - добавил в скрипт возможность отправки в чат сообщения для админа о пинге хаба ботом хаблиста (по примеру PtokaX). Может кому нужна такая возможность (:

 pinger.lua ( 1.4 килобайт ) : 33
 

Автор: Saymon 7.1.2011, 6:36

Sekretchik, ну мы конечно очень рады, что ты так устремлён к скриптам, но вот уже такие мелочи кому надо сами могут добавить.....

Автор: KT315 6.3.2011, 20:28

Подскажите пожалуйста, существует ли такое решение, при котором сам хаб отсылал бы информацию на регсервер хаблиста?

Автор: Saymon 6.3.2011, 20:35

KT315, пока нет. У Setuper'а в тодо пункт реализации возможности авторегистрации в хаблистах.

Автор: alex82 15.3.2011, 2:03

Код
if sData:find"$BotINFO" then

В шаблоне нет признака начала строки, что может привести к ложному срабатыванию условия.

Надо так:
Код
if sData:find"^$BotINFO" then


И еще:
Раскрывающийся текст
Код
[00:53:31] ==> $OpList RH_OpChat$$RusHub$$[Viktorina]$$-=[01:55]=-$$
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> $UserCommand 1 3 Развлечения\ВИКТОРИНА\Старт$<%[mynick]> !старт|
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> $UserCommand 1 3 Развлечения\ВИКТОРИНА\Стоп$<%[mynick]> !стоп|
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> $UserCommand 1 3 Развлечения\ВИКТОРИНА\Топы\Топ 10 лучших$<%[mynick]> !топ|
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> $UserCommand 0 3
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> $UserCommand 1 3 Развлечения\ВИКТОРИНА\Топы\Топ 100 по очкам$<%[mynick]> !топ_очков|
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> $UserCommand 1 3 Развлечения\ВИКТОРИНА\Топы\Топ 100 по кол-ву ответов$<%[mynick]> !топ_ответов|
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> $UserCommand 1 3 Развлечения\ВИКТОРИНА\Топы\Топ 100 по кол-ву страйков$<%[mynick]> !топ_страйков|
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> $UserCommand 1 3 Развлечения\ВИКТОРИНА\Топы\Топ 100 по времени$<%[mynick]> !топ_времени|
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> $UserCommand 1 3 Развлечения\ВИКТОРИНА\Игроки Викторины$<%[mynick]> !игроки|
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> $UserCommand 1 3 Развлечения\ВИКТОРИНА\Твои очки$<%[mynick]> !вон|
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> $UserCommand 1 3 Развлечения\ВИКТОРИНА\Таблица званий$<%[mynick]> !звания|
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> $UserCommand 1 3 Развлечения\ВИКТОРИНА\Помощь$<%[mynick]> !хелп|
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> $UserCommand 1 3 Развлечения\ВИКТОРИНА\Сообщить об ошибке$<%[mynick]> !trivreport %[line:Номер вопроса] %[line:Правильный ответ]|
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> $MyINFO $ALL [Viktorina] [ИГРА] Викторина. Помощь !хелп$ $BOT$$0$
[00:53:31] ==> <RusHubBot> Добро пожаловать на хаб!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
¤¤¤ Маленькая статистика:
    ¤ Пользователей онлайн: 160
    ¤ Общая шара: 38,98 ТБ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
¤¤¤ Ваша информация:
    ¤ Ник: test_1011
    ¤ IP: 109.200.253.105
    ¤ Профиль: гость
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
¤¤¤ Команды хаба:
    ¤ !hubs - друзья хаба
    ¤ !faq - помощь
    ¤ !rules - правила
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ¤ Клубнячковый  Hub DC++   dchub://dc.myhub.pp.ua:420
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[00:53:31] ==> $HubTopic Добро пожаловать!
[00:53:31] ==> $UserCommand 1 3 Меню гостя\Помощь$<%[mynick]> !help|
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> $UserCommand 1 3 Меню гостя\Мой айпи$<%[mynick]> !myip|
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> $UserCommand 0 3
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> $UserCommand 1 3 Меню гостя\Регистрация\Зарегистрироваться$<%[mynick]> !regme %[line: Введи пароль:]|
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> $UserCommand 0 3
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> $UserCommand 1 3 Дата и время$<%[mynick]> !time |
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> $UserCommand 1 3 Меню хаба\Правила$<%[mynick]> !rules |
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> $UserCommand 1 3 Меню хаба\FAQ$<%[mynick]> !faq |
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> $UserCommand 1 3 Меню хаба\Друзья хаба$<%[mynick]> !hubs |
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> $UserCommand 1 2 ¤ Сказать шёпотом ¤$<%[mynick]> !whisper %[nick] %[line:Что скажем?]|
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> <RusHub> Рекорды хаба: 466 юзеров (09 янв, 20:53), 225,5 ТБ расшаренных данных (01 мар, 13:48)
[00:53:31] ==> $UserCommand 1 3 Меню хаба\Рекорды хаба$<%[mynick]> !records |
[00:53:31] <== $BotINFO BCETI_Hublist
[00:53:31] ==> <RusHub> Последние 10 фраз в чате

--- [13:44:44] <Мистер_Х> гагага

--- [16:37:34] <ВАНЁК> лединец

--- [19:28:12] <Колян> психолог

--- [19:45:23] <Колян> ласкут

--- [19:47:03] <Колян> микроб

--- [19:49:25] <Колян> детерминизм

--- [19:50:11] <Колян> дескриминант

--- [20:04:01] <Колян> ,thbkbq

--- [20:04:10] <Колян> берилий

--- [20:04:21] <Колян> бериллий


[00:53:31] ==> $MyINFO $ALL test_1011 <++ V:0.75,M:A,H:1/0/0,S:10>$ $100$$150305010912$
[00:53:31] ==> $MyINFO $ALL HRABIAHENRYK <StrgDC++ V:2.42,M:A,H:56/0/0,S:1>$ $0.01$$581988772777$
[00:53:31] ==> $HubINFO CRYSIS HUB DC++$CRYSIS.myhub.pp.ua:666$No PORNO$5000$0$0$0$RusHub$Nokia_5230

Тут пингер как бы кричит хабу "Отдай мне, сцуко, $HubINFO, и я пойду". Но хаб продолжает усердно долбить пингер юзеркомандами, которые он, между прочим, не поддерживает. Чем обусловлено такое поведение русхаба - его вежливостью, или все же тормознутостью?

Автор: alex82 15.3.2011, 8:56

Еще одна рекламация.

Код
[07:28:38]: ==> $HubINFO СОСНОГОРСК$dchub://sosnogorsk-hub.ru$:::::: Сосногорский х@б ::::::$1000$-2147483648$0$0$RusHub$][O.o][
Разве значение минимальной шары может быть отрицательным?

Хаб работает под РусХабом, и, как я подозреваю, на нем стоит именно этот скрипт.

Автор: Setuper 15.3.2011, 10:45

Насчёт UserCommand да, действительно не корректно отправлять тому, кто не поддерживает.
Однако, дело в том, что сразу же после отправки списка пользователей отрабатывает событие OnUserEnter, а в этом событии в скриптах отсылается всё что угодно.
То есть по своей сути команда $HubINFO то приходит на хаб, но обрабатываться она будет уже после того как отработает событие OnUserEnter всех скриптов.

Теперь почему этого не происходит на других хабах? На других хабах пингер имеет свой профиль и хаб обрабатывает пингера не так как обычных пользователей.

Нужно будет подумать как это можно обойти. Конечно можно наверное сделать блокировку в событии OnUserEnter, чтобы данное событие не выполнялось другими скриптами при входе пингера, а пингера определять по наличию соответствующих характеристик в команде $Supports.

На данный момент могу предложит только такое решение: поставить скрипт пингера самым перевым скриптом и не ждать команды $BotINFO от пингера, а отсылать в OnUserEnter данного скрипта $HubINFO и сразу разъединять пингера (предварительно конечно определить в событии $Supports то, что данный пользователь действительно пингер).


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



Кстати, а по какому событию пингер отправляет на хаб команду $BotINFO ? Ведь скрипт из первого поста позволяет отослать команду $BotINFO в любое время, то есть это можно сделать до получения списка пользователей хаба, а после получения списка просто принудительно отключаться пингером, и не получать всё, что отсылается хабом после отправки списка пользователей. Хотя отсылку $BotINFO до получения списка пользователей нужно проверить на других хабах (на верлихабе точно можно отправлять $BotINFO когда угодно).

Автор: alex82 15.3.2011, 11:04

Пингер уже доделал - теперь он не флудит $BotINFO, а покорно ждет пока хаб отправит ему все юзеркоманды big_smile.gif

Цитата
Кстати, а по какому событию пингер отправляет на хаб команду $BotINFO ? Ведь скрипт из первого поста позволяет отослать команду $BotINFO в любое время, то есть это можно сделать до получения списка пользователей хаба, а после получения списка просто принудительно отключаться пингером, и не получать всё, что отсылается хабом после отправки списка пользователей
Этот способ не будет работать на птоке, поскольку она отключает пингер сразу после отправки $HubINFO. Так что не годится - пингер должен быть универсальным.

Цитата
По поводу сосногорска, видимо там что-то в скрипте меняли, поэтому и отрицательное значение
Есть подозрение что всему виной калечная функция format и чрезмерно большое значение минимальной шары в настройках скрипта.

Автор: Sekretchik 23.3.2011, 6:49

Цитата(alex82 @ 15.3.2011, 11:04) *
Есть подозрение что всему виной калечная функция format и чрезмерно большое значение минимальной шары в настройках скрипта.


Простите за вопрос, а как правильно указать значение минимальной шары в этом скрипте, чтоб его воспринял ваш пингер? (минимальная шара например - 5 ГБ). Я уже задавал вопрос, но никто так и не ответил:
- Минимальный размер шары так же указывать в байтах? (Например: iMinShare = 5368709120 - это 5 Гб. (5368709120 байт)).

Спасибо за внимание.

Автор: ShadoWx 31.7.2011, 23:05

на дцхаблистком - не отображает кол-во пользователей .. http://mydc.ru/r/?http://dchublist.com/hub/29860 ...

Автор: Setuper 1.8.2011, 9:13

Как вариант: их пингер читает число юзеров из строки "Этот хаб работает под управлением...", а так как ты убрал эту строку поэтому так и получается big_smile.gif

Автор: Артём 1.8.2011, 13:32

http://mydc.ru/r/?http://www.dchublist.com/hub/29956 baffle.gif хотя я не трогал строчку "Этот хаб работает под управлением..."

Автор: Setuper 1.8.2011, 14:21

Ну значит такой кривой у них пингер.
Ведь на dchublist.ru всё нормально отображается

Автор: Артём 1.8.2011, 14:28

может и кривой пингер, а может и нет... не знаю big_smile.gif, вот http://mydc.ru/r/?http://www.dchublist.com/hub/edit/27420 , который у mariner стоит, нормально пингует (тот что у маринера стоит RusHub 2.2.14 - нормально пингует, а тот что у меня 2.3.4 - криво пингует)

Автор: ShadoWx 1.8.2011, 15:06

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

Автор: CrazyKiller 1.8.2011, 20:53

Аналогично !
Проблема не в скрипте !
На Ру норм а на Коме бардак показывает ! big_smile.gif

Автор: Dimon21 7.8.2011, 20:12

Не знаю ребят дело не в этом, у меня нормально всё пингует!

Автор: Angel_D 25.8.2011, 22:00

Цитата
Не знаю ребят дело не в этом, у меня нормально всё пингует!

да как-то ну совсем не нормально...
угадай, когда я поставил скрипт? big_smile.gif
http://mydc.ru/r/?http://dchublist.ru/hubs/4local/

Автор: Saymon21 26.8.2011, 0:34

а настроить под себя скрипт то не забыли?

Автор: Angel_D 26.8.2011, 10:59

Цитата
а настроить под себя скрипт то не забыли?


Код
sHubName = "4local.ru"
sAddress = "dchub://4local.ru" -- ip:port
sDescription = "Всё для сети - всё для тебя"
iMaxUsers = 10000 -- максимально допустимое число пользователей
iMinShare = 5368709120 -- минимальная шара на хабе
iMinSlots = 2 -- минимальное число слотов
iMaxHubs = 0 -- максимальное число хабов, на которых находится пользователь
sOwner = "Angel" -- Владелец хаба

Я ж так полагаю, если бы из этого что-то не так было б настроено - оно бы вообще не пинговало, а судя по графигу - оно то пингует, то не пингует. MinShare не при каком значении не подцепило.

Автор: Setuper 31.8.2011, 11:10

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

Автор: ShadoWx 25.9.2011, 21:37

Цитата(Setuper @ 31.8.2011, 12:10) *
В хабе была устранена проблема с отсылкой команды $Hello возможно косяк был в этом. В следующем релизе этого косяка не будет, и возможно пингеры будут нормально пинговать хаб.

версия из свн, все работает, включая зарубежные хаблисты

Автор: ShadoWx 2.4.2012, 23:36

версия 2.3.10 бета ..пингер поломан ...
во время пинга бот зависает на: <Network> Не флудите неизвестными командами.

такая пробелма на dchublist.com, hublist.bceti.com
на нашем русском хаблисте вообще интересная ситуация вроде бы пингует, на графике отображает а в статистике (блок сверху) отображает старую информацию ..

p.s. мне интересно - какие такие неизвестные команды ...

Автор: Setuper 3.4.2012, 9:15

В русхабе есть настройки антифлуда:

Код
<Item Name="iFloodTimeUnknown">3.0</Item>
<Item Name="iFloodTimeUnknown2">60.0</Item>
<Item Name="iFloodCountUnknown">1</Item>
<Item Name="iFloodCountUnknown2">10</Item>


Описание:
Код
iFloodTime... и iFloodCount.. — ряд параметров защиты от флуда (количество iFloodCount за время iFloodTime (в сек.)). При обнаружении флуда вызывается событие OnFlood



Поставь так:
Код
<Item Name="iFloodTimeUnknown">3.0</Item>
<Item Name="iFloodTimeUnknown2">60.0</Item>
<Item Name="iFloodCountUnknown">1000</Item>
<Item Name="iFloodCountUnknown2">1000</Item>
и никаких проблем не будет

Автор: ShadoWx 3.4.2012, 10:22

Спасибо большое, работает, но вот 1000 не много ли ??

Автор: Setuper 3.4.2012, 13:43

решай сам

Автор: ShadoWx 3.4.2012, 17:07

Илья, ты уж извини, но оптимальные настройки нужно выбирать тебе - чтобы избежать подобных проблем в использовании!
В птоке подобного не было никогда.

p.s. немного подобрал остановился на значении в 200 для двух настроек ... пингеры работают нормально ..

Автор: Setuper 3.4.2012, 17:36

Я не могу выбирать, так как для кого-то это будет приемлемо, а для кого-то наоборот.
Установив значение 200 есть риск атаки хаба неизвестными командами со стороны роботов. Для кого-то безопасность дороже, чем какие-то там пигнеры!

Автор: ShadoWx 3.4.2012, 21:15

ладно ..погорячился немного ..буду ждать когда все будет допилено ... shame.gif

Автор: mariner 4.4.2012, 7:53

Цитата
Илья, ты уж извини, но оптимальные настройки нужно выбирать тебе

Нет.