Muffin NoThanks Filter
NoThanks is filter which can disable HTTP access to web sites and
remove/modify undesirable HTML content. This is all done by
monitoring all HTTP requests and HTML content as it's passed through
Muffin.
NoThanks is configured using a killfile which is typically located in
the Muffin preferences directory. This killfile supports a small
control language comprised of the "strip", "kill", "redirect",
"content", "replace", and "tagattr" commands. "#include filename" can
be used include other killfiles.
The syntax used in the killfile may seem complex at first but really
all that's required is understanding of HTML and basic regular
expression (regex) syntax. Here are some examples:
Want to match Regular Expression
"foo" foo
"foo" or "bar" foo|bar
any letter [a-zA-Z]
any number [0-9]
not a number [^0-9]
"a" followed by a number a[0-9]
"a" not followed by a number a[^0-9]
starts with "http" ^http
ends with "thend" theend$
one "a" a
one or more "a" a+
zero or more "a" a*
"muffin" in any case [Mm][Uu][Ff][Ff][Ii][Nn]
NoThanks Command Set:
([xxx] denotes an optional value)
* strip tag [endtag]
Remove tag and possibly everything up-to and including its end tag.
Examples:
Remove the bgsound tag:
strip bgsound
Remove the marquee tag and all its contents:
strip marquee /marquee
Remove the blink start tag but not its contents:
strip blink
Remove the end blink tag.
strip /blink
* kill regex
Remove tags end their contents that refer to URLs that match
the regular expression. All kill entries are merged into
one expression. Requests that match killed URLs are denied.
Examples:
Don't access anything from doubleclick.net or linkexchange.net:
kill doubleclick.net
kill linkexchange.net
Don't access URLs that contains these:
kill AdID=
kill SpaceID=
kill sponsor
kill D=yahoo
kill /advertise
Kill /ad/, /adv/, and /ads/ in any case:
kill /[Aa][Dd]/
kill /[Aa][Dd][Vv]/
kill /[Aa][Dd][Ss]/
* redirect regex URL
Any requested URL that matches regular expression is instead
sent to the specified URL.
Example:
Send any playboy requests to the whitehouse:
redirect playboy http://www.whitehouse.gov/
* content regex
Any requested content-type that matches the regular expression
is rejected.
* replace some-tag another-tag
Replace a tag with another tag.
Examples:
Replace <tr> with <br>
replace tr br
Replace <hr> with <hr border=5 noshade>
replace hr "hr border=5 noshade"
* tagattr tag.attr command [regex] [args ...]
Operate on tag attributes.
Supported commands:
* strip [regex] - Strip tag if regex matches attribute value.
* remove [regex] - Remove attribute if regex matches attribute value.
* replace regex new-value - Replace attribute if regex matches attribute value.
$0..$9 substitution is performed on new-value.
The regex ".*" (match everything) is used when a regex is not supplied.
Examples:
Remove <a> if it contains the onmouseover attribute
tagattr a.onmouseover strip
Remove <applet> if code attribute matches MakeMoneyFast.class
tagattr applet.code strip MakeMoneyFast.class
Remove bgcolor attribute from <body>
tagattr body.bgcolor remove
Remove href from <a> if the URL matches doubleclick.net
tagattr a.href remove doubleclick.net
Replace all <img> src values
tagattr img.src replace .* http://mysite/image.jpg
Replace <img> src value if it contains /sponsors
tagattr img.src replace /sponsors http://mysite/image.jpg
Replace $0..$9 substitution:
tagattr a.href replace /(one)/(two)/(three).html /$1/$2/$3.html
Replace all image URLs from www.hosta.com to www.hostb.com:
tagattr img.src replace (http://)www.hosta.com(/.*) $1www.hostb.com$2
Complete example:
strip bgsound
strip marquee /marquee
strip blink
strip /blink
kill doubleclick.net
kill linkexchange.com
kill AdID=
kill SpaceID=
kill sponsor
kill D=yahoo
kill gtplacer
kill /[Aa][Dd]/
kill /[Aa][Dd][Vv]/
kill /[Aa][Dd][Ss]/
kill /advertise
kill try-it
redirect playboy http://www.whitehouse.gov/
redirect microsoft http://www.yahoo.com/
tagattr a.onmouseover strip
tagattr applet.code strip MakeMoneyFast.class
tagattr body.bgcolor remove
tagattr a.href remove adserver.com
tagattr img.src replace /adserver http://mysite/image.jpg
This filter has the following configurable preferences:
* NoThanks.killfile
Location of NoThanks killfile.
MUFFIN.DOIT.ORG