HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.30
System: Linux iZj6c1151k3ad370bosnmsZ 3.10.0-1160.76.1.el7.x86_64 #1 SMP Wed Aug 10 16:21:17 UTC 2022 x86_64
User: root (0)
PHP: 7.4.30
Disabled: NONE
Upload Files
File: /var/www/html/www.winghung.com/openai/script.js
const input = document.querySelector('input')
const button = document.querySelector('button')
const dialogue = document.querySelector('#dialogue')

var communicator = ''
button.onclick = () => {
    bottomScroll();
    makeRequest();
}

input.addEventListener("keypress", function(event) {
    //bottomScroll();
    // If the user presses the "Enter" key on the keyboard
    if (event.key === "Enter") {
        // Cancel the default action, if needed
        event.preventDefault();
        bottomScroll();
        makeRequest();
    }
});

function makeRequest(){
    var prompt = input.value
    if(prompt != ''){
        bottomScroll();
        (dialogue.innerHTML == '') ? communicator = '<i class="fa fa-user" aria-hidden="true" style="color:green;"></i>: <br>' : communicator = '<br><br><i class="fa fa-user" aria-hidden="true" style="color:green;"></i>: <br>'
        dialogue.innerHTML += communicator + prompt
        // use SSE to get server Events
        var source = new SSE("request.php?prompt=" + prompt);
        input.value = ''
        input.focus()   
        dialogue.innerHTML += '<br><br><i class="fa fa-android" aria-hidden="true" style="color:blue;"></i>: '   
        var counts = 1
        source.addEventListener('message', function (e) {            
            if(e.data){
                if(e.data != '[DONE]'){                    
                    var tokens = JSON.parse(e.data).choices[0].delta.content

                    if(counts==2){
                        if(tokens!=undefined){
                            if(tokens!='\n\n'){
                                dialogue.innerHTML += "<br>"+tokens
                            } else {
                                dialogue.innerHTML += '<br>'
                            }
                        }                        
                        
                    } else {
                        if(tokens!=undefined){
                            dialogue.innerHTML += tokens
                        }    
                    }
                    
                    
                    bottomScroll();
                    counts++;
                }else{
                    console.log('Completed');
                    counts = 1;
                }
                
            }
        })
        source.stream()
        bottomScroll();
    }
}

function bottomScroll(){
    //dialogue.scrollIntoView(false)
    //dialogue.scrollTo(0, dialogue.scrollHeight)
}