| Left: | ||
| Right: |
| OLD | NEW |
|---|---|
| 1 # python-abp | 1 # python-abp |
| 2 | 2 |
| 3 This repository contains a library for working with Adblock Plus filter lists | 3 This repository contains a library for working with Adblock Plus filter lists |
| 4 and the script that is used for building Adblock Plus filter lists from the | 4 and the script that is used for building Adblock Plus filter lists from the |
| 5 form in which they are authored into the format suitable for consumption by the | 5 form in which they are authored into the format suitable for consumption by the |
| 6 adblocking software. | 6 adblocking software. |
| 7 | 7 |
| 8 ## Installation | 8 ## Installation |
| 9 | 9 |
| 10 Prerequisites: | 10 Prerequisites: |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 85 | 85 |
| 86 You can clone the necessary repositories to a local directory and add `-i` | 86 You can clone the necessary repositories to a local directory and add `-i` |
| 87 options accordingly. | 87 options accordingly. |
| 88 | 88 |
| 89 ## Rendering diffs | 89 ## Rendering diffs |
| 90 | 90 |
| 91 A diff allows a client running ad blocking software such as Adblock Plus to upda te | 91 A diff allows a client running ad blocking software such as Adblock Plus to upda te |
| 92 the filter lists incrementally, instead of downloading a new copy of a full list | 92 the filter lists incrementally, instead of downloading a new copy of a full list |
| 93 during each update. This is meant to lessen the amount of resources used when up dating | 93 during each update. This is meant to lessen the amount of resources used when up dating |
| 94 filter lists (e.g. network data, memory usage, battery consumption, etc.), allow ing | 94 filter lists (e.g. network data, memory usage, battery consumption, etc.), allow ing |
| 95 clients to update their lists more frequently using less resources. | 95 clients to update their lists more frequently using less resources. |
|
Vasily Kuznetsov
2018/10/24 11:30:08
We normally try to limit line length to <80 charac
| |
| 96 | 96 |
| 97 Python-abp contains a script that produces the diff between two versions of a | 97 Python-abp contains a script called `fldiff` that will find the diff between the lastest |
|
Vasily Kuznetsov
2018/10/24 11:30:08
Nit: should it be "latest"?
| |
| 98 filter list called `fldiff`: | 98 filter list, and any number of previous filter lists: |
| 99 | 99 |
| 100 $ fldiff base.txt latest.txt output.txt | 100 $ fldiff -o diffs/easylist -l last-easylist.txt archive/* |
| 101 where `-o diffs/easylist` is the (optional) directory where the diffs should be written, | |
| 102 `-l last-easylist.txt` is the most recent version of the filter list, and | |
| 103 `archive/*` is the directory where all the the archived filter lists are. When c alled | |
| 104 like this, the shell should automatically expand the `archive/*` directory, givi ng the script | |
| 105 each of the files separately. | |
| 101 | 106 |
| 102 This will produce a diff that shows how a client may get from `base.txt` to | 107 The output of each `list[version].txt` will be written to `diffs/diff[version].t xt`. |
| 103 `latest.txt`, and write the output to `output.txt`. The output argument is | 108 The output argument is optional. If ommitted, the data will be written to `stdou t`. |
| 104 optional. If ommitted, the data will be written to `stdout`. | |
| 105 | 109 |
| 106 The script produces three types of lines, as specified in the [technical specifi cation][5]: | 110 The script produces three types of lines, as specified in the [technical specifi cation][5]: |
| 107 * Special comments of the form `! <name>:[ <value>]` | 111 * Special comments of the form `! <name>:[ <value>]` |
| 108 * Added filters of the form `+ <filter-text>` | 112 * Added filters of the form `+ <filter-text>` |
| 109 * Removed filter of the form `- <filter-text>` | 113 * Removed filter of the form `- <filter-text>` |
| 110 | 114 |
| 111 ## Library API | 115 ## Library API |
| 112 | 116 |
| 113 Python-abp can also be used as a library for parsing filter lists. For example | 117 Python-abp can also be used as a library for parsing filter lists. For example |
| 114 to read a filter list (we use Python 3 syntax here but the API is the same): | 118 to read a filter list (we use Python 3 syntax here but the API is the same): |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 198 | 202 |
| 199 Now you can use the functions with `abp$functionname`, e.g. | 203 Now you can use the functions with `abp$functionname`, e.g. |
| 200 `abp.line2dict("@@||g.doubleclick.net/pagead/$subdocument,domain=hon30.org")` | 204 `abp.line2dict("@@||g.doubleclick.net/pagead/$subdocument,domain=hon30.org")` |
| 201 | 205 |
| 202 | 206 |
| 203 [1]: https://adblockplus.org/filters#special-comments | 207 [1]: https://adblockplus.org/filters#special-comments |
| 204 [2]: http://pytest.org/ | 208 [2]: http://pytest.org/ |
| 205 [3]: https://tox.readthedocs.org/ | 209 [3]: https://tox.readthedocs.org/ |
| 206 [4]: https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt | 210 [4]: https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt |
| 207 [5]: https://docs.google.com/document/d/1SoEqaOBZRCfkh1s5Kds5A5RwUC_nqbYYlGH72s bsSgQ/ | 211 [5]: https://docs.google.com/document/d/1SoEqaOBZRCfkh1s5Kds5A5RwUC_nqbYYlGH72s bsSgQ/ |
| OLD | NEW |