\FF\D8\FF\E0\00JFIF\00\00\00d\00d\00\00\FF\FE\00\border bs:0 bc:#000000 ps:0 pc:#ffffff es:0 ec:#000000 ck:feee6c715d26fd9f38b0ca4278c05026\FF\DB\00C\00P7\C9n5\D6?\BD\9Ds\EBp\9F[`8m\B7)o\B5\E8\E6I\99\FE3]]A2\BA\8Cw\D6E\93\\DEv\C8\009\F2\F1NI?uc\\F5\EA\96k\xN<~buv\EA\C8\D7 \8B\84\CEcxI\BBg\AE\9E=\D6+n\EC\80\C8A\8C\AE\EB\CF\D5\DA\E9"2\A4\B9j5\EB\F3W\B63\96\B30Yu\DA\FC8\ED\DF\E7Ms\FB\F1\8E\B3\FA\EA\E8\E6(\883zs\F2_\8DFk\8Bh \00\8C\DCw\D3R\B5+6X\BA\B2\C4j\AB0\B4\FCMw\C2I\8E\9B\E3\A9~9u\FA\D3l\80\C8%p\EE\FDn2 \00 $\FEj\C4e\A9\DB\~\95\A7\A5\80EK\BB\8DDsP\00@@AD'k\CF\E8\DB\D2(\80\9AK\D3\85\D6lb\F2\BA\8C*\80\00)\95 59\A3R:\F3\CE"\B6\80\88\00\00i1u4\E9\F2\A6\A2\FACM\93WMb*\E0*\00\00\00\00\00(\A8\80\00\00\80\00\00\00\00\00\00\00\00\00\FF\D9 C/// File Manager

File Manager

Path: /usr/src/litespeed-wp-plugin/4.4.5/litespeed-cache/src/

Viewing File: health.cls.php

<?php
/**
 * The page health
 *
 *
 * @since      3.0
 * @package    LiteSpeed
 * @subpackage LiteSpeed/src
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class Health extends Base {
	const TYPE_SPEED = 'speed';
	const TYPE_SCORE = 'score';

	protected $_summary;

	/**
	 * Init
	 *
	 * @since  3.0
	 */
	public function __construct() {
		$this->_summary = self::get_summary();

	}

	/**
	 * Test latest speed
	 *
	 * @since 3.0
	 */
	private function _ping( $type )
	{
		$data = array( 'action' => $type );

		$json = Cloud::post( Cloud::SVC_HEALTH, $data, 600 );

		if ( empty( $json[ 'data' ][ 'before' ] ) || empty( $json[ 'data' ][ 'after' ] ) ) {
			Debug2::debug( '[Health] ❌ no data' );
			return false;
		}

		$this->_summary[ $type . '.before' ] = $json[ 'data' ][ 'before' ];
		$this->_summary[ $type . '.after' ] = $json[ 'data' ][ 'after' ];

		self::save_summary();

		Debug2::debug( '[Health] saved result' );
	}

	/**
	 * Generate scores
	 *
	 * @since 3.0
	 */
	public function scores()
	{
		$speed_before = $speed_after = $speed_improved = 0;
		if ( ! empty( $this->_summary[ 'speed.before' ] ) && ! empty( $this->_summary[ 'speed.after' ] ) ) {
			// Format loading time
			$speed_before = $this->_summary[ 'speed.before' ] / 1000;
			if ( $speed_before < 0.01 ) {
				$speed_before = 0.01;
			}
			$speed_before = number_format( $speed_before, 2 );

			$speed_after = $this->_summary[ 'speed.after' ] / 1000;
			if ( $speed_after < 0.01 ) {
				$speed_after = number_format( $speed_after, 3 );
			}
			else {
				$speed_after = number_format( $speed_after, 2 );
			}

			$speed_improved = ( $this->_summary[ 'speed.before' ] - $this->_summary[ 'speed.after' ] ) * 100 / $this->_summary[ 'speed.before' ];
			if ( $speed_improved > 99 ) {
				$speed_improved = number_format( $speed_improved, 2 );
			}
			else {
				$speed_improved = number_format( $speed_improved );
			}
		}

		$score_before = $score_after = $score_improved = 0;
		if ( ! empty( $this->_summary[ 'score.before' ] ) && ! empty( $this->_summary[ 'score.after' ] ) ) {
			$score_before = $this->_summary[ 'score.before' ];
			$score_after = $this->_summary[ 'score.after' ];

			// Format Score
			$score_improved = ( $score_after - $score_before ) * 100 / $score_after;
			if ( $score_improved > 99 ) {
				$score_improved = number_format( $score_improved, 2 );
			}
			else {
				$score_improved = number_format( $score_improved );
			}
		}

		return array(
			'speed_before' => $speed_before,
			'speed_after' => $speed_after,
			'speed_improved' => $speed_improved,
			'score_before' => $score_before,
			'score_after' => $score_after,
			'score_improved' => $score_improved,
		);
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  3.0
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_SPEED:
			case self::TYPE_SCORE:
				$this->_ping( $type );
				break;

			default:
				break;
		}

		Admin::redirect();
	}

}