File size: 2,054 Bytes
6096aae
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
async function extractContent() {
  const url = document.getElementById('url').value.trim();
  const tag = document.getElementById('tag').value.trim() || 'all';
  const output = document.getElementById('output');
  const analysisBox = document.getElementById('analysis-box');
  const lang = document.getElementById('lang');
  const wordCount = document.getElementById('wordCount');
  const sentCount = document.getElementById('sentCount');
  const uniqueCount = document.getElementById('uniqueCount');
  const topWords = document.getElementById('topWords');

  output.innerHTML = '<p>⏳ Extracting content...</p>';
  analysisBox.classList.add('hidden');

  try {
    const res = await fetch('/extract', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ url, tag })
    });

    const data = await res.json();

    if (!res.ok || data.error) {
      output.innerHTML = `<p class="error">❌ ${data.error || 'Failed to fetch data'}</p>`;
      return;
    }

    // Display extracted tag results
    if (data.results) {
      output.innerHTML = data.results.map(item => `<p>${item}</p>`).join('');
    } else if (data.text) {
      output.innerHTML = `<p>${data.text.slice(0, 1000)}...</p>`;
    } else {
      output.innerHTML = '<p>No results found.</p>';
    }

    // Display analysis
    if (data.analysis) {
      analysisBox.classList.remove('hidden');
      lang.textContent = data.language || 'unknown';
      wordCount.textContent = data.analysis.word_count || 0;
      sentCount.textContent = data.analysis.sentence_count || 0;
      uniqueCount.textContent = data.analysis.unique_words || 0;

      topWords.innerHTML = '';
      data.analysis.top_words.forEach(([word, freq]) => {
        const li = document.createElement('li');
        li.textContent = `${word} (${freq})`;
        topWords.appendChild(li);
      });
    }

  } catch (err) {
    output.innerHTML = `<p class="error">⚠️ Error: ${err.message}</p>`;
  }
}