Бред


Ответить в тред Ответить в тред

Check this out!
<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
66 20 15

Аноним 31/10/19 Чтв 10:03:03 2064856431
Гринтекст с кар[...].png (79Кб, 988x293)
988x293
Привет мои монохромотические друзья. Подскажите одномерному коровьему жмыху как срыть куклоскриптом пикрил посты.
Я тут немного начал:
exp(/>>\d+\s(?:^>\w)/)
Но не работает.
Аноним 31/10/19 Чтв 10:11:36 2064860872
котёнок-35286181.jpg (52Кб, 531x752)
531x752
Позязя
Аноним 31/10/19 Чтв 10:14:09 2064862383
>>206485643 (OP)
не получится, кукла будет скрывать все посты с таким знаком
Аноним 31/10/19 Чтв 10:34:53 2064872584
>>206486238
Как в регспах обозначит строгое соответствие? Ну типа если ВЕСЬ текст соответствует строке поиска. Как в гугле в "текст". А если есть другой текст типа без знака гринтекста, то не скрывать.
Аноним 31/10/19 Чтв 10:46:07 2064878035
Лисёнок рад.jpg (43Кб, 367x425)
367x425
Бимп
Аноним 31/10/19 Чтв 11:37:19 2064904946
>>206485643 (OP)
Никогда не пользовался доллчаном и слабо представляю как оно работает, но давай сформулируем то, что ты хочешь.

Ты хочешь скрывать посты, целиком сделанные из гринтекста, я правильно понимаю?

Судя по мануалу #exp выдает true если находит подстроку, удовлетворяющую регекспу.

Теперь определим, что такое пост, сделанный целиком из гринтекста. Пост из гринтекста это пост, в котором все значимые (непустые) строки начинаются с >
Если есть хотя-бы одна значимая строка, не начинающаяся с >, то это не гринтекст.

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

Это что-то вида !#exp(/есть "правильные" строки/)

Навскидку "правильная" строка это строка вида ^(?!>).+$
^-начало строки
(?!>) - негатив лукахед ассерт на > (т.е. следующий символ - не >), хотя можно и негатив чарактер класс [^>]
.+ один и более значащий символ
$ - конец строки.

Т.е. !#exp(/^(?!>).+$/)
Аноним 31/10/19 Чтв 11:56:35 2064915397
>>206490494
Скрывает все посты которые имеют >
Аноним 31/10/19 Чтв 12:06:34 2064921128
oekaki.png (22Кб, 400x400)
400x400
Аноним 31/10/19 Чтв 12:16:27 2064925979
>>206485643 (OP)
Бля, личноя хотел бы скрытия по картинки. Эти треды с оленем просто нереально заебали.
Аноним 31/10/19 Чтв 12:19:14 20649275910
132ee5279171c57[...].jpg (39Кб, 801x686)
801x686
>>206485643 (OP)
>Привет мои монохромотические друзья. Подскажите одномерному коровьему жмыху как срыть куклоскриптом пикрил посты.
>Я тут немного начал:
>exp(/>>\d+\s(?:^>\w)/)
>Но не работает.
Аноним 31/10/19 Чтв 12:45:41 20649432011
>>206492112
О, я разобрался.

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

Соотвественно, правильный регексп будет
!#exp(/(^(?!^>).+$)/m), чтобы включить мультилайн
Аноним 31/10/19 Чтв 12:53:40 20649486312
>>206492597
>Бля, личноя хотел бы скрытия по картинки. Эти треды с оленем просто нереально заебали.
Есть же сокрытие схожих картинок.
Аноним # OP 31/10/19 Чтв 13:15:58 20649624413
Аноним 31/10/19 Чтв 13:18:35 20649640514
>>206494863
Которое нихуя не работает.
Аноним 31/10/19 Чтв 13:23:05 20649664415
15716795001280.jpg (2155Кб, 1701x1417)
1701x1417
Всё равно полностью автоскрывать весь неугодный бото-котент вы не сможете, так-как кукла под двачи давно подкручена и просто либо не даёт скрывать 100% бототредов/фраз/высеров, либо всё равно выдаёт то, что по идее должно скрываться.
Аноним 31/10/19 Чтв 13:23:24 20649666516
Huy
Аноним # OP 31/10/19 Чтв 13:35:44 20649744517
Исключение.jpg (25Кб, 642x363)
642x363
>>206494320
Скрывает ещё и пикрил со ссылкой.
Аноним 31/10/19 Чтв 13:37:31 20649755718
>>206497445
Да, а еще посты без текста, сижу думаю
Аноним 31/10/19 Чтв 14:16:00 20650006019
костыли.jpg (68Кб, 735x500)
735x500
>>206497445
!(
#exp(/(^(?!>).+$)/m) |
#exp(/^>>\d(\s\(OP\)|(\(You\)))$/) |
#exp(/^$/)
)
Аноним 31/10/19 Чтв 14:19:27 20650026420
>>206500060
Блять, куда-то звездочка проебалась при копировании
!(
#exp(/(^(?!>).+$)/m) |
#exp(/^>>\d(\s\(OP\)|(\(You\)))$/) |
#exp(/^$/)
)

