Skip to content

Commit

Permalink
show mod version (#90)
Browse files Browse the repository at this point in the history
* check version
  • Loading branch information
ipitio committed Feb 29, 2024
1 parent ca5a063 commit f69d459
Show file tree
Hide file tree
Showing 5 changed files with 79 additions and 24 deletions.
18 changes: 14 additions & 4 deletions api_speedtest.php
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@
if (isset($_GET['getNumberOfDaysInDB'])) {
$data = array_merge($data, getNumberOfDaysInDB($dbSpeedtest));
}
if (isset($_GET['isLibrespeed'])) {
$data = array_merge($data, array('data' => isLibrespeed()));
if (isset($_GET['whichSpeedtest'])) {
$data = array_merge($data, array('data' => whichSpeedtest()));
}
}

Expand Down Expand Up @@ -339,7 +339,17 @@ function getStatusCmd()
return $cmdStatus;
}

function isLibrespeed()
function whichSpeedtest()
{
return strpos(speedtestExecute('/usr/bin/speedtest --version')['data'], 'LibreSpeed') !== false;
if (!file_exists('/usr/bin/speedtest')) {
return 'official';
}
$version = speedtestExecute('/usr/bin/speedtest --version')['data'];
if (strpos($version, 'LibreSpeed') !== false) {
return 'LibreSpeed';
} elseif (strpos($version, 'Python') !== false) {
return 'sivel\'s';
} else {
return 'official';
}
}
51 changes: 34 additions & 17 deletions scripts/pi-hole/js/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -532,7 +532,28 @@ $(function () {
}
};

const whichSpeedtest = () => {
$.ajax({
url: "api.php?whichSpeedtest",
dataType: "json",
})
.done(function (data) {
const speedtest = data?.data;
if (speedtest) {
// set in localStorage for use in other functions
localStorage.setItem("speedtest", speedtest);
} else {
localStorage.setItem("speedtest", "official");
}
})
.fail(function () {
localStorage.setItem("speedtest", "unknown");
});
};

