Spells - SthephanShinkufag/Dollchan-Extension-Tools GitHub Wiki

Волшебные выражения

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

Простая строка

Каждая операция вводится с новой строки в текстовое поле настроек. Простая строка, введенная в поле, позволяет скрыть посты, содержащие эту строку в тексте, либо в поле "тема". При этом, регистр и разметка в посте не имеют значения. Если строка встречается в оп-посте, скрывается весь тред (если у вас включена опция "Фильтровать треды"). Пример – скрыть посты "Привет, %boardname%, есть одна тян", "Ньюфаги не умеют трифорсить", "Очередной ЕОТ-тред":

есть одна тян
трифорс
еот

Вышеприведенная конфигурация будет действовать во всех досках и тредах, где работает скрипт.

#доска/номер_треда

Если вы хотите применить фильтр к постам конкретного треда или доски, используйте оператор #доска/номер_треда. Примеры:

#b/32768 свиной эякулянт
#s/65536 соснули
#vg/ yoba
#b/ тян

#op

Оператор #op позволить указать область действия ваших выражений применительно к ОП-постам, тем самым получая возможность скрывать треды, не затрагивая обычные посты. Обратите внимание, что при использовании оператора #доска/, оператор #op нужно указывать вторым. Также учтите, что он, по понятным причинам, не действует на странице треда, и не совместим с операторами #skip, #num, #rep и #outrep. Примеры:

#op triforce – скрыть треды на любой доске со словом "triforce" в тексте/теме оп-поста
#op ^ – то же самое, для символа трифорса
#a/ #op Touhou – скрыть треды на доске /a/ со словом Touhou в тексте/теме оп-поста
#b/ #op #exph /hurr|durr|derp/ig – скрыть треды в /b/ со словами hurr, durr или derp в содержимом оп-поста

#skip

Для того, чтобы исключить посты из области действия любых фильтров, используйте оператор #skip [список]. В списке должны перечисляться через запятую порядковые номера постов в виде диапазонов x1-x2, либо отдельными номерами. Примеры:

#b/16384 #skip 10 – занести в "белый список" 10 пост в треде 16384 доски b
#a/32768 #skip 20-70 – посты c 20 по 70 в треде a/32768
#b/65536 #skip 10-15, 20, 40-50, 60-70, 72, 80-100 – сложное перечисление
#b/131072 #skip 0-9000 – не применять никаких фильтров к треду b/131072, и его постам

#num

Обратную задачу, безусловное прямое скрытие постов по порядковым номерам, выполняет оператор #num [список]. Примеры:

#b/32768 #num 80-150 – скрыть посты c 80 по 150 в треде b/32768
#b/65536 #num 200-215, 240, 256, 300-400 – скрыть перечисленные посты в b/65536

#sage

Оператор #sage позволяет скрыть посты с сажей. Он также автоматически добавляется по клику на иконку сажи в заголовке поста. Обратите внимание, что в открытом треде при этом добавится #доска/номер_треда #sage, а при клике на странице доски – #sage. Примеры:

#b/32768 #sage – скрыть посты с сажей в треде b/32768
#sage – cкрыть сажу по всей борде

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

#notxt

Оператор #notxt позволяет скрыть посты, не содержащие текста. Этот оператор добавляется в список автоматически, если выбрать меню "Скрыть схожий текст" по кнопке скрытия поста/треда, при условии, что в посте нет текста (а содержится, например, лишь картинка). Синтаксис:

#notxt

#noimg

Оператор #noimg скрывает посты, не содержащие прикрепленных изображений. Этот оператор добавляется в список автоматически, если выбрать меню "Скрывать изображение" или "Скрыв. схожие изобр." по кнопке скрытия поста/треда, при условии, что в посте нет прикрепленного изображения. Синтаксис:

#noimg

#trip

Оператор #trip скрывает посты, содержащие трипкод:

#trip

#tmax

Оператор #tmax [N] скрывает посты с текстом, который имеет длину, большую, чем N символов. Пример:

#tmax 800 – cкрывать посты с текстом, большим, чем 800 символов

#name

Для борьбы с неймфагами, используйте оператор #name [имя][!трипкод][!!трипкод]. Например, скрыть неймфага Sage-kun!Canc3RL0L4!!H5Yfe4PW можно такими способами:

