Страница 1 из 2

Антиреклама для PtokaX

Добавлено: 03 июн 2010, 16:11
Damaks
Антиреклама для PtokaX

Название: anti_adversting_multifunctional
Версия скрипта: 1.7
Версия API: API1, API2
Авторы: Damaks и nd
Описание:
- Наиболее эффективный и понятный скрипт антирекламы для PtokaX.
- Сканирует чат и личку.
- Запрещённые слова ищутся по универсальным шаблонам, что во много раз уменьшает количество примеров рекламных фраз.
- Регистр не важен, www и wWw фильтруются одинаково (самый эффективный и компактный на сегодняшний день алгоритм преобразования кодировки cp1251 в нижний регистр).
- Не существует проблемы с обходом защиты благодаря оптимальному поисковому алгоритму (распространённая проблема в большинстве скриптов, случается при нахождении в одном сообщении заперещённой фразы и исключения).
- Ложные срабатывания сведены к минимуму и практически исключены.
- Раздельные функции сканирования чата и лички (выбрать нужный режим можно изменением одной цифры в скрипте).
- Приличный выбор самых необходимых режимов наказания: возможность бана на заданное время (задаётся в скрипте), разъединения (сообщение юзеру о рекламе и disconnect), просто замены запрещённой фразы (сообщение с рекламой заменяется информационным, его видит только отправитель), тихого фильтрования (отправитель думает, что всё нормально и сообщение доставлено, в личке и общем чате же оно не появляется) или просто информирование операторов о поступаемых ссылках.
- Возможность информирования операторов о попытке рекламы с показом запрещённой фразы (если хотите знать, кто что отсылает).
- При рекламе в личку показывает получателя сообщения, что даёт больше информации.
- При отправлении сообщения профилю-исключению (tProfiles) оно не фильтруется.
Примеры информирования пользователя и оператора писал(а):[15:53:56] <Антиреклама> *** Внимание! Реклама посторонних ресурсов на хабе категорически запрещена!
[15:53:56] <Антиреклама> *** Внимание! Реклама посторонних ресурсов на хабе категорически запрещена! Вы были забанены на 10 мин.
[15:53:56] <Антиреклама> *** Внимание! Реклама посторонних ресурсов на хабе категорически запрещена! Вы были отключены.

[15:54:57] <Антиреклама> *** [89.222.185.103] Nick-1 реклама в чат: dchub://goldhub.mydc.ru
[15:55:47] <Антиреклама> *** [89.222.185.103] Nick-1 реклама в личку [94.127.69.217] Nick-2 : http://dchublist.ru
В скрипте есть подробные пояснения, которые помогут разобраться даже новичку в lua.
Версию скрипта для API1 необходимо использовать в паре с old_api.lu (уже находится в архиве, также копируется в папку "scripts").
История версий
1.1
+ Добавил возможность "без фильтрования".

1.2
+ При рекламе в личку операторам сообщется также ник адресата, которому предназначалось сообщение.
+ Добавлена возможность задать описание боту. По умолчанию " - bot - ".
+ Пятым режимом добавлено простое информирование оператора о рекламных ссылках без фильтрования.
+ Изменены шаблоны рекламы, убраны излишние, исправлены некоторые минусы и ложные срабатывания.
+ Изменены некоторые стандартные сообщения для большего удобства и под один шаблон в связи с изменением №1.
+ Слегка отредактирован код, к примеру, уменьшена нагрузка на хаб из-за ненужного заполения таблицы при поступающем новом сообщении (Core.GetUserAllData(user)).

1.3
+ Немного оптимизировал функцию is_forbidden(). Теперь сообщения без спама (наиболее частый случай) обрабатываются в 2 раза быстрее.

1.4
+ При отправлении сообщения профилю-исключению (tProfiles) оно не фильтруется. Теперь возможна отправка сообщения с запрещённой фразой администрации хаба. Соответственно исправлено двойное оповещение, если в автоответчике содержалась реклама.

