diff --git a/scripts/pi-hole/php/database.php b/scripts/pi-hole/php/database.php index 2bad73db..cf250d13 100644 --- a/scripts/pi-hole/php/database.php +++ b/scripts/pi-hole/php/database.php @@ -107,6 +107,16 @@ function add_to_table($db, $table, $domains, $comment, $wildcardstyle=false, $re return "Error: Unable to begin transaction for $table table."; } + // To which column should the record be added to? + if ($table === "adlist") + { + $field = "address"; + } + else + { + $field = "domain"; + } + // Get initial count of domains in this table if($type === -1) { @@ -121,11 +131,11 @@ function add_to_table($db, $table, $domains, $comment, $wildcardstyle=false, $re // Prepare INSERT SQLite statememt if($type === -1) { - $querystr = "INSERT OR IGNORE INTO $table (domain,comment) VALUES (:domain, :comment);"; + $querystr = "INSERT OR IGNORE INTO $table ($field,comment) VALUES (:$field, :comment);"; } else { - $querystr = "INSERT OR IGNORE INTO $table (domain,comment,type) VALUES (:domain, :comment, $type);"; + $querystr = "INSERT OR IGNORE INTO $table ($field,comment,type) VALUES (:$field, :comment, $type);"; } $stmt = $db->prepare($querystr); @@ -135,7 +145,7 @@ function add_to_table($db, $table, $domains, $comment, $wildcardstyle=false, $re if($returnnum) return 0; else - return "Error: Failed to prepare statement for $table table (type = $type)."; + return "Error: Failed to prepare statement for $table table (type = $type, field = $field)."; } // Loop over domains and inject the lines into the database @@ -149,7 +159,7 @@ function add_to_table($db, $table, $domains, $comment, $wildcardstyle=false, $re if($wildcardstyle) $domain = "(\\.|^)".str_replace(".","\\.",$domain)."$"; - $stmt->bindValue(":domain", $domain, SQLITE3_TEXT); + $stmt->bindValue(":$field", $domain, SQLITE3_TEXT); $stmt->bindValue(":comment", $comment, SQLITE3_TEXT); if($stmt->execute() && $stmt->reset()) diff --git a/scripts/pi-hole/php/teleporter.php b/scripts/pi-hole/php/teleporter.php index d43ee28b..84f96bc8 100644 --- a/scripts/pi-hole/php/teleporter.php +++ b/scripts/pi-hole/php/teleporter.php @@ -220,6 +220,10 @@ function archive_insert_into_table($file, $table, $flush=false, $wildcardstyle=f $type = ListType::regex_blacklist; } else if($table === "domain_audit") { $table = "domain_audit"; + $type = -1; // -1 -> not used inside add_to_table() + } else if($table === "adlist") { + $table = "adlist"; + $type = -1; // -1 -> not used inside add_to_table() } // Flush table if requested @@ -250,7 +254,6 @@ function flush_table($table, $type=null) $sql = "DELETE FROM ".$table; array_push($flushed_tables, $table); } - echo $sql."
"; $db->exec($sql); } } @@ -355,7 +358,14 @@ if(isset($_POST["action"])) if(isset($_POST["auditlog"]) && $file->getFilename() === "auditlog.list") { $num = archive_insert_into_table($file, "domain_audit", $flushtables); - echo "Processed blacklist (regex) (".$num." entries)
\n"; + echo "Processed audit log (".$num." entries)
\n"; + $importedsomething = true; + } + + if(isset($_POST["adlist"]) && $file->getFilename() === "adlists.list") + { + $num = archive_insert_into_table($file, "adlist", $flushtables); + echo "Processed adlists (".$num." entries)
\n"; $importedsomething = true; }