Волшебные команды (спеллы)

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

Все команды, в силу устоявшихся традиций, будем называть спеллами, от англ. spell — “заклинание”.

Спеллы скрытия постов

Каждый спелл скрытия может возвратить одно из двух состояний — true или false. Если он при проверке всех условий возвращает true для одного из постов, то этот пост будет скрыт. В случае, если этим постом окажется оп-пост, будет скрыт весь тред.

Полный синтаксис спеллов скрытия:

#спелл[доска,тред](аргумент)

где спелл — имя спелла, доска и тред — область его действия, аргумент — условие, по которому выполняется спелл.

Все спеллы скрытия могут иметь следующие варианты синтаксиса:

  • #спелл(аргумент) — действие во всех досках и тредах.
  • #спелл[доска](аргумент) — действие на указанной доске и во всех ее тредах. На других досках всегда возвращает false.
  • #спелл[доска,](аргумент) — действие только на указанной доске, но не в ее тредах. В тредах этой доски и на других досках всегда возвращает false.
  • #спелл[доска,тред](аргумент) — действие в определенном треде определенной доски. При этом вне данного треда спелл будет всегда возвращать false.
доска /b/ тред 32767 доски /b/ доска /c/ тред 4095 доски /c/
#спелл(аргумент) true/false true/false true/false true/false
#спелл[b\](аргумент) true/false true/false false false
#спелл[b,\](аргумент) true/false false false false
#спелл[b,32767\](аргумент) false true/false false false