Первая строчка - посты, в которых есть правильная строчка.
Вторая - посты, состоящие только из одной ссылки на другой пост
Третья - посты без текста
Аноним 31/10/19 Чтв 14:20:55 20650035321
>>206500264
Да чозанах, звездочка проебывается при постинге. Во второй строчке должна стоять перед долларом
Аноним # OP 31/10/19 Чтв 14:24:45 20650057022
77d3ed73d9bfa5b[...].jpg (132Кб, 960x650)
960x650
FireShot Captur[...].png (130Кб, 226x193)
226x193
Аноним # OP 31/10/19 Чтв 14:26:24 20650067623
Аноним # OP 31/10/19 Чтв 14:31:52 20650102524
>>206500264
>(\s\(OP\)|(\(You\)))
Это зачем? Убрал и вроде норм стало.
Аноним # OP 31/10/19 Чтв 14:42:08 20650169225
Исключение2.jpg (23Кб, 860x335)
860x335
>>206500264
Ещё исключение с двумя ссылками.
Аноним 31/10/19 Чтв 14:44:19 20650184726
>>206501025
Читай внимательно, там не хватает звездочки, потому что её гремлины при постинге съедают.
Это для того, что бы не скрывать посты со ссылкой на OP или твои посты.

Посты, состоящие только из ссылки могут выглядеть одним из 3х способов:
>>206500264
>>206501025
>>206485643 (OP)
Для ловли таких постов там стоят якоря начала и конца строки без режима мультилайна, чтобы ловить посты, состоящие ТОЛЬКО из одной цитаты, а не СОДЕРЖАЩИЕ хотя-бы одну цитату. Из-за этого без отдельной обработки постфиксов OP и You некоторые цитаты могут проебаться
Аноним 31/10/19 Чтв 14:48:02 20650210027
meguminvietnam.png (7199Кб, 2500x3333)
2500x3333
Аноним 31/10/19 Чтв 14:50:44 20650230428
>>206501692
Потому что спам ссылками это рак.
Можешь вторую строчку заменить на
#exp(/^(>>\d★(\s\(OP\)|(\(You\)))★\s★)+$/)

Будет тебе показывать множественные ссылки

Поскольку гремлины едят мои звездочки, я заменил их на настоящие звездочки. Поменяй обратно, когда будешь копипастить
Аноним 31/10/19 Чтв 15:00:08 20650295129
>>206502304
>>206501025
Залез в код страницы.
(You) вставляется через CSS куклоскрипта, поэтому его нет в тексте поста, и можно исключить из поиска.
А вот (OP) приколочен гвоздями намертво, и его надо таки отслеживать.
Аноним # OP 31/10/19 Чтв 15:05:39 20650335830
Аноним # OP 31/10/19 Чтв 15:11:31 20650375031
>>206502951
А что разве не важно что идёт после цифр в ссылке? Всё равно же сработает и пост со ссылкой будет проигнорирован дл скрытия.
Аноним 31/10/19 Чтв 15:13:22 20650388132
>>206503358
Это только мешать будет, потому что нужно будет еще парсить руками html теги.

Нам же нужно не найти в посте ссылки, а убедиться, что кроме них там ничего нет. А для этого приходится рисовать регулярку для структуры поста целиком, а не для той части, которую мы хотим найти. html-теги эту структуру усложняют.
Аноним # OP 31/10/19 Чтв 15:19:26 20650425933
15510797871243.jpg (430Кб, 708x1000)
708x1000
Аноним 31/10/19 Чтв 15:19:42 20650427434
>>206503750
>А что разве не важно что идёт после цифр в ссылке?