1.5
+ Добавлены версии для API1 (PtokaX 0.3.5-0.3.6).
+ Заменена функция преобразования в нижний регистр на более производительную (прошлая могла влиять на другие скрипты, т.к. изменяла локали во всей программе).
+ Изменён принцип создания шаблонов, что значительно уменьшило их количество (теоретически есть вероятность, что защита ослабнет, на практике такие совпадения практически исключены).
+ По умолчанию добавлены шаблоны наиболее "спамных" адресов без префиксов (*no-ip*, *-hub.org*, *dyndns.tv, *.ucoz.*). Также в исключения добавлены магнет-ссылки.
+ При рекламе в личку в оповещении оператору добавил ip получателя.
- Удалено описание бота (посчитал не таким необходимым).

1.6
+ Добавлена минимальная длина сообщения для проверки антирекламой. Проверка только для чата. Особенно пригодится для хабов, где есть викторина или активный чат. Много коротких фраз не проходят все функции соответствия запретам и исключениям. Разница незаметна, скрипт и так быстрый, но для порядка решил добавить.
+ Добавлены шаблоны рекламы для фильтрования ссылок без префиксов. Не пропускаются .ru, .ro, .ua, .net и .com. Эти шаблоны не фильтруют модификации, только чёткие занчения "точка домен". Т.к. кликабельные ссылки уже исключены фильтром префиксов, то оставалось только затруднить копирование из чата ссылки без редактирования.
+ Изменены шаблоны исключений. В прошлой версии скрипт мог не пропускать некоторые фразы с исключениями. Исправлены окончания.

1.7
+ Совместимость с PtokaX 0.5 и Lua 5.2
Скачать:
anti_adversting_multifunctional_api2_1.7.lua
Версия 1.7 - для PtokaX 0.5
(9.55 КБ) 402 скачивания
anti_adversting_multifunctional_api2.lua
Версия 1.6 - для PtokaX 0.4
(9.76 КБ) 668 скачиваний
anti_adversting_multifunctional_api1.zip
(9.65 КБ) 510 скачиваний

Антиреклама Plus для PtokaX

Название: anti_adversting_multifunctional_plus
Версия скрипта: 1.6
Версия API: API1, API2
Авторы: Damaks и nd
Описание:
Основывается на скрипте anti_adversting_multifunctional. Немного расширяет функциональность, не теряя при этом в производительности.

Содержит все функции первого скрипта, плюс:
– Раздельные шаблоны для чата и лички (для разных критериев фильтрования).

Версию скрипта для API1 необходимо использовать в паре с old_api.lu (уже находится в архиве, также копируется в папку "scripts").

Скачать:
anti_adversting_multifunctional_plus_api2.lua
(11.4 КБ) 523 скачивания
anti_adversting_multifunctional_plus_api1.zip
(9.78 КБ) 468 скачиваний

Добавлено: 04 июн 2010, 14:45
FugenSP_
Скрипт неплохой, но я все равно пользуюсь своим старым. а если переходить на этот то надо будет опять все по своему настраивать, а так спасибо!

Добавлено: 04 июн 2010, 16:07
Damaks
Что ты там так много настраивать решил? Под себя подредактировать и удалить лишнее - много времени не займёт.

Добавлено: 05 июн 2010, 01:43
FugenSP_
та впрочем ты прав!

Добавлено: 06 июн 2010, 19:37
Вечный
Ну... Давайте банить за любое www, http и .ru.

Это несерьезный подход. Правильный скрипт антирекламы должен одни ссылки пропускать в чат, другие пропускать в приват, некоторые никуда не пускать, но не банить, за некоторые банить, если они в чате, за некоторые - если в привате. Например, ссылка на Youtube в личке проходит, а в чате нет. Или наоборот. Или еще как.

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

Добавлено: 06 июн 2010, 22:16
Damaks
Вечный
А всем не угодишь. Не нравится - есть другие. Не нравятся исключения - измени, и заодно YouTube с RuTube добавь. Хочется более раздельного фильтрования - нагрузи и раздуй скрипт.
Что касаемо своих исключений, согласись, если у тебя есть хаб, то и мозгов хватит заглянуть в скрипт. У тебя же, я так понимаю, хватило. В описании я даже написал, что есть подробные пояснения для малопонимающих.

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

