protected static function write_status_s($msg, $token = false, $org_start_time = null) { if (is_null($org_start_time)) { $org_start_time = time(); } $duration = time() - $org_start_time; $hrs = floor($duration / 3600); $remainder = $duration - $hrs * 3600; $mins = floor($remainder / 60); $secs = $remainder - $mins * 60; $contents = ($hrs ? $hrs . 'h' : '') . ($mins ? $mins . 'm' : '') . $secs . 's ' . $msg; if ($token) { $filename = make_status_filename($token); file_put_contents($filename, $contents); } else { // For commandline invocation without -q static $ferr = null; if (!$ferr) { $ferr = fopen('php://stderr', 'w'); } static::write_err_s($ferr, $contents); } }
if ($file_errs) { $file_errs .= ' '; } $file_errs .= 'Error: unable to write to the serialization file.'; } $cmd = make_php_exec_cmd(array('token' => $token)); if (!try_run_bg_proc($cmd)) { $err = 'Apologies, the server encountered a technical error: it was unable to initiate the background process to perform the task of scraping, sorting and finally presenting your posts. The command used was:<br />' . PHP_EOL . '<br />' . PHP_EOL . $cmd . '<br />' . PHP_EOL . '<br />' . PHP_EOL . 'You might like to try again or <a href="' . FUPS_CONTACT_URL . '">contact me</a> about this error.'; } } } } } else { $token = $_GET['token']; if (validate_token($token, $err)) { $status_filename = make_status_filename($token); $errs_filename = make_errs_filename($token); $errs_admin_filename = make_errs_admin_filename($token); } } if (!$err) { $ts = @filemtime($status_filename); if ($ts === false) { $err = 'The status file for your FUPS process with token "' . $token . '" does not exist - possibly because you have already deleted it.'; } $status = @file_get_contents($status_filename); $errs = @file_get_contents($errs_filename); $errs_admin = @file_get_contents($errs_admin_filename); } $head_extra = ''; if (!$err) {
$token = $_GET['token']; $op_info_filename = make_output_info_filename($token); if (is_file($op_info_filename)) { $output_info = json_decode(file_get_contents($op_info_filename), true); if (is_array($output_info)) { $output_dir = null; foreach ($output_info as $opv) { try_delete_file($opv['filepath'], '"' . $opv['filepath'] . '"', false, $err, $num_files_deleted, false); $output_dir = dirname($opv['filepath']); } @rmdir($output_dir); } } if (validate_token($token, $err)) { try_delete_file(make_settings_filename($token), 'settings', true, $err, $num_files_deleted); try_delete_file(make_status_filename($token), 'status', false, $err, $num_files_deleted); try_delete_file(make_errs_filename($token), 'error', false, $err, $num_files_deleted); try_delete_file(make_errs_admin_filename($token), 'errors (admin)', false, $err, $num_files_deleted, false); try_delete_file(make_output_info_filename($token), 'output info', false, $err, $num_files_deleted, false); try_delete_file(make_serialize_filename($token), 'serialisation', true, $err, $num_files_deleted); try_delete_file(make_cookie_filename($token), 'cookie', true, $err, $num_files_deleted, false); try_delete_file(make_cancellation_filename($token), 'cancellation', true, $err, $num_files_deleted, false); } } function try_delete_file($filename, $name, $sensitive, &$err, &$num_files_deleted, $add_err_if_file_not_present = true) { global $fups_url_homepage; if (!is_file($filename)) { if ($add_err_if_file_not_present) { $err .= $err ? ' Another' : 'An'; $err .= ' error occurred: the ' . $name . ' file does not exist on disk; possibly you have already deleted it or it was never created in the first place.';