From d91dbf066b781abea7b490a4a1daa9489d20bc7a Mon Sep 17 00:00:00 2001 From: goodvin Date: Sun, 22 Mar 2026 07:25:35 +0300 Subject: [PATCH 1/4] ADD DOMAIN: notebooklm.google --- domains.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/domains.txt b/domains.txt index 434070f..c566af0 100644 --- a/domains.txt +++ b/domains.txt @@ -169,4 +169,6 @@ www.youtube.com i.ytimg.com www.chess.com marketplace.visualstudio.com -files.oaiusercontent.com \ No newline at end of file +files.oaiusercontent.com +notebooklm.google +notebooklm.google.com \ No newline at end of file From 884be83ff6f1a2421ae7a79eb87e1d0815d90100 Mon Sep 17 00:00:00 2001 From: goodvin Date: Sun, 22 Mar 2026 16:57:43 +0300 Subject: [PATCH 2/4] Update domains.txt --- domains.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/domains.txt b/domains.txt index c566af0..13b0bca 100644 --- a/domains.txt +++ b/domains.txt @@ -171,4 +171,5 @@ www.chess.com marketplace.visualstudio.com files.oaiusercontent.com notebooklm.google -notebooklm.google.com \ No newline at end of file +notebooklm.google.com +maps-cdn.zepp.com \ No newline at end of file From 01d6bf5cd8b434ce43f1c77a8aeea2bdfa3659d2 Mon Sep 17 00:00:00 2001 From: goodvin Date: Sun, 22 Mar 2026 22:04:46 +0300 Subject: [PATCH 3/4] Update domains.txt --- domains.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/domains.txt b/domains.txt index 13b0bca..adf0d81 100644 --- a/domains.txt +++ b/domains.txt @@ -1,4 +1,7 @@ ab.chatgpt.com +chatgpt.com +chat.openai.com +searchgpt.com api.telegram.org api.themoviedb.org artifacts.elastic.co From c3a30da18faad0e40b80f536c53793fcdfb47bae Mon Sep 17 00:00:00 2001 From: goodvin Date: Sun, 22 Mar 2026 22:59:49 +0300 Subject: [PATCH 4/4] fix ordered domain --- scripts/generate-configs.sh | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/scripts/generate-configs.sh b/scripts/generate-configs.sh index 449a6bf..d8aece1 100644 --- a/scripts/generate-configs.sh +++ b/scripts/generate-configs.sh @@ -250,15 +250,21 @@ declare -a ORDERED_DOMS=() for dom in $(printf '%s\n' "${!EXPANDED[@]}" | sort -u); do [[ "${SOURCES[$dom]:-}" == "related" ]] && continue + # Базовый домен мог быть добавлен как related другим базовым доменом раньше по + # алфавиту — пропускаем, чтобы не дублировать запись в конфиге. + [[ -n "${WRITTEN[$dom]:-}" ]] && continue # Собираем ещё не записанные связанные домены. # while выполняется в subshell — читает снимок WRITTEN, что корректно исключает # домены, уже занятые предыдущим базовым доменом. + # Базовые домены (SOURCES==base) пропускаем — у них будет своя секция. mapfile -t base_related < <( if [[ -n "${SITE_RELATED[$dom]:-}" ]]; then tr ' ' '\n' <<< "${SITE_RELATED[$dom]}" | grep -v '^$' | sort -u | \ while IFS= read -r rd; do - [[ -z "${WRITTEN[$rd]:-}" ]] && printf '%s\n' "$rd" + [[ -n "${WRITTEN[$rd]:-}" ]] && continue + [[ "${SOURCES[$rd]:-}" == "base" ]] && continue + printf '%s\n' "$rd" done fi ) @@ -281,6 +287,27 @@ done mapfile -t ALL_DOMAINS < <(printf "%s\n" "${!EXPANDED[@]}" | sort -u) +# ============================== +# Проверка уникальности ORDERED_DOMS перед записью +# ============================== +declare -A _seen=() +declare -a _dups=() +for _d in "${ORDERED_DOMS[@]}"; do + if [[ -n "${_seen[$_d]:-}" ]]; then + _dups+=("$_d") + fi + _seen["$_d"]=1 +done +unset _seen + +if [[ ${#_dups[@]} -gt 0 ]]; then + err "BUG: ${#_dups[@]} duplicate domain(s) found in output list — config NOT written" + for _d in "${_dups[@]}"; do + err " duplicate: $_d" + done + exit 5 +fi + # Записываем конфиги одним батчем (не по одной строке через >>) if ! $DRY_RUN; then {