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

Side by Side Diff: README.md

Issue 29922555: Issue 7059 - Modify fldiff so it can handle multiple files (Closed) Base URL: https://hg.adblockplus.org/python-abp
Patch Set: Address comments on PS4 Created Oct. 31, 2018, 7:11 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | abp/filters/diff_script.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 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
92 the filter lists incrementally, instead of downloading a new copy of a full list 92 update the filter lists incrementally, instead of downloading a new copy of a
93 during each update. This is meant to lessen the amount of resources used when up dating 93 full list during each update. This is meant to lessen the amount of resources
94 filter lists (e.g. network data, memory usage, battery consumption, etc.), allow ing 94 used when updating filter lists (e.g. network data, memory usage, battery
95 clients to update their lists more frequently using less resources. 95 consumption, etc.), allowing clients to update their lists more frequently using
96 less resources.
96 97
97 Python-abp contains a script that produces the diff between two versions of a 98 Python-abp contains a script called `fldiff` that will find the diff between the
98 filter list called `fldiff`: 99 latest filter list, and any number of previous filter lists:
99 100
100 $ fldiff base.txt latest.txt output.txt 101 $ fldiff -o diffs/easylist easylist.txt archive/*
101 102
102 This will produce a diff that shows how a client may get from `base.txt` to 103 where `-o diffs/easylist` is the (optional) output directory where the diffs
103 `latest.txt`, and write the output to `output.txt`. The output argument is 104 should be written, `easylist.txt` is the most recent version of the filter list,
104 optional. If ommitted, the data will be written to `stdout`. 105 and `archive/*` is the directory where all the archived filter lists are. When
106 called like this, the shell should automatically expand the `archive/*`
107 directory, giving the script each of the filenames separately.
105 108
106 The script produces three types of lines, as specified in the [technical specifi cation][5]: 109 In the above example, the output of each archived `list[version].txt` will be
110 written to `diffs/diff[version].txt`. If the output argument is omitted, the
111 diffs will be written to the current directory.
112
113 The script produces three types of lines, as specified in the [technical
114 specification][5]:
115
107 * Special comments of the form `! <name>:[ <value>]` 116 * Special comments of the form `! <name>:[ <value>]`
108 * Added filters of the form `+ <filter-text>` 117 * Added filters of the form `+ <filter-text>`
109 * Removed filter of the form `- <filter-text>` 118 * Removed filters of the form `- <filter-text>`
119
110 120
111 ## Library API 121 ## Library API
112 122
113 Python-abp can also be used as a library for parsing filter lists. For example 123 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): 124 to read a filter list (we use Python 3 syntax here but the API is the same):
115 125
116 from abp.filters import parse_filterlist 126 from abp.filters import parse_filterlist
117 127
118 with open('filterlist.txt') as filterlist: 128 with open('filterlist.txt') as filterlist:
119 for line in parse_filterlist(filterlist): 129 for line in parse_filterlist(filterlist):
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 208
199 Now you can use the functions with `abp$functionname`, e.g. 209 Now you can use the functions with `abp$functionname`, e.g.
200 `abp.line2dict("@@||g.doubleclick.net/pagead/$subdocument,domain=hon30.org")` 210 `abp.line2dict("@@||g.doubleclick.net/pagead/$subdocument,domain=hon30.org")`
201 211
202 212
203 [1]: https://adblockplus.org/filters#special-comments 213 [1]: https://adblockplus.org/filters#special-comments
204 [2]: http://pytest.org/ 214 [2]: http://pytest.org/
205 [3]: https://tox.readthedocs.org/ 215 [3]: https://tox.readthedocs.org/
206 [4]: https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt 216 [4]: https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt
207 [5]: https://docs.google.com/document/d/1SoEqaOBZRCfkh1s5Kds5A5RwUC_nqbYYlGH72s bsSgQ/ 217 [5]: https://docs.google.com/document/d/1SoEqaOBZRCfkh1s5Kds5A5RwUC_nqbYYlGH72s bsSgQ/
OLDNEW
« no previous file with comments | « no previous file | abp/filters/diff_script.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld