Волшебные команды (спеллы)
Скрипт обладает широкими возможностями по пользовательскому управлению загруженным на странице контентом, включая скрытие постов по различным условиям и замену содержимого посредством регулярных выражений. В связи с тем, что скрипт находится в состоянии перманентной разработки, набор управляющих слов может изменяться и дополняться.
Все команды, в силу устоявшихся традиций, будем называть спеллами, от англ. 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
.