ultra_compact_curl.sh 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #!/bin/bash
  2. # ULTRA KOMPAKTNE CURL PÄRING
  3. # Ainult 3 välja: Pealkiri, Allikfail, Uurimisküsimus
  4. GRAPHQL_URL="http://100.80.222.54:9020/v1/graphql"
  5. OUTPUT_CSV="$HOME/Downloads/articles_ultra_compact.csv"
  6. echo "📡 Toon ultra-kompaktset artiklite nimekirja..."
  7. echo " Väljad: title, source_file, uurimisküsimus"
  8. echo ""
  9. # CSV pealkiri
  10. echo '"#","Pealkiri","Allikfail","Uurimisküsimus"' > "$OUTPUT_CSV"
  11. # Päring ja CSV genereerimine
  12. curl -s "$GRAPHQL_URL" \
  13. -X POST \
  14. -H "Content-Type: application/json" \
  15. -d '{
  16. "query": "{ Get { ScientificArticle(limit: 700) { title source_file summary_et } } }"
  17. }' \
  18. | jq -r '
  19. .data.Get.ScientificArticle[] |
  20. # Eraldab uurimisküsimuse
  21. (
  22. if .summary_et then
  23. (
  24. .summary_et |
  25. # Otsi "Uurimisküsimused ja eesmärgid:" sektsiooni
  26. (match("Uurimisküsimused ja eesmärgid:.*?\\*\\*(.+?)(?=\\n\\*\\*|$)"; "s") // {captures: [{string: "N/A"}]}).captures[0].string |
  27. # Eemalda markdown märgid
  28. gsub("\\*\\*"; "") |
  29. gsub("\\*"; "") |
  30. # Lõika 200 tähemärgini
  31. .[0:200] |
  32. if length == 200 then . + "..." else . end
  33. )
  34. else
  35. "N/A"
  36. end
  37. ) as $research |
  38. # Genereeri CSV rida
  39. [
  40. .title,
  41. (.source_file | split("/") | .[-1]),
  42. $research
  43. ] | @csv
  44. ' \
  45. >> "$OUTPUT_CSV"
  46. # Nummerda read
  47. awk -F',' 'NR==1 {print; next} {print NR-1 "," $0}' "$OUTPUT_CSV" > "${OUTPUT_CSV}.tmp" && mv "${OUTPUT_CSV}.tmp" "$OUTPUT_CSV"
  48. echo "✅ CSV fail salvestatud: $OUTPUT_CSV"
  49. echo ""
  50. # Näita statistikat
  51. ARTICLE_COUNT=$(wc -l < "$OUTPUT_CSV")
  52. ARTICLE_COUNT=$((ARTICLE_COUNT - 1)) # Miinus päis
  53. echo "📊 Statistika:"
  54. echo " - Artikle kokku: $ARTICLE_COUNT"
  55. echo " - Faili suurus: $(du -h "$OUTPUT_CSV" | cut -f1)"
  56. echo ""
  57. echo "🚀 Kasutus:"
  58. echo " 1. Ava Excelis: open $OUTPUT_CSV"
  59. echo " 2. Google Sheets: Import → Upload CSV"
  60. echo " 3. LibreOffice: libreoffice --calc $OUTPUT_CSV"
  61. echo ""
  62. echo "💡 Näpunäide:"
  63. echo " - Excelis: Data → Text to Columns (komadega eraldatud)"
  64. echo " - Sorteerimine: Vali veerg → Data → Sort"
  65. echo " - Filter: Data → AutoFilter"