fetch_articles_advanced.sh 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #!/bin/bash
  2. # CURL käsk + jq kombinatsioon - transport_context sisestamisega
  3. # Keerulisemalt vormindatud versioon (puhta jq-ga)
  4. GRAPHQL_URL="http://100.80.222.54:9020/v1/graphql"
  5. OUTPUT_FILE="$HOME/Downloads/articles_with_transport_context_advanced.md"
  6. echo "📡 Toon artikleid GraphQL API-st..."
  7. # Genereeri CSS pealkiri
  8. cat > "$OUTPUT_FILE" << 'HEADER'
  9. <style>
  10. @media print {
  11. h2 {
  12. page-break-before: always;
  13. }
  14. h2:first-of-type {
  15. page-break-before: avoid;
  16. }
  17. }
  18. </style>
  19. # Teadusartiklite analüüs ja transpordiplaneerimise kontekst
  20. Eksporditud: **TIMESTAMP**
  21. ---
  22. HEADER
  23. # Asenda timestamp
  24. TIMESTAMP=$(date "+%d.%m.%Y %H:%M")
  25. sed -i "s/TIMESTAMP/$TIMESTAMP/" "$OUTPUT_FILE"
  26. # Toob JSON andmed
  27. curl -s "$GRAPHQL_URL" \
  28. -X POST \
  29. -H "Content-Type: application/json" \
  30. -d '{
  31. "query": "{ Get { ScientificArticle { title source_file summary_et transport_context } } }"
  32. }' \
  33. | jq -r '.data.Get.ScientificArticle[] |
  34. "\n## \(.title | gsub("\""; ""))\n\n" +
  35. "**Allikfail:** `\(.source_file | split("/") | .[-1])`\n\n" +
  36. "### Kokkuvõte (eesti keeles)\n\n" +
  37. (.summary_et // "Andmeid pole saadaval") + "\n\n" +
  38. "### Transpordiplaneerimise kontekst\n\n" +
  39. (
  40. if .transport_context != null then
  41. (
  42. if (.transport_context | type) == "object" then
  43. (
  44. "#### Teoreetiline panus\n\n" +
  45. (.transport_context.analysis // "") + "\n\n" +
  46. "#### Praktiline rakendatavus\n\n" +
  47. (.transport_context.analysis // "") + "\n\n" +
  48. "#### Probleemilahendus\n\n" +
  49. (.transport_context.analysis // "") + "\n\n" +
  50. "#### Piirangud\n\n" +
  51. (.transport_context.analysis // "") + "\n\n" +
  52. "**Relevantsuse skoor:** " +
  53. ((.transport_context.relevance_score // "N/A") | tostring) + "/10"
  54. )
  55. else
  56. (
  57. .transport_context | tostring
  58. )
  59. end
  60. )
  61. else
  62. "Andmeid pole saadaval"
  63. end
  64. ) + "\n\n---\n"' \
  65. >> "$OUTPUT_FILE"
  66. if [ -f "$OUTPUT_FILE" ] && [ -s "$OUTPUT_FILE" ]; then
  67. echo "✅ Markdown fail salvestatud: $OUTPUT_FILE"
  68. echo ""
  69. echo "📊 Faili info:"
  70. wc -l "$OUTPUT_FILE" | awk '{print " - Read: " $1}'
  71. ls -lh "$OUTPUT_FILE" | awk '{print " - Suurus: " $5}'
  72. echo ""
  73. echo "🚀 Järgmised sammud:"
  74. echo " 1. Avage fail VS Code'is:"
  75. echo " code $OUTPUT_FILE"
  76. echo ""
  77. echo " 2. Paremklõps failil → 'Markdown PDF: Export (pdf)'"
  78. echo ""
  79. echo " 3. PDF fail luuakse samasse kausta"
  80. echo ""
  81. echo "💡 Nipp: Iga artikkel algab uuelt lehelt!"
  82. else
  83. echo "❌ Viga: markdown faili ei õnnestunud luua või fail on tühi"
  84. exit 1
  85. fi