Spaces:
Build error
Build error
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <title>CoronaBot</title> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <meta http-equiv="X-UA-Compatible" content="ie=edge"> | |
| <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}"> | |
| <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> | |
| </head> | |
| <body> | |
| <!-- partial:index.partial.html --> | |
| <section class="msger"> | |
| <header class="msger-header"> | |
| <div class="msger-header-title"> | |
| <i class="fas fa-bug"></i> Coronavirus Chatbot <i class="fas fa-bug"></i> | |
| </div> | |
| </header> | |
| <main class="msger-chat"> | |
| <div class="msg left-msg"> | |
| <div class="msg-img" style="background-image: url(https://image.flaticon.com/icons/svg/327/327779.svg)"></div> | |
| <div class="msg-bubble"> | |
| <div class="msg-info"> | |
| <div class="msg-info-name">CoronaBot</div> | |
| <div class="msg-info-time">12:45</div> | |
| </div> | |
| <div class="msg-text"> | |
| Hi, welcome to CoronaBot! Go ahead and send me a message. ๐ | |
| </div> | |
| </div> | |
| </div> | |
| </main> | |
| <form class="msger-inputarea"> | |
| <input type="text" class="msger-input" id="textInput" placeholder="Enter your message..."> | |
| <button type="submit" class="msger-send-btn">Send</button> | |
| </form> | |
| </section> | |
| <!-- partial --> | |
| <script src='https://use.fontawesome.com/releases/v5.0.13/js/all.js'></script> | |
| <script> | |
| const msgerForm = get(".msger-inputarea"); | |
| const msgerInput = get(".msger-input"); | |
| const msgerChat = get(".msger-chat"); | |
| // Icons made by Freepik from www.flaticon.com | |
| const BOT_IMG = "https://image.flaticon.com/icons/svg/327/327779.svg"; | |
| const PERSON_IMG = "https://image.flaticon.com/icons/svg/145/145867.svg"; | |
| const BOT_NAME = "CoronaBot"; | |
| const PERSON_NAME = "You"; | |
| msgerForm.addEventListener("submit", event => { | |
| event.preventDefault(); | |
| const msgText = msgerInput.value; | |
| if (!msgText) return; | |
| appendMessage(PERSON_NAME, PERSON_IMG, "right", msgText); | |
| msgerInput.value = ""; | |
| botResponse(msgText); | |
| }); | |
| function appendMessage(name, img, side, text) { | |
| // Simple solution for small apps | |
| const msgHTML = ` | |
| <div class="msg ${side}-msg"> | |
| <div class="msg-img" style="background-image: url(${img})"></div> | |
| <div class="msg-bubble"> | |
| <div class="msg-info"> | |
| <div class="msg-info-name">${name}</div> | |
| <div class="msg-info-time">${formatDate(new Date())}</div> | |
| </div> | |
| <div class="msg-text">${text}</div> | |
| </div> | |
| </div> | |
| `; | |
| msgerChat.insertAdjacentHTML("beforeend", msgHTML); | |
| msgerChat.scrollTop += 500; | |
| } | |
| function botResponse(rawText) { | |
| // Bot Response | |
| $.get("/get", { msg: rawText }).done(function (data) { | |
| console.log(rawText); | |
| console.log(data); | |
| const msgText = data; | |
| appendMessage(BOT_NAME, BOT_IMG, "left", msgText); | |
| }); | |
| } | |
| // Utils | |
| function get(selector, root = document) { | |
| return root.querySelector(selector); | |
| } | |
| function formatDate(date) { | |
| const h = "0" + date.getHours(); | |
| const m = "0" + date.getMinutes(); | |
| return `${h.slice(-2)}:${m.slice(-2)}`; | |
| } | |
| </script> | |
| </body> | |
| </html> |