#name Sage-kun!Canc3RL0L4!!H5Yfe4PW
#name Sage-kun!Canc3RL0L4
#name Sage-kun
#name !Canc3RL0L4
#name !!H5Yfe4PW
#name !Canc3RL0L4!!H5Yfe4PW

#exp

Оператор #exp [выражение] позволяет использовать регулярные выражения для поиска и скрытия по текстовому содержимому поста, без учета разметки. Подробнее с регулярными выражениями вы можете ознакомиться, например, здесь и здесь. Выражение должно иметь вид /шаблон/, либо /шаблон/i, где i – флаг нечувствительности к регистру. Прочие флаги для оператора #exp бесполезны, так как пост скрывается при первом найденном совпадении. Примеры:

#exp /\u25b2\s\u25b2/ – скрыть трифорсы
#exp /(>>\d+\s*){8}/ – скрыть вайп >>ссылками
#exp /[оа]н[ие]м[еэу][^а-я]/i – аниме, Аниму, ОНЕМЭ, и т.д.
#exp /кукл\[оа]([её]б|бляд|быдл)/i
#exp /^[^A-ZА-Я\.]+$/g – скрыть посты без заглавных букв и точек

Важно! Перед использованием #exp, подумайте о целесообразности его использования, если вместо этого можно воспользоваться более быстрым простым поиском. Например, вместо #exp /ололо/i и #exp /!!!1/ гораздо более логичным было бы ввести строки ололо и !!!1, соответственно.

#exph

Оператор #exph [выражение] дает возможность скрывать посты, применяя к их html коду регулярные выражения. Это позволяет делать анализ по разметке и структуре поста. Обратите внимание, что данный оператор выполняется медленнее, чем #exp, но охватывает все содержимое поста, тогда, как #exp проверяет только само текстовое сообщение. Примеры использования:

#exph /(< strong> |< b> )[А-Я]+/ – скрыть посты с жирным капслоком
#exph /(< br> \s*){4}/i – скрыть вайп пустыми строками (переносами строки)
#exph /mailto:sage/i – аналог оператора #sage
#exph /< span[^> ]+postertrip/i – аналог оператора #trip
#op #exph /(new|old)fags can.*t/i – скрывать "Newfags can't triforce" треды
#op #exph /\/sticky\.png/i – автоскрытие закреплённых тредов, например
#exph /src="\/images\/balls\/fi.png"/ – скрыть все посты из Финляндии на krautchan.net/int/

#rep

Оператор автозамены #rep [выражение] [замена] позволяет изменять html код тредов посредством регулярных выражений по усмотрению пользователя. После внесения команды в список, изменения произойдут только при обновлении страницы. В регулярном выражении обязателен флаг /g, чтобы изменения происходили по всем найденным совпадениям. Примеры использования:

#rep /Вася/g Петя – примитивная замена слова
#rep /chrome|хром/ig псевдобраузер
#rep /-red-(.*?)-red-/ig < font color="red"> $1< /font> – можно писать -red-красным-red-
#rep /(г[оа]вн|школ|ху[ийеёя]|пизд|пид.?р|п[еи]ту[хш]|сперм|параш|[^\s]бляд|бугурт|б.т+х.рт|сосн|с[ьъ]еб|еба[лнт]|тро[ль]+|ололо)[а-я]*/ig ко-ко-ко-ко – "Милости прошу к нашему шалашу!"
#s/ #rep /([^a-zа-я])(?:(?:GNU|ЖМУ|ГНУ).?)?(?:linu(?:x|ks)|лин\[еуа](?:[кп]с|х)(?:а|е|о[мв]|у)?|debian|gentoo|arch|fedora|slackware|(?:open)?suse|red ?hat|RHEL|[a-z]?ubuntu|(?:[а-я]?убунт|(?:г|дж)ент|федор|слак)(?:а|у|ой|е)|(?:дебиан|арч)(?:[ое]м|ч?ик|е|а|у)?|сус(?:я|ю|ей))/ig $1ПитухОС – автозамена для /s
#rep /< span[^> ]+color[^> ]+> сосницкий< \/span> /ig школьник – исправление автозамены на 2ch.so

#outrep

Оператор автозамены #outrep [выражение] [замена] позволяет изменять текст сообщения при его отправке на сервер, и будет полезен, например, при обходе автозамены. Примеры использования:

#outrep /быдло/ig б*ы*дло
#b/ #outrep /школьник/ig школь[b][/b]ник

#img

