added exclude feature

This commit is contained in:
Snowy-Fluffy
2026-01-20 18:16:23 +03:00
parent 4354da65de
commit a99e9cc97f
2 changed files with 95 additions and 12 deletions

View File

@@ -296,6 +296,30 @@ add_to_zapret() {
sleep 2
main_menu
}
add_to_zapret_exc() {
read -p "Введите IP-адреса или домены для добавления в лист исключений (разделяйте пробелами, запятыми или |)(Enter и пустой ввод для отмены): " input
if [[ -z "$input" ]]; then
main_menu
fi
IFS=',| ' read -ra ADDRESSES <<< "$input"
for address in "${ADDRESSES[@]}"; do
address=$(echo "$address" | xargs)
if [[ -n "$address" && ! $(grep -Fxq "$address" "/opt/zapret/ipset/zapret-hosts-user-exclude.txt") ]]; then
echo "$address" >> "/opt/zapret/ipset/zapret-hosts-user-exclude.txt"
echo "Добавлено: $address"
else
echo "Уже существует: $address"
fi
done
manage_service restart
echo "Готово"
sleep 2
main_menu
}
edit_cust_list() {
if [ -e "/opt/zapret/zapret.cfgs/lists/list-custom.txt" ]; then
open_editor /opt/zapret/zapret.cfgs/lists/list-custom.txt
@@ -378,6 +402,57 @@ search_in_zapret() {
main_menu
}
delete_from_zapret_exc() {
read -p "Введите IP-адреса или домены для удаления из листа исключений (разделяйте пробелами, запятыми или |)(Enter и пустой ввод для отмены): " input
if [[ -z "$input" ]]; then
main_menu
fi
IFS=',| ' read -ra ADDRESSES <<< "$input"
for address in "${ADDRESSES[@]}"; do
address=$(echo "$address" | xargs)
if [[ -n "$address" ]]; then
if grep -Fxq "$address" "/opt/zapret/ipset/zapret-hosts-user-exclude.txt"; then
sed -i "\|^$address\$|d" "/opt/zapret/ipset/zapret-hosts-user-exclude.txt"
echo "Удалено: $address"
else
echo "Не найдено: $address"
fi
fi
done
manage_service restart
echo "Готово"
sleep 2
main_menu
}
search_in_zapret_exc() {
read -p "Введите домен или IP-адрес для поиска в листе исключений (Enter и пустой ввод для отмены): " keyword
if [[ -z "$keyword" ]]; then
main_menu
return
fi
echo
echo "🔍 Результаты поиска по запросу: $keyword"
echo "----------------------------------------"
if grep -i --color=never -F "$keyword" "/opt/zapret/ipset/zapret-hosts-user-exclude.txt"; then
echo "----------------------------------------"
read -rp "Нажмите Enter для продолжения..."
else
echo "❌ Совпадений не найдено."
echo "----------------------------------------"
read -rp "Нажмите Enter для возврата в меню..."
fi
main_menu
}
test_domain() {
local domain="$1"

View File

@@ -105,12 +105,16 @@ change_configuration() {
echo -e " \e[1;34m4)\e[0m Добавить IP или домены в лист"
echo -e " \e[1;34m5)\e[0m Удалить IP или домены из листа"
echo -e " \e[1;34m6)\e[0m Найти IP или домены в листе"
echo -e " \e[1;34m7)\e[0m Установить стратегию из файла (путь)"
echo -e " \e[1;34m8)\e[0m Установить хостлист из файла (путь)"
echo -e " \e[1;34m9)\e[0m Редактировать стратегию напрямую"
echo -e " \e[1;34m10)\e[0m Редактировать хостлист напрямую"
echo -e " \e[1;34m11)\e[0m Создать/Редактировать кастомный хостлист"
echo -e " \e[1;34m12)\e[0m Создать/Редактировать кастомную стратегию"
echo -e " \e[1;34m7)\e[0m Добавить IP или домены в лист исключений (exclude)"
echo -e " \e[1;34m8)\e[0m Удалить IP или домены из листа исключений (exclude)"
echo -e " \e[1;34m9)\e[0m Найти IP или домены в листе исключений (exclude)"
echo -e " \e[1;34m10)\e[0m Установить стратегию из файла (путь)"
echo -e " \e[1;34m11)\e[0m Установить хостлист из файла (путь)"
echo -e " \e[1;34m12)\e[0m Редактировать стратегию напрямую"
echo -e " \e[1;34m13)\e[0m Редактировать хостлист напрямую"
echo -e " \e[1;34m14)\e[0m Редактировать хостлист исключений (exclude) напрямую"
echo -e " \e[1;34m15)\e[0m Создать/Редактировать кастомный хостлист"
echo -e " \e[1;34m16)\e[0m Создать/Редактировать кастомную стратегию"
echo ""
echo -e "\e[1;96mСделано\e[0m by: \e[4;94mhttps://t.me/linux_hi\e[0m"
@@ -124,12 +128,16 @@ change_configuration() {
4) add_to_zapret ;;
5) delete_from_zapret ;;
6) search_in_zapret ;;
7) configure_custom_conf_path ;;
8) configure_custom_list_path ;;
9) open_editor /opt/zapret/config ;;
10) open_editor /opt/zapret/ipset/zapret-hosts-user.txt ;;
11) edit_cust_list;;
12) edit_cust_conf;;
7) add_to_zapret_exc ;;
8) delete_from_zapret_exc ;;
9) search_in_zapret_exc ;;
10) configure_custom_conf_path ;;
11) configure_custom_list_path ;;
12) open_editor /opt/zapret/config ;;
13) open_editor /opt/zapret/ipset/zapret-hosts-user.txt ;;
14) open_editor /opt/zapret/ipset/zapret-hosts-user-exclude.txt ;;
15) edit_cust_list;;
16) edit_cust_conf;;
0) main_menu ;;
*) echo -e "\e[1;31mНеверный ввод! Попробуйте снова.\e[0m"; sleep 2 ;;
esac