Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pretty big update #38

Merged
merged 16 commits into from
Jan 11, 2020
Merged

Pretty big update #38

merged 16 commits into from
Jan 11, 2020

Conversation

DandelionSprout
Copy link
Contributor

@DandelionSprout DandelionSprout commented Jan 11, 2020

Okay, so the situation is that AdGuard Home is now seemingly doing an open rollcall for new lists to include in stock installations. Additionally, I became aware of some problems involving the Deezer smart-TV app and of a way to block LG TVs' ridiculous connection attempts to garbled domains, so I went for a twofer, and decided to fix the entries in your Pi-hole list version and to create an AGH list version on top of that, spending three days on the preparations.

Complete changelog:

  • Created an AdGuard Home list version based on not only your smart-TV list, but also your Amazon Fire TV list and select entries from my game console list.
  • Attempted to deal with hbbtv - zdf, prosieben #29 to the best of my ability (Norway does not use Hbb in any way, so I am not able to test the feasibility of Hbb entries at all.)
  • Removed some duplicates and misspelled domains.
  • Commented out tv.deezer.com, as it causes an error message when starting up Deezer's TV app.
  • Wrote a RegEx to attempt to take care of LG garbled connection attempts. Although they're from a purely technical standpoint not dangerous, it does look super-weird. (Image below this paragraph.)
  • Created metadata at the top of the Pi-hole and Pi-hole RegEx list versions.
  • Some grammar improvements.

image

I understand it as such that you have virtually zero experience with AdGuard Home, or for that matter with writing lists for ordinary adblockers like uBlock Origin, so I will volunteer to help you out with the AGH list version to begin with if you ever need my help with it for anything whatsoever, in exchange for being credited in its metadata. The biggest difference is that AGH can do blacklisting, whitelisting and RegEx in the same list, which I understand it as such that Pi-hole can't.

I took a considerably more conversative P-H→AGH conversion approach than I did in #26, especially when it came to the Samsung entries, if that helps sweeten my proposal somewhat.

Should this pull request become accepted, I would give very warm recommendations to the AGH team to include the AGH list version in it, although I do not have the final say on their decisions.

Copy link
Owner

@Perflyst Perflyst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That looks great!
I do know how to write adblock lists but I dont want to maintain them here if I dont really need them.. :)

@Perflyst
Copy link
Owner

Why I do not use AGH?
It is basically a company product and there is not really any community.
PiHole has regex support but only in a single list and not like AGH in multiple lists. That will probably change in the future.

I would like to know what Per-client (device) configuration is. They mention it in their readme on GitHub.
Can you maybe also do your personal comparison why AGH is better? I would really like to know more about it :)

@DandelionSprout
Copy link
Contributor Author

DandelionSprout commented Jan 11, 2020

Hmm, let's see...

I will admit as much that AdGuard Home is essentially a company product, or more like a company *by-*product, as it appears to me to have been created out of earlier work they did on AdGuard DNS and AdGuard for Android, which are most definitely corporate-made products.

"Per-device configuration" is done at several levels and settings menus, but are not quite as separational as one would've thought. Essentially, if an IP address has been assigned a nickname in "Client settings", certain settings can be modified specifically for them that can differ from the global settings, such as whether to use:

  • Filterlists (All or nothing).
  • AdGuard's malware-lookup service and/or anti-porn service.
  • Enforcement of safe search in major search engines.
  • Hid-away-from-sight filterlists that aim to block access any one (or multiple) of 22 major tech or entertainment groups, e.g. Google, TikTok, VKontakte, etc.
  • A different DNS upstream server for IP address resolvements.

image

I have only the most bare-basic of experiences with Pi-Hole, but my experience is that AGH has two big advantages:

  1. It's more or less easier to set up.
  2. Somewhat better syntax support.

Once the AGH installation .exe has been downloaded from GitHub, the installation process goes fairly easy, the resulting browser GUI looks nice, and the query system works well for me. It even has native versions for Windows, macOS, and FreeBSD, and it's technically installable on some routers (though the RAM requirements for that are lofty by router standards). The official documentations for AGH are unfortunately often outdated by a few months (as can be seen in the ≥200 open issue reports), and there's a number of mostly surpassable oversights that the team haven't really had time to fix yet (e.g. to become able to search the query by client nickname; achieving better support for EasyList lists by not discarding entries that use $third-party or $document; making password changes easier).

Once one has got a bit more used to AGH and would want to delve deeper into the settings, it does have native support for DNS-over-HTTPS and DNS-over-TLS, support for preventing certain IP addresses from using your server (though without 3rd-party list support for such), it's much easier to make use of non-localhost hosts files for e.g. Chinese censorship circumvention than in Pi-Hole, an optional DHCP server function, and a few other things.

AdGuard Home's other main advantage, is that it supports adblocker-syntax blocking rules, although only a very narrow subset. It supports the use of,

  • || (to effectively combine the domain with prefixes, e.g. ||example.org^ also blocks www.example.org and example.example.org.)
  • | (to create start or end borders)
  • @@
  • /regextext/ (Comparable to Pi-Hole's RegEx support, as long as forward-slashes are added before and after).
  • Full support for using * wildcards anywhere in an entry, except in Hosts files.
  • Syntax types that I currently believe are considered to work through being treated as synonymous with ||, include ://, http://, and https://.
  • AGH recently also gained the ability to block domains based on their CNAME responses' domains or IP addresses.
  • Currently, $important and $badfilter are the only major $ values that can be used without discarding the whole entry. A few other very-narrow-use values can also be used, e.g. $match-case and $~image.
  • And of course, Hosts and domains lists can also be used, as can IP lists to some extent.

If you have any other questions, I'd be more than willing to help answering them.

@Perflyst
Copy link
Owner

Perflyst commented Jan 11, 2020

Thank you for the comparison, this is really the best explanation than any other I could find online.

@Perflyst Perflyst merged commit 126d219 into Perflyst:master Jan 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants