Dollchan

Return To bottom

>> Поддержать Dollchan <<

Куклоскрипт / Спеллы / Бордосфера / Обсуждение борды / Тред модерации / Задонатить / Получить пасскод

CAPTCHA
 Deletion password
  • Supported file types are JPG, PNG, GIF, WEBP, WEBM, MP4 and MOV.
  • Limit: 4 files, 30 MB per file (60 MB for Passcode users).
  • Images greater than 250x250 will be thumbnailed.
  • 1003 unique users on the board.

602
51IC1CjmgCL._SX373_BO1,204,203,200_.jpg
(45.74KB, 375x499)
А почему бы не создать тред, где вы могли бы спрашивать вопросы по спеллам и регулярным выражениям?
А также делиться своими спеллами и реквестировать чужие, чтобы скрывать неугодные вам посты и треды!
Спрашивайте, реквестиурйте, делитесь.

Руководство по спеллам

https://ru.wikibooks.org/wiki/Регулярные_выражения
https://tproger.ru/articles/regexp-for-beginners/
https://netpeak.net/ru/blog/kak-novichku-razobratsya-v-regulyarnyh-vyrazheniyah/
610
javascript.ru/RegExp
Не помню. Но степан о, Великий Степан ссылался сюда.
637
Нафига посты у д а л я т ь, сэр. Это может отвратить аудиторию. А может и не отвратить.

>I guess it's time to update my dollchan
#exph(/\/static\/flags\/(ru|ru-mow|md|pt|be|al|onion).png/) |
#exph(/\/static\/flags\/xmas\/(ru|ru-mow|md|pt|be|al|onion).png/)

См. больше тут:
https://kohlchan.net/int/res/1823397.html#q1825292
https://kohlchan.net/int/res/1823397.html

Держи.
639
Держи. (css)
#de-panel-vid,
#de-panel-goup,
#de-panel-godown,
#de-panel-preimg,
#de-panel-savethr,
#de-panel-audio-off,

