Edit File by line
/home/zeestwma/richards.../wp-conte.../plugins/litespee.../tpl/crawler
File: summary.tpl.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* LiteSpeed Cache Crawler Summary
[2] Fix | Delete
*
[3] Fix | Delete
* @package LiteSpeed
[4] Fix | Delete
* @since 1.0.0
[5] Fix | Delete
*/
[6] Fix | Delete
[7] Fix | Delete
namespace LiteSpeed;
[8] Fix | Delete
[9] Fix | Delete
defined( 'WPINC' ) || exit;
[10] Fix | Delete
[11] Fix | Delete
$__crawler = Crawler::cls();
[12] Fix | Delete
$crawler_list = $__crawler->list_crawlers();
[13] Fix | Delete
$summary = Crawler::get_summary();
[14] Fix | Delete
[15] Fix | Delete
if ( $summary['curr_crawler'] >= count( $crawler_list ) ) {
[16] Fix | Delete
$summary['curr_crawler'] = 0;
[17] Fix | Delete
}
[18] Fix | Delete
[19] Fix | Delete
$is_running = time() - $summary['is_running'] <= 900;
[20] Fix | Delete
[21] Fix | Delete
$disabled = Router::can_crawl() ? '' : 'disabled';
[22] Fix | Delete
$disabled_tip = '';
[23] Fix | Delete
if ( ! $this->conf( Base::O_CRAWLER_SITEMAP ) ) {
[24] Fix | Delete
$disabled = 'disabled';
[25] Fix | Delete
$disabled_tip = '<span class="litespeed-callout notice notice-error inline litespeed-left20">' . sprintf(
[26] Fix | Delete
esc_html__( 'You need to set the %s in Settings first before using the crawler', 'litespeed-cache' ),
[27] Fix | Delete
'<code>' . esc_html( Lang::title( Base::O_CRAWLER_SITEMAP ) ) . '</code>'
[28] Fix | Delete
) . '</span>';
[29] Fix | Delete
}
[30] Fix | Delete
[31] Fix | Delete
$crawler_run_interval = defined( 'LITESPEED_CRAWLER_RUN_INTERVAL' ) ? LITESPEED_CRAWLER_RUN_INTERVAL : 600;
[32] Fix | Delete
if ( $crawler_run_interval > 0 ) :
[33] Fix | Delete
$recurrence = '';
[34] Fix | Delete
$hours = (int) floor( $crawler_run_interval / 3600 );
[35] Fix | Delete
if ( $hours ) {
[36] Fix | Delete
$recurrence .= sprintf(
[37] Fix | Delete
$hours > 1 ? esc_html__( '%d hours', 'litespeed-cache' ) : esc_html__( '%d hour', 'litespeed-cache' ),
[38] Fix | Delete
$hours
[39] Fix | Delete
);
[40] Fix | Delete
}
[41] Fix | Delete
$minutes = (int) floor( ( $crawler_run_interval % 3600 ) / 60 );
[42] Fix | Delete
if ( $minutes ) {
[43] Fix | Delete
$recurrence .= ' ';
[44] Fix | Delete
$recurrence .= sprintf(
[45] Fix | Delete
$minutes > 1 ? esc_html__( '%d minutes', 'litespeed-cache' ) : esc_html__( '%d minute', 'litespeed-cache' ),
[46] Fix | Delete
$minutes
[47] Fix | Delete
);
[48] Fix | Delete
}
[49] Fix | Delete
?>
[50] Fix | Delete
[51] Fix | Delete
<h3 class="litespeed-title litespeed-relative">
[52] Fix | Delete
<?php esc_html_e( 'Crawler Cron', 'litespeed-cache' ); ?>
[53] Fix | Delete
<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/crawler/' ); ?>
[54] Fix | Delete
</h3>
[55] Fix | Delete
[56] Fix | Delete
<?php if ( ! Router::can_crawl() ) : ?>
[57] Fix | Delete
<div class="litespeed-callout notice notice-error inline">
[58] Fix | Delete
<h4><?php esc_html_e( 'WARNING', 'litespeed-cache' ); ?></h4>
[59] Fix | Delete
<p><?php esc_html_e( 'The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.', 'litespeed-cache' ); ?></p>
[60] Fix | Delete
<p>
[61] Fix | Delete
<?php
[62] Fix | Delete
printf(
[63] Fix | Delete
/* translators: %s: Link tags */
[64] Fix | Delete
esc_html__( 'See %sIntroduction for Enabling the Crawler%s for detailed information.', 'litespeed-cache' ),
[65] Fix | Delete
'<a href="https://docs.litespeedtech.com/lscache/lscwp/admin/#enabling-and-limiting-the-crawler" target="_blank" rel="noopener">',
[66] Fix | Delete
'</a>'
[67] Fix | Delete
);
[68] Fix | Delete
?>
[69] Fix | Delete
</p>
[70] Fix | Delete
</div>
[71] Fix | Delete
<?php endif; ?>
[72] Fix | Delete
[73] Fix | Delete
<?php if ( $summary['this_full_beginning_time'] ) : ?>
[74] Fix | Delete
<p>
[75] Fix | Delete
<b><?php esc_html_e( 'Current sitemap crawl started at', 'litespeed-cache' ); ?>:</b>
[76] Fix | Delete
<?php echo esc_html( Utility::readable_time( $summary['this_full_beginning_time'] ) ); ?>
[77] Fix | Delete
</p>
[78] Fix | Delete
<?php if ( ! $is_running ) : ?>
[79] Fix | Delete
<p>
[80] Fix | Delete
<b><?php esc_html_e( 'The next complete sitemap crawl will start at', 'litespeed-cache' ); ?>:</b>
[81] Fix | Delete
<?php echo esc_html( gmdate( 'm/d/Y H:i:s', $summary['this_full_beginning_time'] + LITESPEED_TIME_OFFSET + (int) $summary['last_full_time_cost'] + $this->conf( Base::O_CRAWLER_CRAWL_INTERVAL ) ) ); ?>
[82] Fix | Delete
</p>
[83] Fix | Delete
<?php endif; ?>
[84] Fix | Delete
<?php endif; ?>
[85] Fix | Delete
[86] Fix | Delete
<?php if ( $summary['last_full_time_cost'] ) : ?>
[87] Fix | Delete
<p>
[88] Fix | Delete
<b><?php esc_html_e( 'Last complete run time for all crawlers', 'litespeed-cache' ); ?>:</b>
[89] Fix | Delete
<?php printf( esc_html__( '%d seconds', 'litespeed-cache' ), (int) $summary['last_full_time_cost'] ); ?>
[90] Fix | Delete
</p>
[91] Fix | Delete
<?php endif; ?>
[92] Fix | Delete
[93] Fix | Delete
<?php if ( $summary['last_crawler_total_cost'] ) : ?>
[94] Fix | Delete
<p>
[95] Fix | Delete
<b><?php esc_html_e( 'Run time for previous crawler', 'litespeed-cache' ); ?>:</b>
[96] Fix | Delete
<?php printf( esc_html__( '%d seconds', 'litespeed-cache' ), (int) $summary['last_crawler_total_cost'] ); ?>
[97] Fix | Delete
</p>
[98] Fix | Delete
<?php endif; ?>
[99] Fix | Delete
[100] Fix | Delete
<?php if ( $summary['curr_crawler_beginning_time'] ) : ?>
[101] Fix | Delete
<p>
[102] Fix | Delete
<b><?php esc_html_e( 'Current crawler started at', 'litespeed-cache' ); ?>:</b>
[103] Fix | Delete
<?php echo esc_html( Utility::readable_time( $summary['curr_crawler_beginning_time'] ) ); ?>
[104] Fix | Delete
</p>
[105] Fix | Delete
<?php endif; ?>
[106] Fix | Delete
[107] Fix | Delete
<p>
[108] Fix | Delete
<b><?php esc_html_e( 'Current server load', 'litespeed-cache' ); ?>:</b>
[109] Fix | Delete
<?php echo esc_html( $__crawler->get_server_load() ); ?>
[110] Fix | Delete
</p>
[111] Fix | Delete
[112] Fix | Delete
<?php if ( $summary['last_start_time'] ) : ?>
[113] Fix | Delete
<p class="litespeed-desc">
[114] Fix | Delete
<b><?php esc_html_e( 'Last interval', 'litespeed-cache' ); ?>:</b>
[115] Fix | Delete
<?php echo esc_html( Utility::readable_time( $summary['last_start_time'] ) ); ?>
[116] Fix | Delete
</p>
[117] Fix | Delete
<?php endif; ?>
[118] Fix | Delete
[119] Fix | Delete
<?php if ( $summary['end_reason'] ) : ?>
[120] Fix | Delete
<p class="litespeed-desc">
[121] Fix | Delete
<b><?php esc_html_e( 'Ended reason', 'litespeed-cache' ); ?>:</b>
[122] Fix | Delete
<?php echo esc_html( $summary['end_reason'] ); ?>
[123] Fix | Delete
</p>
[124] Fix | Delete
<?php endif; ?>
[125] Fix | Delete
[126] Fix | Delete
<?php if ( $summary['last_crawled'] ) : ?>
[127] Fix | Delete
<p class="litespeed-desc">
[128] Fix | Delete
<b><?php esc_html_e( 'Last crawled', 'litespeed-cache' ); ?>:</b>
[129] Fix | Delete
<?php
[130] Fix | Delete
printf(
[131] Fix | Delete
esc_html__( '%d item(s)', 'litespeed-cache' ),
[132] Fix | Delete
esc_html( $summary['last_crawled'] )
[133] Fix | Delete
);
[134] Fix | Delete
?>
[135] Fix | Delete
</p>
[136] Fix | Delete
<?php endif; ?>
[137] Fix | Delete
[138] Fix | Delete
<p>
[139] Fix | Delete
<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_RESET ) ); ?>" class="button litespeed-btn-warning"><?php esc_html_e( 'Reset position', 'litespeed-cache' ); ?></a>
[140] Fix | Delete
<a href="<?php echo Router::can_crawl() ? esc_url( Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_START ) ) : 'javascript:;'; ?>" id="litespeed_manual_trigger" class="button litespeed-btn-success" litespeed-accesskey="R" <?php echo wp_kses_post( $disabled ); ?>><?php esc_html_e( 'Manually run', 'litespeed-cache' ); ?></a>
[141] Fix | Delete
<?php echo wp_kses_post( $disabled_tip ); ?>
[142] Fix | Delete
</p>
[143] Fix | Delete
[144] Fix | Delete
<div class="litespeed-table-responsive">
[145] Fix | Delete
<table class="wp-list-table widefat striped" data-crawler-list>
[146] Fix | Delete
<thead>
[147] Fix | Delete
<tr>
[148] Fix | Delete
<th scope="col">#</th>
[149] Fix | Delete
<th scope="col"><?php esc_html_e( 'Cron Name', 'litespeed-cache' ); ?></th>
[150] Fix | Delete
<th scope="col"><?php esc_html_e( 'Run Frequency', 'litespeed-cache' ); ?></th>
[151] Fix | Delete
<th scope="col"><?php esc_html_e( 'Status', 'litespeed-cache' ); ?></th>
[152] Fix | Delete
<th scope="col"><?php esc_html_e( 'Activate', 'litespeed-cache' ); ?></th>
[153] Fix | Delete
<th scope="col"><?php esc_html_e( 'Running', 'litespeed-cache' ); ?></th>
[154] Fix | Delete
</tr>
[155] Fix | Delete
</thead>
[156] Fix | Delete
<tbody>
[157] Fix | Delete
<?php
[158] Fix | Delete
foreach ( $crawler_list as $i => $v ) :
[159] Fix | Delete
$hit = ! empty( $summary['crawler_stats'][ $i ][ Crawler::STATUS_HIT ] ) ? (int) $summary['crawler_stats'][ $i ][ Crawler::STATUS_HIT ] : 0;
[160] Fix | Delete
$miss = ! empty( $summary['crawler_stats'][ $i ][ Crawler::STATUS_MISS ] ) ? (int) $summary['crawler_stats'][ $i ][ Crawler::STATUS_MISS ] : 0;
[161] Fix | Delete
$blacklisted = ! empty( $summary['crawler_stats'][ $i ][ Crawler::STATUS_BLACKLIST ] ) ? (int) $summary['crawler_stats'][ $i ][ Crawler::STATUS_BLACKLIST ] : 0;
[162] Fix | Delete
$blacklisted += ! empty( $summary['crawler_stats'][ $i ][ Crawler::STATUS_NOCACHE ] ) ? (int) $summary['crawler_stats'][ $i ][ Crawler::STATUS_NOCACHE ] : 0;
[163] Fix | Delete
$waiting = isset( $summary['crawler_stats'][ $i ][ Crawler::STATUS_WAIT ] )
[164] Fix | Delete
? (int) $summary['crawler_stats'][ $i ][ Crawler::STATUS_WAIT ]
[165] Fix | Delete
: (int) ( $summary['list_size'] - $hit - $miss - $blacklisted );
[166] Fix | Delete
?>
[167] Fix | Delete
<tr>
[168] Fix | Delete
<td>
[169] Fix | Delete
<?php
[170] Fix | Delete
echo esc_html( $i + 1 );
[171] Fix | Delete
if ( $i === $summary['curr_crawler'] ) {
[172] Fix | Delete
echo '<img class="litespeed-crawler-curr" src="' . esc_url( LSWCP_PLUGIN_URL . 'assets/img/Litespeed.icon.svg' ) . '" alt="Current Crawler">';
[173] Fix | Delete
}
[174] Fix | Delete
?>
[175] Fix | Delete
</td>
[176] Fix | Delete
<td><?php echo wp_kses_post( $v['title'] ); ?></td>
[177] Fix | Delete
<td><?php echo esc_html( $recurrence ); ?></td>
[178] Fix | Delete
<td>
[179] Fix | Delete
<?php
[180] Fix | Delete
printf(
[181] Fix | Delete
'<i class="litespeed-badge litespeed-bg-default" data-balloon-pos="up" aria-label="%s">%s</i> ',
[182] Fix | Delete
esc_attr__( 'Waiting', 'litespeed-cache' ),
[183] Fix | Delete
esc_html( $waiting > 0 ? $waiting : '-' )
[184] Fix | Delete
);
[185] Fix | Delete
printf(
[186] Fix | Delete
'<i class="litespeed-badge litespeed-bg-success" data-balloon-pos="up" aria-label="%s">%s</i> ',
[187] Fix | Delete
esc_attr__( 'Hit', 'litespeed-cache' ),
[188] Fix | Delete
esc_html( $hit > 0 ? $hit : '-' )
[189] Fix | Delete
);
[190] Fix | Delete
printf(
[191] Fix | Delete
'<i class="litespeed-badge litespeed-bg-primary" data-balloon-pos="up" aria-label="%s">%s</i> ',
[192] Fix | Delete
esc_attr__( 'Miss', 'litespeed-cache' ),
[193] Fix | Delete
esc_html( $miss > 0 ? $miss : '-' )
[194] Fix | Delete
);
[195] Fix | Delete
printf(
[196] Fix | Delete
'<i class="litespeed-badge litespeed-bg-danger" data-balloon-pos="up" aria-label="%s">%s</i> ',
[197] Fix | Delete
esc_attr__( 'Blocklisted', 'litespeed-cache' ),
[198] Fix | Delete
esc_html( $blacklisted > 0 ? $blacklisted : '-' )
[199] Fix | Delete
);
[200] Fix | Delete
?>
[201] Fix | Delete
</td>
[202] Fix | Delete
<td>
[203] Fix | Delete
<?php $this->build_toggle( 'litespeed-crawler-' . $i, $__crawler->is_active( $i ) ); ?>
[204] Fix | Delete
<?php if ( ! empty( $v['uid'] ) && empty( $this->conf( Base::O_SERVER_IP ) ) ) : ?>
[205] Fix | Delete
<div class="litespeed-danger litespeed-text-bold">
[206] Fix | Delete
🚨 <?php esc_html_e( 'NOTICE', 'litespeed-cache' ); ?>:
[207] Fix | Delete
<?php
[208] Fix | Delete
printf(
[209] Fix | Delete
esc_html__( 'You must set %s before using this feature.', 'litespeed-cache' ),
[210] Fix | Delete
esc_html( Lang::title( Base::O_SERVER_IP ) )
[211] Fix | Delete
);
[212] Fix | Delete
?>
[213] Fix | Delete
<?php
[214] Fix | Delete
Doc::learn_more(
[215] Fix | Delete
esc_url( admin_url( 'admin.php?page=litespeed-general#settings' ) ),
[216] Fix | Delete
esc_html__( 'Click here to set.', 'litespeed-cache' ),
[217] Fix | Delete
true,
[218] Fix | Delete
false,
[219] Fix | Delete
true
[220] Fix | Delete
);
[221] Fix | Delete
?>
[222] Fix | Delete
</div>
[223] Fix | Delete
<?php endif; ?>
[224] Fix | Delete
</td>
[225] Fix | Delete
<td>
[226] Fix | Delete
<?php
[227] Fix | Delete
if ( $i === $summary['curr_crawler'] ) {
[228] Fix | Delete
echo esc_html__( 'Position: ', 'litespeed-cache' ) . esc_html( $summary['last_pos'] + 1 );
[229] Fix | Delete
if ( $is_running ) {
[230] Fix | Delete
echo ' <span class="litespeed-label-success">' . esc_html__( 'running', 'litespeed-cache' ) . '</span>';
[231] Fix | Delete
}
[232] Fix | Delete
}
[233] Fix | Delete
?>
[234] Fix | Delete
</td>
[235] Fix | Delete
</tr>
[236] Fix | Delete
<?php endforeach; ?>
[237] Fix | Delete
</tbody>
[238] Fix | Delete
</table>
[239] Fix | Delete
</div>
[240] Fix | Delete
[241] Fix | Delete
<p>
[242] Fix | Delete
<i class="litespeed-badge litespeed-bg-default"></i> = <?php esc_html_e( 'Waiting to be Crawled', 'litespeed-cache' ); ?><br>
[243] Fix | Delete
<i class="litespeed-badge litespeed-bg-success"></i> = <?php esc_html_e( 'Already Cached', 'litespeed-cache' ); ?><br>
[244] Fix | Delete
<i class="litespeed-badge litespeed-bg-primary"></i> = <?php esc_html_e( 'Successfully Crawled', 'litespeed-cache' ); ?><br>
[245] Fix | Delete
<i class="litespeed-badge litespeed-bg-danger"></i> = <?php esc_html_e( 'Blocklisted', 'litespeed-cache' ); ?><br>
[246] Fix | Delete
</p>
[247] Fix | Delete
[248] Fix | Delete
<div class="litespeed-desc">
[249] Fix | Delete
<div><?php esc_html_e( 'Run frequency is set by the Interval Between Runs setting.', 'litespeed-cache' ); ?></div>
[250] Fix | Delete
<div>
[251] Fix | Delete
<?php
[252] Fix | Delete
esc_html_e( 'Crawlers cannot run concurrently. If both the cron and a manual run start at similar times, the first to be started will take precedence.', 'litespeed-cache' );
[253] Fix | Delete
?>
[254] Fix | Delete
</div>
[255] Fix | Delete
<div>
[256] Fix | Delete
<?php
[257] Fix | Delete
printf(
[258] Fix | Delete
/* translators: %s: Link tags */
[259] Fix | Delete
esc_html__( 'Please see %sHooking WP-Cron Into the System Task Scheduler%s to learn how to create the system cron task.', 'litespeed-cache' ),
[260] Fix | Delete
'<a href="https://developer.wordpress.org/plugins/cron/hooking-wp-cron-into-the-system-task-scheduler/" target="_blank" rel="noopener">',
[261] Fix | Delete
'</a>'
[262] Fix | Delete
);
[263] Fix | Delete
?>
[264] Fix | Delete
</div>
[265] Fix | Delete
</div>
[266] Fix | Delete
<?php
[267] Fix | Delete
endif;
[268] Fix | Delete
?>
[269] Fix | Delete
[270] Fix | Delete
<h3 class="litespeed-title"><?php esc_html_e( 'Watch Crawler Status', 'litespeed-cache' ); ?></h3>
[271] Fix | Delete
[272] Fix | Delete
<?php
[273] Fix | Delete
$ajax_url = $__crawler->json_path();
[274] Fix | Delete
if ( $ajax_url ) :
[275] Fix | Delete
?>
[276] Fix | Delete
<input type="button" id="litespeed-crawl-url-btn" value="<?php esc_attr_e( 'Show crawler status', 'litespeed-cache' ); ?>" class="button button-secondary" data-url="<?php echo esc_url( $ajax_url ); ?>" />
[277] Fix | Delete
<div class="litespeed-shell litespeed-hide">
[278] Fix | Delete
<div class="litespeed-shell-header-bar"></div>
[279] Fix | Delete
<div class="litespeed-shell-header">
[280] Fix | Delete
<div class="litespeed-shell-header-bg"></div>
[281] Fix | Delete
<div class="litespeed-shell-header-icon-container">
[282] Fix | Delete
<img id="litespeed-shell-icon" src="<?php echo esc_url( LSWCP_PLUGIN_URL . 'assets/img/Litespeed.icon.svg' ); ?>" alt="LiteSpeed Icon" />
[283] Fix | Delete
</div>
[284] Fix | Delete
</div>
[285] Fix | Delete
<ul class="litespeed-shell-body">
[286] Fix | Delete
<li><?php esc_html_e( 'Start watching...', 'litespeed-cache' ); ?></li>
[287] Fix | Delete
<li id="litespeed-loading-dot"></li>
[288] Fix | Delete
</ul>
[289] Fix | Delete
</div>
[290] Fix | Delete
<?php else : ?>
[291] Fix | Delete
<p><?php esc_html_e( 'No crawler meta file generated yet', 'litespeed-cache' ); ?></p>
[292] Fix | Delete
<?php endif; ?>
[293] Fix | Delete
[294] Fix | Delete
<script>
[295] Fix | Delete
var _litespeed_meta;
[296] Fix | Delete
var _litespeed_shell_interval = 3; // seconds
[297] Fix | Delete
var _litespeed_shell_interval_range = [3, 60];
[298] Fix | Delete
var _litespeed_shell_handle;
[299] Fix | Delete
var _litespeed_shell_display_handle;
[300] Fix | Delete
var _litespeed_crawler_url;
[301] Fix | Delete
var _litespeed_dots;
[302] Fix | Delete
[303] Fix | Delete
[304] Fix | Delete
(function ($) {
[305] Fix | Delete
'use strict';
[306] Fix | Delete
jQuery(document).ready(function () {
[307] Fix | Delete
$('#litespeed-crawl-url-btn').on('click', function () {
[308] Fix | Delete
if (!$(this).data('url')) {
[309] Fix | Delete
return false;
[310] Fix | Delete
}
[311] Fix | Delete
$('.litespeed-shell').removeClass('litespeed-hide');
[312] Fix | Delete
_litespeed_dots = window.setInterval(_litespeed_loading_dots, 300);
[313] Fix | Delete
_litespeed_crawler_url = $(this).data('url');
[314] Fix | Delete
litespeed_fetch_meta();
[315] Fix | Delete
$(this).hide();
[316] Fix | Delete
});
[317] Fix | Delete
[318] Fix | Delete
$('#litespeed_manual_trigger').on('click', function (event) {
[319] Fix | Delete
$('#litespeed-loading-dot').before('<li>Manually Started</li>');
[320] Fix | Delete
_litespeed_shell_interval = _litespeed_shell_interval_range[0];
[321] Fix | Delete
litespeed_fetch_meta();
[322] Fix | Delete
});
[323] Fix | Delete
[324] Fix | Delete
/**
[325] Fix | Delete
* Freeze or melt a specific crawler
[326] Fix | Delete
* @since 4.3
[327] Fix | Delete
*/
[328] Fix | Delete
if ($('[data-crawler-list] [data-litespeed_toggle_id]').length > 0) {
[329] Fix | Delete
$('[data-crawler-list] [data-litespeed_toggle_id]').on('click', function (e) {
[330] Fix | Delete
var crawler_id = $(this).attr('data-litespeed_toggle_id');
[331] Fix | Delete
var crawler_id = Number(crawler_id.split('-').pop());
[332] Fix | Delete
var that = this;
[333] Fix | Delete
$.ajax({
[334] Fix | Delete
url: '<?php echo function_exists('get_rest_url') ? get_rest_url(null, 'litespeed/v1/toggle_crawler_state') : '/'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>',
[335] Fix | Delete
dataType: 'json',
[336] Fix | Delete
method: 'POST',
[337] Fix | Delete
cache: false,
[338] Fix | Delete
data: { crawler_id: crawler_id },
[339] Fix | Delete
beforeSend: function (xhr) {
[340] Fix | Delete
xhr.setRequestHeader('X-WP-Nonce', '<?php echo esc_js( wp_create_nonce('wp_rest') ); ?>');
[341] Fix | Delete
},
[342] Fix | Delete
success: function (data) {
[343] Fix | Delete
$(that)
[344] Fix | Delete
.toggleClass('litespeed-toggle-btn-default litespeed-toggleoff', data == 0)
[345] Fix | Delete
.toggleClass('litespeed-toggle-btn-primary', data == 1);
[346] Fix | Delete
console.log('litespeed-crawler-ajax: change Activate option');
[347] Fix | Delete
},
[348] Fix | Delete
error: function (xhr, error) {
[349] Fix | Delete
console.log(xhr);
[350] Fix | Delete
console.log(error);
[351] Fix | Delete
console.log('litespeed-crawler-ajax: option failed to save due to some error');
[352] Fix | Delete
},
[353] Fix | Delete
});
[354] Fix | Delete
});
[355] Fix | Delete
}
[356] Fix | Delete
[357] Fix | Delete
});
[358] Fix | Delete
})(jQuery);
[359] Fix | Delete
[360] Fix | Delete
[361] Fix | Delete
function litespeed_fetch_meta() {
[362] Fix | Delete
window.clearTimeout(_litespeed_shell_handle);
[363] Fix | Delete
jQuery('#litespeed-loading-dot').text('');
[364] Fix | Delete
jQuery.ajaxSetup({ cache: false });
[365] Fix | Delete
jQuery.getJSON(_litespeed_crawler_url, function (meta) {
[366] Fix | Delete
litespeed_pulse();
[367] Fix | Delete
var changed = false;
[368] Fix | Delete
if (meta && 'list_size' in meta) {
[369] Fix | Delete
new_meta =
[370] Fix | Delete
meta.list_size + ' ' + meta.file_time + ' ' + meta.curr_crawler + ' ' + meta.last_pos + ' ' + meta.last_count + ' ' + meta.last_start_time + ' ' + meta.is_running;
[371] Fix | Delete
if (new_meta != _litespeed_meta) {
[372] Fix | Delete
_litespeed_meta = new_meta;
[373] Fix | Delete
changed = true;
[374] Fix | Delete
string = _litespeed_build_meta(meta);
[375] Fix | Delete
jQuery('#litespeed-loading-dot').before(string);
[376] Fix | Delete
// remove first log elements
[377] Fix | Delete
log_length = jQuery('.litespeed-shell-body li').length;
[378] Fix | Delete
if (log_length > 50) {
[379] Fix | Delete
jQuery('.litespeed-shell-body li:lt(' + (log_length - 50) + ')').remove();
[380] Fix | Delete
}
[381] Fix | Delete
// scroll to end
[382] Fix | Delete
jQuery('.litespeed-shell-body')
[383] Fix | Delete
.stop()
[384] Fix | Delete
.animate(
[385] Fix | Delete
{
[386] Fix | Delete
scrollTop: jQuery('.litespeed-shell-body')[0].scrollHeight,
[387] Fix | Delete
},
[388] Fix | Delete
800,
[389] Fix | Delete
);
[390] Fix | Delete
}
[391] Fix | Delete
[392] Fix | Delete
// dynamic adjust the interval length
[393] Fix | Delete
_litespeed_adjust_interval(changed);
[394] Fix | Delete
}
[395] Fix | Delete
// display interval counting
[396] Fix | Delete
litespeed_display_interval_reset();
[397] Fix | Delete
_litespeed_shell_handle = window.setTimeout(_litespeed_dynamic_timeout, _litespeed_shell_interval * 1000);
[398] Fix | Delete
});
[399] Fix | Delete
}
[400] Fix | Delete
[401] Fix | Delete
function _litespeed_loading_dots() {
[402] Fix | Delete
jQuery('#litespeed-loading-dot').append('.');
[403] Fix | Delete
}
[404] Fix | Delete
[405] Fix | Delete
/**
[406] Fix | Delete
* Dynamic adjust interval
[407] Fix | Delete
*/
[408] Fix | Delete
function _litespeed_adjust_interval(changed) {
[409] Fix | Delete
if (changed) {
[410] Fix | Delete
_litespeed_shell_interval -= Math.ceil(_litespeed_shell_interval / 2);
[411] Fix | Delete
} else {
[412] Fix | Delete
_litespeed_shell_interval++;
[413] Fix | Delete
}
[414] Fix | Delete
[415] Fix | Delete
if (_litespeed_shell_interval < _litespeed_shell_interval_range[0]) {
[416] Fix | Delete
_litespeed_shell_interval = _litespeed_shell_interval_range[0];
[417] Fix | Delete
}
[418] Fix | Delete
if (_litespeed_shell_interval > _litespeed_shell_interval_range[1]) {
[419] Fix | Delete
_litespeed_shell_interval = _litespeed_shell_interval_range[1];
[420] Fix | Delete
}
[421] Fix | Delete
}
[422] Fix | Delete
[423] Fix | Delete
function _litespeed_build_meta(meta) {
[424] Fix | Delete
var string =
[425] Fix | Delete
'<li>' +
[426] Fix | Delete
litespeed_date(meta.last_update_time) +
[427] Fix | Delete
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Size: ' +
[428] Fix | Delete
meta.list_size +
[429] Fix | Delete
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Crawler: #' +
[430] Fix | Delete
(meta.curr_crawler * 1 + 1) +
[431] Fix | Delete
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Position: ' +
[432] Fix | Delete
(meta.last_pos * 1 + 1) +
[433] Fix | Delete
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Threads: ' +
[434] Fix | Delete
meta.last_count +
[435] Fix | Delete
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Status: ';
[436] Fix | Delete
if (meta.is_running) {
[437] Fix | Delete
string += 'crawling, ' + meta.last_status;
[438] Fix | Delete
} else {
[439] Fix | Delete
string += meta.end_reason ? meta.end_reason : '-';
[440] Fix | Delete
}
[441] Fix | Delete
string += '</li>';
[442] Fix | Delete
return string;
[443] Fix | Delete
}
[444] Fix | Delete
[445] Fix | Delete
function _litespeed_dynamic_timeout() {
[446] Fix | Delete
litespeed_fetch_meta();
[447] Fix | Delete
}
[448] Fix | Delete
[449] Fix | Delete
function litespeed_display_interval_reset() {
[450] Fix | Delete
window.clearInterval(_litespeed_shell_display_handle);
[451] Fix | Delete
jQuery('.litespeed-shell-header-bar').data('num', _litespeed_shell_interval);
[452] Fix | Delete
_litespeed_shell_display_handle = window.setInterval(_litespeed_display_interval, 1000);
[453] Fix | Delete
[454] Fix | Delete
jQuery('.litespeed-shell-header-bar')
[455] Fix | Delete
.stop()
[456] Fix | Delete
.animate({ width: '100%' }, 500, function () {
[457] Fix | Delete
jQuery('.litespeed-shell-header-bar').css('width', '0%');
[458] Fix | Delete
});
[459] Fix | Delete
}
[460] Fix | Delete
[461] Fix | Delete
function _litespeed_display_interval() {
[462] Fix | Delete
var num = jQuery('.litespeed-shell-header-bar').data('num');
[463] Fix | Delete
jQuery('.litespeed-shell-header-bar')
[464] Fix | Delete
.stop()
[465] Fix | Delete
.animate({ width: litespeed_get_percent(num, _litespeed_shell_interval) + '%' }, 1000);
[466] Fix | Delete
if (num > 0) num--;
[467] Fix | Delete
if (num < 0) num = 0;
[468] Fix | Delete
jQuery('.litespeed-shell-header-bar').data('num', num);
[469] Fix | Delete
}
[470] Fix | Delete
[471] Fix | Delete
function litespeed_get_percent(num1, num2) {
[472] Fix | Delete
num1 = num1 * 1;
[473] Fix | Delete
num2 = num2 * 1;
[474] Fix | Delete
num = (num2 - num1) / num2;
[475] Fix | Delete
return num * 100;
[476] Fix | Delete
}
[477] Fix | Delete
[478] Fix | Delete
function litespeed_date(timestamp) {
[479] Fix | Delete
var a = new Date(timestamp * 1000);
[480] Fix | Delete
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
[481] Fix | Delete
var year = a.getFullYear();
[482] Fix | Delete
var month = months[a.getMonth()];
[483] Fix | Delete
var date = litespeed_add_zero(a.getDate());
[484] Fix | Delete
var hour = litespeed_add_zero(a.getHours());
[485] Fix | Delete
var min = litespeed_add_zero(a.getMinutes());
[486] Fix | Delete
var sec = litespeed_add_zero(a.getSeconds());
[487] Fix | Delete
var time = date + ' ' + month + ' ' + year + ' ' + hour + ':' + min + ':' + sec;
[488] Fix | Delete
return time;
[489] Fix | Delete
}
[490] Fix | Delete
[491] Fix | Delete
function litespeed_add_zero(i) {
[492] Fix | Delete
if (i < 10) {
[493] Fix | Delete
i = '0' + i;
[494] Fix | Delete
}
[495] Fix | Delete
return i;
[496] Fix | Delete
}
[497] Fix | Delete
[498] Fix | Delete
function litespeed_pulse() {
[499] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function