Важно. Важно, что в посте после цыфер нет еще строк с гринтекстом. Можно заебатья с логическими операторами, чтобы точно определить множество "хороших" постов (а потом полученное выражение можно будет попробовать формальными методами трансформировать для удобства написания регулярки), но мне лень.

Поэтому просто будем считать, что мы ищем посты, которые
ИЛИ содержат "правильные" строки - это первая строка
ИЛИ состоят ТОЛЬКО из ссылок - это вторая строка (потому что пост, в котором просто ЕСТЬ ссылки, это в т.ч. гринтекст ровно как на оп пике)
ИЛИ имеют пустое тело (с вложением, видимо).

И вот со второй категорией надо быть аккуратным, чтобы не пропустить гринтекст. Для этого при текущей логике обработки нужно поставить ограничения на то, что идет до и после ссылки.
Аноним 31/10/19 Чтв 15:20:21 20650431735
>>206494863
Э, я что-то не знаю или..где это?
Аноним 31/10/19 Чтв 15:22:18 20650444436
Из какого раздела пикрил?
Аноним # OP 31/10/19 Чтв 15:26:48 20650468637
Скрывает гринте[...].png (4Кб, 270x71)
270x71
>>206504274
Собственно ты много сделал. И пикрил работает пока со всеми исключениями что в треде. Но надо тестить ещё.
Аноним 31/10/19 Чтв 15:27:53 20650475338
>>206504317
>Э, я что-то не знаю или..где это?
крестик - скрывать схожие картинки. Теоретически, по хешу изображения, т.е. без привязки к имени файла.
Аноним # OP 31/10/19 Чтв 15:27:53 20650475539
# OP 31/10/19 Чтв 15:42:48 20650558740
>>206504274
>И вот со второй категорией надо быть аккуратным, чтобы не пропустить гринтекст. Для этого при текущей логике обработки нужно поставить ограничения на то, что идет до и после ссылки.

Кто вайпает гринтекстом тупая школота и вряд ли будут другие изощрённые сценарии. Только тсс
Аноним # OP 31/10/19 Чтв 15:54:32 20650619841
15510960378013.jpg (139Кб, 900x1650)
900x1650
Но всё равно бамп.
Наилучший ответ тут >>206504686
Аноним 31/10/19 Чтв 15:59:46 20650649042
>>206504753
И где, собственно, этот крестик?
Аноним 31/10/19 Чтв 16:03:42 20650669543
куклыскрывают.png (82Кб, 628x285)
628x285
Аноним # OP 31/10/19 Чтв 16:05:42 20650680944
Скрывать схожие[...].png (65Кб, 997x354)
997x354
Аноним 31/10/19 Чтв 16:09:03 20650700645
>>206506695
>>206506809
Да, я таки оказался туповат.
Благодарю, я вообще не понял изначально что это. Думал, что клиент для андрюши или что-то такое
В общем, разобрался, благодарю
Аноним # OP 31/10/19 Чтв 16:20:33 20650771146
>>206504274
Погромизд? Хорошо у тебя получается.
Аноним 31/10/19 Чтв 16:31:12 20650833047
>>206504686 по-идее должно ошибочно скрывать текущее сообщение
Аноним 31/10/19 Чтв 16:33:37 20650846948
>>206494320
Нихуя ты гений.
А в дашчане так же могёшь?
Аноним 31/10/19 Чтв 16:36:03 20650860649
>>206508469
Я ХЗ что такое дашчан, я доллчан то первый раз поставил
Аноним 31/10/19 Чтв 17:05:08 20651043750
>>206508330

Так, слегка подумал над работой test и пофиксил, чтобы отлавливать как однострочники по ссылке, но надо проверить, что ничего не сломалось больше

Вторую строчку заменить на
#exp(/^(>>\d★[^\n]★\n★)+$/)

