myDC.ru

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

 
История благодарностей участнику Enyby. Спасибо сказали: 211
Дата поста: В теме: За сообщение: Спасибо сказали:
20.5.2012, 8:08 Greylink API userinfo
гг.
Код
dcpp = {}
function dcpp.OnPublicMessage(uid, data)
  local user = DC():GetUserInfo(uid)
  DC():SendPublicMessage(user.HL, "test")
  dcpp = {}
end


или
Код
dcpp = {}
flag = true
function dcpp.OnPublicMessage(uid, data)
  if flag then
    local user = DC():GetUserInfo(uid)
    DC():SendPublicMessage(user.HL, "test")
    flag = false
  end
end
Lamo
17.5.2012, 11:12 Url Info
Код
function get_title(url)
    local data, http_status = http.request(url)
    if http_status and http_status == 200 then
        return data:match("<title>(.-)</title>"):gsub("&", "&".."#38;"):gsub("%$", "&".."#36;"):gsub("|", "&".."#124;")
    end
end


PS:
Чертов форум пожирает эйскейпированный вариант. Пришлось разбить строку конкатенацией.
Saymon21
17.5.2012, 10:46 Greylink API userinfo
гг.
1. http://inethub.olvi.net.ua/greylink/lua.html
2.
Код
local hub_name = dc_huburl -- "127.0.0.1"
local users = DC():GetUsers(hub_name)
local user = DC():GetUserInfo(users[math.random(1,#users)])
DC():SendPublicMessage(hub_name, '---------------------------')
for k,i in pairs(user) do
    DC():SendPublicMessage(hub_name, k..' = '..i)
end
DC():SendPublicMessage(hub_name, '---------------------------')


3.
ME - флаг того, что этот юзер - ты.
NI - ник юзера.
DE - описание
VE - версия клиента
TAG - тэг клиента
SSshort - краткое название шары
SS - шара в байтах
LOC - строка месторасположения
I4 - IPv4 адрес
HL - адрес хаба
OP - флаг оператора
EM - e-mail
SL - слоты

4. Вот еще описание этих значений:
http://mydc.ru/index.html?showtopic=1983&a...ost&p=15998


UPD:
Долго писал. Setuper обскакал. big_smile.gif
Saymon21, Lamo
23.4.2012, 21:48 ip-to-country.csv
База стран | Обновляемая
Исправил.
Alexey
19.4.2012, 1:14 ip-to-country.csv
База стран | Обновляемая
new-ip-to-country.zip

Недостающие поля забил пустыми.
Alexey
5.3.2012, 13:38 Defend PM
API 2 | Полностью автоматическая защита ЛС от спама
Чтобы сделать блокировку сообщений достаточно:
Код
                if iCount >= iBanLimit then
                    BanMan.TempBanIP(tUser.sIP, iTimeBan, "Спам по ЛС", sBot, true)
                    local sTimeBan = os.date("%d.%m.%Y %R", os.time() + iTimeBan*60)
                    sReport = sReport.."Пользователь забанен до "..sTimeBan..". "
                    local tUsers = Core.GetUsers(tUser.sIP)
                    if tUsers ~= nil then
                        for _, tSpamUser in pairs(tUsers) do
                            Core.SendToUser(tUser, "<"..sBot.."> *** Вы были забанены до "..sTimeBan.." за спам по ЛС.")
                            Core.Disconnect(tSpamUser)
                        end
                    end
                    tSpamUsers[tUser.sIP] = nil
                    sReport = sReport.."Отключено "..#tUsers.." пользователей."
                end
                if sReport ~= "" then
                    Core.SendToOps("<"..sBot.."> "..sReport)
                end
заменить на:
Код
                if iCount >= iBanLimit then
                    sReport = sReport.."Сообщение заблокировано. "
                end
                if sReport ~= "" then
                    Core.SendToOps("<"..sBot.."> "..sReport)
                end
                if iCount >= iBanLimit then
                    return true
                end


ADD:
Улучшенная детекция IP адреса:
Код
"[0-9]?[0-9]?[0-9].+[0-9]?[0-9]?[0-9].+[0-9]?[0-9]?[0-9].+[0-9]?[0-9]?[0-9]",
заменить на:
Код
"[^%d]%d?%d?%d[^%d]+%d?%d?%d[^%d]+%d?%d?%d[^%d]+%d?%d?%d[^%d]",
"^%d?%d?%d[^%d]+%d?%d?%d[^%d]+%d?%d?%d[^%d]+%d?%d?%d[^%d]",
"^%d?%d?%d[^%d]+%d?%d?%d[^%d]+%d?%d?%d[^%d]+%d?%d?%d$",
"[^%d]%d?%d?%d[^%d]+%d?%d?%d[^%d]+%d?%d?%d[^%d]+%d?%d?%d$",
вариант чуть по проще:
Код
"%d?%d?%d[^%d]+%d?%d?%d[^%d]+%d?%d?%d[^%d]+%d?%d?%d",
rival, AfLc
5.3.2012, 9:35 Defend Hub
API 2 | Полностью автоматическая защита хаба от активности ботов
Новая версия скрипта. Улучшено определение ботов. Добавлена опция отключения детекции очень старых клиентов как ботов. Скрипт перезалит.
AfLc
4.3.2012, 4:01 Несколько Слов О Захватах И Регулярных Выражениях
исключительно для разработчиков
Слева направо. Но тебе никто не мешает сделать реверс строки (string.reverse), а потом гонять регулярки. К найденным кусками потом снова применить реверс и будет поиск справа налево.
MIKHAIL
4.3.2012, 3:22 Несколько Слов О Захватах И Регулярных Выражениях
исключительно для разработчиков
"[^/]+$"
MIKHAIL
3.3.2012, 16:19 Defend PM
API 2 | Полностью автоматическая защита ЛС от спама
Посмотрим. Если уж совсем заняться нечем будет, может и сделаю.
Tsd
3.3.2012, 14:58 Defend Hub, RusHub edition
Полностью автоматическая защита хаба от активности ботов
Скрипт оптимизирован под RusHub. Перезалит в шапке.
ShadoWx
3.3.2012, 3:54 Defend Hub, RusHub edition
Полностью автоматическая защита хаба от активности ботов
Название скрипта: Defend Hub, RusHub edition
Версия скрипта: 1.02_rushub
Платформа: RusHub
Версия API: N/A
Автор: Enyby

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

Принципы работы скрипта:
Боты определяются на основе отличия их общения с хабом в рамках протокола. Подробности расписывать не стану, кому надо, все увидят в коде.

Боты определяются не все. Но для большей части этого будет достаточно.

Настройки скрипта содержат опции:
- использование тихого запрета активности ботов;
- запрет детекции очень старых клиентов как ботов.
Об активности ботов никто не уведомляется.

[attachment=6377:DefendHub_RusHub.lua]

P. S. Если у вас нет регистрации на этом форуме, а значит вы не можете качать вложения, то скачать этот скрипт, равно как и другие, можно по ссылке Мои скрипты.
ShadoWx, CrazyKiller, Saymon21
3.3.2012, 3:26 Defend Hub
API 2 | Полностью автоматическая защита хаба от активности ботов
Название скрипта: Defend Hub
Версия скрипта: 1.01
Платформа: PtokaX
Версия API: API2
Автор: Enyby

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

Принципы работы скрипта:
Боты определяются на основе отличия их общения с хабом в рамках протокола. Подробности расписывать не стану, кому надо, все увидят в коде.

Боты определяются не все. Но для большей части этого будет достаточно.

Настройки скрипта содержат опции:
- использование тихого запрета активности ботов;
- запрет детекции очень старых клиентов как ботов.
Об активности ботов никто не уведомляется.

[attachment=6376:DefendHub.lua]

P. S. Если у вас нет регистрации на этом форуме, а значит вы не можете качать вложения, то скачать этот скрипт, равно как и другие, можно по ссылке Мои скрипты.
Nickolya, Tsd, rival, AfLc
2.3.2012, 1:09 Defend Chat, RusHub edition
Полностью автоматическая защита чата от спама
Название скрипта: Defend Chat, RusHub edition
Версия скрипта: 1.00_rushub_beta
Платформа: RusHub (port)
Версия API: N/A
Автор: Enyby

Описание: Скрипт предназначен для полностью автоматической защиты чата хаба от спама. Глушит сообщения со спамом.

Принципы работы скрипта:
Обычные пользователи отличаются от спамеров тем, что у обычные пользователи, если и кидают ссылку на хаб, IP адрес или что-то подобное, то это будет не первое сообщение после входа на хаб. На этом и основана работа скрипта.

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

Каждое сообщение проверяется таблицей паттернов на принадлежность к "плохим". Если сообщение плохое, то оно пройдет только в том случае, если пользователь перед этим отправил не менее 5 "хороших" сообщений в чат. Т. е. при этом скрипте нельзя писать в чат ссылки, если не участвуешь в разговоре. После перезахода нужно снова отправить не менее 5 сообщений без ссылок, чтобы ссылка прошла в чат. Причем, при ошибочных попытках, счетчик "хороших" ссылок обнуляется. Также блокируется отправка одинаковых сообщений в чат, даже от разных пользователей.

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

Особенности: Представляет собой слепой порт с PtokaX версии. Не тестировался.

[attachment=6355:DefendChat_RusHub.lua]

P. S. Если у вас нет регистрации на этом форуме, а значит вы не можете качать вложения, то скачать этот скрипт, равно как и другие, можно по ссылке Мои скрипты.
Setuper, ShadoWx, CrazyKiller, Saymon21
2.3.2012, 0:47 Defend Chat
API 2 | Полностью автоматическая защита чата от спама
Название скрипта: Defend Chat
Версия скрипта: 1.00
Платформа: PtokaX
Версия API: API2
Автор: Enyby

Описание: Скрипт предназначен для полностью автоматической защиты чата хаба от спама. Глушит сообщения со спамом.

Принципы работы скрипта:
Обычные пользователи отличаются от спамеров тем, что у обычные пользователи, если и кидают ссылку на хаб, IP адрес или что-то подобное, то это будет не первое сообщение после входа на хаб. На этом и основана работа скрипта.

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

Каждое сообщение проверяется таблицей паттернов на принадлежность к "плохим". Если сообщение плохое, то оно пройдет только в том случае, если пользователь перед этим отправил не менее 5 "хороших" сообщений в чат. Т. е. при этом скрипте нельзя писать в чат ссылки, если не участвуешь в разговоре. После перезахода нужно снова отправить не менее 5 сообщений без ссылок, чтобы ссылка прошла в чат. Причем, при ошибочных попытках, счетчик "хороших" ссылок обнуляется. Также блокируется отправка одинаковых сообщений в чат, даже от разных пользователей.

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

[attachment=6354:DefendChat.lua]

P. S. Если у вас нет регистрации на этом форуме, а значит вы не можете качать вложения, то скачать этот скрипт, равно как и другие, можно по ссылке Мои скрипты.
Nickolya, Артём, rival, Saymon21, AfLc
29.2.2012, 13:11 Defend PM, RusHub edition
Полностью автоматическая защита ЛС от спама
Название скрипта: Defend PM, RusHub edition
Версия скрипта: 1.01_rushub_beta
Платформа: RusHub (port)
Версия API: N/A
Автор: Enyby

Зависимости: Модуль банов.

Описание: Скрипт предназначен для полностью автоматической защиты ЛС пользователей от спама. Выдает бан, при обнаружении спама.

Принципы работы скрипта:
Обычные пользователи отличаются от спамеров тем, что у обычных пользователей, если и пройдет ссылка на хаб, IP адрес или что-то подобное, то это будет разово. На этом и основана работа скрипта.
При получении ЛС оно проверяется на наличие стоп слов. Если стоп слова найдены, то список спамера пополняется очередным ником. Если ников стало больше предела уведомления операторов, то операторы уведомляются. Если больше предела предупреждений - пользователь предупреждается. Если больше либо равно пределу бана - пользователь уходит в бан.
Периодически запускается очистка, которая убирает по одному нику из списка спамера.
Таким образом идет учет количества отспамленных в интервале проверки. Чтобы спамить безнаказанно, нужно писать новым пользователям не чаще 1 раза в интервал. По умолчанию интервал 5 минут.

Особенности: Представляет собой слепой порт с PtokaX версии. Не тестировался.

[attachment=6353:DefendPM_RusHub.lua]

P. S. Если у вас нет регистрации на этом форуме, а значит вы не можете качать вложения, то скачать этот скрипт, равно как и другие, можно по ссылке Мои скрипты.

ADD:
Исправлена ошибка выдачи бана в формате времени.
Setuper, ShadoWx, KT315, CrazyKiller, Saymon21
19.2.2012, 17:28 NMDC Extensions
Расширения и новые команды NMDC протокола
А я знаю, что биты нумеруются справа налево...
Код
00100000
87654321
gif-t
8.2.2012, 1:11 ip-to-country.csv
База стран | Обновляемая
Исправил. Базы перекомпилировал.

И да, Артем, воткни, пожалуйста, ссылку в первый пост темы, а то люди теряются в обилии ссылок и не находят нужную, пока носом не ткнешь.
Артём
4.2.2012, 2:06 Вопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
Код
tTable["nick"] = {nick,ip}
LoT
2.2.2012, 20:28 Instahub
Instant PtokaX-based Hub with scripts (API2)
О да. Нет. Как же. А строчку откуда я вытащил? Из прикрепленного файла выше. 46 строка.
Booth
2.2.2012, 12:55 Public PHP hublist (Хаблист) by Enyby
Публичный открытый хаблист на PHP
Ну, во-первых, я не вижу никаких особых проблем с русхабом: http://inethub.olvi.net.ua/dc/hub.php?id=789 http://hublist.godc.ru/hub.php?id=1
В будущем я собираюсь переделать публичную версию на пингование раз в час с графиками на флеш. Это собираюсь. Но дел очень много, так что не факт что соберусь или что это будет скоро.

Вопрос: вот когда пингую хабы, имя бота Hublist, где его изменить на своё имя?
Ответ: Файл dc.php:
Код
function getInfo() {
    $my = new stdClass();
    $my->nick = "Hublist"; //(mt_rand(0, 100) < 50 ? "H" : "Нў)."ub".(mt_rand(0, 100) < 50 ? "l" : "I").(mt_rand(0, 100) < 50 ? "i" : "Уў)."st"; //substr(md5(mt_rand(0, 100000)), 0, 10);
    $my->desc = "Visit http://inethub.olvi.net.ua for more information.". //substr(md5(mt_rand(0, 100000)), 0, 10).
    '<FlylinkDC++ V:(r396),M:P,H:1/0/0,S:15>';
    $my->email = "Enyby@ya.ru"; //substr(md5(mt_rand(0, 100000)), 0, 10);
    $my->share = mt_rand(100*1024, 120*1024)*mt_rand(1024*1024,2*1024*1024);
    $my->conn = 'LAN(T3)';
    return $my;
}


Вопрос: Где показывает сколько юзеров на хабе, там через палку / стоит 0,1,2,3 и т. д. как это убрать?
Ответ: Это среднее число юзеров на хабе за неделю. Через неделю будет нормальные числа.
Это параметр адекватно отражающий число юзеров хаба, так как текущее значение меняется быстро. Можно убрать в выводе, но на него много чего завязано, включая дефолтную сортировку.
в index.php:
Код
                <td class="numeric"><span<?php echo ($row['max_users'] != '') ?
                    ' tooltip="Пик юзеров: '.htmlspecialchars($row['max_users']).'"' : '';
                    ?>><?php echo intval($row['users']); ?>/<?php echo intval($row['avg_users']);
                ?></span></td>
удалите эту часть:
Код
/<?php echo intval($row['avg_users']);
                ?>


Вопрос: Где поменять шару бота?
Ответ: Там же где и ник. Чуть ниже.

Вопрос: Как изменить сортировку по умолчанию?
Ответ: В файле index.php:
Код
if(isset($_GET['name'])) {
    $order = "name";
}
elseif(isset($_GET['host'])) {
    $order = "host";
}
elseif(isset($_GET['status'])) {
    $order = "status.sort, avg_users DESC";
}
elseif(isset($_GET['users'])) {
    $order = "users DESC";
}
elseif(isset($_GET['avg_users'])) {
    $order = "avg_users DESC";
}
elseif(isset($_GET['share'])) {
    $order = "share DESC";
}
elseif(isset($_GET['avg_share'])) {
    $order = "avg_share DESC";
}
else {
    $order = "status.sort, avg_users DESC";
}
в этом коде последнюю часть меняем на:
Код
else {
    $order = "status.sort, users DESC";
}
это будет сортировка по числу пользователей. Остальные варианты сортировок осуществляются аналогично.
dj hoodo, ke(x)one
1.2.2012, 0:28 Вопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
Hexhub. Вот тебе такой "скрипт". Там встроенный фаервол есть.

Или любой другой фаервол.
MIKHAIL
30.1.2012, 4:17 С Днюхой Тебя!
поздравления
Поздравляю! big_smile.gif
Setuper
29.1.2012, 0:15 Вопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
tmr является глобальным значением. Если указать
Код
function OnStartup()
    local tmr = TmrMan.AddTimer(60000)
end
то переменная tmr будет утеряна после выхода из функции и идентификатора таймера у вас не будет. Это не существенно, если таймер один, и важно, если таймеров несколько. В последнем случае можно использовать именованую функцию таймера.
MIKHAIL
28.1.2012, 10:34 Домены Для Вашего Хаба
Как думаете?
Нет. Это просто еще одно имя.
Nickolya, GULAM33
27.1.2012, 20:48 User Mode Fixer
API 2 | Исправление режима подключения пользователя
Новая версия 2.05.
По идее должна быть совместимость с экзекутором. А на деле - черт его знает.
Ameet, AfLc
27.1.2012, 13:04 User Mode Fixer
API 2 | Исправление режима подключения пользователя
Цитата(Ameet @ 27.1.2012, 10:19) *
+TimeoutWaitCTM = 782 (0.20715231788079 в секунду или 1 за 4.8273657289003 секунд)

Это плохой признак. Следует увеличить iTimeout. Поставьте 600 для начала.
Цитата(Ameet @ 27.1.2012, 10:19) *
+ConnectedDuplicateUser = 16 (0.0042384105960265 в секунду или 1 за 235.9375 секунд)

Это вообще очень круто.
В общем это вызов UserConnected для одного ника несколько раз, без UserDisconnected между вызовами.
Попробуйте остальные скрипты отрубить или поставить этот выше всех.
Выше не должно быть скриптов, которые возвращают return true в UserDisconnected, а ниже - скриптов, которые отключают юзера в UserConnected.

ADD:
Версия 2.04.
Улучшен отладочный вывод. Никаких критичных ихменений.

Ameet, ставь новую версию и присылай снова лог ошибки. Там будет чуть больше информации. Так же проверь другие скрипты на предмет совместимости с этим.
AfLc
27.1.2012, 1:18 User Mode Fixer
API 2 | Исправление режима подключения пользователя
Все это выглядит похоже на подключение юзера в обход UserConnected.
Или на присутствии на хабе юзера, который не выводится в общем списке.
Или на отсылке запроса на подключения юзеру находящемуся на невнятной стадии подключения. Это, кстати, возможно если кого-то часто кидает.
А так все это похоже на мистику.

Новая версия 2.03.
Добавил обработку этого бага.

Кстати, совет тем, у кого большой хаб. Если происходит медленный вход, то это может стать причиной отваливания юзеров по таймауту и переопределением в пассив. Чтобы этого не происходило - увеличиваем таймаут соединения с 3 секунд до приемлимых значений, например, 10 секунд. В тоже время можно попробовать уменьшить интервал вызова главного цикла с 100 мс до 10 мс.
На винде сделать интервал меньше 10 мс не получится в принципе, так как все что меньше, будет приводится к 10 мс. Это особенности реализации таймеров C++ на винде.
На линуксовой птоке используется своя реализация таймеров, работающая из принимающего цикла, так что там может быть все что угодно, но на крупных хабах, хотя бы 10 мс задержки между вызовами получить будет нереально, будет больше. А все потому что пользователей много и все обычно что-то шлют.
rival, AfLc
26.1.2012, 17:09 User Mode Fixer
API 2 | Исправление режима подключения пользователя
Цитата(rival @ 26.1.2012, 14:53) *
просто чтоб список не обновлять

Какой список?

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

Выложил версию 2.02.
Там добавлена дополнительная обработка ошибок и некоторые улучшения статистики.
Если будут снова ошибки, то будут со статистикой и отладкой.
Если в статистистике будет появляется параметр "+NilUser" - присылайте статистику с отладкой, будем разбираться.
rival, AfLc
26.1.2012, 3:02 Defend PM
API 2 | Полностью автоматическая защита ЛС от спама
Для "спасибо" на этом форуме есть специальная кнопка внизу каждого поста. Если пост помог - нажимаете кнопку.
rival, Marc

4 страниц V   1 2 3 > » 
RSS Сейчас: 22.5.2012, 16:07