Название скрипта: Antisearch
Версия скрипта: 1.4
Версия API: 2
Автор: Setuper
Требования: Для работы скрипта требуется http://mydc.ru/topic1508.html
Описание: Скрипт антипоиска. Скрипт хранит в mysql базе TTH запрещённых файлов.
Скрипт автоматически ищет у пользователей запрещённые TTH и даёт наказания за них.
Наказания могут быть следующих типов:
0 - без действий;
1 - дроп;
2 - кик;
3 - временный бан ника;
4 - временный бан IP;
5 - временный бан ника и IP;
6 - постоянной бан ника;
7 - постоянной бан IP;
8 - постоянной бан ника и IP.
Скрипт имеет меню в поиске и в файл-листах, то есть вводим и ищем в поиске то, что нужно запретить, и через меню одним щелчком добавляем TTH найденного в базу с одновременным наказание пользователя, у которого это нашли. Возможно даже выделить сразу несколько найденных файлов и одним щелчком добавить в бд
Для того чтобы добавлять TTH в базу нужно чтобы было создано хотя бы одно наказание.
В настройках iDefaultPenaltyId - это id наказания по умолчанию (для менюшки "Быстрое добавление TTH", то есть для добавления в базу TTH с наказанием по умолчанию).
Прежде чем запускать скрипт нужно предварительно настроить базу данных на работу со скриптом:
1) Прописать в скрипте настройки коннекта к базе данных.
2) Создать базу
3) Выполнить запросы, которые находятся в файле Antisearch.sql
Также необходимо в настройках PtokaX указать какой-нибудь не нулевой UDP порт.
Особенностью скрипта является возможность гибкой настройки в mysql прав для юзера, который прописывается в настройках скрипта.
Пользователю mysql, который будет прописан в настройках скрипта достаточно будет дать права: SELECT и EXECUTE. Таким образом мы сохраним целостность базы данных. Делалось это с тем рассчётом, что с одной базой могут работать сразу несколько хабов, и для того чтобы админы хабов не могли ничего менять в базе, но при этом им был доступен полный функционал данного скрипта. Если кому-то не понятно сказанное, то разъясняю: право SELECT даёт право на выполнение запросов на получение данных из бд (select запросов), право EXECUTE даёт возможность на вызов хранимых функций. Все действия по вставке, обновлению и удалению какой-либо информации из бд в скрипте происходят исключительно при помощи хранимых функций.
Из менюшек думаю будут понятны прочие детали скрипта)))
Настраиваем правильно, юзаем и боремся с порнографией
Antisearch.rar ( 7.1 килобайт )
: 111
как понял я с помощью данного скрипта можно объединить труды админов воедино, тобиш в одну базу добавляем к примеру фейки и т.д., и соответственно скрипт берет оттуда TTH и производит по расписанию поиск и бан юзеров у которых находятся эти файлы.
А теперь вопрос бан происходит с указанием TTH файлло за который он был забанен?
И как я понимаю если все хранится в mysql, можно создать какуй нить форму к примеру на сайте в которую юзер вобьет данный TTH, а после проверке к примеру модератора он попадет в черный список или создать что бы юзер мог добавлять фейки и т.д. прямо с хаба. (такой скрипт гдето есть на форуме)
Нет немного не так. В бане указывается причина из наказания, в принципе в причине наказания можно конечно ввести TTH, однако в таком случае придётся для каждого TTH создавать отдельное наказание. Тут же всё устроено вот как: мы сначала создаём некий список наказаний (вводим тип наказания и причину, которая будет показываться пользователю), а затем при добавлении в базу TTH указываем id какого-то созданного нами наказания. Таким образом, несколько TTH могут быть привязаны к одному наказанию.
Подправил некоторые баги с временем, плюс добавил глобальные функции в локальные таблицы (оптимизация).
Заменил хранимую функцию as_get_random_tth запросом. Сделал для того, чтобы, не имея доступ к хранимым функциям, можно было делать select запросы в бд (ограничения, позволяющие только получать данные из бд, но не добавлять/обновлять/удалять).
Для оптимизации ввёл кеширование (актуально при завале хаба результатами поиска).
А где мой реквест на счет исключений?) И да, при обновлении надо что делать? А то random_tth же должно ускорять нехило все. И еще 2 реквеста от меня было
Ещё полезно добавить сюда функционал запрета поиска по ключевым словам как вот http://mydc.ru/topic4238.html - помогает с теми кто юзает поиск. и еще чтобы существующий скрипт выдавал админу сообщение что вот у такого-то юзера нашел ххх, но с юзером ничего не делал. Это позволит не обидеть пользователя пока его не "проверят".
Версия 1.4
Ошибки:
173, 180 SendToUser(tUser, "Не доступа к команде", sHubBot)
209, 215, 231 Punish.PunishExecute(tUser.sNick, iType, sTime, sReason.."(запрещённый файл: "..sFile..")")
Нужен пробел перед открывающей скобкой в строке.
446, 484, 504, 640, 620 SendToUser(tUser, "TTH строки с введённым ID нету в базе ('"..iTthId.."')", sHubBot)
"нет", а не "нету"
699 Добавление TTH с новым наказание
709 Удаление наказание. ВНИМАНИЕ! Будут удалены все TTH с данный наказанием!!!
717 Добавить TTH с одновлеменным применением санкций к нику
770 sMsg = sMsg.."\n\tВсего нарушителей с данным никод в базе: "..iCounts.."\n"
Кроме указания UDP-порта, надо его еще и открыть в файерволе (возможно, еще и пробросить).
Возможно, был бы востребован тип наказания "Предупреждение", где юзер предупреждается в общий чат или в личку. К нему можно добавить функцию автосмены типа наказания на дефолтное для конкретного ТТН после определенного срока (скажем, сутки). Смысл: не все юзеры нарочно качают запрещенные файлы, он может просто лежать в папке, скачанной целиком. Если дефолтное наказание жестокое (бан на пару дней), то имеет смысл сначала юзера предупредить, а через сутки уже банить, если тот не принял меры.
Если планируются апдейты скрипта, наверное, хорошо бы вынести настройки в отдельный файл, чтобы менять только код, а не копипастить настройки. Не решает проблему, если появляются новые настройки.
Может быть, стоит добавить обработку SearchArrival, т.к. при большом кол-ве TTH в базе до нарушителя очередь может дойти не скоро, а у него кто-нибудь по имени может отыскать запрещенный файл и начать качать. При совпадении (после поиска альтернативных источников), принудительно отправляем запрос на поиск этого ТТН у всех и наказываем.
Спасибо за скрипт. Не все очевидно оказалось, но разобрался.
ЗЫ: И лог нарушений! Если стоит бан, вообще никак не узнать, что кто-то нарушил и что именно нарушил. Обычный текстовый (не "У юзера ID найден файл с ID TTH, наказание ID", а "Во столько-то у юзера (Ник) найден файл (Имя). Бан на (время), причина (текст причины))и с возможностью уведомления операторов в личку.