<?php include 'lib.php'; foreach (HomeControl::cronList() as $cronRow) { $cronAction = explode(':', $cronRow); if ($cronAction[2] <= time()) { // execute HomeControl::runAction(array_search($cronAction[0], HomeControl::$actions), @$cronAction[1] ?: null); // clear cron job HomeControl::cronRemove($cronRow); } }
throw new \Exception(null); } elseif ($requestTokens[0] === 'cronRemove' && count($requestTokens) === 2) { $response['status'] = true; HomeControl::cronRemove(str_replace('-', ':', $requestTokens[1])); throw new \Exception(null); } if (!in_array($requestTokens[0], HomeControl::$actions)) { throw new \Exception('unknown action given'); } // all seems fine so far $response['status'] = true; // time in minutes to wait before execution if (@$requestTokens[2] > 0) { // queue // set time for execution $requestTokens[2] *= 60; // convert into minues $requestTokens[2] += time(); // add current time $cronRow = implode(':', $requestTokens); HomeControl::cronAdd($cronRow); $response['message'] = 'queued'; } else { // execute $response['message'] = HomeControl::runAction(array_search($requestTokens[0], HomeControl::$actions), @$requestTokens[1] ?: null); } } catch (\Exception $e) { $response['message'] = $e->getMessage(); } header('Content-Type: application/json; charset: utf-8'); echo json_encode($response);