essandess / adblock2privoxy

Convert adblock config files to privoxy format
https://hackage.haskell.org/package/adblock2privoxy
GNU General Public License v3.0
93 stars 16 forks source link

update filterlist #30

Closed KonoromiHimaries closed 5 years ago

KonoromiHimaries commented 5 years ago

last update for 19 Jul 2017 https://github.com/essandess/adblock2privoxy/blob/master/privoxy/ab2p.action

https://github.com/collinbarrett/FilterLists/issues/573

essandess commented 5 years ago

Those files are over 20 MB each, and the css directory structure is hundreds of MB. Every update and commit multiplies the size of the repo by that much.

GitHub repos are not a great way of hosting these filter lists.

I’m open to suggestions, but the simplest thing to do is just build and run adblock2privoxy locally.

KonoromiHimaries commented 5 years ago

use ipfs https://github.com/ipfs/ipfs#readme

essandess commented 5 years ago

ipfs still needs a server infrastructure to host files.

The filter files depend on user preferences for the easylist/adblock filters chosen.

This is a repo for software to convert easylist to adblock files, not update them or host select rule sets. That would be a great project for someone to take up, though.

essandess commented 5 years ago

I figured out how to do this efficiently using git rebase. Latest files are in https://github.com/essandess/adblock2privoxy/commit/461f265cba399db23b8775e0839f4ba5495a561f.

It's also worthwhile to update these example files to reflect the recent parsing fixes in adblock2privoxy.

Notes for the next time someone asks for updated files:

Delete the commit with the old files

  1. Find the commit hash to be deleted:

    git log --graph --oneline It’s 1abcb291.

  2. Confirm the first hash to be kept:

    git log --oneline --reverse --ancestry-path 1abcb291^..master

  3. Use rebase to delete the commit:

    git rebase -i 1abcb291^

  4. Comment out commit(s) to ignore with # at the line beginning.
  5. Sanity check the the local repo has all the latest content by comparing it against the remote.
  6. Force push to GitHub:

    git push origin +master

Add a commit with the updated files

mkdir easylist privoxy css
( cd easylist ; echo "https://easylist.to/easylist/easyprivacy.txt  \
  https://easylist.to/easylist/easylist.txt  \
  https://easylist.to/easylist/fanboy-annoyance.txt  \
  https://easylist.to/easylist/fanboy-social.txt  \
  https://easylist-downloads.adblockplus.org/antiadblockfilters.txt  \
  https://easylist-downloads.adblockplus.org/malwaredomains_full.txt  \
  https://raw.githubusercontent.com/ryanbr/fanboy-adblock/master/fanboy-antifacebook.txt \
  https://raw.githubusercontent.com/Dawsey21/Lists/master/adblock-list.txt" | xargs -n 1 curl -O )
adblock2privoxy -p ./privoxy -w ./css -d 127.0.0.1:8119 ./easylist/*.txt
git add easylist privoxy css
git commit -am 'Update easylist, privoxy, and css rule files and directories'
git push origin master

I'm going to keep this issue open because these examples will be perennially out of date.