Character.AI Smart Auto-Continue

Automatically detects when a Character.ai bot message cuts off mid-sentence and prompts it to continue.

Du musst eine Erweiterung wie Tampermonkey, Greasemonkey oder Violentmonkey installieren, um dieses Skript zu installieren.

Um dieses Skript zu installieren, müssen Sie eine Erweiterung wie Tampermonkey oder Violentmonkey installieren.

Um dieses Skript zu installieren, müssen Sie eine Erweiterung wie Tampermonkey oder Violentmonkey installieren.

Um dieses Skript zu installieren, müssen Sie eine Erweiterung wie Tampermonkey oder Userscripts installieren.

Um dieses Skript zu installieren, müssen Sie eine Erweiterung wie Tampermonkey installieren.

Sie müssten eine Skript Manager Erweiterung installieren damit sie dieses Skript installieren können

(Ich habe schon ein Skript Manager, Lass mich es installieren!)

Um dieses Design zu installieren, müssen Sie eine Erweiterung wie Stylus installieren.

Um dieses Design zu installieren, müssen Sie eine Erweiterung wie Stylus installieren.

Um dieses Design zu installieren, müssen Sie eine Erweiterung wie Stylus installieren.

Um diesen Stil zu installieren, müssen Sie eine Erweiterung für den Benutzerstil Verwaltung installieren.

Um diesen Stil zu installieren, müssen Sie eine Erweiterung für den Benutzerstil Verwaltung installieren.

Um diesen Stil zu installieren, müssen Sie eine Erweiterung für den Benutzerstil Verwaltung installieren.

(Ich habe bereits einen Benutzerstil Verwaltung, ich möchte ihn installieren!)

// ==UserScript==
// @name         Character.AI Smart Auto-Continue
// @namespace    http://tampermonkey.net
// @version      1.0
// @description  Automatically detects when a Character.ai bot message cuts off mid-sentence and prompts it to continue.
// @author       YourName
// @license      MIT
// @match        https://character.ai*
// @match        https://*.character.ai/*
// @icon         https://google.com
// @grant        none
// @run-at       document-end
// ==/UserScript==

(function() {
    'use strict';

    // Function to check the text and trigger continuation
    function checkAndContinue() {
        // Find all bot message text elements on the screen
        const messages = document.querySelectorAll('.message-text, [data-testid="chat-message-text"]');
        if (messages.length === 0) return;

        // Get the very last message sent by the bot
        const lastMessage = messages[messages.length - 1];
        const text = lastMessage.innerText.trim();

        // Check if the text ends abruptly (not ending with ., !, ?, ", or »)
        const endsAbruptly = /[^.!??"»]$/.test(text);

        if (endsAbruptly && !lastMessage.dataset.autoContinued) {
            // Mark it so we don't loop infinitely on the same message
            lastMessage.dataset.autoContinued = "true";

            // Find Character.ai's chat input textarea
            const textarea = document.querySelector('textarea');
            
            if (textarea) {
                textarea.focus();
                textarea.value = '(continue)';
                
                // Trigger input event for the website's framework
                const event = new Event('input', { bubbles: true });
                textarea.dispatchEvent(event);
                
                // Click the send button after a tiny delay
                setTimeout(() => {
                    const sendButton = document.querySelector('button[type="submit"]') || 
                                       textarea.parentElement.querySelector('button');
                    if (sendButton) {
                        sendButton.click();
                    }
                }, 300);
            }
        }
    }

    // Run the check every 3 seconds to see if a new cut-off message arrived
    setInterval(checkAndContinue, 3000);
})();