Skip to content
This repository has been archived by the owner on Feb 6, 2023. It is now read-only.

Extend $jsonprune modifier documentation #1138

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions 01.general/02.how-to-create-your-own-ad-filters/docs.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -1445,6 +1445,13 @@ Basic URL exceptions shall not disable `$jsonprune` rules. They can be disabled

> **Compatibility with different versions of AdGuard.** Rules with the `$jsonprune` modifier are supported by AdGuard for Windows, Mac and Android, **running CoreLibs version 1.10 or later**.

###### Nested JSONPath expressions

> In AdGuard for Windows, Mac and Android, **running CoreLibs version 1.11 or later**, JSONPath expressions may be used as keys in filter expressions.

* `||example.org^$jsonprune=\$.elems[?(has "\$.a.b.c")]` – remove all children of `elems` which have a property selectable by the JSONPath expression `$.a.b.c`.
* `||example.org^$jsonprune=\$.elems[?(key-eq "\$.a.b.c" "abc")]` – remove all children of `elems` which have a property selectable by the JSONPath expression `$.a.b.c` with a value equal to `"abc"`.

<a id="noop-modifier"></a>
#### **`noop`**

Expand Down
15 changes: 11 additions & 4 deletions 01.general/02.how-to-create-your-own-ad-filters/docs.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -1424,18 +1424,25 @@ https://jsonpath.com/
* `$jsonprune` также можно отключить с помощью правил-исключений с модификаторами `$document`, `$content` и `$urlblock`.

##### Ограничения
* `$jsonprune` не могут иметь других модификаторов, кроме `$domain`, `$third-party`, `$app`, `$important`, `$match-case` и `$xmlhttprequest`.
* правила `$jsonprune` не будут применены к ответам размером больше 3 МБ.
* Правила `$jsonprune` не могут иметь других модификаторов, кроме `$domain`, `$third-party`, `$app`, `$important`, `$match-case` и `$xmlhttprequest`.
* Правила `$jsonprune` не будут применены к ответам размером больше 3 МБ.

##### Замечания
* Если несколько `$jsonprune` правил соответствуют одному запросу, их эффект суммируется.
* Если несколько правил `$jsonprune` соответствуют одному запросу, их эффект суммируется.

##### Примеры
* `||example.org^$jsonprune=\$..[one\, "two three"]` — удалить все вхождения свойств "one" и "two three" в JSON-документ.
* `||example.org^$jsonprune=\$.a[?(has ad_origin)]` — удалить всех прямых потомков `a`, которые обладают свойством `ad_origin`.
* `||example.org^$jsonprune=\$.*.*[?(key-eq 'Some key' 'Some value')]` — удалить все элементы на уровне вложенности 3, обладающие свойством "Some key", равным "Some value".

> **Совместимость с разными версиями AdGuard.** Правила с модификатором `$jsonprune` поддерживаются в AdGuard для Windows, Mac и Android, **с CoreLibs версии 1.10 или выше**.
> **Совместимость с разными версиями AdGuard.** Правила с модификатором `$jsonprune` поддерживаются в AdGuard для Windows, Mac и Android **с CoreLibs версии 1.10 или выше**.

###### Вложенные JSONPath-выражения

> В AdGuard для Windows, Mac и Android **с CoreLibs версии 1.11 или выше** можно использовать JSONPath выражения в качестве ключей в "filter expression".

* `||example.org^$jsonprune=\$.elems[?(has '\$.a.b.c')]` – удалить всех прямых потомков `elems`, у которых есть свойство, выбираемое JSONPath-выражением `$.a.b.c`.
* `||example.org^$jsonprune=\$.elems[?(key-eq "\$.a.b.c" "abc")]` – удалить всех прямых потомков `elems`, у которых есть свойство, выбираемое JSONPath-выражением `$.a.b.c` и равное `"abc"`.

<a id="noop-modifier"></a>
#### **`noop`**
Expand Down