adblock: update 4.5.5-3

- added 4 missing hagezi categories
- added 2 missing ipfire dbl categories
- fixed 2 stevenblack categories
- minor code improvements and fixes

Signed-off-by: Dirk Brenken <dev@brenken.org>
This commit is contained in:
Dirk Brenken
2026-05-11 21:21:18 +02:00
parent 8cc210eebf
commit 3af9ba9afa
3 changed files with 60 additions and 35 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=adblock
PKG_VERSION:=4.5.5
PKG_RELEASE:=2
PKG_RELEASE:=3
PKG_LICENSE:=GPL-3.0-or-later
PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
+8 -2
View File
@@ -25,6 +25,7 @@ hag;tracker.apple;wildcard/native.apple-onlydomains.txt
hag;tracker.huawei;wildcard/native.huawei-onlydomains.txt
hag;tracker.lgwebos;wildcard/native.lgwebos-onlydomains.txt
hag;tracker.oppo-realme;wildcard/native.oppo-realme-onlydomains.txt
hag;tracker.roku;wildcard/native.roku-onlydomains.txt
hag;tracker.samsung;wildcard/native.samsung-onlydomains.txt
hag;tracker.tiktok;wildcard/native.tiktok-onlydomains.txt
hag;tracker.tiktok.extended;wildcard/native.tiktok.extended-onlydomains.txt
@@ -36,6 +37,9 @@ hag;popupads;wildcard/popupads-onlydomains.txt
hag;urlshortener;wildcard/urlshortener-onlydomains.txt
hag;abusetlds;wildcard/spam-tlds-onlydomains.txt
hag;social;wildcard/social-onlydomains.txt
hag;dga-7days;domains/dga7.txt
hag;dga-14days;domains/dga14.txt
hag;dga-30days;domains/dga30.txt
hag;nrd-7days;domains/nrd7.txt
hag;nrd-14days;domains/nrd14-8.txt
hag;nrd-21days;domains/nrd21-15.txt
@@ -52,14 +56,16 @@ ipf;malware;malware/domains.txt
ipf;phishing;phishing/domains.txt
ipf;piracy;piracy/domains.txt
ipf;porn;porn/domains.txt
ipf;shopping;shopping/domains.txt
ipf;smart-tv;smart-tv/domains.txt
ipf;social;social/domains.txt
ipf;streaming;streaming/domains.txt
ipf;violence;violence/domains.txt
stb;standard;hosts
stb;standard-fakenews;alternates/fakenews/hosts
stb;standard-fakenews-gambling;alternates/fakenews-gambling/hosts
stb;standard-fakenews-gambling-porn;alternates/fakenews-gambling-porn/hosts
stb;standard-fakenews-gambling-porn-social;alternates/fakenews-porn-social/hosts
stb;standard-fakenews-gambling-porn-social;alternates/fakenews-gambling-porn-social/hosts
stb;standard-fakenews-gambling-social;alternates/fakenews-gambling-social/hosts
stb;standard-fakenews-porn;alternates/fakenews-porn/hosts
stb;standard-fakenews-porn-social;alternates/fakenews-porn-social/hosts
@@ -74,7 +80,7 @@ stb;standard-social;alternates/social/hosts
stb;fakenews;alternates/fakenews-only/hosts
stb;fakenews-gambling;alternates/fakenews-gambling-only/hosts
stb;fakenews-gambling-porn;alternates/fakenews-gambling-porn-only/hosts
stb;fakenews-gambling-porn-social;alternates/fakenews-porn-social-only/hosts
stb;fakenews-gambling-porn-social;alternates/fakenews-gambling-porn-social-only/hosts
stb;fakenews-gambling-social;alternates/fakenews-gambling-social-only/hosts
stb;fakenews-porn;alternates/fakenews-porn-only/hosts
stb;fakenews-porn-social;alternates/fakenews-porn-social-only/hosts
+51 -32
View File
@@ -87,12 +87,12 @@ f_cmd() {
local cmd pri_cmd="${1}" sec_cmd="${2}"
cmd="$(command -v "${pri_cmd}" 2>/dev/null)"
if [ ! -x "${cmd}" ]; then
if [ -z "${cmd}" ]; then
if [ -n "${sec_cmd}" ]; then
[ "${sec_cmd}" = "optional" ] && return
cmd="$(command -v "${sec_cmd}" 2>/dev/null)"
fi
if [ -x "${cmd}" ]; then
if [ -n "${cmd}" ]; then
printf '%s' "${cmd}"
else
f_log "emerg" "command '${pri_cmd:-"-"}'/'${sec_cmd:-"-"}' not found"
@@ -116,7 +116,7 @@ f_load() {
adb_errorlog="/dev/null"
fi
# fetch installed packages amd system information
# fetch installed packages and system information
#
adb_packages="$("${adb_ubuscmd}" -S call rpc-sys packagelist '{ "all": true }' 2>>"${adb_errorlog}")"
adb_bver="$(printf '%s' "${adb_packages}" | "${adb_jsoncmd}" -ql1 -e '@.packages.adblock')"
@@ -179,7 +179,7 @@ f_load() {
)
sleep 1
bg_pid="$("${adb_pgrepcmd}" -nf "${adb_reportdir}/adb_report.pcap")"
f_log "info" "tcpdump backgound process started for interface: ${adb_repiface}, port: ${adb_repport}, dir: ${adb_reportdir}, pid: ${bg_pid}"
f_log "info" "tcpdump background process started for interface: ${adb_repiface}, port: ${adb_repport}, dir: ${adb_reportdir}, pid: ${bg_pid}"
else
f_log "info" "please set the reporting interface 'adb_repiface' and reporting directory 'adb_reportdir' manually"
fi
@@ -251,7 +251,7 @@ f_conf() {
# domain validation
#
f_chkdom() {
local type prefix column separator check
local type prefix column separator
case "${1}" in
"feed" | "local")
@@ -277,8 +277,7 @@ f_chkdom() {
;;
esac
check="${adb_lookupdomain//./\\.}"
"${adb_awkcmd}" -v type="${type}" -v pre="${prefix}" -v col="${column}" -v chk="${check}" -F "${separator}" '
"${adb_awkcmd}" -v type="${type}" -v pre="${prefix}" -v col="${column}" -v chk="${adb_lookupdomain}" -F "${separator}" '
{
domain = $col
# remove carriage returns and trim the input
@@ -288,7 +287,7 @@ f_chkdom() {
# check optional search prefix
if (pre != "" && index($0, pre) != 1) next
# skip empty lines, comments and special domains
if (domain == "" || domain ~ ("^(#|localhost|loopback|" chk ")")) next
if (domain == "" || domain ~ /^(#|localhost|loopback)/ || index(domain, chk) == 1) next
# no domain with trailing dot
if (substr(domain, length(domain), 1) == ".") next
# check total length (253 characters)
@@ -342,7 +341,7 @@ f_dns() {
;;
esac
if [ -x "$(command -v "${dns}")" ]; then
if command -v "${dns}" >/dev/null 2>&1; then
adb_dns="${dns}"
uci_set adblock global adb_dns "${dns}"
f_uci "adblock"
@@ -352,7 +351,7 @@ f_dns() {
done
fi
if [ "${adb_dns}" != "raw" ] && [ ! -x "$(command -v "${adb_dns}")" ]; then
if [ "${adb_dns}" != "raw" ] && ! command -v "${adb_dns}" >/dev/null 2>&1; then
f_log "err" "dns backend not found, please set 'adb_dns' manually"
fi
@@ -391,7 +390,7 @@ f_dns() {
}
;;
"unbound")
adb_dnscachecmd="$(command -v unbound-control)"
adb_dnscachecmd="$(f_cmd unbound-control optional)"
adb_dnsinstance=""
adb_dnsuser="unbound"
adb_dnsdir="${adb_dnsdir:-"/var/lib/unbound"}"
@@ -415,7 +414,7 @@ f_dns() {
}
;;
"named")
adb_dnscachecmd="$(command -v rndc)"
adb_dnscachecmd="$(f_cmd rndc optional)"
adb_dnsinstance=""
adb_dnsuser="bind"
adb_dnsdir="${adb_dnsdir:-"/var/lib/bind"}"
@@ -539,8 +538,8 @@ f_dns() {
f_fetch() {
local fetch fetch_list insecure update="0"
adb_fetchcmd="$(command -v "${adb_fetchcmd}")"
if [ ! -x "${adb_fetchcmd}" ]; then
adb_fetchcmd="$(command -v "${adb_fetchcmd}" 2>/dev/null)"
if [ -z "${adb_fetchcmd}" ]; then
fetch_list="curl wget-ssl libustream-openssl libustream-wolfssl libustream-mbedtls"
for fetch in ${fetch_list}; do
case "${adb_packages}" in *"\"${fetch}\""*)
@@ -552,9 +551,9 @@ f_fetch() {
fetch="uclient-fetch"
;;
esac
if [ -x "$(command -v "${fetch}")" ]; then
adb_fetchcmd="$(command -v "${fetch}" 2>/dev/null)"
if [ -n "${adb_fetchcmd}" ]; then
update="1"
adb_fetchcmd="$(command -v "${fetch}")"
uci_set adblock global adb_fetchcmd "${fetch}"
f_uci "adblock"
break
@@ -564,7 +563,7 @@ f_fetch() {
done
fi
[ ! -x "${adb_fetchcmd}" ] && f_log "err" "download utility with SSL support not found, please set 'adb_fetchcmd' manually"
[ -z "${adb_fetchcmd}" ] && f_log "err" "download utility with SSL support not found, please set 'adb_fetchcmd' manually"
case "${adb_fetchcmd##*/}" in
"curl")
@@ -849,9 +848,16 @@ f_etag() {
# compare http code and etag id with stored values, update etag file and return code accordingly
#
etag_cnt="$("${adb_grepcmd}" -c "^${feed} " "${adb_backupdir}/adblock.etag")"
etag_cnt="$("${adb_awkcmd}" -v f="${feed}" '$1 == f { n++ } END { print n+0 }' "${adb_backupdir}/adblock.etag")"
if [ "${http_code}" = "200" ] && [ "${etag_cnt}" = "${feed_cnt}" ] && [ -n "${etag_id}" ] &&
"${adb_grepcmd}" -q "^${feed} ${feed_suffix}[[:space:]]\+${etag_id}\$" "${adb_backupdir}/adblock.etag"; then
"${adb_awkcmd}" -v f="${feed}" -v s="${feed_suffix}" -v e="${etag_id}" '
BEGIN { rc = 1; p = f " " s }
index($0, p) == 1 {
rest = substr($0, length(p) + 1)
sub(/^[[:space:]]+/, "", rest)
if (rest == e) { rc = 0; exit }
}
END { exit rc }' "${adb_backupdir}/adblock.etag"; then
out_rc="0"
elif [ -n "${etag_id}" ]; then
@@ -859,11 +865,16 @@ f_etag() {
# otherwise only remove the entry with the matching feed suffix (feed url) to allow multiple sources for the same feed
#
if [ "${feed_cnt}" -lt "${etag_cnt}" ]; then
"${adb_sedcmd}" -i "/^${feed} /d" "${adb_backupdir}/adblock.etag"
"${adb_awkcmd}" -v f="${feed}" '$1 != f' \
"${adb_backupdir}/adblock.etag" >"${adb_backupdir}/adblock.etag.new"
else
"${adb_sedcmd}" -i "/^${feed} ${feed_suffix//\//\\/}/d" "${adb_backupdir}/adblock.etag"
"${adb_awkcmd}" -v f="${feed}" -v s="${feed_suffix}" '
BEGIN { p = f " " s }
index($0, p) != 1' \
"${adb_backupdir}/adblock.etag" >"${adb_backupdir}/adblock.etag.new"
fi
printf '%-80s%s\n' "${feed} ${feed_suffix}" "${etag_id}" >>"${adb_backupdir}/adblock.etag"
"${adb_mvcmd}" -f "${adb_backupdir}/adblock.etag.new" "${adb_backupdir}/adblock.etag"
printf '%s\t%s\n' "${feed} ${feed_suffix}" "${etag_id}" >>"${adb_backupdir}/adblock.etag"
out_rc="2"
fi
@@ -1227,14 +1238,22 @@ f_list() {
"boot" | "start" | "restart" | "resume") ;;
*)
[ -n "${src_name}" ] && [ "${out_rc}" != "0" ] && adb_feed="${adb_feed/${src_name}/}"
if [ -n "${src_name}" ] && [ "${out_rc}" != "0" ]; then
adb_feed=" ${adb_feed} "
adb_feed="${adb_feed// ${src_name} / }"
adb_feed="${adb_feed# }"
adb_feed="${adb_feed% }"
fi
;;
esac
;;
"remove")
"${adb_rmcmd}" "${adb_backupdir}/adb_list.${src_name}.gz" 2>>"${adb_errorlog}"
out_rc="${?}"
adb_feed="${adb_feed/${src_name}/}"
adb_feed=" ${adb_feed} "
adb_feed="${adb_feed// ${src_name} / }"
adb_feed="${adb_feed# }"
adb_feed="${adb_feed% }"
;;
"merge")
src_name=""
@@ -1806,7 +1825,10 @@ f_main() {
# check if feed is defined in configuration, if not remove it from feed list and continue with next one
#
if ! json_select "${src_name}" >/dev/null 2>&1; then
adb_feed="${adb_feed/${src_name}/}"
adb_feed=" ${adb_feed} "
adb_feed="${adb_feed// ${src_name} / }"
adb_feed="${adb_feed# }"
adb_feed="${adb_feed% }"
continue
fi
@@ -1960,10 +1982,10 @@ f_main() {
src_rc="${?}"
if [ "${src_rc}" = "0" ] && [ -s "${src_tmparchive}" ]; then
src_suffix="${adb_src_suffix_utcapitole:-"domains"}"
src_list="$(tar -tzf "${src_tmparchive}" 2>>"${adb_errorlog}")"
for src_item in ${src_cat}; do
src_entries="${src_entries} $(printf '%s' "${src_list}" | "${adb_grepcmd}" -E "${src_item}/${src_suffix}$")"
done
src_entries="$(tar -tzf "${src_tmparchive}" 2>>"${adb_errorlog}" | "${adb_awkcmd}" \
-v cats="${src_cat}" -v sfx="${src_suffix}" '
BEGIN { n = split(cats, c, " ") }
{ for (i = 1; i <= n; i++) if ($0 ~ "(^|/)" c[i] "/" sfx "$") print }')"
if [ -n "${src_entries}" ]; then
tar -xOzf "${src_tmparchive}" ${src_entries} 2>>"${adb_errorlog}" >"${src_tmpload}"
src_rc="${?}"
@@ -2093,9 +2115,6 @@ f_report() {
}
next
}
END {
# no fallback
}
' >"${report_raw}.${cnt}"
) &
[ "${cnt}" -gt "${adb_cores}" ] && wait -n