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

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

MyDC.ru _ Скрипты с MySQL [PtokaX] _ Antisearch

Автор: Setuper 24.2.2011, 22:30

Название скрипта: 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 найденного в базу с одновременным наказание пользователя, у которого это нашли. Возможно даже выделить сразу несколько найденных файлов и одним щелчком добавить в бд big_smile.gif

Для того чтобы добавлять TTH в базу нужно чтобы было создано хотя бы одно наказание.
В настройках iDefaultPenaltyId - это id наказания по умолчанию (для менюшки "Быстрое добавление TTH", то есть для добавления в базу TTH с наказанием по умолчанию).


Прежде чем запускать скрипт нужно предварительно настроить базу данных на работу со скриптом:
1) Прописать в скрипте настройки коннекта к базе данных.
2) Создать базу
3) Выполнить запросы, которые находятся в файле Antisearch.sql

Также необходимо в настройках PtokaX указать какой-нибудь не нулевой UDP порт.


Особенностью скрипта является возможность гибкой настройки в mysql прав для юзера, который прописывается в настройках скрипта.
Пользователю mysql, который будет прописан в настройках скрипта достаточно будет дать права: SELECT и EXECUTE. Таким образом мы сохраним целостность базы данных. Делалось это с тем рассчётом, что с одной базой могут работать сразу несколько хабов, и для того чтобы админы хабов не могли ничего менять в базе, но при этом им был доступен полный функционал данного скрипта. Если кому-то не понятно сказанное, то разъясняю: право SELECT даёт право на выполнение запросов на получение данных из бд (select запросов), право EXECUTE даёт возможность на вызов хранимых функций. Все действия по вставке, обновлению и удалению какой-либо информации из бд в скрипте происходят исключительно при помощи хранимых функций.

Из менюшек думаю будут понятны прочие детали скрипта)))
Настраиваем правильно, юзаем и боремся с порнографией big_smile.gif


 Antisearch.rar ( 7.1 килобайт ) : 111

Автор: DEN 007 24.2.2011, 22:41

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

А теперь вопрос бан происходит с указанием TTH файлло за который он был забанен?

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

Автор: Setuper 24.2.2011, 22:47

Нет немного не так. В бане указывается причина из наказания, в принципе в причине наказания можно конечно ввести TTH, однако в таком случае придётся для каждого TTH создавать отдельное наказание. Тут же всё устроено вот как: мы сначала создаём некий список наказаний (вводим тип наказания и причину, которая будет показываться пользователю), а затем при добавлении в базу TTH указываем id какого-то созданного нами наказания. Таким образом, несколько TTH могут быть привязаны к одному наказанию.

Автор: Setuper 25.2.2011, 17:05

Подправил некоторые баги с временем, плюс добавил глобальные функции в локальные таблицы (оптимизация).

Заменил хранимую функцию as_get_random_tth запросом. Сделал для того, чтобы, не имея доступ к хранимым функциям, можно было делать select запросы в бд (ограничения, позволяющие только получать данные из бд, но не добавлять/обновлять/удалять).

Для оптимизации ввёл кеширование (актуально при завале хаба результатами поиска).

Автор: mariner 25.2.2011, 18:47

А где мой реквест на счет исключений?) И да, при обновлении надо что делать? А то random_tth же должно ускорять нехило все. И еще 2 реквеста от меня было big_smile.gif

Автор: Setuper 25.2.2011, 23:25

Цитата
Хотя я до сих пор не понимаю, почему порно нужно банить. Это ж куча файлов, тысячи ттн.

Да хоть миллиарды))) База данных в этом случае резиновая big_smile.gif

Автор: SAG 26.2.2011, 7:49

Цитата(mariner @ 25.2.2011, 22:59) *
.. А ваще могу поднять сервер баз данных у себя и вуаля...

Вот это дело!

Автор: Otshelnik-Fm 26.2.2011, 16:32

Ещё полезно добавить сюда функционал запрета поиска по ключевым словам как вот http://mydc.ru/topic4238.html - помогает с теми кто юзает поиск. и еще чтобы существующий скрипт выдавал админу сообщение что вот у такого-то юзера нашел ххх, но с юзером ничего не делал. Это позволит не обидеть пользователя пока его не "проверят".

Автор: Setuper 6.3.2011, 21:07

Версия 1.4

  1. Добавил таблицу профилей, для которых не применяется проверка.
  2. К причине добавил путь к запрещенному файлу (приписывается в скобках к причине наказания).
  3. Сделал переподключение к sql серверу в случае разрыва соединения.
  4. Добавлена отсылка причины дисконнекта (в личку).

Автор: Fodin 4.10.2011, 20:24

Ошибки:
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", а "Во столько-то у юзера (Ник) найден файл (Имя). Бан на (время), причина (текст причины))и с возможностью уведомления операторов в личку.