Planetensichtbarkeit auf PY umgestellt

This commit is contained in:
2026-04-12 19:03:11 +02:00
parent e93e2e3e6a
commit 013253feeb
6 changed files with 671 additions and 461 deletions
+1 -41
View File
@@ -2,6 +2,7 @@
declare(strict_types=1);
session_start();
require_once __DIR__ . '/python_api.php';
$loggedIn = isset($_SESSION['user_id']);
$pageTitle = 'Meteorströme - AstroTools';
@@ -81,47 +82,6 @@ function fetchCurrentSolarLongitude(DateTimeZone $displayTimezone): ?float
return normalizeSolarLongitude((float) $solarLongitude);
}
function runPythonApi(string $action, array $args): array
{
$scriptPath = __DIR__ . '/py/api.py';
$pythonCandidates = PHP_OS_FAMILY === 'Windows'
? ['python', 'py']
: ['/usr/bin/python3', '/usr/bin/python', 'python3', 'python'];
$escapedArguments = array_map('escapeshellarg', array_merge([$scriptPath, $action], $args));
$lastError = 'Python konnte nicht gestartet werden.';
foreach ($pythonCandidates as $pythonBinary) {
$command = $pythonBinary . ' ' . implode(' ', $escapedArguments) . ' 2>&1';
$output = [];
$resultCode = 0;
exec($command, $output, $resultCode);
$joined = trim(implode("\n", $output));
$decoded = json_decode($joined, true);
if (is_array($decoded)) {
return [
'ok' => (bool) ($decoded['ok'] ?? false),
'data' => $decoded,
'raw' => $joined,
'command' => $command,
];
}
if ($joined !== '') {
$lastError = $joined;
} elseif ($resultCode !== 0) {
$lastError = 'Fehlercode ' . $resultCode . ' bei ' . $pythonBinary;
}
}
return [
'ok' => false,
'error' => $lastError,
];
}
function isSolarLongitudeInRange(float $current, ?float $start, ?float $finish): bool
{
if ($start === null || $finish === null) {