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: Address comments on PS3, add README Created Sept. 24, 2018, 10:04 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:
Left: Side by side diff | Download
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
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 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 89 ## Rendering diffs
90 90
91 A diff allows a client running adblocking software such as Adblock Plus to updat e 91 A diff allows a client running ad blocking software such as Adblock Plus to upda te
Sebastian Noack 2018/09/24 22:21:09 "ad blocking" are two words.
rhowell 2018/09/25 01:53:44 Done.
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.
96 96
97 Python-abp contains a script that produces the diff between two filterlists call ed 97 Python-abp contains a script that produces the diff between two versions of a
Sebastian Noack 2018/09/24 22:21:09 ... between two versions of a filter list ...
rhowell 2018/09/25 01:53:44 Done.
98 `fldiff`: 98 filter list called `fldiff`:
99 99
100 $ fldiff base.txt latest.txt output.txt 100 $ fldiff base.txt latest.txt output.txt
101 101
102 This will produce a diff that shows how a client may get from `base.txt` to 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 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`. 104 optional. If ommitted, the data will be written to `stdout`.
105 105
106 The script produces three types of lines, as specified in the [technical specifi cation][5]: 106 The script produces three types of lines, as specified in the [technical specifi cation][5]:
Sebastian Noack 2018/09/24 22:21:09 This URL is not defined at the bottom.
rhowell 2018/09/25 01:53:45 Oops! I had it in a markdown editor, but forgot to
107 * Special comments of the form `! <name>:[ <value>]` 107 * Special comments of the form `! <name>:[ <value>]`
108 * Added filters of the form `+ <filter-text>` 108 * Added filters of the form `+ <filter-text>`
109 * Removed filter of the form `- <filter-text>` 109 * Removed filter of the form `- <filter-text>`
110
111 When applying the diff, a client will update any values in the form of special
112 comments, remove any filters that have been removed, and then add any filters
Sebastian Noack 2018/09/24 22:21:09 That is not accurate. As of the current specificat
rhowell 2018/09/25 01:53:45 Ah right. I missed that change to the spec. Fixed.
113 that have been added.
114 110
115 ## Library API 111 ## Library API
116 112
117 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
118 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):
119 115
120 from abp.filters import parse_filterlist 116 from abp.filters import parse_filterlist
121 117
122 with open('filterlist.txt') as filterlist: 118 with open('filterlist.txt') as filterlist:
123 for line in parse_filterlist(filterlist): 119 for line in parse_filterlist(filterlist):
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 > abp <- import("abp.filters.rpy") 197 > abp <- import("abp.filters.rpy")
202 198
203 Now you can use the functions with `abp$functionname`, e.g. 199 Now you can use the functions with `abp$functionname`, e.g.
204 `abp.line2dict("@@||g.doubleclick.net/pagead/$subdocument,domain=hon30.org")` 200 `abp.line2dict("@@||g.doubleclick.net/pagead/$subdocument,domain=hon30.org")`
205 201
206 202
207 [1]: https://adblockplus.org/filters#special-comments 203 [1]: https://adblockplus.org/filters#special-comments
208 [2]: http://pytest.org/ 204 [2]: http://pytest.org/
209 [3]: https://tox.readthedocs.org/ 205 [3]: https://tox.readthedocs.org/
210 [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