null
if (typeof XF.PostEdit !== 'undefined') {
XF.PostEdit = XF.extend(XF.PostEdit, {
editComplete: function(a, b) {
var c = this;
XF.setupHtmlInsert(b.html, function(d, e, g) {
g = b.threadChanges || {};
temp = e.title.split(' - ');
temp.shift();
e.title = temp.join(' - ');
g.title && ($("h1.p-title-value .thread-title-text").html(e.h1), $("title").html(e.title), XF.config.visitorCounts.title_count && b.visitor && (XF.pageTitleCache = e.title, XF.pageTitleCounterUpdate(b.visitor.total_unread)));
});
}
});
}
}
/* ---------- */
$(document).on('click', 'html[data-app="public"][data-template="thread_view"] .p-body-pageContent .block--messages .lbContainer > .block-body .first-post-wrapper .thread-top-info .ai-container:not(.revert) .ai-summarize', function() {
let element = $(this);
let contentElement = $('html[data-app="public"][data-template="thread_view"] .p-body-pageContent .block--messages .lbContainer > .block-body .first-post-wrapper .message .message-inner .message-cell--main .message-content .message-body .bbWrapper');
element.parent().parent().attr('disabled', '').addClass('loading');
if ($.summarized) {
contentElement.html($.summarized);
element.html('').parent().parent().removeAttr('disabled').removeClass('loading').addClass('revert');
return;
}
$.original = contentElement.html();
let content = contentElement.text().replaceAll(/(\r\n|\n|\r)/gm, '.');
content = content.replaceAll('...', '. ');
content = content.replaceAll('..', '. ');
XF.ajax('post', '/scriptop/ai-summarize', { content: content }, function(data) {
contentElement.html(data.content);
$.summarized = data.content;
element.html('').parent().parent().removeAttr('disabled').removeClass('loading').addClass('revert');
});
});
$(document).on('click', 'html[data-app="public"][data-template="thread_view"] .p-body-pageContent .block--messages .lbContainer > .block-body .first-post-wrapper .thread-top-info .ai-container.revert .ai-summarize', function() {
let element = $(this);
let contentElement = $('html[data-app="public"][data-template="thread_view"] .p-body-pageContent .block--messages .lbContainer > .block-body .first-post-wrapper .message .message-inner .message-cell--main .message-content .message-body .bbWrapper');
contentElement.html($.original);
element.html('').parent().parent().removeAttr('disabled').removeClass('revert');
});
$(document).on('click', 'html[data-app="public"][data-template="thread_view"] #ai-lang-apply', function() {
Cookies.set('ai-lang', $('#ai-lang').val(), { expires: 365 });
});
/* ---------- */
function threadTitle() {
return $('html[data-app="public"][data-template="thread_view"] .p-pageWrapper .p-body .p-body-inner .p-body-main .p-body-content .p-body-header .p-title .p-title-value .thread-title-text')
.text()
.replaceAll(/(\r\n|\n|\r)/gm, '.')
.replaceAll('...', '. (pause) ')
.replaceAll('..', '. (pause) ')
.replace(/\s+/g, ' ')
.trim();
}
function threadContent() {
return $('html[data-app="public"][data-template="thread_view"] .p-body-pageContent .block--messages .lbContainer > .block-body .first-post-wrapper .message .message-inner .message-cell--main .message-content .message-body .bbWrapper')
.text()
.replaceAll(/(\r\n|\n|\r)/gm, '.')
.replaceAll('...', '. (pause) ')
.replaceAll('..', '. (pause) ')
.replace(/\s+/g, ' ')
.trim();
}
function playAiAudio(src, element) {
if ($.aiAudioPlayer)
$.aiAudioPlayer.pause();
$.aiAudioPlayer = new Audio(src);
element.html('');
$.aiAudioPlayer.onended = $.aiAudioPlayer.onerror = function() {
element.html('');
$.aiAudioPlayer = null;
};
$.aiAudioPlayer.play();
}
$(document).on('click', 'html[data-app="public"][data-template="thread_view"] .p-body-pageContent .block--messages .lbContainer > .block-body .first-post-wrapper .thread-top-info .ai-container .ai-audio', function() {
let element = $(this);
let container = element.closest('.ai-container');
if ($.aiAudioPlayer && !$.aiAudioPlayer.paused) {
$.aiAudioPlayer.pause();
$.aiAudioPlayer = null;
element.html('');
return;
}
if ($.aiAudio) {
playAiAudio($.aiAudio, element);
return;
}
container.attr('disabled', '').addClass('loading');
XF.ajax('post', '/scriptop/ai-audio', { content: (threadTitle() + '. (pause) ' + threadContent()) }, function(data) {
container.removeAttr('disabled').removeClass('loading');
if (data.error || !(data.audio || data.content))
return;
$.aiAudio = data.audio || data.content;
playAiAudio($.aiAudio, element);
});
});
function syncAiChat() {
let textarea = $('#ai-chat-history');
if (!textarea.length)
return;
textarea.val($.aiChatHistory || 'AI: Спрашивайте меня любые вопросы по теме автора...\n\n');
textarea[0].scrollTop = textarea[0].scrollHeight;
}
function appendAiChat(line) {
$.aiChatHistory = ($.aiChatHistory || 'AI: Спрашивайте меня любые вопросы по теме автора...\n\n') + line + '\n\n';
syncAiChat();
}
function askAiChat(question, appendQuestion) {
if (!question)
return;
let historyForRequest = $.aiChatHistory || 'AI: Спрашивайте меня любые вопросы по теме автора...\n\n';
$.aiChatLastQuestion = question;
if (appendQuestion)
appendAiChat('Вы: ' + question);
$('#ai-chat-question, #ai-chat-submit, #ai-chat-extend').prop('disabled', true);
$('#ai-chat-prepared').attr('disabled', '');
XF.ajax('post', '/scriptop/ai-chat', {
content: $.aiThreadContent || threadContent(),
question: question,
history: historyForRequest,
extended_context: $.aiChatExtended ? 1 : 0
}, function(data) {
appendAiChat('AI: ' + (data.answer || ''));
$('#ai-chat-question, #ai-chat-submit').prop('disabled', false);
$('#ai-chat-prepared').removeAttr('disabled');
$('#ai-chat-extend')
.prop('disabled', false)
.toggle(!!data.needs_context && !$.aiChatExtended);
$('#ai-chat-question').focus();
});
}
$(document).on('click', 'html[data-app="public"][data-template="thread_view"] .p-body-pageContent .block--messages .lbContainer > .block-body .first-post-wrapper .thread-top-info .ai-container .ai-chat', function() {
$.aiThreadContent = threadContent();
$.aiChatHistory = $.aiChatHistory || 'AI: Спрашивайте меня любые вопросы по теме автора...\n\n';
$.aiChatExtended = !!$.aiChatExtended;
let trigger = $('').appendTo('body');
XF.activate(trigger);
trigger.trigger('click');
let tries = 0;
let timer = setInterval(function() {
if ($('#ai-chat-history').length) {
syncAiChat();
clearInterval(timer);
trigger.remove();
}
if (++tries > 40) {
clearInterval(timer);
trigger.remove();
}
}, 100);
});
$(document).on('submit', '#ai-chat-form', function(e) {
e.preventDefault();
let question = String($('#ai-chat-question').val() || '').trim();
$('#ai-chat-question').val('');
askAiChat(question, true);
});
$(document).on('click', '#ai-chat-extend', function(e) {
e.preventDefault();
$.aiChatExtended = true;
$(this).hide();
askAiChat($.aiChatLastQuestion || '', false);
});
$(document).on('click', '#ai-chat-prepared [data-question]', function(e) {
e.preventDefault();
let question = String($(this).data('question') || '').trim();
if (!question)
return;
askAiChat(question, true);
});
/* ---------- */
$.translated = [];
$.originalTranslated = [];
$(document).on('click', 'html[data-app="public"][data-template="thread_view"] .p-body-pageContent .message .message-inner .message-cell--main .message-footer-wrapper .message-footer .message-actionBar .actionBar-set--internal .actionBar-action--translate:not(.revert), html[data-app="public"][data-template="member_view"] .p-body-memberPage .p-body-memberPage--main .tabPanes #profile-posts > .block > .block-container > .block-body > .message .message-cell--main .message-footer .actionBar .actionBar-set .actionBar-action.actionBar-action--translate:not(.revert)', function() {
let element = $(this);
let id = element.closest('.message, .comment').attr('data-content');
let contentElement = element.closest('.message, .comment').find('.message-body .bbWrapper, .comment-body .bbWrapper').first();
element.html('Ожидайте').attr('disabled', '');
if ($.translated[id]) {
contentElement.html($.translated[id]);
element.html('Оригинал').removeAttr('disabled').addClass('revert');
return;
}
$.originalTranslated[id] = contentElement.html();
let content = contentElement.text().replaceAll(/(\r\n|\n|\r)/gm, '.');
content = content.replaceAll('...', '. ');
content = content.replaceAll('..', '. ');
XF.ajax('post', '/scriptop/translate', { content: content }, function(data) {
if (data.content.length > 1) {
contentElement.html(data.content);
$.translated[id] = data.content;
} else {
$.translated[id] = $.originalTranslated[id];
}
element.html('Оригинал').removeAttr('disabled').addClass('revert');
});
});
$(document).on('click', 'html[data-app="public"][data-template="thread_view"] .p-body-pageContent .message .message-inner .message-cell--main .message-footer-wrapper .message-footer .message-actionBar .actionBar-set--internal .actionBar-action.actionBar-action--translate.revert, html[data-app="public"][data-template="member_view"] .p-body-memberPage .p-body-memberPage--main .tabPanes #profile-posts > .block > .block-container > .block-body > .message .message-cell--main .message-footer .actionBar .actionBar-set .actionBar-action.actionBar-action--translate.revert', function() {
let element = $(this);
let id = element.closest('.message, .comment').attr('data-content');
let contentElement = element.closest('.message, .comment').find('.message-body .bbWrapper, .comment-body .bbWrapper').first();
contentElement.html($.originalTranslated[id]);
element.text('Перевести').removeAttr('disabled').removeClass('revert');
});
$.translatedChat = [];
$.originalTranslatedChat = [];
/* ---------- */
$('html[data-app="public"] .p-body-sidebar:is([data-logged-in="false"] *) [statistics] .count').each(function() {
$(this).prop('counter', 0).animate({
counter: $(this).text()
}, {
duration: 1000 + (Number($(this).text() / 10)),
easing: 'swing',
step: function (now) {
$(this).text(Math.ceil(now));
}
});
});
/* ---------- */
$('html[data-app="public"][data-template="account_upgrades"] .p-body-content .p-body-pageContent .block-container .block-body .upgrades .upgrade .upgrade-description').mousewheel(function(event, delta, deltaX, deltaY) {
let step = 26;
let wrapperHeight = $(this).innerHeight();
let contentHeight = $(this).find('> span').innerHeight();
let scrollHeight = contentHeight - wrapperHeight;
if (wrapperHeight >= contentHeight) {
event.preventDefault();
return;
}
let topCurrent = Math.ceil($(this).scrollTop());
let topComing = topCurrent + step;
let topMax = roundMultiple(scrollHeight + (step - 1), step);
if ((topComing >= topMax) && (deltaY == -1))
$(this).scrollTop(topMax);
else
$(this).scrollTop(topCurrent + (step * (-deltaY)));
event.preventDefault();
});
$(document).on('change', 'html[data-app="public"][data-template="account_upgrades"] .p-body-content .p-body-pageContent .block-container .block-body .upgrades .upgrade row select[name="duration"]', function() {
$(this).parents('.upgrade').find('.upgrade-price').text($(this).find(':selected').attr('data-price'));
});
/* ---------- */
$(document).on('click', 'html[data-app="public"][data-template="account_bookmarks"] .remove-bookmark', function() {
setTimeout(() => {
$('.overlay[data-url*="/bookmark?delete"] .button[name="delete"]').trigger('click');
}, 500);
});
$(document).on('click', 'html[data-app="public"][data-template="thread_view"] #watch-thread', function() {
setTimeout(() => {
$('.overlay[data-url*="/threads/"][data-url$="/watch"] form').trigger('submit');
}, 500);
});
$(document).on('click', 'html[data-app="public"][data-template="member_view"] .actionBar-action[href*="/profile-posts/"][href*="/stick"]', function() {
setTimeout(() => {
$('.overlay[data-url*="/profile-posts/"][data-url*="/stick"] form').trigger('submit');
}, 500);
});
$(document).on('click', 'html[data-app="public"][data-template="member_view"] .actionBar-action[href*="/profile-posts/"][href*="/unstick"]', function() {
setTimeout(() => {
$('.overlay[data-url*="/profile-posts/"][data-url*="/unstick"] form').trigger('submit');
}, 500);
});
/* ---------- */
$(document).on('click', 'html[data-app="public"] [minimized]', function() {
$(this).removeAttr('minimized');
});
$(document).on('click', 'html[data-app="public"] [data-widget-key="streak"] #streak-action span[streak-add]', function() {
$.get('/scriptop/streak-add', function() {
location.reload();
});
});
$(document).on('click', 'html[data-app="public"] [data-widget-key="streak"] #streak-action span[streak-details]', function() {
location.href = '/threads/1134';
});
$(document).on('submit', 'html[data-app="public"] .register-section', function() {
$('html[data-app="public"] .register-section .button[type="submit"] .button-text').text('Обработка...');
});
$(document).on('input', 'html[data-app="public"] textarea.input', function() {
try {
let start = this.selectionStart;
let end = this.selectionEnd;
$(this).val($(this).val().replace(/-{2,}/g, '—'));
this.setSelectionRange(start, end);
} finally {}
});
$(document).on('input', 'html[data-app="public"] textarea[rows="1"][data-single-line]', function() {
$(this).val($(this).val().replace(/(\r\n|\n|\r)/gm, ' '));
});