Advertisement
Guest User

Experimental LinkedList implementation of before() and after()

a guest
Dec 12th, 2020
21
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /** this does not work, but is a good start*/
  2.  
  3.  
  4. toggle = 0;
  5. function transform() {
  6.     if (toggle == 0) {
  7.         document.getElementById("analysis").innerHTML = "General analysis";
  8.         document.body.style.backgroundColor = "#8bc34a";
  9.         document.getElementById("footer").style.backgroundColor = "#bef67a";
  10.         document.getElementById("analysis").style.backgroundColor = "#bef67a";
  11.         document.getElementById("documentText").style.backgroundColor = "#bef67a";
  12.         document.getElementById("upload").style.backgroundColor = "#bef67a";
  13.         document.getElementById("header").style.backgroundColor = "#5a9216";
  14.         document.getElementById("root").style.display = "none";
  15.         document.getElementById("report").style.display = "block";
  16.         toggle = 1;
  17.     } else {
  18.         document.getElementById("analysis").innerHTML = "Detailed analysis";
  19.         document.body.style.backgroundColor = "#d4e157";
  20.         document.getElementById("footer").style.backgroundColor = "#ffff89";
  21.         document.getElementById("analysis").style.backgroundColor = "#ffff89";
  22.         document.getElementById("documentText").style.backgroundColor = "#ffff89";
  23.         document.getElementById("upload").style.backgroundColor = "#ffff89";
  24.         document.getElementById("header").style.backgroundColor = "#a0af22";
  25.         document.getElementById("root").style.display = "block";
  26.         document.getElementById("report").style.display = "none";
  27.         toggle = 0;
  28.     }
  29. }
  30. messages = [""];
  31. var sentences;
  32. var current;
  33. //anger fear joy sadness analytical confident tentative
  34. attributes = [0, 0, 0, 0, 0, 0, 0];
  35. sentenceAttributes = [0, 0, 0, 0, 0, 0, 0];
  36.  
  37. let uploadBtn = document.getElementById("upload");
  38. let documentTextField = document.getElementById("documentText");
  39. uploadBtn.onclick = () => {
  40.     // Get document
  41.     console.log(documentTextField.value);
  42.  
  43.     var headers = new Headers();
  44.     headers.append('Content-Type', 'text/plain');
  45.     headers.append('Authorization', 'Basic ' + btoa('apikey' + ':' + 'usSnROgZXhkF9vKkO8BocN604eZtcxYbkavsDxyloWSp'));
  46.  
  47.    
  48.  
  49.     fetch('https://api.kr-seo.tone-analyzer.watson.cloud.ibm.com/instances/8a64ea0b-ebb0-412d-aecd-438426034a0a/v3/tone?version=2017-09-21', {
  50.         method: 'POST',
  51.         body: documentTextField.value,
  52.         headers: headers,
  53.     }).then(res => res.json()) // Commented out as API calls cut into bandwidth
  54.  
  55.         .then(json => {
  56.             var displayText = "Overall attributes:<br>";
  57.  
  58.  
  59.             for (tone of json["document_tone"]["tones"]) {
  60.  
  61.                 var percentage = (Math.floor(Number(tone["score"]) * 100)).toString();
  62.                 var toneName = tone["tone_name"];
  63.                 displayText += toneName;
  64.                 displayText += ": ";
  65.                 displayText += percentage;
  66.                 displayText += "%\n"
  67.                 if (toneName == "Anger") {
  68.                     attributes[0] = percentage;
  69.                 } else if (toneName == "Fear") {
  70.                     attributes[1] = percentage;
  71.                 } else if (toneName == "Joy") {
  72.                     attributes[2] = percentage;
  73.                 } else if (toneName == "Sadness") {
  74.                     attributes[3] = percentage;
  75.                 } else if (toneName == "Analytical") {
  76.                     attributes[4] = percentage;
  77.                 } else if (toneName == "Confident") {
  78.                     attributes[5] = percentage;
  79.                 } else if (toneName == "Tentative") {
  80.                     attributes[6] = percentage;
  81.                 }
  82.             }
  83.             document.getElementById("data").innerHTML = displayText;
  84.             //generate tips
  85.             displayText = "Tip:<br>";
  86.             if (attributes[0] >= 60) {
  87.                 displayText += "Calm down. ";
  88.             } else if (attributes[1] >= 60) {
  89.                 displayText += "Don't worry too much, everything will be fine. ";
  90.             } else if (attributes[2] <= 40) {
  91.                 displayText += "Cheer up! ";
  92.             } else if (attributes[3] >= 60) {
  93.                 displayText += "Brighten up your mood! ";
  94.             } else if (attributes[4] >= 60) {
  95.                 displayText += "Don't overthink too much. ";
  96.             } else if (attributes[5] <= 40) {
  97.                 displayText += "I believe in you! You can do it! ";
  98.             } else if (attributes[6] >= 60) {
  99.                 displayText += "Have more faith in yourself! ";
  100.             } else {
  101.                 displayText = "You are doing great!";
  102.             }
  103.             document.getElementById("note").innerHTML = displayText;
  104.            
  105.             if (json.hasOwnProperty("sentences_tone") && json.sentences_tone.length != 0) {
  106.                 // Add 1st node 1st
  107.                 sentences = new LinkedList(json.sentences_tone[0]);
  108.  
  109.                 var tempNode = null;
  110.                 // Analyze sentences
  111.                 for (let i = 0; i < json.sentences_tone.length; i++) {
  112.                     // Add node
  113.                    
  114.                     let newNode = new LinkedListNode(json.sentences_tone[i], new LinkedListNode(json.sentences_tone[i+1]),tempNode);
  115.                     tempNode = newNode;
  116.                 }
  117.                 current = sentences.head;
  118.  
  119.             }
  120.         }
  121.  
  122.  
  123.         );
  124. }
  125.  
  126.  
  127.  
  128. function before() {
  129.     // Previous button
  130.     // Retrieve previous
  131.     if (current.prev == null) {
  132.         return;
  133.     }
  134.     var sentence = current.prev.data;
  135.     document.getElementById('sentence').innerHTML = sentence.text;
  136.     current = current.prev;
  137. }
  138.  
  139. function after() {
  140.     // Next button
  141.     // Retrieve next
  142.     console.log(JSON.stringify(current));
  143.     if (current.next == null) {
  144.         return;
  145.     }
  146.     var sentence = current.next.data;
  147.     document.getElementById('sentence').innerHTML = sentence.text;
  148.     current = current.next;
  149. }
  150.  
  151.  
  152. class LinkedListNode{
  153.     constructor(data, next = null, prev = null){
  154.         console.log('next'+JSON.stringify(next));
  155.         console.log('prev' + JSON.stringify(prev));
  156.         this.data = data,
  157.         this.next = next
  158.         this.prev = prev;
  159.     }
  160. }
  161.  
  162. class LinkedList {
  163.     constructor(head = null) {
  164.         this.head = head
  165.     }
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement