Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Delta Between Two Patch Sets: README.md

Issue 29884571: Issue 6945 - Add script to make filter list diffs (Closed) Base URL: https://hg.adblockplus.org/python-abp/
Left Patch Set: Use io.open instead of open() Created Sept. 18, 2018, 5:22 p.m.
Right Patch Set: Fix docstring Created Sept. 26, 2018, 6:20 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Right: Side by side diff | Download
« no previous file with change/comment | « no previous file | abp/filters/diff_script.py » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
(no file at all)
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 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 If you don't know all the source names that are needed to render some list, 79 If you don't know all the source names that are needed to render some list,
80 just run `flrender` and it will report what it's missing: 80 just run `flrender` and it will report what it's missing:
81 81
82 $ flrender easylist.txt output/easylist.txt 82 $ flrender easylist.txt output/easylist.txt
83 Unknown source: 'easylist' when including 'easylist:easylist/easylist_gener 83 Unknown source: 'easylist' when including 'easylist:easylist/easylist_gener
84 al_block.txt' from 'easylist.txt' 84 al_block.txt' from 'easylist.txt'
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
90
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
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
95 clients to update their lists more frequently using less resources.
96
97 Python-abp contains a script that produces the diff between two versions of a
98 filter list called `fldiff`:
99
100 $ fldiff base.txt latest.txt output.txt
101
102 This will produce a diff that shows how a client may get from `base.txt` to
103 `latest.txt`, and write the output to `output.txt`. The output argument is
104 optional. If ommitted, the data will be written to `stdout`.
105
106 The script produces three types of lines, as specified in the [technical specifi cation][5]:
107 * Special comments of the form `! <name>:[ <value>]`
108 * Added filters of the form `+ <filter-text>`
109 * Removed filter of the form `- <filter-text>`
110
89 ## Library API 111 ## Library API
90 112
91 Python-abp can also be used as a library for parsing filter lists. For example 113 Python-abp can also be used as a library for parsing filter lists. For example
92 to read a filter list (we use Python 3 syntax here but the API is the same): 114 to read a filter list (we use Python 3 syntax here but the API is the same):
93 115
94 from abp.filters import parse_filterlist 116 from abp.filters import parse_filterlist
95 117
96 with open('filterlist.txt') as filterlist: 118 with open('filterlist.txt') as filterlist:
97 for line in parse_filterlist(filterlist): 119 for line in parse_filterlist(filterlist):
98 print(line) 120 print(line)
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 > abp <- import("abp.filters.rpy") 197 > abp <- import("abp.filters.rpy")
176 198
177 Now you can use the functions with `abp$functionname`, e.g. 199 Now you can use the functions with `abp$functionname`, e.g.
178 `abp.line2dict("@@||g.doubleclick.net/pagead/$subdocument,domain=hon30.org")` 200 `abp.line2dict("@@||g.doubleclick.net/pagead/$subdocument,domain=hon30.org")`
179 201
180 202
181 [1]: https://adblockplus.org/filters#special-comments 203 [1]: https://adblockplus.org/filters#special-comments
182 [2]: http://pytest.org/ 204 [2]: http://pytest.org/
183 [3]: https://tox.readthedocs.org/ 205 [3]: https://tox.readthedocs.org/
184 [4]: https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt 206 [4]: https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt
207 [5]: https://docs.google.com/document/d/1SoEqaOBZRCfkh1s5Kds5A5RwUC_nqbYYlGH72s bsSgQ/
LEFTRIGHT

Powered by Google App Engine
This is Rietveld