myDC.ru

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

 
История благодарностей участнику dmvn. Спасибо сказали: 10
Дата поста: В теме: За сообщение: Спасибо сказали:
11.12.2013, 0:11 Instahub
Instant PtokaX-based Hub with scripts (API2)
Так-с, отвечаю на некоторые вопросы...
1) Автор жив (как в том анекдоте - не дождетесь (с) big_smile.gif )
2) Проект действительно был несколько заброшен в связи с разными причинами, в том числе в связи с физической недоступностью сервера, на котором все это крутилось.
3) В очень недалеком будущем все это оживет, я надеюсь успеть до начала 2014 года.

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

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

Сейчас я активно тестирую PtokaX 0.5.0.0, уже нашел там два серьезных бага, один из которых для меня, увы, пока блокирует использование этой версии :( Автор не заморачивается юнит-тестированием своего кода, поэтому... ладно, не будем о грустном. В целом, его поделие достаточно качественное, чтобы его направо и налево ругать, хотя заглянув в кишки сорцов, я увидел много удивительного.
Пока что это всё означает, что будем юзать 0.4.х, а вот какую именно - покажет время.

Да, спасибо за спасение последней версии скриптов для всеобщего пользования big_smile.gif
Ссылки в верхнем посте поправлю.
Nickolya
18.3.2011, 2:59 Instahub
Instant PtokaX-based Hub with scripts (API2)
Цитата(thehawk @ 30.11.2010, 22:06) *
Скачал, поставил, запустил. Так и не понял, где находится быстрая регистрация
Из файла hubconf.lua

Если ставить "оба false", то
Код
21:01:06] <[PtokaX]> Вам доступны следующие способы регистрации:
[21:01:06] <[PtokaX]> Более подробно о регистрации можно прочесть на странице http://biglocal.vip-zone.su/doc/bigvipzone/

Выключая скрипт users.lua выключается не только регистрация, то ещё и заглушки. Не совсем понимаю идею разделения по файлам. Как по мне, если потом отключать некоторые скрипты, так лучше антимат и заглушку вместе в 1 файле держать, а регистрация каждому на вкус и цвет: мне другая нравится.
В общем пока не юзаю по этой причине. Попрежнему ищу альтернативу антимата и заглушки Хуббабота, но пока не нашёл.


да, похоже это просто баг big_smile.gif по идее он должен был написать что доступна только быстрая рега. это я починю, спасибо!
мы просто ее как-то практически не юзали, поэтому и не заметили...

а логика тут такая.
глушить незареганных юзеров - в каком-то смысле бесперспективно. они меняют ники, и т.п.
банить по IP - жестоко, особенно если нужно запретить только чат.
поэтому мы обычно разрешаем чат только зареганным, и именно поэтому система рег и заглушек тесно связана.
если есть заглушки на нике, то его уже нельзя поменять, и т.п. (это может сделать только Админ, Опы не могут).

и собсно говоря, если я не ошибаюсь, там проблема только в приветственном сообщении, а сама быстрая рега работать будет.
я проверю это всё в ближайшее время, если там действительно баги - поправлю и выложу апдейт.
вообще говоря, апдейт я и так бы скоро выложил, поскольку допиливал систему автобанов.


thehawk
5.12.2009, 14:49 Сборка PtokaX в Fedora Linux, openSUSE
Краткий HOW-TO
Я смотрю, редхатовские изделия не особо популярны среди хабостроителей.
Вашему вниманию предлагается HOW-TO по сборке PtokaX в Fedora Linux.
Инструкция практически так же сработает (должна!) на openSUSE.
Для CentOS или RHEL инструкция тоже работает, но с изменениями (см. ниже в этой теме).

Проверялось всё это на Fedora 12 (Constantine).

Здесь приводится пошаговая инструкция, в конце - итоговые diff-ы файлов, которые нужно подогнуть.
Шаг 1. Скачиваем, распаковываем:
Код
tar -xvf 0.4.1.1-posix-src.tgz

Шаг 2. Образовалась папка PtokaX. Заходим и пытаемся собрать:
Код
cd PtokaX
make

Шаг 3
gcc нам говорит что-то про tinyxml. ага, берем в руки yum и ставим два пакета (о чудо, они называются именно так, мы угадали!)
и снова запускаем make (пакеты ставим либо через sudo, либо под root-ом, либо через гуйню)
Код
sudo yum install tinyxml tinyxml-devel
make

Шаг 4
На этот раз оно ругается на строчку в файле src/stdinc.h.
говорит что нету такого файла - tinystr.h. Убираем эту строчку нах (строка 84 в оригинальном файле), и снова говорим make.
После этого оно ругнется на makefile, скажет что нету файла tinyxml/tinyxml.a.
Смело правим makefile и убираем из строки 47 упоминание tinyxml в самом конце строки (см. diff ниже)
Шаг 5. Снова make, теперь оно ругается про что-то связанное с lua. Берем yum и говорим
Код
sudo yum install lua-devel
make