Это сообщение, которое состоит из строк, начинающихся на >>
Ключик - группа захвата кончается на поедание всех найденных концов строки, поэтому при каждом переводе строки в посте оно снова будет ждать строку, начинающуюся со ссылки.
Аноним # OP 31/10/19 Чтв 18:09:29 20651441251
>>206510437
Пока не нашёл исключений
Это магия. Реально я уже потерял нить. Так и не понял почему выше строка оканчиваетя на /m а остальные нет.
Аноним 31/10/19 Чтв 18:40:30 20651620552
>>206514412
>Так и не понял почему выше строка оканчиваетя на /m а остальные нет

Ты можешь думать об #exp как об этаком грепе. Если он находит в посте подстроку, удовлетворяющую регулярному выражению, он отдает true. Заметь, не проверяет соответствие поста шаблону, а проверяет, есть ли внутри хоть что-нибудь, что под шаблон можно подогнать.

Но тут вопрос - что такое "находит в посте"?

Пост можно рассматривать с двух сторон.
С одной стороны это последовательность символов, с точки зрения движка регулярки ограниченная якорями ^ и $. Между ними - текст. Так работает #exp без m.

С другой стороны, это последовательность строк, каждая строка ограничена якорями ^ и $. Так работает #exp с m

Когда мы ищем подстроку в тексте, то, скажем, . заматчит нам весь пост от начала и до конца. Когда мы ищем подстроку в наборе строк, то . заматчит нам только одну строку.

Первая строчка /(^(?!>).+$)/m говорит нам матчить последовательность, в которой после якоря ^ идет любой символ кроме >, а дальше до якоря $ просто любой символ. Фишка в том, где эти якоря располагаются. С m это начало и конец строки, поэтому это для каждой строки матч (?!>).+. Если он находит хотя-бы одну такую строку, то заебись.
Если бы m не было, на весь пост было бы по одному якорю ^ и $ - в начале и конце поста. И (?!>).+ значило бы "пост, который начинается не с >, а дальше хоть трава не расти". Если в посте несколько строк, и первая из них начинается с >, то весь пост летит в топку.

Вторая строчка в последней версии ловит посты, в которых каждая строка начинается со ссылки. Мы условились считать, что хотим такие посты видеть.

Поскольку нам интересно найти не хотя-бы одну ссылку, а удостовериться, что каждая строка - ссылка, нам удобнее без m.
Фраза (>>\d[^\n]\n) означает "блок текста, который начинается на >>цыфры, потом идет любая бадяга кроме конца строки, потом идет конец строки (или несколько, может там ниже пустые строки, нам так ноже норм. Или ни одного, тогда пост длиной в одну строку и нам так ноже норм). Последняя часть с \n тут важна, потому что если в посте вообще есть переводы строки, то наша группа захвата закроется и + после скобочек начнет набирать новую группу, обязанную начаться с >>.

Всё это счастье обрамляется якорями ^ и $, чтобы убедиться, что мы начинаем считать сразу после начала поста и завершаем сразу перед концом, и никакие строки с гринтекстом не смогут влезть по краям. Если бы их не было, то перед нашим блоком ссылок и после него можно было бы вставить гринтекст, а наш #exp радостно бы отрапортовал, что внутри него есть блок ссылок. То же самое случилось бы, если бы мы впихнули m.

Последняя строчка тупо матчит пустые строки.

Если очень грубо, #exp с m позволяет нам ответить на вопрос, существует ли в посте строка заданного вида. #exp без m и с аккуратным использованием якорей ^ и $ позволяет нам ответить на вопрос, состоит ли пост ТОЛЬКО из блоков определенного вида
Аноним # OP 31/10/19 Чтв 19:06:06 20651760453
>>206516205
>Последняя часть с \n тут важна, потому что если в посте вообще есть переводы строки, то наша группа захвата закроется и + после скобочек начнет набирать новую группу, обязанную начаться с >>.
Вот это ускользало. Спасибо.