Оператор #img [><=][вес[-вес2]][@{ширина[-ширина2]}x{высота[-высота2]}] позволяет скрывать посты по числовой информации о прикрепленных картинках, посредством сравнения параметров их веса, ширины и высоты. Отметьте, что в скрипте для указания веса картинки на любых имиджбордах, имеется унифицирована запись, с умножением числа Мб на 1000, делением числа байт на 1000, и с округлением до двух цифр после 0, при нецелых значениях. К примеру, если в посте указано текстом 100KB, то нужно ввести 100. Аналогично: 100.85KB = 100.85, 1.84MB = 1840, 150955B = 150.96, 760B = 0.76. Если вам лень вводить параметры изображения и вычислять их вес, вы можете выбрать меню "Скрывать изображение" кнопки скрытия поста/треда, и этот оператор добавляется в список автоматически. Вам остается только отредактировать условия. Примеры использования с точными значениями, без указания диапазона:

#img <35@640x480 – скрыть посты с картинками меньше 35Кб, и размером меньше 640x480
#img >@640x480 – скрыть все посты с картинками больше 640x480
#img <@300x100 – скрыть все посты с картинками меньше 300x100
#op #img =@900x700 – скрыть треды с картинками размером 900x700
#a/32768 #img =180.50 – скрыть все посты с картинками весом в 180.5Кб в треде a/32768/
#b/ #op #img >1500 – скрыть треды с картинками весом больше 1.5 Мб на доске /b/
#img <1 – скрыть все посты с картинками весом меньше 1 Кб

Примеры с указанием диапазона значений в качестве параметра. Обратите внимание, что литералы > и < чувствительны только к первому значению диапазона:

#img =30-60@640x480 – скрыть посты с картинками весом от 30 до 60 Кб, с размером 640x480
#img =29.80-30.20 – скрыть посты с картинками весом от 29.8 до 30.2 Кб
#img =@300-500x500-700 – скрыть посты с картинками размером от 300x500 до 500x700
#img =75@700-900x200
#img <200-300 – эквивалентно #img <200
#img >@800-1000x600 – эквивалентно #img >@800x600

#imgn

Оператор #imgn [выражение] позволяет скрывать посты, применяя регулярные выражения непосредственно к текстовой информации прикрепленных картинок/файлов. Например, для досок с информацией вида (1040 KB, 900x700, Trollface.gif), это может выглядеть так:

#imgn /\.gif/i – скрыть все посты с .gif-файлами
#imgn /trollface/i – скрыть все посты, содержащие имя файла trollface
#imgn /Trollface\.gif/ – скрыть все посты, содержащие файл Trollface.gif
#imgn /1040 KB/ – аналог #img =1040, плюс – выполняется быстрее, минус – привязано к особенности текущего имиджборда. На другом имиджборде это может быть "1040Кб", либо "1.04 Mb", например
#imgn /900x700/ – аналог #img =@900x700, выполняется быстрее. Учтите, на некоторых имиджбордах вместо "x" может быть другой символ, например, "?".

#video

Оператор #video [выражение] позволяет скрывать посты, применяя регулярные выражения к названиям загруженных youtube-видеороликов, при включенной опции "Загружать названия к YouTube-ссылкам*":

#video /rickroll/i – скрыть посты с youtube-рикроллом
#video /\+100500/ – скрыть посты с видео от "+100500"
#video /vocaloid|miku|iosys|nya|neko|japan|touhou|anime/i - скрыть по всем перечисленным совпадениям в названии

#theme

Оператор #theme [выражение] позволяет скрывать содержимое, применяя регулярные выражения к Теме в постах:

#op #theme /официальный/i – скрыть "Официальные" треды
#theme /sage/i – скрыть посты с sage в поле темы
#theme /./ – скрыть любой пост/тред, содержащий тему

#ihash

Оператор #ihash [хеш] позволяет интеллектуально скрывать схожие изображения, сравнивая их хеш-код, получаемый методом фильтрации и вычисления контрольной суммы. Для этого наведите курсор на кнопку скрытия поста с изображением, и выберите в меню "Скрыв. схожие изобр.". Сгенерированный хеш с оператором скрытия автоматически добавится в список выражений. Если пост не содержит изображений, в список добавится оператор #noimg, и скроются все посты без картинок. Пример полученных выражений:

#ihash 603323568 – все посты с изображениями, соответствующими данному хеш-коду, будут скрыты.
#ihash 267050447

⚠️ **GitHub.com Fallback** ⚠️