#!/bin/sh MYPATH=$1 unset HAVENET maxPings=1 [ "$2" = "dowait" ] && maxPings=15 count=0 while [ ! "$HAVENET" -a $count -lt $maxPings ]; do ping -c 1 -w 1 www.dfn.de > /dev/null 2>&1 && HAVENET=yes [ "$HAVENET" ] || count=$(( $count + 1 )) done if [ "$HAVENET" -a "$MYPATH" ]; then mkdir -p $MYPATH 2> /dev/null || exit ACTION=${MYPATH}/user.action FILTER=${MYPATH}/user.filter FILE=$(basename ${PRIVOXY_ADBLOCK_URL}) LIST=${FILE%\.*} FILE=/tmp/${FILE} rm -f ${FILE} wget-gnu --no-check-certificate -qO ${FILE} ${PRIVOXY_ADBLOCK_URL} if [ $(cat ${FILE} | wc -l) -gt 100 ]; then echo -e "{ +block{${LIST}} }" > ${ACTION} sed '/^!.*/d;1,1 d;/^@@.*/d;/\$.*/d;/#/d;s/\./\\./g;s/\?/\\?/g;s/\*/.*/g;s/(/\\(/g;s/)/\\)/g;s/\[/\\[/g;s/\]/\\]/g;s/\^/[\/\&:\?=_]/g;s/^||/\./g;s/^|/^/g;s/|$/\$/g;/|/d' ${FILE} >> ${ACTION} echo "FILTER: ${LIST} Tag filter of ${LIST}" > ${FILTER} sed '/^#/!d;s/^##//g;s/^#\(.*\)\[.*\]\[.*\]*/s|<([a-zA-Z0-9]+)\\s+.*id=.?\1.*>.*<\/\\1>||g/g;s/^#\(.*\)/s|<([a-zA-Z0-9]+)\\s+.*id=.?\1.*>.*<\/\\1>||g/g;s/^\.\(.*\)/s|<([a-zA-Z0-9]+)\\s+.*class=.?\1.*>.*<\/\\1>||g/g;s/^a\[\(.*\)\]/s|.*<\/a>||g/g;s/^\([a-zA-Z0-9]*\)\.\(.*\)\[.*\]\[.*\]*/s|<\1.*class=.?\2.*>.*<\/\1>||g/g;s/^\([a-zA-Z0-9]*\)#\(.*\):.*[:[^:]]*[^:]*/s|<\1.*id=.?\2.*>.*<\/\1>||g/g;s/^\([a-zA-Z0-9]*\)#\(.*\)/s|<\1.*id=.?\2.*>.*<\/\1>||g/g;s/^\[\([a-zA-Z]*\).=\(.*\)\]/s|\1^=\2>||g/g;s/\^/[\/\&:\?=_]/g;s/\.\([a-zA-Z0-9]\)/\\.\1/g' ${FILE} >> ${FILTER} echo "{ +filter{${LIST}} }" >> ${ACTION} echo "*" >> ${ACTION} echo "{ -block }" >> ${ACTION} sed '/^@@.*/!d;s/^@@//g;/\$.*/d;/#/d;s/\./\\./g;s/\?/\\?/g;s/\*/.*/g;s/(/\\(/g;s/)/\\)/g;s/\[/\\[/g;s/\]/\\]/g;s/\^/[\/\&:\?=_]/g;s/^||/\./g;s/^|/^/g;s/|$/\$/g;/|/d' ${FILE} >> ${ACTION} echo "{ -block +handle-as-image }" >> ${ACTION} sed '/^@@.*/!d;s/^@@//g;/\$.*image.*/!d;s/\$.*image.*//g;/#/d;s/\./\\./g;s/\?/\\?/g;s/\*/.*/g;s/(/\\(/g;s/)/\\)/g;s/\[/\\[/g;s/\]/\\]/g;s/\^/[\/\&:\?=_]/g;s/^||/\./g;s/^|/^/g;s/|$/\$/g;/|/d' ${FILE} >> ${ACTION} rm -f ${FILE} else echo "Fetching files for filter failed (file less than 100 lines)." fi else echo -n "Fetching files for filter failed ( " [ ! "$HAVENET" ] && echo -n "no net"; [ ! "$MYPATH" ] && echo -n " no path"; echo " )." fi