Add ignored domains via env statement
All checks were successful
Deploy DNS Configuration / deploy (push) Successful in 1m37s
All checks were successful
Deploy DNS Configuration / deploy (push) Successful in 1m37s
This commit is contained in:
parent
8a0924c36c
commit
594320b601
3 changed files with 43 additions and 1 deletions
|
|
@ -12,6 +12,9 @@ RESOLVE_CONF="${RESOLVE_CONF:-/tmp/92-resolve-bbrkn.conf}"
|
|||
API_URL="${CHROME_SERVER:-http://127.0.0.1:3000}/domains?domain="
|
||||
DNS_SERVER="${DNS_SERVER:-8.8.8.8}"
|
||||
|
||||
# Игнорируемые части доменов (разделитель — пробел)
|
||||
IGNORE_PARTS="${IGNORE_PARTS:-}"
|
||||
|
||||
# Debug knobs
|
||||
DEBUG="${DEBUG:-0}"
|
||||
DEBUG_LOG="${DEBUG_LOG:-/tmp/generate-configs.debug.log}"
|
||||
|
|
@ -32,7 +35,7 @@ if ! command -v jq >/dev/null 2>&1; then err "jq is required"; exit 2; fi
|
|||
if [ "$DEBUG" != "0" ]; then : > "$DEBUG_LOG"; dbg "Debugging enabled"; fi
|
||||
|
||||
log "Starting generate-configs.sh"
|
||||
dbg "ENV: INPUT_FILE=$INPUT_FILE IPSET_CONF=$IPSET_CONF RESOLVE_CONF=$RESOLVE_CONF API_URL=$API_URL DNS_SERVER=$DNS_SERVER DRY_RUN=$DRY_RUN"
|
||||
dbg "ENV: INPUT_FILE=$INPUT_FILE IPSET_CONF=$IPSET_CONF RESOLVE_CONF=$RESOLVE_CONF API_URL=$API_URL DNS_SERVER=$DNS_SERVER IGNORE_PARTS='$IGNORE_PARTS' DRY_RUN=$DRY_RUN"
|
||||
|
||||
if ! $DRY_RUN; then
|
||||
: > "$IPSET_CONF"
|
||||
|
|
@ -45,12 +48,16 @@ declare -A SOURCES
|
|||
declare -A ERRORS
|
||||
declare -A VALID_SITES
|
||||
|
||||
# для отчёта по игнорируемым доменам
|
||||
declare -A IGNORED_DOMAINS
|
||||
|
||||
total_lines=0
|
||||
normalized_ok=0
|
||||
normalized_skip=0
|
||||
api_success=0
|
||||
api_error=0
|
||||
related_total=0
|
||||
ignored_total=0
|
||||
|
||||
normalize_domain() {
|
||||
local raw="$1"
|
||||
|
|
@ -64,6 +71,18 @@ normalize_domain() {
|
|||
return 0
|
||||
}
|
||||
|
||||
should_ignore_domain() {
|
||||
local dom="$1"
|
||||
for part in $IGNORE_PARTS; do
|
||||
if [[ "$dom" == *"$part"* ]]; then
|
||||
dbg " -> IGNORE domain '$dom' (matched '$part')"
|
||||
IGNORED_DOMAINS["$dom"]="$part"
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
if [ ! -f "$INPUT_FILE" ]; then
|
||||
err "Input file not found: $INPUT_FILE"
|
||||
exit 3
|
||||
|
|
@ -87,6 +106,12 @@ while IFS= read -r line || [ -n "$line" ]; do
|
|||
normalized_ok=$((normalized_ok+1))
|
||||
dbg " -> NORMALIZED: $dom_norm"
|
||||
|
||||
# Игнорируем по подстрокам
|
||||
if should_ignore_domain "$dom_norm"; then
|
||||
ignored_total=$((ignored_total+1))
|
||||
continue
|
||||
fi
|
||||
|
||||
max_attempts=5
|
||||
attempt=0
|
||||
resp=""
|
||||
|
|
@ -155,6 +180,12 @@ while IFS= read -r line || [ -n "$line" ]; do
|
|||
for s in "${subs[@]}"; do
|
||||
nd="$(normalize_domain "$s" || true)"
|
||||
[ -z "$nd" ] && continue
|
||||
|
||||
if should_ignore_domain "$nd"; then
|
||||
ignored_total=$((ignored_total+1))
|
||||
continue
|
||||
fi
|
||||
|
||||
EXPANDED["$nd"]=1
|
||||
[ -z "${SOURCES[$nd]:-}" ] && SOURCES["$nd"]="related"
|
||||
related_total=$((related_total+1))
|
||||
|
|
@ -177,6 +208,7 @@ echo "Raw input lines: $raw_total_lines"
|
|||
echo "Processed lines: $total_lines"
|
||||
echo "Normalized OK: $normalized_ok"
|
||||
echo "Normalized skipped: $normalized_skip"
|
||||
echo "Ignored (by IGNORE_PARTS): $ignored_total"
|
||||
echo
|
||||
echo "API success (sites): $api_success"
|
||||
echo "API error/ignored: $api_error"
|
||||
|
|
@ -185,6 +217,13 @@ echo "Final unique domains: ${#ALL_DOMAINS[@]}"
|
|||
echo
|
||||
echo "---- VALID BASE SITES ----"
|
||||
printf '%s\n' "${!VALID_SITES[@]}" | sort
|
||||
echo
|
||||
if [ "$ignored_total" -gt 0 ]; then
|
||||
echo "---- IGNORED DOMAINS ----"
|
||||
for d in $(printf '%s\n' "${!IGNORED_DOMAINS[@]}" | sort); do
|
||||
printf '%s (matched: %s)\n' "$d" "${IGNORED_DOMAINS[$d]}"
|
||||
done
|
||||
fi
|
||||
echo "===== END DEBUG REPORT ====="
|
||||
|
||||
if [ "$DEBUG" != "0" ]; then
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue