__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
/**
* The localization class.
*
* @since 3.3
*/
namespace LiteSpeed;
defined('WPINC') || exit();
class Localization extends Base
{
const LOG_TAG = '🛍️';
/**
* Init optimizer
*
* @since 3.0
* @access protected
*/
public function init()
{
add_filter('litespeed_buffer_finalize', array($this, 'finalize'), 23); // After page optm
}
/**
* Localize Resources
*
* @since 3.3
*/
public function serve_static($uri)
{
$url = base64_decode($uri);
if (!$this->conf(self::O_OPTM_LOCALIZE)) {
// wp_redirect( $url );
exit('Not supported');
}
if (substr($url, -3) !== '.js') {
// wp_redirect( $url );
// exit( 'Not supported ' . $uri );
}
$match = false;
$domains = $this->conf(self::O_OPTM_LOCALIZE_DOMAINS);
foreach ($domains as $v) {
if (!$v || strpos($v, '#') === 0) {
continue;
}
$type = 'js';
$domain = $v;
// Try to parse space split value
if (strpos($v, ' ')) {
$v = explode(' ', $v);
if (!empty($v[1])) {
$type = strtolower($v[0]);
$domain = $v[1];
}
}
if (strpos($domain, 'https://') !== 0) {
continue;
}
if ($type != 'js') {
continue;
}
// if ( strpos( $url, $domain ) !== 0 ) {
if ($url != $domain) {
continue;
}
$match = true;
break;
}
if (!$match) {
// wp_redirect( $url );
exit('Not supported2');
}
header('Content-Type: application/javascript');
// Generate
$this->_maybe_mk_cache_folder('localres');
$file = $this->_realpath($url);
self::debug('localize [url] ' . $url);
$response = wp_remote_get($url, array('timeout' => 180, 'stream' => true, 'filename' => $file));
// Parse response data
if (is_wp_error($response)) {
$error_message = $response->get_error_message();
file_exists($file) && unlink($file);
self::debug('failed to get: ' . $error_message);
wp_redirect($url);
exit();
}
$url = $this->_rewrite($url);
wp_redirect($url);
exit();
}
/**
* Get the final URL of local avatar
*
* @since 4.5
*/
private function _rewrite($url)
{
return LITESPEED_STATIC_URL . '/localres/' . $this->_filepath($url);
}
/**
* Generate realpath of the cache file
*
* @since 4.5
* @access private
*/
private function _realpath($url)
{
return LITESPEED_STATIC_DIR . '/localres/' . $this->_filepath($url);
}
/**
* Get filepath
*
* @since 4.5
*/
private function _filepath($url)
{
$filename = md5($url) . '.js';
if (is_multisite()) {
$filename = get_current_blog_id() . '/' . $filename;
}
return $filename;
}
/**
* Localize JS/Fonts
*
* @since 3.3
* @access public
*/
public function finalize($content)
{
if (is_admin()) {
return $content;
}
if (!$this->conf(self::O_OPTM_LOCALIZE)) {
return $content;
}
$domains = $this->conf(self::O_OPTM_LOCALIZE_DOMAINS);
if (!$domains) {
return $content;
}
foreach ($domains as $v) {
if (!$v || strpos($v, '#') === 0) {
continue;
}
$type = 'js';
$domain = $v;
// Try to parse space split value
if (strpos($v, ' ')) {
$v = explode(' ', $v);
if (!empty($v[1])) {
$type = strtolower($v[0]);
$domain = $v[1];
}
}
if (strpos($domain, 'https://') !== 0) {
continue;
}
if ($type != 'js') {
continue;
}
$content = str_replace($domain, LITESPEED_STATIC_URL . '/localres/' . base64_encode($domain), $content);
}
return $content;
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| cdn | Folder | 0755 |
|
|
| data_structure | Folder | 0755 |
|
|
| activation.cls.php | File | 14.99 KB | 0644 |
|
| admin-display.cls.php | File | 33.2 KB | 0644 |
|
| admin-settings.cls.php | File | 9.52 KB | 0644 |
|
| admin.cls.php | File | 4.44 KB | 0644 |
|
| api.cls.php | File | 11.08 KB | 0644 |
|
| avatar.cls.php | File | 6.06 KB | 0644 |
|
| base.cls.php | File | 30.25 KB | 0644 |
|
| cdn-setup.cls.php | File | 10.45 KB | 0644 |
|
| cdn.cls.php | File | 13.13 KB | 0644 |
|
| cloud.cls.php | File | 41.8 KB | 0644 |
|
| conf.cls.php | File | 18.58 KB | 0644 |
|
| control.cls.php | File | 21.75 KB | 0644 |
|
| core.cls.php | File | 20.05 KB | 0644 |
|
| crawler-map.cls.php | File | 14 KB | 0644 |
|
| crawler.cls.php | File | 34.63 KB | 0644 |
|
| css.cls.php | File | 13.1 KB | 0644 |
|
| data.cls.php | File | 17.41 KB | 0644 |
|
| data.upgrade.func.php | File | 21.37 KB | 0644 |
|
| db-optm.cls.php | File | 9.58 KB | 0644 |
|
| debug2.cls.php | File | 12.04 KB | 0644 |
|
| doc.cls.php | File | 4.74 KB | 0644 |
|
| error.cls.php | File | 6.91 KB | 0644 |
|
| esi.cls.php | File | 27.09 KB | 0644 |
|
| file.cls.php | File | 10.13 KB | 0644 |
|
| gui.cls.php | File | 27.45 KB | 0644 |
|
| health.cls.php | File | 2.89 KB | 0644 |
|
| htaccess.cls.php | File | 23.92 KB | 0644 |
|
| img-optm.cls.php | File | 60.24 KB | 0644 |
|
| import.cls.php | File | 4.15 KB | 0644 |
|
| instance.cls.php | File | 154 B | 0644 |
|
| lang.cls.php | File | 15.54 KB | 0644 |
|
| localization.cls.php | File | 3.38 KB | 0644 |
|
| media.cls.php | File | 31.01 KB | 0644 |
|
| metabox.cls.php | File | 4.21 KB | 0644 |
|
| object-cache.cls.php | File | 15.55 KB | 0644 |
|
| object.lib.php | File | 33.97 KB | 0644 |
|
| optimize.cls.php | File | 36.49 KB | 0644 |
|
| optimizer.cls.php | File | 9.01 KB | 0644 |
|
| placeholder.cls.php | File | 14.08 KB | 0644 |
|
| preset.cls.php | File | 5.43 KB | 0644 |
|
| purge.cls.php | File | 29.79 KB | 0644 |
|
| report.cls.php | File | 5.33 KB | 0644 |
|
| rest.cls.php | File | 7.87 KB | 0644 |
|
| root.cls.php | File | 12.6 KB | 0644 |
|
| router.cls.php | File | 19 KB | 0644 |
|
| str.cls.php | File | 1.17 KB | 0644 |
|
| tag.cls.php | File | 8.62 KB | 0644 |
|
| task.cls.php | File | 5.83 KB | 0644 |
|
| tool.cls.php | File | 3.29 KB | 0644 |
|
| ucss.cls.php | File | 14.39 KB | 0644 |
|
| utility.cls.php | File | 20.63 KB | 0644 |
|
| vary.cls.php | File | 19.17 KB | 0644 |
|
| vpi.cls.php | File | 7.41 KB | 0644 |
|