Такое ощущение, что я кого-то заставляю пользоваться и тяну за уши. Хотите спама - не пользуйтесь, решать вам.

Добавлено

Добавлено: 07 июн 2010, 10:52
Damaks
Раз есть такая необходимость в скрипте с раздельными шаблонами для чата и лички (например, чтобы некоторые ссылки, запрещённые в чате, можно было посылать в личке), то уталим спрос.
Немного подредактировал и добавил anti_adversting_multifunctional_api2_+.lua. Желаю удачи :-)

Добавлено: 16 июн 2010, 06:42
Setup
Вечный писал(а):Это несерьезный подход. Правильный скрипт антирекламы должен одни ссылки пропускать в чат, другие пропускать в приват, некоторые никуда не пускать, но не банить, за некоторые банить, если они в чате, за некоторые - если в привате. Например, ссылка на Youtube в личке проходит, а в чате нет. Или наоборот. Или еще как.
Полностью поддерживаю! Ещё должны быть ссылки о которых скрипт должен просто уведомлять операторов без фильтрования.

Прошу авторов добавить функцию "без фильтрования" четвёртым пунктом. :-)

Скрипт антирекламы

Добавлено: 20 июл 2010, 09:01
Damaks
Добавил возможность "без фильтрования" ко второму скрипту:
скрипт поглощён обновлением в первом сообщении

Добавлено: 29 июл 2010, 23:04
Setup
Огромное спасибо! поставил собирать сомнительные сообщения со ссылками. ;-)

Добавлено: 30 июл 2010, 09:01
Damaks
Тогда поставь побольше щаблонов и потом выложи рейтинг ссылок и спамеров. Думаю, будет интересно.

Добавлено: 11 авг 2010, 10:02
Damaks
Скрипты обновлены.

Изменения:

- При рекламе в личку операторам сообщется также ник адресата, которому предназначалось сообщение.
- Добавлена возможность задать описание боту. По умолчанию " - bot - ".
- Пятым режимом добавлено простое информирование оператора о рекламных ссылках без фильтрования.
- Изменены шаблоны рекламы, убраны излишние, исправлены некоторые минусы и ложные срабатывания.
- Изменены некоторые стандартные сообщения для большего удобства и под один шаблон в связи с изменением №1.
- Слегка отредактирован код, к примеру, уменьшена нагрузка на хаб из-за ненужного заполения таблицы при поступающем новом сообщении (Core.GetUserAllData(user)).

Добавлено: 11 авг 2010, 13:57
nd
А зачем в коде 2 копии функции is_forbidden()? Одна лишняя.

Добавлено: 11 авг 2010, 14:31
Damaks
Пасиб, исправил.

Добавлено: 11 авг 2010, 16:58
nd
Немного оптимизировал функцию is_forbidden(). Теперь сообщения без спама (наиболее частый случай) обрабатываются в 2 раза быстрее.

Код: Выделить всё

--[[
Возвращает true если сообщение содержит части совпадающие с forbidden_patterns и
не совпадающие с allowed_patterns, иначе возвращает false.
]]
local function is_forbidden(message, forbidden_patterns, allowed_patterns)
	local allowed_indexes

	for start, end_ in gfind_patterns(message, forbidden_patterns) do
		if not allowed_indexes then
			allowed_indexes = collect_results(gfind_patterns(message, allowed_patterns))
		end

		local forbid = true
		for _, indexes in ipairs(allowed_indexes) do
			if start >= indexes[1] and end_ <= indexes[2] then
				forbid = false
				break
			end
		end
		if forbid then
			return true
		end
	end

	return false
end

Добавлено: 12 авг 2010, 16:44
Damaks
Заменил, обновил.

Добавлено: 16 авг 2010, 20:51
Damaks
Скрипты обновлены.

Изменения:

- При отправлении сообщения профилю-исключению (tProfiles) оно не фильтруется. Теперь возможна отправка сообщения с запрещённой фразой администрации хаба. Соответственно исправлено двойное оповещение, если в автоответчике содержалась реклама.