Шаг 6
Ура, оно скомпилировалось, но сломалось на линковке, будет ругаться на lua5.1.
Открываем makefile на строке 42, и заменяем
Код
-llua5.1

на
Код
-llua-5.1 -ltinyxml

И снова make. Ураа!! Всё собралось, перед нами свеженький ещё не остывший бинарник PtokaX.
Итого:
diff -ub makefile.original makefile:
Код
--- makefile.original    2009-12-05 14:14:15.953003363 +0300
+++ makefile    2009-12-05 14:14:38.150502577 +0300
@@ -39,13 +39,12 @@
    $(CURDIR)/obj/LuaRegManLib.o $(CURDIR)/obj/LuaScript.o $(CURDIR)/obj/LuaScriptManager.o $(CURDIR)/obj/LuaScriptManLib.o $(CURDIR)/obj/LuaSetManLib.o $(CURDIR)/obj/LuaTmrManLib.o $(CURDIR)/obj/LuaUDPDbgLib.o $(CURDIR)/obj/ProfileManager.o \
    $(CURDIR)/obj/PtokaX.o $(CURDIR)/obj/pxstring.o $(CURDIR)/obj/RegThread.o $(CURDIR)/obj/ResNickManager.o $(CURDIR)/obj/ServerManager.o $(CURDIR)/obj/ServerThread.o $(CURDIR)/obj/serviceLoop.o $(CURDIR)/obj/SettingManager.o \
    $(CURDIR)/obj/TextFileManager.o $(CURDIR)/obj/UdpDebug.o $(CURDIR)/obj/UDPThread.o $(CURDIR)/obj/User.o $(CURDIR)/obj/utility.o $(CURDIR)/obj/ZlibUtility.o
-    $(CXX) -lpthread -lz -llua5.1 -lrt -o PtokaX \
+    $(CXX) -lpthread -lz -llua-5.1 -ltinyxml -lrt -o PtokaX \
          $(CURDIR)/obj/ClientTagManager.o $(CURDIR)/obj/colUsers.o $(CURDIR)/obj/DcCommands.o $(CURDIR)/obj/DeFlood.o $(CURDIR)/obj/eventqueue.o $(CURDIR)/obj/globalQueue.o $(CURDIR)/obj/hashBanManager.o $(CURDIR)/obj/hashUsrManager.o \
          $(CURDIR)/obj/hashRegManager.o $(CURDIR)/obj/HubCommands.o $(CURDIR)/obj/IP2Country.o $(CURDIR)/obj/LanguageManager.o $(CURDIR)/obj/LuaBanManLib.o $(CURDIR)/obj/LuaCoreLib.o $(CURDIR)/obj/LuaIP2CountryLib.o \
          $(CURDIR)/obj/LuaProfManLib.o $(CURDIR)/obj/LuaRegManLib.o $(CURDIR)/obj/LuaScript.o $(CURDIR)/obj/LuaScriptManager.o $(CURDIR)/obj/LuaScriptManLib.o $(CURDIR)/obj/LuaSetManLib.o $(CURDIR)/obj/LuaTmrManLib.o \
          $(CURDIR)/obj/LuaUDPDbgLib.o $(CURDIR)/obj/ProfileManager.o $(CURDIR)/obj/PtokaX.o $(CURDIR)/obj/pxstring.o $(CURDIR)/obj/RegThread.o $(CURDIR)/obj/ResNickManager.o $(CURDIR)/obj/ServerManager.o $(CURDIR)/obj/ServerThread.o \
-        $(CURDIR)/obj/serviceLoop.o $(CURDIR)/obj/SettingManager.o $(CURDIR)/obj/TextFileManager.o $(CURDIR)/obj/UdpDebug.o $(CURDIR)/obj/UDPThread.o $(CURDIR)/obj/User.o $(CURDIR)/obj/utility.o $(CURDIR)/obj/ZlibUtility.o \
-        $(CURDIR)/tinyxml/tinyxml.a
+        $(CURDIR)/obj/serviceLoop.o $(CURDIR)/obj/SettingManager.o $(CURDIR)/obj/TextFileManager.o $(CURDIR)/obj/UdpDebug.o $(CURDIR)/obj/UDPThread.o $(CURDIR)/obj/User.o $(CURDIR)/obj/utility.o $(CURDIR)/obj/ZlibUtility.o
  
  #*******************************************************************************
  # Files to compile


Итого: diff -ub src/stdinc.h.original src/stdinc.h:
Код
--- src/stdinc.h.original    2009-12-05 14:17:56.804386438 +0300
+++ src/stdinc.h    2009-12-05 14:18:28.409772369 +0300
@@ -81,7 +81,6 @@
      #include <syslog.h>
  #endif
  #include <tinyxml.h>
-#include <tinystr.h>
  #ifdef _WIN32
      #include <psapi.h>
      #include <io.h>


