1
0
mirror of https://github.com/pi-hole/pi-hole synced 2024-12-22 14:58:08 +00:00

Actually store correct number of domains for the individual lists (and not the sum of the so far collected number of domains)

Signed-off-by: DL6ER <dl6er@dl6er.de>
This commit is contained in:
DL6ER 2020-12-29 20:35:48 +01:00
parent a216848c1d
commit 0944807491
No known key found for this signature in database
GPG Key ID: 00135ACBD90B28DD

View File

@ -234,7 +234,7 @@ database_adlist_number() {
return; return;
fi fi
output=$( { printf ".timeout 30000\\nUPDATE adlist SET number = %i, invalid_domains = %i WHERE id = %i;\\n" "${total_num}" "${invalid_num}" "${1}" | sqlite3 "${gravityDBfile}"; } 2>&1 ) output=$( { printf ".timeout 30000\\nUPDATE adlist SET number = %i, invalid_domains = %i WHERE id = %i;\\n" "${num_lines}" "${num_invalid}" "${1}" | sqlite3 "${gravityDBfile}"; } 2>&1 )
status="$?" status="$?"
if [[ "${status}" -ne 0 ]]; then if [[ "${status}" -ne 0 ]]; then
@ -481,7 +481,8 @@ gravity_DownloadBlocklists() {
} }
total_num=0 total_num=0
invalid_num=0 num_lines=0
num_invalid=0
parseList() { parseList() {
local adlistID="${1}" src="${2}" target="${3}" incorrect_lines local adlistID="${1}" src="${2}" target="${3}" incorrect_lines
# This sed does the following things: # This sed does the following things:
@ -492,18 +493,18 @@ parseList() {
# Find (up to) five domains containing invalid characters (see above) # Find (up to) five domains containing invalid characters (see above)
incorrect_lines="$(sed -e "/[^a-zA-Z0-9.\_-]/!d" "${src}" | head -n 5)" incorrect_lines="$(sed -e "/[^a-zA-Z0-9.\_-]/!d" "${src}" | head -n 5)"
local num_lines num_target_lines num_correct_lines num_invalid local num_target_lines num_correct_lines num_invalid
# Get number of lines in source file # Get number of lines in source file
num_lines="$(grep -c "^" "${src}")" num_lines="$(grep -c "^" "${src}")"
# Get number of lines in destination file # Get number of lines in destination file
num_target_lines="$(grep -c "^" "${target}")" num_target_lines="$(grep -c "^" "${target}")"
num_correct_lines="$(( num_target_lines-total_num ))" num_correct_lines="$(( num_target_lines-total_num ))"
total_num="$num_target_lines" total_num="$num_target_lines"
invalid_num="$(( num_lines-num_correct_lines ))" num_invalid="$(( num_lines-num_correct_lines ))"
if [[ "${invalid_num}" -eq 0 ]]; then if [[ "${num_invalid}" -eq 0 ]]; then
echo " ${INFO} Analyzed ${num_lines} domains" echo " ${INFO} Analyzed ${num_lines} domains"
else else
echo " ${INFO} Analyzed ${num_lines} domains, ${invalid_num} domains invalid!" echo " ${INFO} Analyzed ${num_lines} domains, ${num_invalid} domains invalid!"
fi fi
# Display sample of invalid lines if we found some # Display sample of invalid lines if we found some
@ -515,7 +516,7 @@ parseList() {
fi fi
} }
compareLists() { compareLists() {
local adlistID="${1}" target="${2}" result local adlistID="${1}" target="${2}"
# Verify checksum when an older checksum exists # Verify checksum when an older checksum exists
if [[ -s "${target}.sha1" ]]; then if [[ -s "${target}.sha1" ]]; then
@ -659,9 +660,9 @@ gravity_DownloadBlocklistFromUrl() {
database_adlist_status "${adlistID}" "3" database_adlist_status "${adlistID}" "3"
else else
echo -e " ${CROSS} List download failed: ${COL_LIGHT_RED}no cached list available${COL_NC}" echo -e " ${CROSS} List download failed: ${COL_LIGHT_RED}no cached list available${COL_NC}"
# Total number == -1 means there was no cached list that could have been used # Manually reset these two numbers because we do not call parseList here
total_num=-1 num_lines=0
invalid_num=0 num_invalid=0
database_adlist_number "${adlistID}" database_adlist_number "${adlistID}"
database_adlist_status "${adlistID}" "4" database_adlist_status "${adlistID}" "4"
fi fi