Добавлено: 04 фев 2011, 18:42
Damaks
Скрипты обновлены.

Изменения в версии 1.5:

+ Добавлены версии для API1 (PtokaX 0.3.5-0.3.6).
+ Заменена функция преобразования в нижний регистр на более производительную (прошлая могла влиять на другие скрипты, т.к. изменяла локали во всей программе).
+ Изменён принцип создания шаблонов, что значительно уменьшило их количество (теоретически есть вероятность, что защита ослабнет, на практике такие совпадения практически исключены).
+ По умолчанию добавлены шаблоны наиболее "спамных" адресов без префиксов (*no-ip*, *-hub.org*, *dyndns.tv, *.ucoz.*). Также в исключения добавлены магнет-ссылки.
+ При рекламе в личку в оповещении оператору добавил ip получателя.
- Удалено описание бота (посчитал не таким необходимым).

Добавлено: 26 мар 2011, 11:41
Damaks
Скрипты обновлены.

Изменения в версии 1.6:

+ Добавлена минимальная длина сообщения для проверки антирекламой. Проверка только для чата. Особенно пригодится для хабов, где есть викторина или активный чат. Много коротких фраз не проходят все функции соответствия запретам и исключениям. Разница незаметна, скрипт и так быстрый, но для порядка решил добавить.
+ Добавлены шаблоны рекламы для фильтрования ссылок без перфиксов. Не пропускаются .ru, .ro, .ua, .net и .com. Всё чаще встречается спам с такими ссылками без префиксов, видимо на безрыбье решили хоть так спамить. Эти шаблоны не фильтруют модификации, только чёткие занчения "точка домен". Т.к. кликабельные ссылки уже исключены фильтром перфиксов, то оставалось только затруднить копирование из чата ссылки без редактирования. В скрипте можно удалить, есть все пояснения.
+ Изменены шаблоны исключений. В прошлой версии скрипт мог не пропускать некоторые фразы с исключениями. Исправлены окончания.

Добавлено: 26 май 2011, 11:29
[REAL]AfLc
Спасибо Damaks и nd. *THUMBS_UP* Пока отлично робит! :-)

Добавлено: 26 май 2011, 12:04
опа-ча
а я знаю дырку у этого скрипта... *CRAZY*

Добавлено: 28 май 2011, 22:25
[REAL]AfLc
Изображение

Добавлено: 06 июн 2011, 10:40
kuziakin

Добавлено: 16 июн 2011, 10:02
Damaks
Абсолютного скрипта антирекламы нет, т.к. для этого нужен искусственный интеллект.

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

Скрипт максимально эффективный, также максимально простой, без разных меню прочей несуразицы. В дефолтном варианте прописаны основные варианты действий, которые могут понадобиться администратору. Кто уже более-менее разбирается в скриптах, без труда сможет удалить неиспользуемые варианты, сделав скрипт эстетически меньше. Эффективность не повысится, код уже оптимизирован, разве что размер в памяти может уменьшиться. К примеру, на GOLD-HUB сжатый скрипт с добавленными правилами и исключениями занимает всего 74 КБ при текущих 1000 юзерах и викторине.

Добавлено: 20 июн 2011, 14:49
Быстрый ответ
Дырка тут очень простая - не фильтруются магниты, значит в их заголовок можно пихнуть любую ссылку. Конечно, при клике по такому магниту будет всего лишь скачиваться файл, но выглядеть это будет весьма обидно для админа - попробуйте.

И еще, зачем пихать в список "наиболее "спамные" адреса" и прочие ro/ru/ua, если вы всё равно фильтруете все ссылки? не проще ли оставить 1 элементарный шаблон:

Код: Выделить всё

'http://(%S+)'
И кстати, думаю что вторая дырка вот в чем.
-- Возвращает true если сообщение содержит части совпадающие с forbidden_patterns и не совпадающие с allowed_patterns, иначе возвращает false
Что произойдёт, если сообщение содержит части совпадающие и с forbidden_patterns и с allowed_patterns? Я предполагаю, что такое сообщение будет пропущено без фильтрации? Проверять лень. ;-)