Блог

Вневременные статьи о жизни предпринимателей, бизнесе и стартапах.
Copyright 2026 ScripTop
Статистика Здесь 221 предпринимателей и специалистов создали 355 тем и написали 460 сообщений. 4771 человек состоят в нашем сообществе. Основное Финансы Сферы
Верх
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, ' ')); }); byScripTop Inc.