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