######################################################################
# 
#  File        :  user.action
# 
#  Purpose     :  User-maintained actions file, see
#                 https://www.privoxy.org/user-manual/actions-file.html
#
#  Copyright   :  Written by and Copyright (C) 2002-2022 the
#                 Privoxy team. https://www.privoxy.org/
#
######################################################################

# This is the place to add your personal exceptions and additions to
# the general policies as defined in default.action. (Here they will be
# safe from updates to default.action.) Later defined actions always
# take precedence, so anything defined here should have the last word.

# See https://www.privoxy.org/user-manual/actions-file.html, or the
# comments in default.action, for an explanation of what an "action" is
# and what each action does.

# The examples included here either use bogus sites, or have the actual
# rules commented out (with the '#' character). Useful aliases are
# included in the top section as a convenience.

#############################################################################
# Aliases
#############################################################################
{{alias}}
#############################################################################
#
# You can define a short form for a list of permissions - e.g., instead
# of "-crunch-incoming-cookies -crunch-outgoing-cookies -filter -fast-redirects",
# you can just write "shop". This is called an alias.
#
# Currently, an alias can contain any character except space, tab, '=', '{'
# or '}'.
# But please use only 'a'-'z', '0'-'9', '+', and '-'.
#
# Alias names are not case sensitive.
#
# Aliases beginning with '+' or '-' may be used for system action names 
# in future releases - so try to avoid alias names like this.  (e.g. 
# "+crunch-all-cookies" below is not a good name)
#
# Aliases must be defined before they are used.
# 
# These aliases just save typing later:
#
+crunch-all-cookies = +crunch-incoming-cookies +crunch-outgoing-cookies
-crunch-all-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies
 allow-all-cookies  = -crunch-all-cookies -session-cookies-only -filter{content-cookies}
 allow-popups       = -filter{all-popups} -filter{unsolicited-popups}
+block-as-image     = +block{Blocked image request.} +handle-as-image
-block-as-image     = -block

# These aliases define combinations of actions
# that are useful for certain types of sites:
#
fragile     = -block -crunch-all-cookies -filter -fast-redirects -hide-referer -prevent-compression
shop        = -crunch-all-cookies allow-popups

# Your favourite blend of filters:
#
myfilters   = +filter{html-annoyances} +filter{js-annoyances} +filter{all-popups}\
              +filter{webbugs} +filter{banners-by-size}

# Allow ads for selected useful free sites:
#
allow-ads   = -block -filter{banners-by-size} -filter{banners-by-link}
#... etc.  Customize to your heart's content.

## end aliases ########################################################
#######################################################################

# Begin examples: #####################################################

# Say you have accounts on some sites that you visit regularly, and you
# don't want to have to log in manually each time. So you'd like to allow
# persistent cookies for these sites. The allow-all-cookies alias defined
# above does exactly that, i.e. it disables crunching of cookies in any
# direction, and the processing of cookies to make them only temporary.
#
{ allow-all-cookies }
#.sourceforge.net
#sunsolve.sun.com
#slashdot.org
#.yahoo.com
#.msdn.microsoft.com
#.redhat.com

# Say the site where you do your homebanking needs to open popup
# windows, but you have chosen to kill popups uncoditionally by default.
# This will allow it for your-example-bank.com:
#
{ -filter{all-popups} }
.banking.example.com

# Some hosts and some file types you may not want to filter for
# various reasons:
#
{ -filter }

# Technical documentation is likely to contain strings that might
# erroneously get altered by the JavaScript-oriented filters:
#
#.tldp.org
#/(.*/)?selfhtml/

# And this stupid host sends streaming video with a wrong MIME type,
# so that Privoxy thinks it is getting HTML and starts filtering:
#
stupid-server.example.com/


# Example of a simple "block" action. Say you've seen an ad on your
# favourite page on example.com that you want to get rid of. You have
# right-clicked the image, selected "copy image location" and pasted
# the URL below while removing the leading http://, into a { +block{reason} }
# section. Note that { +handle-as-image } need not be specified, since
# all URLs ending in .gif will be tagged as images by the general rules
# as set in default.action anyway:
#
{ +block{Nasty ads.} }
www.example.com/nasty-ads/sponsor.gif