Абу благословил этот пост.
31/10/19 Чтв 19:08:12 20651772854
image.png (417Кб, 500x640)
500x640
>>206485643 (OP)
>Привет мои монохромотические друзья. Подскажите одномерному коровьему жмыху как срыть куклоскриптом пикрил посты.
Аноним 31/10/19 Чтв 19:09:37 20651781255
>монохроматические друзья
Отсылка к Мадагаскару на дваче, спешите видеть.
Аноним # OP 31/10/19 Чтв 19:10:43 20651787556
[code]!(
#exp(/^(?!>).+$/m) |
#exp(/^(>>\d[^\n]\n*)+$/) |
#exp(/^$/)
)[/code]
Аноним # OP 31/10/19 Чтв 19:11:45 20651794357
!(
#exp(/^(?!>).+$/m) |
#exp(/^(>>\d[^\n]\n*)+$/) |
#exp(/^$/)
)
Аноним # OP 31/10/19 Чтв 19:14:34 20651812258
Скрывает гринте[...].png (3Кб, 248x76)
248x76
Нет тут тега кода. Потому пикрил последняя версия.
Аноним # OP 31/10/19 Чтв 19:37:45 20651935159
>>206516205
Тут ещё надо уточнить. Ссылка вида >>206516205 в посте детектируется первым #еxp как false, а вот вторым как true, последним false. В итоге false or true or false = true, но впереди стоит отрицание, значит false т.е. не скрываем. Вот если все "or" false, в итоге будет !false=true, т.е. скрываем. Правильно? Ну там таблицы истинности и всё такое.
Аноним 31/10/19 Чтв 20:07:01 20652089960
>>206519351
Ссылка вида >>206516205 в посте детектируется первым #еxp как false

Не совсем. Ты можешь рассматривать первый #exp (который с /m) как конструкцию #exp(/первая строка/) or #exp(/вторая строка/) or ...

Соответственно, первый #exp==true если хотя-бы одна строка дает true. При этом да, строка, начинающаяся со ссылки дает false. Если все строки начинаются со ссылки, то да, в сумме будет false.

Но пост, все строки которого начинаются со ссылки, мы рассматриваем во втором #exp.

Наша конструкция ищет потенциально ценные посты по признакам (или там есть интересные строки, или там только ссылки, или там пусто), а все остальные отправляет в топку.
Аноним # OP 31/10/19 Чтв 20:44:03 20652281261
15510688334580.jpg (58Кб, 640x480)
640x480
>>206520899
Для меня словно гипотезу пуанкаре доказать. Но с твоей помощью теперь спокойней можно мылач читать.
Аноним 31/10/19 Чтв 21:21:16 20652475062
lo and behold ye heathens

#exp(/^(((\n)|(>>\d+[^\n]★))★(>[^>][^\n]+\n★)+((\n)|(>>\d+[^\n]★))★)+$/)

Это без восклицательного знака на старте. Теоретически, это анатомия гринтекста, но я сильно неуверен. У меня от неё голова болит.

На этом треде она, вроде, работает, но надо тестить, как оно будет в боевых условиях.

В чуть более удобоваримом виде это выглядит как
#exp(/^(
(
(\n) |
(>>\d+[^\n]★)
)★
(>[^>][\n]+\n★)+
(
(\n) |
(>>\d+[^\n]★)
)★
)+$/)

Тут проглядывается структура. Грубо говоря, гринтекст это полимерная цепочка из атомов гринтекста.

Где атом гринтекста это ядро (>[^>][\n]+\n★)+ (несколько строк собственно гринтекста) , опционально окруженное оболочкой из (\n) переводов строки или (>>\d+[^\n]★) ссылкоты.

Я сломал об это голову.
Аноним 31/10/19 Чтв 21:23:28 20652487863
>>206524750
А, да, говорят, дашчан это клиент имиджборд для андроида, и там есть скрывание по регулярке.

Дак вот, теоретически эта регулярка должна туда подойти, если там движок регулярных выражений такой же как в жабаскрипте.
Аноним 31/10/19 Чтв 21:26:00 20652502164
>>206508469
>>206524878
Пингуем дашчанера, пусть попробует.

Еще забыло добавить, что ядро гринтекста теоретически должно детектиться криво, там должна быть минимум строка вида >символсимвол. Если в гринтексте есть цитаты пустых или односимвольных строк, оно проебется. Надо допиливать
Аноним 31/10/19 Чтв 21:29:50 20652526765
>>206525021
>>206524750
Попробуйте ядро
(>(?!>)[^\n]★\n★)+
Должно быть более корректно по части ловли пустых строк
Аноним # OP 31/10/19 Чтв 21:37:06 20652567866
Аноним 31/10/19 Чтв 21:38:32 20652575867
Yasi.mp4 (12421Кб, 640x640, 00:00:27)
640x640
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 20Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
X
Ваш шидевор X
Стикеры X
Избранное / Топ тредов