Tweak the Update Gravity output (#2589)

Show the on the web interface the progress count from the new FTL `gravity_parseList()` function.
This commit is contained in:
RD WebDesign
2023-05-23 23:31:13 -03:00
committed by GitHub
+13 -6
View File
@@ -21,13 +21,20 @@ header('Cache-Control: no-cache');
function echoEvent($datatext)
{
// Detect ${OVER} and replace it with something we can safely transmit
$datatext = str_replace("\r", '<------', $datatext);
// "pihole -g" command uses an escape sequence to allow overwriting lines = ${OVER}
// The ${OVER} sequence is a Carriage Return ("\r") followed by "ESC+[+K" ("\e[K")
// This allows every line (including progress and error messages) to be shown on the page
// Replace ${OVER} with something we can safely transmit and use on the javascript code
$datatext = str_replace("\r\e[K", '<------', $datatext);
// Replace "\r" generated by "pihole-FTL gravity parseList" command
$datatext = str_replace("\r", '<------', $datatext);
$pos = strpos($datatext, '<------');
// Detect if the ${OVER} line is within this line, e.g.
// "Pending: String to replace${OVER}Done: String has been replaced"
// If this is the case, we have to remove everything before ${OVER}
// and return only the text thereafter
// If the "<------" string is in the middle of the line we remove everything before it
// Example: "Pending: String to replace<------Done: String has been replaced"
// After replacing: "<------Done: String has been replaced"
if ($pos !== false && $pos !== 0) {
$datatext = substr($datatext, $pos);
}