#de-panel-fav{ display: none; }
!#de-panel-expimg > .de-panel-svg { display: none;}
!#de-panel-expimg {
background-image: url(data:image/gif;base64,R0lGODlhGQAZAIAAAPDw8P///yH5BAEAAAEALAAAAAAZABkAQAI9jI+pGwDn4GPL2Wep3rxXFEFel42mBE6kcYXqFqYnVc
72jTPtS/KNr5OJOJMdq4diAXWvS065NNVwseehAAA7); background-repeat: no-repeat; background-position: center; }
!.de-ref-my::after { content: ""; }
!.de-ref-my::after { content: none; }
!.de-ref-del.de-ref-my::after { content: " (Del)"; }
!.de-ref-op.de-ref-my::after { content: " (OP)"; }
!.de-ref-op::after { content: ""; }
.de-new-post { box-shadow: 6px 0px 2px -2px #F60, -6px 0px 2px -2px #F60 !important; }
656
15360128171950.jpg
(113.35KB, 720x960)
Суп, анончики.
Накатал вот такую конструкцию, но при сохранении ругается, что пропущен оператор. Как починить?
А ещё лучше - дайте настройки, скрывающие весь фап-контент на борде.
Спасибо.
> (#words(FAP)| #words(ФАП) | #words(ТРАПОТРЕД))
658
>>656
Почему эта лама такая довольная?
659
>>658
Тебя увидела :3
660
Black-Mirror-Bandersnatch.jpg
(245.77KB, 618x412)
>>656
Все спеллы и конструкции должны разделяться оператором "ИЛИ" |, или "И" &.
У вас ведь есть и другие выражения, а вы скорее всего тупо добавляете вашу конструкцию в конец:

#words(ваш_старый_спелл1) |
#words(ваш_старый_спелл2)
(#words(FAP) | #words(ФАП) | #words(ТРАПОТРЕД))


Так нельзя! Везде должен быть операторы логического связывания. В вашем случае, это "ИЛИ":

#words(ваш_старый_спелл1) |
#words(ваш_старый_спелл2) |
(#words(FAP) | #words(ФАП) | #words(ТРАПОТРЕД))


Таким образом, все спеллы связаны между собой логическими операторами в одно логическое выражение, которое в итоге даст true (скрыть пост) или false (этот пост не скрывать).
И да, в вашем случае общие скобки не нужны, ибо не имеют смысла, так как внутри них у вас нет операторов "И". Можно упростить вот так:

#words(ваш_старый_спелл1) |
#words(ваш_старый_спелл2) |
#words(FAP) |
#words(ФАП) |
#words(ТРАПОТРЕД)


Вот если бы вы хотели скрывать только треды FAP/ФАП/ТРАПОТРЕД со спеллом #op (что, скорее всего, вы и хотели сделать), тогда скобки нужны:

#words(ваш_старый_спелл1) |
#words(ваш_старый_спелл2) |
#op & (#words(FAP) | #words(ФАП) | #words(ТРАПОТРЕД))


а лучше вот так, для наглядности, с красивым форматированием:

#words(ваш_старый_спелл1) |
#words(ваш_старый_спелл2) |
#op & (
    #words(FAP) |
    #words(ФАП) |
    #words(ТРАПОТРЕД)
)


И если вы, к примеру, захотите добавить ещё один спелл в конец, то нужен опять оператор "ИЛИ" |:

#words(ваш_старый_спелл1) |
#words(ваш_старый_спелл2) |
#op & (
    #words(FAP) |
    #words(ФАП) |
    #words(ТРАПОТРЕД)
) |
#words(ваш_ещё один_спелл)


Всё очень просто, родной.
661
>>660
Оказывается, я просто "или" не добавил к пердыдущему спеллу.
Спасибо.
708
5211669685_c4350c5ac9_b.jpg
(256.78KB, 1024x508)
2016. Апрель
#sage[b,120426185] |
#sage[b,120380374] |
#sage[b,118867095] |
#wipe(samelines,samewords,longwords,symbols,numbers,whitespace) | (
    !#all([wp]|[pa]) & /снесено за неактуальностью. Телефоноскриншотоблядь не человек. 
    (!#op & #img(>3072)) |
    (!#op & #img(=@1440x2560)) |
    (!#op & #img(=@1600x2560)) |
    (!#op & #img(=@1536x2048))
) |
(#trip[es] & !#trip(!!WX5qYUUoY.)) |  /Рита. Привет из весна 2014 - лето 15
#words[b](и соба) |
#words[b](автобамп) |
#words[b](бы и пса) |
#words[b](как же хоче) |
#words[b](слава украине) |
#words[b](как же пло) |
#words[b](postc) |
#words[b](сигну) |
#words[b](сигны) |
#words[b](мамку ебал) |
#words[b](хрюкни) |
#words[b](▲) |
#words[b](пасск) |
#words[b](протеи) |
#words[b](главная настройка) |
#words[b](тнус) |
#words[b](ваномас) |
#words[b](вантомас) |
#words[b](вас посетил) |
#words[b](добропочта) |
#exp(/^(?:bump|up|бамп|вверх|комментарий)/ig) |
#exp[s](/сам с |Петуз/ig) |
#words(десктоп-тред) |
#words[b](хуено) |
#words[b](хуемр) |
#words[b](скачать мобильные) |
#words[b](change.org) |
#words[b](шебм) |
#words[b](webm) |
#words[b](цуиь) |
#words[b](фэнтези-тред) |
#words(скр ) |
#words(гомункул) | /говнофорс второй пол. 2015
#words(мамку твою е) |
#words(пердоля) |
#words(пожалуйста пососите писос)

#rep(/х[оа]х(о|)л[а-я]*/ig,[x])
#rep(/свин[оья][а-я]*/ig,[x])
#rep(/как[ео]л[а-я]*/ig,[x])
#rep(/пидора[нхш][а-я]*/ig,[x])
#rep(/мам(,|) см[ао].*/ig,[x])
#rep(/мем[ае](с|)([а-я]|)/ig,<font color="gray">[x]</font>)
#rep(/(тво[еюя](|[а-я])) ма[тм][а-я]+/ig,<font color="gray">[x]</font>)
#rep(/теб[ея] [нз]а.+/ig,<font color="gray">[x]</font>)
#rep(/за щ[её].+/ig,<font color="gray">[x]</font>)
#rep(/проверяй/ig,<font color="gray">[x]</font>)
#rep(/Спасибо(,|) Абу/ig,<font color="gray">[x]</font>)
#rep(/ман[ьюя]([мк]|)[а-я]*/ig,<font color="gray">[x]</font>)
#rep(/всра[лт][а-я]*/ig,<font color="gray">[x]</font>)
#rep(/хуемр[а-я]+/ig,<font color="gray">[x]</font>)
#rep(/битеж[а-я]+/ig,<font color="gray">[x]</font>)
#rep(/<(br|strong)>@( |)<(\/|)(br|strong)>/g, ) /бугурт-треды
#rep(/<br> <br>/ig,)
#rep(/<br><br><br><br>/ig,)
#rep[b](/\)\)+/ig,<font color="gray">[x]</font>)
#rep[s](/\)\<\/span\>\<\/span\>?/g,</span></span>)
#rep[s](/\)\<\/span\>\<\/a\>?/g,</span></a>)
#rep[s](/\(Arch/g,Arch) /примочка с конца 2015. Долго ждали
#rep[s](/\(Debian/g,Debian)
#rep[s](/\(Haiku/g,Haiku)
#rep[s](/\(Fedora/g,Fedora)
#rep[s](/(Old Opera)/g,<font color="red">Opera</font>)
#rep[s](/(New Opera)/g,<font color="red">Хромог</font>)
#rep[s](/\(Ubuntu/g,Ubuntu)
#rep[s](/\(Linux:/g,Линь,)
#rep[s](/Linux:/g,Линь,)
#rep[s](/\(BSD:/g,BSD,)
#rep[s](/\((Неизвестно: Неизвестно)/g,<font color="black">Аноним!</font>)
#rep[s](/(Неизвестно)/g,<font color="black">Неизвестно</font>)
#rep[s](/(UCBrowser)/g,UCBrowser)
#rep[s](/\(Microsoft Windows\s/g,<font color="black">Вин</font>)
#rep[s](/(Firefox based)/g,<font color="orange">Лис<font color="blue">а</font></font>)
#rep[s](/(Chromium based)/g,<font color="blue">Х<font color="red">р<font color="orange">о<font color="blue">м<font color="green">о<font color="red">г</font></font></font></font></font></font>)
#rep[s](/\(Неизвестно:/g,<font color="BLACK">Неизвестно,</font>)
#rep[s](/\(Apple (Mac|GayPad|GayPhone):/g,Яблоко,)
#rep[s](/\(Google Android:/g,Андроид,)
#rep[s](/(Яндекс браузер)/g,<font color="orange">ЯдиБ</font>)
#rep[s](/(Internet Explorer|Microsoft Edge)/g,<font color="blue">Осёл</font>)
#rep[s](/(Safari)/g,Safari)
#rep[s](/(Vivaldi)/g,<font color="blue">Vivaldi</font>)
#rep[s](/(Iceweasel)/g,<font color="white">Iceweasel</font>)
#rep[s](/(Palemoon)/g,<font color="blue">Pale</font><font color="white">moon</font>)
#rep[s](/(пердо)/ig,<i>п-о</i>)
#rep[s](/(спер(м|)(о|))/ig,<i>с-о</i>)
#rep[s](/Vista/g,<font color="#5D8AA8">Виста</font>)
#outrep(/ -/g, —)
#outrep(/\(tm\)/g,™)
#outrep(/\(r\)/g,®)
#outrep(/\(c\)/g,©)
#outrep(/=-/g,«)
#outrep(/==/g,»)
#outrep(/\+-/g,±)
#outrep(/ъъ/g,Ҍ)
711
>>708
Ого, сколько автозамҌнъ для /s.
Неблохо. #outrep'ы даже пожалуй возьму на вооружение и внесу в wiki.
718
Есть фильтр который скрывает "t." только если это отдельное "слово".
#exp(/(?:^|[^a-z])t\.(?:$|[^a-z])/i) |
Работает хорошо, но скрывает такие слова как "don't." и "can't." Можно сделать так что бы пост не скрывался если перед "t." стоит "'"?
720
>>708
#exp(/^(?:bump|up|бамп|вверх|комментарий)/ig) |

> комментарий
Комментарий-то чем не угодил?
722
Apophis_gold.JPG
(15.15KB, 300x217)
>>718
Давайте разберём по частям вами написанное)))

(?:^|[^a-z]) означает:
(?:) выбрать группу, где
^ - есть начало строки
| - ИЛИ
[^a-z] - есть НЕ латинские символы

аналогично,
(?:$|[^a-z]) означает
$ - конец строки
| - ИЛИ
[^a-z] - НЕ латинские символы

t\. это t с точкой, если вам нужна точка, то в регулярных выражениях она экранируется символом \.

Так как вы не хотите совпадение с апострофом перед "t.", то просто добавьте апостроф в скобки исключения [^a-z] вот так:
[^a-z'] - НЕ латинские символы и НЕ апостроф

Итого,
#exp(/(?:^|[^a-z'])t\.(?:$|[^a-z])/i)
726
1238349728760.jpg
(101.62KB, 400x400)
>>722
Спасибо же.
807
1419102869446.jpg
(19.17KB, 500x497)
>>720
Засиранием тредов харкача, было дело когда-то.
>>711
А то! Ещё было "зз" на "Значение знаешь?" Развелось, блядь, безграмотных.А потом я забил Надоело. Спасибо, Абу.
Главное, помнить, что на "2 ядра, 2 гига" это нехилая нагрузка. Как и сам скрипт...
808
Рад, что помог, что сказать. +100 к моему ЧСВ.
1231
Как сделать так что бы фильтр срабатывал на "weeb" но не срабатыывал на "ironic weeb"?
1254
maxresdefault.jpg
(155.02KB, 1280x720)
>>1231
(#words(weeb) & !#words(ironic weeb))
1273
>>1254
Спасибо же, 3 часа пытался добиться этого через регулярку, буду знать что есть такой функционал.
1282
с картинкой.png
(79.68KB, 988x293)
Как скрыть посты состоящие из ссылки и гринтекста, типа пикрил?
1284
>>1282
!#exp(/(^(?!^>).+$)/m)
- есть такой вариант, но скрываются посты без текста и просто с одной ссылкой на другой пост.
1289
гринтекст2.png
(3.71KB, 248x76)
гринтекста.png
(66.17KB, 1024x600)
>>1284
Тут один талантливый анон помог. Есть 2 варианта. Первый работает, второй не проверял, но оба должны скрывать гринтекст. Спасибо ему.
1875
Как скрыть все посты, которые написаны полностью жирным шрифтом?
1876
570.png
(153.46KB, 680x381)
>>1873
Всё зависитъ от разметки. На каждом конкретном имиджборде / движке он будет отличаться.
Ежели для 2ch.hk, то приблизительно вот:
#exph(/<article[^>]+><strong>.*?<\/strong><\/article>/)

Здесь <article[^>]+> - начало контейнера с сообщением, <\/article> - конец контейнера. <strong> и <\/strong> - начало и конец тега "жирный". .*? - всё остальное содержимое между ними.

Внезапно обнаружил, щто скрипт в загруженных постах лепит <blockquote> вместо <article>. Исправил! Обновите скрипт до последнего коммита, и только потом пробуйте спелл. Или же добавьте ещё:

#exph(/<blockquote[^>]+><strong>.*?<\/strong><\/blockquote>/)
1878
>>1876
#exph(/<blockquote[^>]+><strong>.*?<\/strong><\/blockquote>/)

Работает!
1880
>>1876
Не работает для ОП постов
(#op & #exph(/<article[^>]+><strong>.*?<\/strong><\/article>/))

#exph(/<article[^>]+><strong>.*?<\/strong><\/article>/)
1951
Untitled.png
(54.25KB, 768x253)
Хочу сделать так, чтобы каждое предложение на Форчане заканчивалось на "desu". Пока что написал такое:
#rep(/(?<lastletter>[a-z])\!/g,$<lastletter>, desu!)
#rep(/(?<lastletter>[A-Z])\!/g,$<lastletter>, DESU!)

#rep(/(?<lastletter>[a-z])\.\s/g,$<lastletter>, desu. )
#rep(/(?<lastletter>[a-z])(\.)$/gm,$<lastletter>, desu.)


И вот у меня два поста. В одном (второй пост) автозамена работает как надо: заменяет точку, которая является последним символом в строке, на ", desu." А в первом посте этого не происходит. Почему так?
1952
>>1951
Всё ещё не могу понять. #rep словно не реагирует на символ "$" (конец строки) и на флаги "m" (поиск в нескольких строках) и "g".
2004
Не понимаю, почему на дваче в 2d не работает скрытие постов без трипкода. Если пишу !#trip, то скрываются вообще все посты, в том числе и те, которые с трипкодом. Как это можно исправить, или это особенности имиджборды?
2426
Зашёл в тред, чтобы задать вопрос про автозамену ("#rep"), а тут два предпоследних поста — мои (>>1952 >>1951). Мда. Мде. Прошло больше года, но я до сих пор не понимаю, как работает "#rep". Он очень странно работает, когда дело касается начала или конца строк. Например, у меня не получается написать спелл, который ставил бы точки в конце каждой строки, заканчивающейся на букву.
2427
>>2426
>больше года
Меньше года.
2619
1675801932273.jpeg
(515.52KB, 2048x2048)
>>1952>>2426
> Прошло больше года
Я подождал ещё 9 месяцев, чтобы вам ответить, хехе.
> #rep словно не реагирует на символ "$" (конец строки) и на флаги "m" (поиск в нескольких строках) и "g".
Дело в том, что #rep применяется к html страницы, а не к тексту поста. Читаем тут:
"Спелл позволяет заменять html код тредов посредством регексов (регулярных выражений) на заданную по усмотрению пользователя строку."

Допустим, вы имеете текст:

/waifu/
waifu thread
shitpost central
post your waifu


Но по факту его html имеет вид:

<blockquote class="postMessage" id="m906075597">/waifu/<br>waifu thread <br>shitpost central <br>post your waifu</blockquote>


Понятное дело, никаких концов строки там нет, вместо них <br>. Вот и вся соль.

>>2004
Хм, надобно глянуть, возможно, определение трипкода на 2ch.hk сломано. Посмотрю попозже.

Message edited: 15.09.23 Fri 04:14:29

Delete Post  

Куклоскрипт / Спеллы / Бордосфера / Обсуждение борды / Тред модерации / Задонатить / Получить пасскод

>> Поддержать Dollchan <<

Return To top