# The URLs of dynamically generated banners, especially from large banner
# farms, often don't use the well-known image file name extensions, which
# makes it impossible for Privoxy to guess the file type just by looking
# at the URL. 
# You can use the +block-as-image alias defined above for these cases.
# Note that objects which match this rule but then turn out NOT to be an
# image are typically rendered as a "broken image" icon by the browser.
# Use cautiously.
#
{ +block-as-image }
#.doubleclick.net
#/Realmedia/ads/
#ar.atwola.com/

# Now you noticed that the default configuration breaks Forbes
# Magazine, but you were too lazy to find out which action is the
# culprit, and you were again too lazy to give feedback, so you just
# used the fragile alias on the site, and -- whoa! -- it worked. The
# 'fragile' aliases disables those actions that are most likely to break
# a site. Also, good for testing purposes to see if it is Privoxy that
# is causing the problem or not.
# 
{ fragile }
#.forbes.com

# Here are some sites we wish to support, and we will allow their ads
# through.
#
{ allow-ads }
#.sourceforge.net
#.slashdot.org
#.osdn.net

# user.action is generally the best place to define exceptions and
# additions to the default policies of default.action. Some actions are
# safe to have their default policies set here though. So let's set a
# default policy to have a 'blank' image as opposed to the checkerboard
# pattern for ALL sites. '/' of course matches all URLs.
# patterns:
#
{ +set-image-blocker{blank} }
#/

# Enable the following section (not the regression-test directives)
# to rewrite and redirect click-tracking URLs on news.google.com.
# Disabling JavaScript should work as well and probably works more reliably.
#
# Redirected URL = http://news.google.com/news/url?ct2=us%2F0_0_s_1_1_a&sa=t&usg=AFQjCNHJWPc7ffoSXPSqBRz55jDA0KgxOQ&cid=8797762374160&url=http%3A%2F%2Fonline.wsj.com%2Farticle%2FSB10001424052970204485304576640791304008536.html&ei=YcqeTsymCIjxggf8uQE&rt=HOMEPAGE&vm=STANDARD&bvm=section&did=-6537064229385238098
# Redirect Destination = http://online.wsj.com/article/SB10001424052970204485304576640791304008536.html
# Ignore = Yes
#
#{+fast-redirects{check-decoded-url}}
#news.google.com/news/url.*&url=http.*&

# Enable the following section (not the regression-test directives)
# to block various Facebook "like" and similar tracking URLs.  At the
# time this section was added it was reported to not break Facebook
# itself but this may have changed by the time you read this. This URL
# list is probably incomplete and if you don't have an account anyway,
# you may prefer to block the whole domain.
#
# Blocked URL = http://www.facebook.com/plugins/likebox.php?href=http%3A%2F%2Ffacebook.com%2Farstechnica&width=300&colorscheme=light&show_faces=false&stream=false&header=false&height=62&border_color=%23FFFFFF
# Ignore = Yes
# Blocked URL = http://www.facebook.com/plugins/activity.php?site=arstechnica.com&width=300&height=370&header=false&colorscheme=light&recommendations=false&border_color=%23FFFFFF
# Ignore = Yes
# Blocked URL = http://www.facebook.com/plugins/fan.php?api_key=368513495882&connections=10&height=250&id=8304333127&locale=en_US&sdk=joey&stream=false&width=377
# Ignore = Yes
# Blocked URL = http://www.facebook.com/plugins/like.php?api_key=368513495882&channel_url=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%3Fversion%3D3%23cb%3Df13997452c%26origin%3Dhttp%253A%252F%252Fonline.wsj.com%252Ff1b037e354%26relation%3Dparent.parent%26transport%3Dpostmessage&extended_social_context=false&href=http%3A%2F%2Fonline.wsj.com%2Farticle%2FSB10001424052970204485304576640791304008536.html&layout=button_count&locale=en_US&node_type=link&ref=wsj_share_FB&sdk=joey&send=false&show_faces=false&width=90
# Ignore = Yes
#
#{+block{Facebook "like" and similar tracking URLs.}}
#www.facebook.com/(extern|plugins)/(login_status|like(box)?|activity|fan)\.php

# Hide cookie and privacy information banner on the Bundeswehr website.
# The relevant parts seem to work without accepting cookies.
# {+filter{bundeswehr.de}}
# .bundeswehr.de/

######### Examples for SSL actions #########
# Following section enables TLS/SSL filtering for all sites defined by pattern and requested by HTTPS.
# {+https-inspection}
# privoxy.org

# Following section turns off certificate verification for all sites defined by pattern.
# {+ignore-certificate-errors}
# privoxy.org