Если спеллов несколько, то все они должны быть объединены в одно логическое выражение, которое для каждого из постов также будет возвращать true или false. Для этого доступны следующие логические операции:

  • & — логическое “И”, #spell_1 & #spell_2
  • | — логическое “ИЛИ”, #spell_1 | #spell_2
  • ! — логическое “НЕ”, !#spell_1
  • ) и ( — скобки для логической группировки, (#spell_1 & #spell_2) | #spell_3

Важно! Каждая закрывающая скобка ) и знак \ в аргумете спеллов скрытия #words, #name и #trip, а также в строке для замены спеллов #rep и #outrep, должны быть экранированы таким образом: \), \\.

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

#wipe(samelines,samewords,longwords,numbers) |
#exp(/^(?:bump|up|бамп|вверх)$/i) |
(#all[b,32767] & !#img) |
(#name(Сажа-кун) & #trip(!!SAGEy+453)) |
(#op & #subj(/rozen maiden|pony/i)) |
(#op[s] & #words(соснули)) |
(#op[b] & (
    #words(еот) |
    #words(ума нет - создал тред) |
    #words(official thread)
)) |
#video(/rickroll/i)

#rep(/двач/ig,сосач)
#outrep(/сосач/ig,с*о*сач)

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


#words

#words[доска,тред](строка)

Возвращает true, если текст сообщения или темы поста содержит выражение, указанное в аргументе строки. Совпадение строки не зависит от регистра и разметки поста. Наличие аргумента обязательно. Примеры:

  • #words(баттхерт) — скроет посты на всех досках, содержащие слово “баттхерт” (в том числе “У всех баттхерт.”, “ОЛОЛО БАТТХЕРТ!!”, “БатТхЕрТ)))” и т.п.
  • #words[b](баттхерт) — скроет на доске /b/ и во всех ее тредах посты, содержащие слово “баттхерт”.
  • #words[b,32767](все соснули) — скроет в треде №32767 доски /b/ посты, содержащие фразу “все соснули”. При этом посты будут скрыты только в том случае, если вы находитесь в этом треде.
  • #words[b,](все соснули) — аналогично, но посты будут скрываться только при просмотре списка тредов доски /b/.
  • #words(баттхерт\)\)\)) — скроет посты, содержащие “баттхерт)))”. Обратите внимание на то, что символы ) экранированы.
  • #words(шах\\мат) — скроет посты, содержащие “шах\мат”. Обратите внимание на то, что символ \ экранирован.

Примеры логических операций:

Скрыть посты, [содержащие слово "ололо"] [ИЛИ] [содержащие слово "баттхерт"]:

  • (#words(ололо) | #words(баттхерт)) – в данном случае будут скрыты посты “Ололо, все соснули!”, “Да у вас баттхерт!” и “Ололо, у вас баттхерт!”.

Скрыть посты, [содержащие слово "ололо"] [И] [содержащие слово "баттхерт"]:

  • (#words(ололо) & #words(баттхерт)) – скроется лишь пост “Ололо, у вас баттхерт!”, содержащий оба этих слова.

Скрыть посты, [НЕ] [содержащие слово "ня"]:

  • !#words(ня) – в данном случае пост “Ололо, все соснули!” будет скрыт, так как не содержит “ня”. А вот пост “Все соснули, ня!” скрыт не будет.

Скрыть посты ( [содержащие слово "баттхерт"] [ИЛИ] [содержащие слово "соснули"] ) [И] [НЕ] [содержащие слово "ня"]:

  • ((#words(баттхерт) | #words(соснули)) & !#words(ня)) – скроются посты “Ололо, у вас баттхерт!”, “Все соснули!”, содержащие два первых слова, но не содержащие “ня”. Однако пост “У всех баттхерт, ня!” скрыт не будет, так как содержит слово “ня”.

#all

#all[доска,тред]()

Всегда возвращает true. Аргумент игнорируется. Это очень важный вспомогательный спелл, который полезен в случае, если нужно ограничить область действия.

Давайте рассмотрим подробнее:

  • !#words[b,32767](ня) – данное выражение скрывает внутри треда №32767 доски /b/ посты, не содержащие слово “ня”.

Но!! Вне треда №32767 спелл #words[b,32767](ня) всегда возвращает false. А !false, как известно, это true. То есть вне данного треда все ваши посты и треды окажутся скрыты.

Чтобы решить данную проблему, используйте #all:

  • (#all[b,32767] & !#words(ня)) – что означает найти и скрыть [все посты треда b/32767] [И] [НЕ] [содержащие "ня"].

Данное выражение работает корректно и никогда не возвратит true вне данного треда, ибо здесь мы используем #all[b,32767], чтобы ограничиться тредом №32767 доски /b/.

Другие применения:

  • (#all[b] & !#words(ня)) – скрыть на доске /b/ посты, не содержащие “ня”.
  • (!#all[a] & #words(аниму)) — скрыть на всех досках, кроме /a/, посты, содержащие “аниму”.
  • (!#all[a,4095] & #words(тохо)) — скрыть везде, кроме треда №4095 доски /a/, посты, содержащие “тохо”.
(#all[b,32767] & (
    #words(баттхерт) |
    #words(все соснули) |
    #words(ололо)
))

— выражение, аналогичное

#words[b,32767](баттхерт) |
#words[b,32767](все соснули) |
#words[b,32767](ололо)

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


#op

#op[доска,тред]()

Возвращает true, если пост является оп-постом. Аргумент игнорируется. Позволяет скрывать только треды, не затрагивая обычные посты, либо наоборот. Примеры:

  • (#op & #words(еот)) — скроет треды, содержащие слово “еот” в оп-посте.
  • (!#op & #words(бамп)) — скроет обычные посты, содержащие слово “бамп”. Оп-посты и, соответственно, сами треды скрываться не будут.
  • (#op[a] & !#words(ня)) — скроет треды на доске /a/, не содержащие в оп-посте слово “ня”.
  • (!#op & #words[s](соснули)) — скроет обычные посты на доске /s/, содержащие слово “соснули”, не затрагивая оп-посты и не скрывая треды.

Важно! #op является лишь индикатором оп-поста (т.е. треда) и не допускает каких-либо данных в аргументе.

  • #op(дурачьё) — неверно! Это эквивалентно #op(), и скроет все ваши треды.
  • (#op & #words(дурачьё)) — правильная запись!

Анти-вайп детектор #wipe

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

Спелл антивайп-детектора имеет формат:

#wipe[доска,тред](список)

Аргумент списка может содержать следующие парметры, перечисляемые через запятую:

  • samelines — детектор текста с большим процентом повторяющихся строк,
  • samewords — детектор текста с большим процентом повторяющихся слов,
  • longwords — детектор длинных слов, нехарактерных для простого текста,
  • symbols — детектор текста с большим процентом небуквенных символов,
  • capslock — детектор текста с большим процентом капслока,
  • numbers — детектор текста с большим процентом числовых символов,
  • whitespace — детектор “пустых” постов с большим количеством пробелов.

Примеры использования:

  • #wipe(samelines,samewords,longwords,numbers) — включает перечисленные детекторы на всех досках.
  • #wipe[b,32767](capslock,symbols) — включает в треде №32767 доски /b/ перечисленные детекторы.
  • (!#op & #wipe[b](capslock)) — включает детектор capslock на доске /b/, не затрагивая оп-посты и не скрывая треды.
  • (#op[a] & #wipe(samelines)) — включает детектор samelines на доске /a/, скрывая только треды.

#subj

#subj[доска,тред](регекс)

Возвращает true, если текстовая информация темы поста соответствует регексу (регулярному выражению), указанному в аргументе. Если аргумента нет, то возвращает true в случае наличия темы в посте.

Подробнее с регулярными выражениями вы можете ознакомиться, например, здесь и здесь. Примеры:

  • #subj(/sage/i) — скрыть любой пост или тред, содержащий слово “sage” в теме.
  • #subj[b,32767] — скрыть в треде №32767 доски /b/ посты с наличием темы.
  • (#all[b,32767] & !#subj) — скрыть в треде №32767 доски /b/ посты без наличия темы.
  • (#op[b] & !#subj) — скрыть на доске /b/ треды без наличия темы.
  • (#op[b] & #subj(/newfags|triforce/i)) — скрыть на доске /b/ треды с наличием в теме слов “newfags” или “triforce”, например, “Newfags vs oldfags”, “You can’t triforce”.
  • #subj(/^[^a-zа-я\.]+$/) — скрывать треды с КАПСЛОКОМ в теме.

#name

#name[доска,тред](строка)

Возвращает true, если имя пользователя в посте содержит выражение, указанное в аргументе строки, с учетом регистра. Если аргумента нет, то возвращает true в случае наличия имени в посте. Примеры:

  • #name[a](Вася) — скрыть на доске /a/ любой пост или тред со словом “Вася” в имени.
  • #name[b,32767](Сажа) — скрыть в треде №32767 доски /b/ посты, содержащие слово “Сажа” в имени, например, посты неймфага “Сажа-кун”.

#trip

#trip[доска,тред](строка)

Возвращает true, если трип-код пользователя в посте равен указанному аргументу строки. Если аргумента нет, то возвращает true в случае наличия трип-кода в посте. Примеры:

  • #trip — скрыть любой пост или тред с трипкодом.
  • #trip(TRiF0RCE9) — скрыть любой пост или тред с трипкодом “!TRiF0RCE9” или “!!TRiF0RCE9”.
  • #trip[s,32767](!!Canc3RL0L4) — скрыть в треде №32767 доски /s/ посты с трипкодом “!!Canc3RL0L4”.
  • (#name(Oldfag) & #trip(!O.L.D.w79+!!2GE305Qc4)) — скрыть везде неймфага, который подписывается как “Oldfag!O.L.D.w79+!!2GE305Qc4””.
  • !#trip — скрыть любой пост или тред, не содержащий трипкод.
  • (#all[a,4095] & !#trip) — скрыть в треде №4095 доски /a/ посты без трипкода.
  • (#all[a,4095] & !#trip(!nyanCaT+73)) — скрыть в треде №4095 доски /a/ посты без трипкода “!nyanCaT+73”.

#sage

#sage[доска,тред]()

Возвращает true, если пост содержит сажу. Аргумент игнорируется. Примеры:

  • #sage — скрыть во всех тредах и досках посты с сажей.
  • (#sage[b,32767] & #name(Sage-kun)) — скрыть в треде №32767 доски /b/ посты с сажей от Sage-kun’a.

Данный спелл автоматически добавляется, если кликнуть на иконку сажи в заголовке поста.


#tlen

#tlen[доска,тред](аргумент)

Возвращает true, если длина текста поста соответствует аргументу выражения. Может содержать точные значения, диапазоны и перечисления. Если аргумента нет, то возвращает true в случае наличия текста в посте. Примеры:

  • #tlen(22) — скрыть посты с текстом длиной в 22 символа.
  • #tlen(500-10000) — скрыть посты с текстом большим, чем 500 символов.
  • #tlen[ph](0-100,225,500-1000) — скрыть на доске /ph/ посты с текстом, который имеет размер, указанный в списке.
  • (!#op & #tlen) — скрыть посты, содержащие текст. Оп-посты и треды игнорируются.
  • (#sage & !#tlen) — скрыть посты с сажей, не содержащие текст.
  • #tlen[b,32767](0-20) — скрыть в треде №32767 доски /b/ посты с текстом меньшим, чем 20 символов.
  • (#all[b,32767] & !#tlen(50-100)) — скрыть в треде №32767 доски /b/ посты с текстом меньшим, чем 50 символов, или большим, чем 100 символов.

Если в посте, который не содержит текст, выбрать меню "Скрывать без текста" по кнопке скрытия поста/треда, то в список спеллов добавится !#tlen.


#num

#num[доска,тред](аргумент)

Возвращает true, если номер поста соответствует аргументу выражения. Аргумент обязателен и, как и в случае со спеллом #tlen, может содержать точные значения, диапазоны и перечисления. Используйте этот спелл, чтобы прямо скрывать посты по их порядковым номерам, либо исключить данные посты из области действия фильтров. Примеры:

  • #num[b,32767](100-200) — скрыть в треде №32767 доски /b/ посты с порядковыми номерами между 100 и 200.
  • #num[m,65535](100-200,255,300-500) — скрыть в треде №65535 доски /m/ посты с порядковыми номерами, указанными в списке.

Спелл имеет интересное свойство экранировать ваши посты от любых фильтров. Для этого добавьте в начало вашего списка конструкцию !#num[доска,тред](аргумент) &. Пример:

!#num[b,32767](50-150) &
!#num[m,65535](100-200) &
#wipe(samelines,samewords,longwords,numbers)

Данное выражение позволяет защитить от антивайп-детектора в треде №32767 доски /b/ и в треде №65535 доски /m/ посты, указанные в диапазоне.


#img

#img[доска,тред](аргумент)

Возвращает true, если параметры изображения в посте соответствуют аргументу выражения. Аргумент имеет следующий формат:

[><=][вес_1[-вес_2]][@{ширина_1[-ширина_2]}x{высота_1[-высота_2]}]

Если аргумента нет, то спелл возвращает true в случае наличия изображения в посте.

Спелл позволяет скрывать посты по числовой информации о прикрепленных картинках, посредством сравнения параметров их веса, ширины и высоты. Для указания веса картинки на любых имиджбордах в скрипте используется унифицированная запись в килобайтах, с умножением числа Мб на 1000 или делением числа байт на 1000 и округлением до двух цифр после запятой. К примеру, если в посте указано текстом 100KB, то нужно ввести 100. Аналогично: 100.85KB = 100.85, 1.84MB = 1840, 150955B = 150.96, 760B = 0.76.

Примеры использования с точными значениями, без указания диапазона:

  • #img[b,32767] — скрыть в треде №32767 доски /b/ посты с картинками.
  • !#img — скрыть на любых досках посты без картинок.
  • (#all[b,32767] & !#img) — скрыть в треде №32767 доски /b/ посты без картинок.
  • #img(<35@640x480) — скрыть посты с картинками меньше 35Кб и размером меньше 640x480.
  • #img(>@640x480) — скрыть посты с картинками больше 640x480.
  • #img(<@300x100) — скрыть посты с картинками меньше 300x100.
  • (#op & #img(=@900x700)) — скрыть треды с картинками в оп-посте размером 900x700.
  • (#op & #img[b](>1500)) — скрыть треды на доске /b/ с картинками в оп-посте весом больше 1.5 Мб.
  • #img[a,65535](=180.50) — скрыть в треде №65535 доски /a/ посты с картинками весом в 180.5 Кб.
  • (!#img | #img(<1)) — скрыть посты с картинками весом меньше 1 Кб, а также посты без картинок.
  • (#sage & #img & !#tlen) — скрыть на любых досках посты c картинками и сажей, но без текста.
  • (#img(=61@745x559) | #img(=7@215x250)) & (#all[vg] | #all[moba]) — скрывать два изображения с указанными параметрами на досках /vg/ и /moba/.

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

  • #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) — скрыть посты с картинками весом в 75 Кб и размером от 700x200 до 900x200.
  • #img(<200-300) — эквивалентно #img(<200).
  • #img(>@800-1000x600) — эквивалентно #img(>@800x600).

Если вам лень вводить параметры изображения и вычислять их вес, то вы можете выбрать меню "Скрывать по размеру картинки" кнопки скрытия поста/треда, и #img добавится в список спеллов автоматически. Вам останется только отредактировать условия. Если пост не содержит изображений, и вы выберете пункт меню "Скрывать без картинок", то в список спеллов добавится !#img.


#imgn

#imgn[доска,тред](регекс)

Возвращает true, если текстовая информация об изображении в посте соответствует регексу (регулярному выражению), указанному в аргументе. Аргумент обязателен. Например, для досок с информацией о картинках вида (1040 KB, 900x700, Trollface.gif), применение спелла может выглядеть так:

  • #imgn(/\.gif/i) — скрыть посты с .gif-файлами.
  • #imgn(/trollface/i) — скрыть посты, содержащие имя файла “trollface”, “TROLLface”, и т.п.
  • #imgn[b,32767](/Trollface\.gif/) — скрыть в треде №32767 доски /b/ посты, содержащие файл “Trollface.gif”.
  • #imgn(/1040 KB/) — аналог #img(=1040), плюс — выполняется быстрее, минус — привязано к особенности текущего имиджборда. На другом имиджборде это может быть “1040Кб”, либо “1.04 Mb”.
  • #imgn(/900x700/) — аналог #img(=@900x700), выполняется быстрее. Учтите, на некоторых имиджбордах вместо “x” может быть другой символ.

#ihash

#ihash[доска,тред](хэш)

Возвращает true, если изображение в посте соответствует хэшу, указанному в аргументе. Аргумент обязателен.

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

  • #ihash(603323568) — все посты с изображениями, соответствующими данному хеш-коду, будут скрыты.
  • #ihash[b,32767](267050447) & !#tlen — скрыть в треде №32767 доски /b/ посты без текста и с эквивалентной данному хэшу картинкой.

#exp

#exp[доска,тред](регекс)

Возвращает true, если текст поста соответствует регексу (регулярному выражению), указанному в аргументе. Аргумент обязателен.

Спелл позволяет использовать регулярные выражения для поиска и скрытия по текстовому содержимому поста, без учета разметки. Примеры:

  • #exp(/^\s*[а-яa-z]/) — скрыть посты, начинающиеся с маленькой буквы.
  • #exp(/^[^A-ZА-Я\.]+$/) — скрыть посты без заглавных букв и точек.
  • #exp[b](/\u25b2\s\u25b2/) — скрыть трифорсы на доске /b/.
  • #exp[b,32767](/(?:>>\d+\s*){8}/) — скрыть вайп »ссылками в треде №32767 доски /b/.
  • #exp(/[fs]uck|fag|dick/i) — “fuck”, “Suck”, “FAG”, “dick”, и т.п..
  • #exp(/[hd]urr/i) — “hurr”, “HURR”, “durr”, “DuRr”, и т.п.
  • (#op & #exp(/конф(?:ер|[оау]ч?|ы)/i)) — “конфочка”, “конференция”, и т.п. в оп-постах.
  • #exp(/в ?контакт/i) — “в контакте”, “вконтакт”, и т.п.
  • #exp(/[^a-zа-я](?:re|ре)?(?:roll|ролл)/i) — “roll”, “reroll”, “ролл”, “реролл”, и т.п.
  • (#exp(/^[^A-ZА-Я>]+$/) & !#img & !#video) — скрывает все посты, в которых нет заглавных букв, если не прикреплено видео или картинка.
  • #exp(/[ -]кун[-.,?!ауы ]|кунчик|[ -]тян[-.,?!ые ]|тян$|кун$|[ -]тн[яе]|[ -]тянк[еаиу]|[ -]тян[оy]чк[еаиу]|тянучек|[ -]тяночкой|кунам|кунов|тянам|тнн|кнн/i) — “тяночку”, “кунчика”, “-тян”, “-кун”, “тянка”, “тянучка”, и т.п.
  • #exp(/2[kк]1\d/i) — “2к16”, “2к17”, “2k16”, “2K18”, и т.п.
  • #exp(/вр[её]+ти+/i) — “врёти”, “врёёёёётии”, “вретииииииииии”, и т.п.
  • #exp(/лампово|ламповая|отношени[яй]|отношашки|отношашек| ебл[яюие]|[её]б[ыа]р|альфач|омеган/i) — “ламповая”, “отношашки”, “ебля”, “еблю”, “ёбарь”, “ебыря”, “альфач”, и т.п.
  • #exp(/кекнул|сереньк| ору[! ]|орнул|проорал| ч[её]т |за щ[её]ку|защеку|ман[яь]/i) — “кекнул”, “серенькнул”, “проорал”, “чёт”, “ору”, “за щёку”, “маня”, “мань”.
  • #exp(/хуйл|укроп|рашк|пидора[хш]|ватник|\+15|с[тр]алин|совки|совках|совковы|совкобляд|русн[яюие]/i) — “хуйло”, “укроп”, “пидорашка”, “ватник”, “+15”, “сралин”, “совковый”, “русня”.
  • (#op & #exp(/fap|фап|трапотред|милф|milf|рулетка|хуетред/i)) — фапотреды, рулеткотреды, милфотреды…

#exph

#exph[доска,тред](регекс)

Возвращает true, если разметка поста соответствует регексу (регулярному выражению), указанному в аргументе. Аргумент обязателен.

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

  • #exph(/(?:<strong>|<b>)[А-Я]{3}/) — скрыть посты с жирным капслоком.
  • (#op & #exph(/\/sticky\.png/i)) — автоскрытие закреплённых тредов.
  • #exph(/(?:<br>\s*){4}/i) — скрыть вайп пустыми строками (переносами строки).
  • #exph(/mailto:sage/i) — аналог спелла #sage.
  • #exph(/<span[^>]+postertrip/i) — аналог спелла #trip.
  • (#op & #exph[b](/(?:new|old)fags can.*t/i)) — скрывать на доске /b/ “Newfags can’t triforce” треды.
  • #exph[int](/src="\/images\/balls\/fi.png"/) — скрыть на krautchan.net/int/ посты из Финляндии.
  • #exph[po](/src="\/icons\/logos\/sion.png"/) — скрыть на 2ch.hk посты со значком “Сионизм”.
  • (!#op & #exph(/# OP/)) — скрыть на 2ch.hk посты опа, не скрывая оп-пост.
  • #exph(/title=".*?"> *Стикер/ig) — скрывать посты со стикерами на 2ch.hk.
  • #exph(/<img src="/flags/ua.png"/ig) — скрывать посты из Украины на 2ch.hk.

#video

#video[доска,тред](регекс)

Возвращает true, если заголовок видео в посте соответствует регексу (регулярному выражению), указанному в аргументе. Если аргумента нет, то возвращает true в случае наличия видео в посте. Если есть агрумент и отключена опция Ссылки > Загружать названия к YouTube ссылкам*, то всегда возвращает false.

Спелл позволяет скрывать посты, применяя регулярные выражения к названиям загруженных youtube-роликов:

  • #video[b](/rickroll/i) — скрыть на доске /b/ посты с youtube-рикроллом.
  • #video(/vocaloid|miku|iosys|nya|neko|japan|touhou|anime/i) — скрыть по всем перечисленным совпадениям в названии.
  • #video(/цой|летов|гражданск|rick|skrillex|bieber/i)

Важно! Для работы данного спелла включите опцию Ссылки > Загружать названия к YouTube ссылкам*.


#vauthor

#vauthor[доска,тред](строка)

Возвращает true, если автор видео в посте соответствует строке, указанной в аргументе. Если отключена опция Ссылки > Загружать названия к YouTube ссылкам*, то всегда возвращает false.

Спелл позволяет скрывать посты по совпадению с автором загруженных youtube-видеороликов:

  • #vauthor(Sthephan Shi)
  • #vauthor[mu](RickAstleyVEVO)

Важно! Для работы данного спелла включите опцию Ссылки > Загружать названия к YouTube ссылкам*.


Спеллы замены

#rep

#rep[доска,тред](регекс,строка)

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

  • #rep(/Вася/g,Петя) — примитивная замена слова.
  • #rep(/Вася/ig,Петя) — совпадёт с вася, ВАСЯ, Вася и т.д., и заменит на Петя. Флаг i — нечувствительность к регистру.
  • #rep(/\(123\)/g,(321\)) — заменяет (123) на (321); обратите внимание на то, что символ ) в строке экранирован.
  • #rep(/http:\/\/2ip.ru[^<> ]*/ig,) — удаляет ссылки на 2ip.ru.
  • #rep(/-red-(.*?)-red-/ig,<font color="red"></font>) — можно писать -red-красным-red-.
  • #rep(/chrome|хром/ig,псевдобраузер)
  • #rep[s](/([^a-zа-я])(?:(?:GNU|ЖМУ|ГНУ).?)?(?:linu(?:x|ks)|лин\[еуа](?:[кп]с|х)(?:а|е|о[мв]|у)?|debian|gentoo|arch|fedora|slackware|(?:open)?suse|red ?hat|RHEL|[a-z]?ubuntu|(?:[а-я]?убунт|(?:г|дж)ент|федор|слак)(?:а|у|ой|е)|(?:дебиан|арч)(?:[ое]м|ч?ик|е|а|у)?|сус(?:я|ю|ей))/ig,$1ПитухОС) — автозамена для /s/, заменяет все линуксы на ПитухОС.
  • #rep(/<[^>]+postername">Сырно<\/span>/ig,) — скрыть имя по умолчанию на iichan.hk.
  • #rep(/<span class="commentpostername">Сырно<\/span>/g,<span class="commentpostername">Аноним</span>) — заменить на iichan.hk имя по умолчанию на Аноним. Работает только на ответах (ОП остаётся Сырно), но работает быстрее предыдущего примера.
  • #rep(/(№(?:<\/a><a[^>]+>)?\d*)(\d)(\2+)</g,$1<font color="red">$2$3</font><) — подсветка красным даблов, триплов и т.д. на 2ch.hk.
  • #rep(/в?(к|контакте|тентакле|параше|кудахте|паше|дурове?)\.(ком|com)/ig,vk.com) — исправление сленгоназваний вконтакте на vk.com

Данный спелл должен быть обособлен от остальных спеллов, кроме #outrep.


#outrep

#outrep[доска,тред](регекс,строка)

Спелл позволяет заменять текст сообщения посредством регексов (регулярных выражений) перед отправкой поста на сервер, и будет полезен, например, при обходе автозамены. Примеры использования:

  • #outrep(/\.{3}/g,…) — замена трех точек на символ многоточия.
  • #outrep(/ - /g, — ) — заменять дефис с пробелами на тире.
  • #outrep(/быдло/ig,б*ы*дло)
  • #outrep(/школьник/ig,школь[b][/b]ник)
  • #outrep(/(>>\d+)\s*(?!\n)/g,$1\n) — спелл, ставящий за вас заглавные буквы и автоматически начинающий новый абзац после номера поста.

Данный спелл должен быть обособлен от остальных спеллов, кроме #rep.