Последние два патча в приложении.
[attachment=3566:ptokax_src_patches.zip]
TiGRpp
5.12.2009, 13:35 Instahub
Instant PtokaX-based Hub with scripts (API2)
Цитата(TiGRpp @ 4.12.2009, 21:34) *
А планируется версия instahub для Линукса?
Особенно протестированная со скриптами, подключающимися к инет-серверам? Поскольку у меня возникла такая проблема, что при запуске таких скритов Птоха через некоторое время останавливается, а в логах ошибок нет.


1. начну с истории. некоторое время InstaHub работал в корбиновской сетке под Gentoo.
За полгода работы никаких сбоев замечено не было. Тогда это был один из первых релизов, но обошлось практически без граблей. единственное что было не очень удобным - так это править файлы в cp1251 на системе с юникодной консолью.
Второй момент - это файл dmvn-lib/sendmail.lua, в котором для Linux надо закомментировать ровно одну строчку dofile.
при этом на машине должен, разумеется, стоять пакет lua-socket (или просто соответствующие библиотеки).

2. Сейчас я ещё раз проверил текущую версию на совместимость с linux.
в данный момент под рукой оказалась Fedora11 (x86 32bit).

инструкция получается такая.
  • качаем PtokaX с оф.сайта и собираем под вашу систему (untar && make), по дороге ставим всё что ей нужно. (libxml у меня уже был, вроде бы нужен lua-devel и ещё что-то, чего на лысой системе у меня не оказалось)
  • качаем дистрибутив Instahub-lite ( http://big.vip-zone.su/files/instahub/instahub-lite.zip ), распаковываем.
  • копируем в него уже собранный бинарник PtokaX.
  • комментируем строчку dofile('scripts/libs/...') в начале файла scripts/dmvn-lib/sendmail.lua (это временное решение, потом будет полный дистрибутив.
  • добавляем рег. юзера в файл cfg/RegisteredUsers.xml (в следующем релизе этого будет делать не нужно)
  • стартуем хаб


всё. вот у меня после этих действий хаб завелся без проблем.

ЗЫ: дистрибутив был сегодня перезалит, так что лучше скачайте заново.

3. что касается вышеупомянутых инет-скриптов...
надо бы это всё проверить.
это правда всё слабо относится к данному проекту, но я готов поисследовать проблему у себя на системе.
наверное, стоит смотреть не только логи ptokax, но и вывод tcpdump - там запросы-то вообще идут или нет? big_smile.gif
еще могут быть баги из-за (например) криво собранного luasocket или ещё каких=нибудь граблей, которых с ходу не видно.
В любом случае, надо врубать отладку в этих скриптах и смотреть, на чем они валятся.

ЗЗЫ. спасибо ещё раз за проявленный интерес к проекту.
если что-то не будет получаться - пишите, будем разбираться!
но в новом релизе, обещаю, количество действий для установки под linux будет гораздо меньше.
вот только сборку бинарника, скорее всего, придётся оставить на откуп владельцу хаба - уж больно разные линуксы, .so-файлы, разные версии gcc, и тд...



TiGRpp
7.11.2009, 13:02 Instahub
Instant PtokaX-based Hub with scripts (API2)
Цитата(Delion @ 31.10.2009, 18:54) *
А с какого рожна тогда список изменений на забугорном? Не нашлось исторических причин для использования родного языка?


Ваша правда. ну привык я логи коммитов писать на забугорном, они же потом перекочевали в changеlog (ой, простите, список изменений big_smile.gif ).
Сегодня вечером сяду и переведу, не поленюсь big_smile.gif

UPD: вот первая половина... тяжкое всё-таки это дело - перевод. особенно тех вещей, которые делались больше года назад...
Код
v0.10:
* Первая общедоступная версия

v0.11:
* усовершенствования антимата, исправлена куча багов
* Добавлены комадны +grp/+srp для мастера (GetRegProfile/SetRegProfile)

v0.12:
* улучшен антимат: отслеживается разделение матерных слов пробелами
+ опции проверки допустимых ников вынесены в HubConf.lua
+ антиспам: добавлен черный список доменных имен (BlackDNS.dat), аналогично черному списку IP-адресов

v0.13:
- антиспам: исправлен баг в обработке черного списка доменных имен (BlackDNS)
+ проверка ников унифицирована в модулях регистрации и IPcontrol, добавлены отдельные настройки
   по проверкам каждого типа
* множество исправлений в антимате (база данных)
+ IPControl: IP юзера пишется в сообщении о недопустимом IP-адресе (не попадающем в разрешенный диапазон)
+ рега: добавлена возможность разрешать регистрацию с почтовых ящиков в разных доменах
   (до этого был только один) -- в HubConf.lua

v0.14
- антимат: пофиксен баг в алгоритме проверки; дополение БД мата и исключений
+ рега: добавлена опция, разрешающая регу с любого мыла (HubConf)

v0.15 (r955-r971)
рега:
   - пофиксен баг с проверкой почтового ящика
   + добавлена команла gagbytime для операторов и выше (мягкая заглушка на произвольное время)
   + добавлена проверка на заглушенность юзера при повторной заглушке в ProcessGag()
   - критический баг в функции удаления префикса (использовался старый API PtokaX < 0.4)
+ новинки: улучшение доступа:
   1. можно назначать релизерами юзеров по профилю (разрешить/запретить всем юзерам данного профиля)
   2. список релизеров вынесен в отдельный файл (DataBase/releasers.dat)
* исправления в бБД антимата

v0.16 (r971-r992)
- исправлен баг предыдущего релиза с проверкой прав релизеров
+ добавлено: hubtop.lua - статистика лучших юзеров хаба (топ):
   считает аптайм и рейтинг юзеров, выводит список первых N юзеров.
   Статистика хранится в файле 'DataBase/top.dat'.
   Старые записи удаляются из базы по таймауту.
+ service.lua: добавлена сервисная функция PrintTimeShort(unixtime) для читаемой печати времени
* удален старый скрипт 'TopTen' (для PX036)
* исправления в антимате

v0.17 (r992-r1038)
* рега: настройки времен заглушек перенесены в hubconf (переменные *_GAG_TIME)
- исправлен баг в реге в функции сравнения баз и добавлена команда +diffbase
* переписан модуль IPControl:
   база ip-адресов объединена с базой префиксов. Файл DataBase/regions.dat больше не используется.
   Формат базы изменен, она НЕ совместима со старым форматом.
* в антимат добавлена фильтрация магнет-ссылок и исправлено несколько мелких багов в базе.
* некоторые константы перенесены в dmvn-lib/const.lua
* жестко забитое имя бота убрано из скрипта menu.lua

v0.18 (r1039-r1060)
- исправлен баг в чтении базы антилича (спсб Yokel-ю за репорт)
* антилич улучшен: добавлена обработка изменения размера шары 'на лету' (а не только при входе)
+ новинки: добавлен разбор TTH в команде +nadd command (теперь можно постить магнет полностью, не только ТТХ).

v0.20 (r1061-r1315)
* рега полностью переписана с нуля. основные изменения:
   1. [+] трех-вариантная рега (через операторов, почту, и быстрая);
   2. [*] полностью отделен антимат в отдельный скрипт
   3. [*] отделена команда 'say'
   4. [*] фича для "перевода" слов не в той раскладке отделена в скрипт translate.lua
   5. [*] неподтвержденные реги теперь имеют отдельный профиль (4)
   6. [+] более информативные сообщения при регистрации
   7. [+] отдельные ссылки на документацию для инетных и локальных юзеров (локальных в смысле ип-ов 10.*)
   8. [+] автоматическое удаление старых регистраций.
   9. [+] оффлайн-оповещения о некоторых событиях при регистрации, удалении реги, смены ника и тд
   A. [+] лог сообщений, которые пишут в чат незареганные
   B. [+] опция, запрещающая юзать ПМ незареганным инет-юзерам (за исключением сообщений операторам)
   C. [+] сохранение базы по таймеру
   D. [-] правильное заполнение заголовка письма (поле 'from:') в почтовых оповещениях
   E. [+] все пользовательские настройки перенесены в hubconf.lua
   G. [+] опциональное оповещение о новом зареганном юзере
   H. [+] альфа-версия веб-регистрации
+ добавлен скрипт amsg.lua: юзер может отправить сообщение администрации хаба, которое отобразится в опчате.
   Сообщения проверяются на цензурность.
+ изменения в ipcontrol:
   в базу префиксов добавлен флаг 'special', запрещающий использование данного префикса в качестве составляющей ника.
- множество исправлений в словаре антимата
+ new anti-search script (asearch.lua) forbidding search if share is too small.
+ новый скрипт translate.lua - встроенный punto-switcher, заменяющий раскладку букв при ошибочном ее выборе.
* модуль inform.lua: добавлена поддержка различных MOTD для локальных и инет-юзеров.
* скрипт новинок: полностью переписан.:
   1. [+] новинки делятся на категории произвольной глубины вложенности.
   2. [*] поля 'название', 'ориг. название' и 'год' объединены.
   3. [+] разрешается несколько магнетов в одном релизе.
   4. [+] добавление/удаление релизеров через интерфейс (или командами).
   5. [+] меню сущственно улучшено.
   6. [+] магнеты теперь хранятся 'как есть' (раньше хранились только TTH).
   7. [+] команды nls (nlist) и ntail выводят новинки в отсортированном виде (сначала по категории, потом по времени).
   8. [+] добавлена проверка целостности базы при чтении (ошибки выводятся в лог).
   9. [+] последняя категория, к которой применялаь команда nls, запоминается
          для каждого пользователя и добавляется для него в меню.
+ добавлен скрипт stat.lua: собирает статистику по шаре/юзерам - максимальные и средние значения и пишет их в лог.
* antiadv.lua улучшен:
   1. белый список адресов и доменов теперь фильтруется в сообщениях перед проверкой
      на спам (ранее такие сообщения игнорировались)
   2. исправлена детекция IP-адресов (меньше ложных срабатываний)
   3. Добавлена проверка сообщений в чат для незареганных юзеров

v0.21 (r1311-r1340)
Модуль ipcontrol:
   + Добавлены команды для веб-регистрации (+checkmyprefix, +getprefix).
   * пофиксен небольшой баг при проверке префикса (в том случае, если его нет в базе).
моудль anti-adv (антиспам):
   - исправлен баг: неверное действие в том случае, если 'spam limit' (переменная maxcount, кол-во нарушений)
     была равна 1 (забанивание случалось только со 2 раза).
   * более правильный порядок сообщений в логе
   + улучшение: сообщение теперь не передаётся другим скриптам если юзер забанивается.
рега (users.lua):
   * веб-регистрация (бета-версия)
антимат:
   * исправления БД мата

v0.22 (r1341-r1373)
+ новый скрипт amassmsg.lua: контроль массовых рассылок в приват
+ новый скрипт antiop.lua: запрещает входить на хаб с никами, похожими на ники операторов.
* пофиксен баг в users.lua: опечатки в опциях проверки ников (в конфиге и скрипте были разные переменные)
* небольшие исправления антмата (БД)
* веб-регистрация (бета 2)

v0.23 (r1374-r1417)
* скрипт amassmsg.lua улучшен:
   1. сообщение блокируется, если скрипт принимает решение о забанивании юзера.
   2. очень короткие сообщения (настройка AMSett.MinMsgLen, по умолчанию 10 символов) не обрабатываются фильтром.
* HubTop:
   1. Убраны повторяющиеся timestamp-ы в таблице топ-юзеров (реквест Wariner'а)
   2. Унифицирована система команд: единая +top [N] вместо of +top и +ntop <N>.
   3. Шара выводится в удобочитаемом формате (Mb/Gb/Tb/Pb) с 2 знаками после запятой. (реквест [antipod]-а)
+ Новый скрипт kickunreg.lua, кикающий незареганных юзеров после некоторого времени, проведенного на хабе.
   Удобен для хабов с обязательной регистрацией - юзер зашел, посмотрел, может посидеть незареганным минут 5-10,
   потом его выкинет, если он не зарегается.
+ добавлена команда +faq (в menu.lua)
* Адрес хаба (локальный/инетный) теперь хранится в единых глобальных настройках GIntHubAddr, GExtHubAddr.
* рега:
   + Имя хаба и адрес хаба добавлены в почтовые сообщения о регистрации (для удобства). (за замечание спсб [antipod]-у)
   - Исправлен баг в DBRegRemove(): теперь правильно работает удаление неподтвержденного юзера по мылу.
   * Более правильная обработка команд веб-регистрации.
   * часть общих функций вынесена в скрипт dmvn-lib/common.lua
* антимат (amfilter.lua) улучшен:
   * независимая проверка ника и текста сообщения (раньше проверялась единая строка "<ник> текст")
   + опция, показывающая юзеру "неприличное" слово или сочетание слов в ПМ от бота. (реквест vicious1987)
   * some pattern extensions (letter repeating, other fixes).
   * более корректная проверка сочетаний вида "}{", похожих на буквы.
   * более правильный порядок сообщений в логе.
* новинки (Newfiles.lua): исправлен баг в удалении релизеров (спсб vicious1987 за багрепорт)

v0.24 (r1418-r1471)
* users.lua:
   - исправлен критический баг: поиск юзера по нику с заглавными русскими буквами в нике не работал.
   + добавлена обработка аналогов команд +regsendpass и regsendcode для веб-регистрации.
   + добавлены переменные SMTPuser, SMTPpass, SMTPhost в настройки.
   + функция отправки почты отделена от регистрации в файл dmvn-lib/sendmail.lua
* антимат:
   1. фильтрация ников юзеров в сообщениях, некоторые исправления БД
   2. добавлено распознавание "JI" как буквы "Л".
   3. упрощение и улучшение паттернов.
* anti-op: проверка на похожесть ников улучшена: похожие русские/английские буквы
    теперь тоже учитываются скриптом.
+ добавлен скрипт acmd.lua, блокирующий необработанные хабом команды (в случае несуществующей
   команды или ошибки в скрипте)

v0.25 (r1471-r1506)
   * рега (users.lua): массовая переработка кода, унификация сообщений.
   * исправления антимата.
   + защита от DDoS при mail-регистрации: опция, запрещающая слишком частую отправку сообщений с хаба
     (запросы на регу, восстановление пароля, и тд).
   + добавлена статистика распределения шары - сколько юзеров попадает в тот или иной диапазон размера шары.
   * исправления для совместимости с Linux (регистр букв в именах файлов и тд).


перевод чендж-логов на русский обновлен до версии 0.25.
Delion
27.2.2009, 2:03 Instahub
Instant PtokaX-based Hub with scripts (API2)
InstaHub 0.40

Текущая версия: http://dc.dmvn.net/files/instahub/instahub.tgz
Ссылка на страничку проекта: http://dc.dmvn.net/ Документация временно отсутствует, но скоро появится в новом виде.

Итак, вашему вниманию предлагается отечественная разработка в области тяжелого хабостроения.
Это хаб на базе PtokaX 0.501, с уже готовыми скриптами и всем прочими нужными файлами, настроенный и готовый к немедленному запуску (отсюда и название проекта).

Хаб оснащен следующим скриптовым функционалом:
  • Система регистрации users.lua:
    Поддерживаются 4 независимых режима:
    1) быстрая регистрация (a-la regme),
    2) регистрация через запрос к операторам хаба (юзер подает заявку, операторы ее подтверждают),
    3) регистрация через почту (для работы требуется какой-нибудь smtp-сервер).
    4) через веб-интерфейс (требует веб-сервера, понимающего PHP, с поддержкой сокетов); соответствующий PHP-скрипт будет выложен чуть позже.
    Регистрация включает в себя контроль чата:
    заглушки бывают 4 типов -- короткие, без записи наказания в журнал; длительные ("несгораемые"), с записью нарушения в базу (длительность равна количеству уже имеющихся несгораемых нарушений; постоянные -- "пожизненные" заглушки на очень длительный срок. Все периоды наказаний задаются в настройках. Операторы хаба и пользователи с профилем 2 (VIP) имеют менюшку для управления заглушками. Операторы имеют возможность также досрочно снимать заглушки, а мастер -- прощать юзера (то есть снимать несгораемое нарушение).
    Имеется константа, задающая максимальное количество несгораемых нарушений, после которого ставится постоянная заглушка.
    Система включает в себя контроль приватного общения (при некоторых настройках заглушенные юзеры лишаются и привата в том числе).
    Имеется функция восстановления паролей через почту (при наличии smtp-сервера), автоматическую очистку "старых" аккаунтов, поиск по базе, смена ников, удаление аккаунтов, вывод таблицы заглушенных и многое другое. Также реализована возможность смены профилей пользователей (удобно для назначения/снятия операторов), функция для вывода всех юзеров заданного профиля.
    Название и адрес хаба теперь включаются в почтовые сообщения (чтобы юзер понимал с какого хаба ему пришло письмо о регистрации).
    Веб-регистрация поддерживает повторную посылку кода подтверждения и восстановление пароля; Имеются параметры SMTPUser, SMTPPass
    для отправки почты (можно использовать не только локальный smtp-сервер).
    v0.25: Произведен рефакторинг кода скрипта, унифицированы некоторые сообщения и обработка ошибок.
    v0.26: Добавлен контроль частоты отправляемых почтовых сообщений с сервера (для предотвращения почтового флуда). Минимальный интвервал задаётся в настройках.
    new in v0.28: Добавлена команда +regmakeop (для мастера), дающая права оператора зарегистрированному юзеру (раньше надо было вручную удалить регу и зарегать юзера с правами оператора средствами PtokaX); исправлено два критических бага в GagByTime и DBRegAdd().
    v0.30: Много изменений:
    * Улучшенная проверка целостности базы, некоторые полезные команды для админа БД (Master only) - синхронизация баз, автоматическое удаление битых регистраций;
    * Улучшенные команды поиска и удаления регистраций (поиск по подстроке, в том числе во внутренней базе PtokaX);
    * Время автосохранения уменьшено до 20 минут;
    * Вызов RegMan.Save() при сохранении собственной БД;
    * Отправка почты: более корректная обработка входных параметров; возможность использовать smtp-сервера без авторизации (вообще без логина/пароля) (thx Inkognito)
    v0.32:
    * исправлен баг в быстрой регистрации, теперь она работает. спасибо за репорт.
    * исправлен редко проявляющийся баг с сохранением БД и полем .time (появился в версии 0.25)
  • Система новинок (релизов) newfiles.lua
    Имеется база пользователей, снабженных правами релизеров. Они имеют возможность пополнять список новинок (релизов на хабе).
    Список новинок имеет древесную структуру (произвольной глубины вложенности), каждый релиз может содержать набор из одной или нескольких магнет-ссылок.
    Для пользователей имеется меню, отражающее структуру категорий новинок, можно вывести себе либо всё дерево (в хронологическом порядке добавления с делением на категории), либо некоторую его часть. Для релизеров это меню содержит также пункты добавления новинок в соответствующую категорию, а для операторов -- возможность добавления и удаления категорий новинок. Имеется также поиск по новинкам (по TTH или по тексту). Релизы хранятся в базе определенное время, задаваемое в настройках, потом автоматически удаляются.
    new in 0.29: Добавлена команда +nlsuser для операторов, выводящая список релизеров.
  • Система анти-спама: antiadv.lua
    Контроль нежелательных сообщений в приваты, заточенный в основном на борьбу с рекламой хабов и других ресурсов в привате. Базы нежелательных IP-адресов, DNS-имен, детектируемых как спам, хранятся в текстовых файлах в читаемом и легко редактируемом формате.
    Система учитывает количество и частоту отправленных подозрительных сообщений, при достижении определенного количества (задаётся в настройках) наступает возмездие в форме бана.
    new in 0.30: Слишком длинные спамные сообщения пользователей, отображаемые в логах, теперь обрезаются (константа в скрипте).
  • Система антимата в чате и для ников пользователей amfilter.lua
    Маленький, но отлаженный и отточенный годами фильтр антимата с относительно компактной базой великих слов живого русского языка и исключений. Написание слов через пробелы, знаки препинания, некоторое коверкание слов и албанские варианты также успешно отслеживаются. Эта же система контолирует регистрацию нецензурных ников.
    Корректно отслеживаются сочетания символов, напоминающих буквы (типа >< -- буква 'х', и тд.), а также делается отдельная проверка ника и самого сообщения.
    Есть опция, по которой сообщение с недопустимым текстом показывается юзеру, а текст выделяется фигурными скобками.
  • Контроль флуда и ора в чате
    Система контролирует ОР (написание заглавными буквами), и флууууууууд -- повторения символов. Сначала бот вежливо предупредит юзера, что так лучше не делать, а если просьба не будет выполнена, разозлится и влепит заглушку чата. (с точки зрения кода, скрипт интегрирован в систему регистраций).
  • Система anti-leech (aleech.lua)
    Относительно стандартный антилич, запрещающий скачивать файлы юзерам, расшарившим слишком мало (пропорционально объему шары).
  • Запрет поиска пользователям с очень малой шарой (asearch.lua)
    При настройках по умолчанию -- при шаре менее 5 гб поиск не доступен.
  • Скрипт статистики (stat.lua)
    Показывает текущее/среднее-за-период/максимальное количество юзеров на хабе, а также аналогичные параметры общей шары хаба.
    Реализован подсчет количества юзеров, шара которых попадает в определенный диапазон (команда +sdist).
    В таблице рекордов пишется время достижения рекорда.
  • Список лучших пользователей хаба (hubtop.lua)
    Ведется список лучших пользователей -- тех, кто расшарил как можно больше и просидел на хабе как можно дольше (учитывается "чистое" время)
    Учтены замечания пользователей (вывод шары в гигабайтах/терабайтах/мегабайтах),
    интеграция команд +top и +ntop, убраны повторения timestamp-ов.
  • История сообщений в чате (chathist.lua)
    Последние сообщения в чате показываются при входе на хаб.
    Если последнее сообщение было написано недавно (относительно входа юзера), то время сообщений не отображается (берется текущее), при это сообщения внешне не выделяются из общего чата -- как будто их только что написали сами пользователи, а не скрипт. Если же в чате долгое время был застой -- сообщения отображаются с оригинальными временами.
    А если застой был совсем долгим -- к timestamp-у добавляется день и месяц.
  • Система периодических и приветственных оповещений (inform.lua)
    Позволяет показать определенное сообщение разным классам пользователей при входе: всем пользователям, только зареганным, или только незареганным, а также выводить в общий чат (циклически) одно их периодических сообщений, задаваемых в наборе текстовых файлов, с определенным интервалом времени.
    Она же позволяет выводить различный MOTD для пользователей, входящих через инет и через локальную сеть (class А, 10.*.*.*).
  • Система контроля диапазонов IP-адресов и префиксов для ников пользователей (ipcontrol.lua)
    Система позволяет контролировать вход на хаб с различных диапазонов адресов.
    Можно запретить вход с определенных диапазонов, можно выдавать некоторый текст юзерам конкретного диапазона,
    можно требовать (или рекомендовать) поставить определенный префикс перед ником.
    (исторический комментарий: эта функция исходно делалась для хаба Корбины, на котором префиксами ников обозначались районы Москвы).
    new in 0.30: Вывод в лог попыток захода с диапазонов, которых вообще нет в базе.
  • Блокировка привата (pmblock.lua)
    Система позволяет заблокировать приват для всех, кроме нескольких "любимых" пользователей (по умолчанию -- не более 5 человек, значение меняется в настройках)
  • Запись в логи входов и выходов (prolog.lua)
    new in 0.27: Добавлена возможности записи логов чата в формате XML, который легко отобразить на сайте (например портале хаба) - дает возможность ещё до захода на хаб почитать, что пишут в чате.
  • VipChat (vipchat.lua) :
    аналог OpChat-а, только для юзеров с профилем 0,1 и 2.
  • WL-translator (translate.lua) : скрипт распознает слова, часто набираемые не в той раскладке ('ghbdtn dctv' вместо 'привет всем') и автоматически переводит их.
    Словарь расширяемый, хранится в текстовом файле (в папке DataBase)
  • Контроль ников, похожих на ники администраторов (antiop.lua)
    Скрипт запрещает вход на хаб юзерам с никами, похожими (по вхождению) на ники администрации.
    new in 0.24: Похожесть ников теперь проверяется более строго, с учетом похожих русских и латинских букв.
    new in 0.30: Слишком короткие ники операторов (3 буквы и менее) теперь игнорируются (слишком много совпадений).
  • Контроль массовых рассылок (amassmsg.lua)
    Несмотря на могучий deflood в самой PtokaX, пришлось сделать средство для продвинутой борьбы со спамерами. Если юзер быстро рассылает сообщения разным юзерам, его отправляют "помыться в бане". ВременнЫе константы задаются в настройках хаба. new in 0.23: Добавлена настройка -- минимальная длина сообщения, на которую срабатывает скрипт (по умолчанию 10 символов).
  • new in 0.23 Запрет на долгое присутствие на хабе незарегистрированным юзерам (kickunreg.lua)
    (Скрипт делался по индивидуальному запросу, по умолчанию отключен). Если юзер незареган и просидел на хабе более 5 минут, его кидает с хаба.
  • new in 0.24 Anti-command (acmd.lua)
    Скрипт, не пропускающий в чат необработанные хабом команды. Особенно полезен при ошибках в скриптах, иногда приводящих к тому что текст команды попадает в чат (при этом он может содержать текст, который другие видеть не должны).
  • new in 0.26 HubManager (hubman.lua)
    Скрипт для управления скриптами хаба. Пока содержит команды +srun (запуск/перезапуск), +slist и +set(min|max)share, менюшка будет позже.
  • Система Прогрессирующих Банов (bans.lua)
    Скрипт для управления прогрессирующим забаниванием нарушителей (время * кол_во нарушений) и удобной менюшкой для бана за некорректную шару.
    new in 0.31: Добавлена система автоматических банов за запрещенные файлы в шаре (порнуха, etc). Скрипт автоматически ищет файлы по TTH по своей базе. База редактируется командами хаба или через меню; можно добавлять сразу по несколько TTH, причем можно скармливать командам любой текст, в котором содержатся магнет-ссылки - мусор будет проигнорирован. По каждому TTH ведется статистика, сколько раз по нему производились баны. Время бана - прогрессирующее, в зависимости от количества наказаний.
    Те TTH, которые не использовались слишком долго (временные константы задаются настройками), автоматически удаляются из базы.
    0.32:
    * улучшена команда +tthlist, теперь при 8000 записей в базе и вызове с параметром --all от хаба не отрубает ;-)
    * добавлена опция +tthlist <n> - показать статистику по top-N записям
    * добавлена команда вывода обобщенной статистики +tthstat: выводит первые top-5 записей, и "хвост" базы с малым числом срабатываний, показывая количество и процентное содержание записей с 0,1,..,MIN_TRIG_COUNT срабатываниями.


