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

Только готовые скрипты с описанием.
Аватара пользователя
Damaks
Сообщения: 272
Зарегистрирован: 22 май 2010, 12:07

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

Сообщение 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 КБ) 499 скачиваний
anti_adversting_multifunctional_api2.lua
Версия 1.6 - для PtokaX 0.4
(9.76 КБ) 784 скачивания
anti_adversting_multifunctional_api1.zip
(9.65 КБ) 611 скачиваний

Антиреклама 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 КБ) 623 скачивания
anti_adversting_multifunctional_plus_api1.zip
(9.78 КБ) 565 скачиваний
Последний раз редактировалось Damaks 26 мар 2011, 15:17, всего редактировалось 13 раз.
FugenSP_
Сообщения: 270
Зарегистрирован: 29 дек 2009, 07:30
Хаб: dchub://89.222.213.221
Откуда: Сергиев Посад
Контактная информация:

Сообщение FugenSP_ »

Скрипт неплохой, но я все равно пользуюсь своим старым. а если переходить на этот то надо будет опять все по своему настраивать, а так спасибо!
Аватара пользователя
Damaks
Сообщения: 272
Зарегистрирован: 22 май 2010, 12:07

Сообщение Damaks »

Что ты там так много настраивать решил? Под себя подредактировать и удалить лишнее - много времени не займёт.
FugenSP_
Сообщения: 270
Зарегистрирован: 29 дек 2009, 07:30
Хаб: dchub://89.222.213.221
Откуда: Сергиев Посад
Контактная информация:

Сообщение FugenSP_ »

та впрочем ты прав!
Аватара пользователя
Вечный
Сообщения: 1098
Зарегистрирован: 24 авг 2009, 17:27

Сообщение Вечный »

Ну... Давайте банить за любое www, http и .ru.

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

И база паттернов, прямо скажем, убогая. Особенно мне в таких скриптах нравится база исключений. Опубликуй скрипт со своими ресурсами в исключениях - и дорога собственному спаму открыта. :-)
Аватара пользователя
Damaks
Сообщения: 272
Зарегистрирован: 22 май 2010, 12:07

Сообщение Damaks »

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

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

Такое ощущение, что я кого-то заставляю пользоваться и тяну за уши. Хотите спама - не пользуйтесь, решать вам.
Аватара пользователя
Damaks
Сообщения: 272
Зарегистрирован: 22 май 2010, 12:07

Добавлено

Сообщение Damaks »

Раз есть такая необходимость в скрипте с раздельными шаблонами для чата и лички (например, чтобы некоторые ссылки, запрещённые в чате, можно было посылать в личке), то уталим спрос.
Немного подредактировал и добавил anti_adversting_multifunctional_api2_+.lua. Желаю удачи :-)
Последний раз редактировалось Damaks 07 июн 2010, 10:54, всего редактировалось 3 раза.
Аватара пользователя
Setup
Сообщения: 74
Зарегистрирован: 12 сен 2009, 00:46
Хаб: dchub://dc1.xdnet.ru
Откуда: Санкт-Петербург
Контактная информация:

Сообщение Setup »

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

Прошу авторов добавить функцию "без фильтрования" четвёртым пунктом. :-)
Аватара пользователя
Damaks
Сообщения: 272
Зарегистрирован: 22 май 2010, 12:07

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

Сообщение Damaks »

Добавил возможность "без фильтрования" ко второму скрипту:
скрипт поглощён обновлением в первом сообщении
Последний раз редактировалось Damaks 18 авг 2010, 17:30, всего редактировалось 1 раз.
Аватара пользователя
Setup
Сообщения: 74
Зарегистрирован: 12 сен 2009, 00:46
Хаб: dchub://dc1.xdnet.ru
Откуда: Санкт-Петербург
Контактная информация:

Сообщение Setup »

Огромное спасибо! поставил собирать сомнительные сообщения со ссылками. ;-)
Аватара пользователя
Damaks
Сообщения: 272
Зарегистрирован: 22 май 2010, 12:07

Сообщение Damaks »

Тогда поставь побольше щаблонов и потом выложи рейтинг ссылок и спамеров. Думаю, будет интересно.
Последний раз редактировалось Damaks 11 авг 2010, 10:07, всего редактировалось 1 раз.
Аватара пользователя
Damaks
Сообщения: 272
Зарегистрирован: 22 май 2010, 12:07

Сообщение Damaks »

Скрипты обновлены.

Изменения:

