diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b6257f8
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+tchap.py
+.venv/
\ No newline at end of file
diff --git a/cat-lol.svg b/cat-lol.svg
new file mode 100644
index 0000000..73ae8d2
--- /dev/null
+++ b/cat-lol.svg
@@ -0,0 +1,106 @@
+
+
+
diff --git a/cat-tears.svg b/cat-tears.svg
index 73ae8d2..f1fbe1c 100644
--- a/cat-tears.svg
+++ b/cat-tears.svg
@@ -4,103 +4,83 @@
viewBox="0 0 128 128" style="enable-background:new 0 0 128 128;" xml:space="preserve">
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
-
-
+
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
+
+
+
-
-
-
+
-
-
+
+
+
-
-
-
-
diff --git a/index.html b/index.html
index 318a679..09787bd 100644
--- a/index.html
+++ b/index.html
@@ -193,17 +193,37 @@ formulaire.addEventListener('submit', async (e) => {
conversation.appendChild(citation);
formulaire.reset();
- const paragraphe = document.createElement('p');
+ let paragraphe = document.createElement('p');
paragraphe.setAttribute("aria-busy", "true");
conversation.appendChild(paragraphe);
conversation.scrollTop = conversation.scrollHeight;
- const requete = await fetch(formulaire.action, {
- method: formulaire.method,
- body: formulaireData
- });
paragraphe.setAttribute('aria-busy', 'true');
- const reponse = await requete.text();
+ let reponse
+ try {
+ const requete = await fetch(formulaire.action, {
+ method: formulaire.method,
+ body: formulaireData
+ });
+ reponse = await requete.text();
+ } catch (error) {
+ paragraphe.setAttribute('aria-busy', 'false');
+
+ paragraphe = document.createElement('p');
+ paragraphe.innerHTML = "😿 Je ne suis pas disponible pour le moment. Merci de laisser un message !";
+ favicon.href = 'cat-tears.svg';
+ conversation.appendChild(paragraphe);
+ document.scrollingElement.scrollBy({top: window.visualViewport.height, behavior: 'smooth'});
+
+ bouton_envoyer.disabled = false;
+ bouton_envoyer.setAttribute("aria-busy", false);
+ bouton_envoyer.innerHTML = bouton_envoyer_innerHTML;
+ question.focus();
+ question.onfocus();
+
+ return
+ }
+
paragraphe.setAttribute('aria-busy', 'false');
nb_reponses++;
@@ -214,6 +234,8 @@ formulaire.addEventListener('submit', async (e) => {
let t = 0;
Array.from(reponse).forEach((lettre, i) => {
+ t += 100 * Math.random()
+ if (lettre == " ") t += 100
setTimeout(() => {
if (lettre == "\n") {
paragraphe.innerHTML += "
";
@@ -222,12 +244,12 @@ formulaire.addEventListener('submit', async (e) => {
}
document.scrollingElement.scrollBy({top: window.visualViewport.height, behavior: 'smooth'});
- }, t += 100 * Math.random());
+ }, t);
});
setTimeout(() => {
const paragraphe = document.createElement('p');
paragraphe.innerHTML = (nb_reponses % 5 ? '😸' : '😹') + ' Voulez-vous que je réponde à une autre question ?';
- favicon.href = (nb_reponses % 5 ? 'cat-troll.svg' : 'cat-tears.svg');
+ favicon.href = (nb_reponses % 5 ? 'cat-troll.svg' : 'cat-lol.svg');
conversation.appendChild(paragraphe);
document.scrollingElement.scrollBy({top: window.visualViewport.height, behavior: 'smooth'});
@@ -335,6 +357,8 @@ window.onresize = function() {
}
window.visualViewport?.addEventListener('resize', window.onresize);
window.onresize();
+
+navigator?.serviceWorker.register('service-worker.js')