const serviceStatus = () => {
whichSpeedtest();
const speedtestVersion = localStorage.getItem("speedtest") || "unknown";
$.ajax({
url: "api.php?getSpeedTestStatus",
dataType: "json",
Expand Down Expand Up @@ -590,19 +611,19 @@ $(function () {
lastRunText = `Latest run:\n\n${lastRun}`;
}

const statusText = `Schedule is ${scheduleStatusText}\nNext run is${triggerText}\n${lastRunText}`;
const statusText = `Using ${speedtestVersion} CLI\nSchedule is ${scheduleStatusText}\nNext run is${triggerText}\n${lastRunText}`;
codeBlock(speedtestStatus, statusText, speedtestStatusBtn, "status");
})
.fail(function () {
const lastRunText = "\nLatest run is unavailable";
const statusText = `Schedule is ${scheduleStatusText}\nNext run is${triggerText}${lastRunText}`;
const lastRunText = "Latest run is unavailable";
const statusText = `Using ${speedtestVersion} CLI\nSchedule is ${scheduleStatusText}\nNext run is${triggerText}\n${lastRunText}`;
codeBlock(speedtestStatus, statusText, speedtestStatusBtn, "status");
});
})
.fail(function () {
const triggerText = speedtestTest.attr("value") ? " awaiting confirmation" : " unknown";
const lastRunText = "\nLatest run is unavailable";
const statusText = "Schedule is unavailable\nNext run is" + triggerText + lastRunText;
const triggerText = speedtestTest.attr("value") ? "awaiting confirmation" : "unknown";
const lastRunText = "Latest run is unavailable";
const statusText = `Using ${speedtestVersion} CLI\nSchedule is unavailable\nNext run is ${triggerText}\n${lastRunText}`;
codeBlock(speedtestStatus, statusText, speedtestStatusBtn, "status");
});
};
Expand Down Expand Up @@ -739,17 +760,13 @@ $(function () {
};

if (!cmds || cmds.length === 0) {
$.ajax({
url: `api.php?isLibrespeed`,
dataType: "json",
}).done(function (data) {
const librespeed = data?.data;
if (librespeed) {
closestServers(["getClosestServers"]);
} else {
closestServers(["JSONClosestServers", "getClosestServers", "curlClosestServers"]);
}
});
whichSpeedtest();
const speedtestVersion = localStorage.getItem("speedtest");
if (speedtestVersion === "LibreSpeed") {
closestServers(["getClosestServers"]);
} else {
closestServers(["JSONClosestServers", "getClosestServers", "curlClosestServers"]);
}
} else {
$.ajax({
url: `api.php?${cmds[0]}`,
Expand Down
5 changes: 5 additions & 0 deletions scripts/pi-hole/php/footer.php
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,11 @@
<?php echo $webVersionStr; ?>
<?php if ($web_update) { ?> &middot; <a class="lookatme" lookatme-text="Update available!" href="<?php echo $webUrl.'/latest'; ?>" rel="noopener" target="_blank">Update available!</a><?php } ?>
</li>
<li>
<strong>Speedtest Mod</strong>
<?php echo $speedtestVersionStr; ?>
<?php if ($speedtest_update) { ?> &middot; <a class="lookatme" lookatme-text="Update available!" href="<?php echo $speedtestUrl.'/latest'; ?>" rel="noopener" target="_blank">Update available!</a><?php } ?>
</li>
</ul>

<p style="margin: 15px 0 0;">
Expand Down
27 changes: 25 additions & 2 deletions scripts/pi-hole/php/update_checker.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ function checkUpdate($currentVersion, $latestVersion)
$web_current = 'N/A';
$web_update = false;

$speedtest_branch = 'master';
$speedtest_current = 'N/A';
$speedtest_update = false;

$FTL_current = 'N/A';
$FTL_update = false;

Expand Down Expand Up @@ -49,6 +53,15 @@ function checkUpdate($currentVersion, $latestVersion)
$web_current = explode('-', $versions['WEB_VERSION'])[0];
}

// Get Speedtest Mod branch / version / commit
$speedtest_branch = $versions['SPEEDTEST_BRANCH'];
if ($speedtest_branch !== 'master') {
$speedtest_current = 'vDev';
$speedtest_commit = $versions['SPEEDTEST_VERSION'];
} else {
$speedtest_current = explode('-', $versions['SPEEDTEST_VERSION'])[0];
}

// Get Pi-hole FTL (not a git repository)
$FTL_branch = $versions['FTL_BRANCH'];
if (substr($versions['FTL_VERSION'], 0, 4) === 'vDev') {
Expand All @@ -68,6 +81,7 @@ function checkUpdate($currentVersion, $latestVersion)
// Get data from GitHub
$core_latest = $versions['GITHUB_CORE_VERSION'];
$web_latest = $versions['GITHUB_WEB_VERSION'];
$speedtest_latest = $versions['GITHUB_SPEEDTEST_VERSION'];
$FTL_latest = $versions['GITHUB_FTL_VERSION'];
if (isset($versions['GITHUB_DOCKER_VERSION'])) {
$docker_latest = $versions['GITHUB_DOCKER_VERSION'];
Expand All @@ -77,6 +91,7 @@ function checkUpdate($currentVersion, $latestVersion)

$core_update = false;
$web_update = false;
$speedtest_update = false;
$FTL_update = false;

// Version comparison
Expand All @@ -92,6 +107,7 @@ function checkUpdate($currentVersion, $latestVersion)
// Components comparison
$core_update = checkUpdate($core_current, $core_latest);
$web_update = checkUpdate($web_current, $web_latest);
$speedtest_update = checkUpdate($speedtest_current, $speedtest_latest);
$FTL_update = checkUpdate($FTL_current, $FTL_latest);

// Not a docker container
Expand All @@ -101,9 +117,10 @@ function checkUpdate($currentVersion, $latestVersion)

// URLs for the links
$coreUrl = 'https://github.com/pi-hole/pi-hole/releases';
$webUrl = 'https://github.com/arevindh/AdminLTE/releases';
$webUrl = 'https://github.com/pi-hole/AdminLTE/releases';
$ftlUrl = 'https://github.com/pi-hole/FTL/releases';
$dockerUrl = 'https://github.com/arevindh/docker-pi-hole/releases';
$dockerUrl = 'https://github.com/pi-hole/docker-pi-hole/releases';
$speedtestUrl = 'https://github.com/arevindh/pihole-speedtest/releases';

// Version strings (encoded to avoid code execution)
// If "vDev" show branch/commit, else show link
Expand All @@ -119,6 +136,12 @@ function checkUpdate($currentVersion, $latestVersion)
$webVersionStr = '<a href="'.$webUrl.'/'.rawurlencode($web_current).'" rel="noopener" target="_blank">'.htmlentities($web_current).'</a>';
}

if (isset($speedtest_commit)) {
$speedtestVersionStr = htmlentities($speedtest_current.' ('.$speedtest_branch.', '.$speedtest_commit.')');
} else {
$speedtestVersionStr = '<a href="'.$speedtestUrl.'/'.rawurlencode($speedtest_current).'" rel="noopener" target="_blank">'.htmlentities($speedtest_current).'</a>';
}

if (isset($FTL_commit)) {
$ftlVersionStr = htmlentities($FTL_current.' ('.$FTL_branch.', '.$FTL_commit.')');
} else {
Expand Down
2 changes: 1 addition & 1 deletion settings.php
Original file line number Diff line number Diff line change
Expand Up @@ -1618,7 +1618,7 @@ class="form-control"

<div class="form-group col-md-6">
<strong>Mod the Mod</strong>
<p>For the adventurous</p>
<p>With the Script</p>
<div>
<input type="checkbox" name="speedtestupdate" id="speedtestupdate">
<label for="speedtestupdate">(Re)install Latest</label>
Expand Down

0 comments on commit f69d459

Please sign in to comment.