уф... ну кажется всё. есть ещё некоторые мелкие скрипты, не столь достойные описания.

В папке scripts также имеется каталог dmvn-lib.
Самый важный файл там -- hubconf.lua -- это настройки перечисленных выше скриптов.
Остальные файлы в нем являются компонентами библиотеки и не являются скриптами для хаба в истинном смысле этого слова -- это просто набор функций, констант и прочих определений.

Все скрипты написаны более-менее с нуля, разве что регистрация -- по мотивам модифицированного HubbaBot-а. Единственное, что тут уцелело из хуббы -- так это функция StringLower для русского текста. Никакого готового (чужого) кода тут само собой нет, это не "сборник" скриптов, а независимая разработка.

Разумеется, каждую из перечисленных фичей в отдельности можно отключить, просто сняв галочку с соответствующего скрипта.
Вот только порядок скриптов не меняйте сильно, пока не поймете как оно там работает.
Можете использовать "как есть", можете дорабатывать скрипты для себя, но, пожалуйста, не уничтожайте оригинальных копирайтов и ссылок на домашнюю страницу проекта.

Насчёт SMTP-сервера: годится любой, например халявный OfficeMailServer или чё-нить юниксовое (скрипты, кстати, будут работать и на *nix).

Данная система скриптов успешно работает на моем хабе dchub://dc.dmvn.net:1441
Если есть вопросы -- заходите, спрашивайте... но лучше сначала читайте исходники big_smile.gif

копирайты и копилефты:
© dmvn, 2007-2014;
Благодарности: NRJ, Rivia за идеи и базу некоторых скриптов, Yokel за советы, идеи и самое главное -- качественное тестирование бета-верий,
а также всем пользователям КорбиныТелеком за тестирование ранних реализаций этих и других скриптиков (в особенности антимата big_smile.gif )
Alexey, nafig, MIKHAIL, мамин_парень, chev

RSS Сейчас: 22.11.2024, 19:56