- При рекламе в личку операторам сообщется также ник адресата, которому предназначалось сообщение.
- Добавлена возможность задать описание боту. По умолчанию " - bot - ".
- Пятым режимом добавлено простое информирование оператора о рекламных ссылках без фильтрования.
- Изменены шаблоны рекламы, убраны излишние, исправлены некоторые минусы и ложные срабатывания.
- Изменены некоторые стандартные сообщения для большего удобства и под один шаблон в связи с изменением №1.
- Слегка отредактирован код, к примеру, уменьшена нагрузка на хаб из-за ненужного заполения таблицы при поступающем новом сообщении (Core.GetUserAllData(user)).
Последний раз редактировалось Damaks 16 авг 2010, 20:52, всего редактировалось 2 раза.
nd
Администратор
Сообщения: 311
Зарегистрирован: 23 авг 2009, 18:06

Сообщение nd »

А зачем в коде 2 копии функции is_forbidden()? Одна лишняя.
Аватара пользователя
Damaks
Сообщения: 272
Зарегистрирован: 22 май 2010, 12:07

Сообщение Damaks »

Пасиб, исправил.
nd
Администратор
Сообщения: 311
Зарегистрирован: 23 авг 2009, 18:06

Сообщение 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
Аватара пользователя
Damaks
Сообщения: 272
Зарегистрирован: 22 май 2010, 12:07

Сообщение Damaks »

Заменил, обновил.
Аватара пользователя
Damaks
Сообщения: 272
Зарегистрирован: 22 май 2010, 12:07

Сообщение Damaks »

Скрипты обновлены.

Изменения:

- При отправлении сообщения профилю-исключению (tProfiles) оно не фильтруется. Теперь возможна отправка сообщения с запрещённой фразой администрации хаба. Соответственно исправлено двойное оповещение, если в автоответчике содержалась реклама.
Последний раз редактировалось Damaks 16 авг 2010, 20:52, всего редактировалось 2 раза.
Аватара пользователя
Damaks
Сообщения: 272
Зарегистрирован: 22 май 2010, 12:07

Сообщение Damaks »

Скрипты обновлены.

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

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

Сообщение Damaks »

Скрипты обновлены.

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

+ Добавлена минимальная длина сообщения для проверки антирекламой. Проверка только для чата. Особенно пригодится для хабов, где есть викторина или активный чат. Много коротких фраз не проходят все функции соответствия запретам и исключениям. Разница незаметна, скрипт и так быстрый, но для порядка решил добавить.
+ Добавлены шаблоны рекламы для фильтрования ссылок без перфиксов. Не пропускаются .ru, .ro, .ua, .net и .com. Всё чаще встречается спам с такими ссылками без префиксов, видимо на безрыбье решили хоть так спамить. Эти шаблоны не фильтруют модификации, только чёткие занчения "точка домен". Т.к. кликабельные ссылки уже исключены фильтром перфиксов, то оставалось только затруднить копирование из чата ссылки без редактирования. В скрипте можно удалить, есть все пояснения.
+ Изменены шаблоны исключений. В прошлой версии скрипт мог не пропускать некоторые фразы с исключениями. Исправлены окончания.
Аватара пользователя
[REAL]AfLc
Сообщения: 206
Зарегистрирован: 25 авг 2009, 16:52
Хаб: dchub://dc.anabiozz.ru
Откуда: Россия , Екатеринбург.
Контактная информация:

Сообщение [REAL]AfLc »

Спасибо Damaks и nd. *THUMBS_UP* Пока отлично робит! :-)
опа-ча

Сообщение опа-ча »

а я знаю дырку у этого скрипта... *CRAZY*
Аватара пользователя
[REAL]AfLc
Сообщения: 206
Зарегистрирован: 25 авг 2009, 16:52
Хаб: dchub://dc.anabiozz.ru
Откуда: Россия , Екатеринбург.
Контактная информация:

Сообщение [REAL]AfLc »

Изображение
Последний раз редактировалось [REAL]AfLc 28 май 2011, 22:28, всего редактировалось 1 раз.
Аватара пользователя
Damaks
Сообщения: 272
Зарегистрирован: 22 май 2010, 12:07

Сообщение Damaks »

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

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

Скрипт максимально эффективный, также максимально простой, без разных меню прочей несуразицы. В дефолтном варианте прописаны основные варианты действий, которые могут понадобиться администратору. Кто уже более-менее разбирается в скриптах, без труда сможет удалить неиспользуемые варианты, сделав скрипт эстетически меньше. Эффективность не повысится, код уже оптимизирован, разве что размер в памяти может уменьшиться. К примеру, на GOLD-HUB сжатый скрипт с добавленными правилами и исключениями занимает всего 74 КБ при текущих 1000 юзерах и викторине.
Последний раз редактировалось Damaks 16 июн 2011, 10:02, всего редактировалось 1 раз.
Аватара пользователя
Быстрый ответ
Сообщения: 436
Зарегистрирован: 16 авг 2010, 00:21

Сообщение Быстрый ответ »

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

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

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

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