From 32aac8e1a43f89e735199b9b4c17f8cd384e3f43 Mon Sep 17 00:00:00 2001 From: Sebastien Chassande Date: Sun, 12 Jan 2025 07:53:22 +0100 Subject: [PATCH] =?UTF-8?q?ajout=20du=20script=20de=20recup=C3=A9ration=20?= =?UTF-8?q?des=20urls=20de=20gestion=20pour=20les=20speakers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +++ voxxrin/talks-url.cjs | 51 +++++++++++++++++++++++++++++++++++++++++++ voxxrin/voxxrin.sh | 30 +++++++++++++++++++++++++ 3 files changed, 84 insertions(+) create mode 100644 voxxrin/talks-url.cjs diff --git a/.gitignore b/.gitignore index c7fa1b5..2974e34 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,6 @@ src/astro_tmp_pages_* voxxrin/talks-stats.csv voxxrin/talks-stats.json +voxxrin/talks-url.csv +voxxrin/talks-url.json +voxxrin/feedback*.json diff --git a/voxxrin/talks-url.cjs b/voxxrin/talks-url.cjs new file mode 100644 index 0000000..813a321 --- /dev/null +++ b/voxxrin/talks-url.cjs @@ -0,0 +1,51 @@ +const fs = require('fs'); +const createCsvWriter = require('csv-writer').createObjectCsvWriter; + +// Fonction principale +async function convertJsonToCsv(inputFilePath, outputFilePath) { + try { + // Lire le fichier JSON + const jsonData = JSON.parse(fs.readFileSync(inputFilePath, 'utf8')); + + // Vérification de la structure attendue + if (!jsonData || !Array.isArray(jsonData)) { + throw new Error("Le fichier JSON n'a pas le format attendu."); + } + // Créer un tableau contenant les données pour le CSV + const csvData = jsonData.filter(item => item.speakersFullNames.length > 0) + .map(item => ({ + talkId: item.talkId, + talkTitle: item.speakersFullNames.join(', '), + registrationUrl: "https://"+item.registrationUrl + })); + + // Configurer le writer CSV + const csvWriter = createCsvWriter({ + path: outputFilePath, + header: [ + { id: 'talkId', title: 'talkId' }, + { id: 'talkTitle', title: 'talkTitle' }, + { id: 'registrationUrl', title: 'registrationUrl' } + ] + }); + + // Écrire les données dans le fichier CSV + await csvWriter.writeRecords(csvData); + + console.log(`Fichier CSV généré avec succès : ${outputFilePath}`); + } catch (error) { + console.error(`Erreur : ${error.message}`); + } +} + +// Récupérer les paramètres de la ligne de commande +const args = process.argv.slice(2); + +if (args.length < 1) { + console.error("Usage : node talks-url.cjs []"); + process.exit(1); +} + +const inputFilePath = args[0]; +const outputFilePath = args.length > 1 ? args[1] : 'talks-url.csv'; +convertJsonToCsv(inputFilePath, outputFilePath); diff --git a/voxxrin/voxxrin.sh b/voxxrin/voxxrin.sh index d10b1ac..29ee13c 100755 --- a/voxxrin/voxxrin.sh +++ b/voxxrin/voxxrin.sh @@ -12,6 +12,7 @@ ############################################################################### # Variables de configuration ############################################################################### +VOXXRIN_FRONT_END_BASE_URL=app.voxxr.in VOXXRIN_BASE_URL=https://api.voxxr.in VOXXRIN_EVENT_ID=snowcamp25 @@ -47,6 +48,29 @@ function getTalksStats() { rm talks-stats.json } +############################################################################### +# Recuperation des feedbacks d'un talk +############################################################################### +function getTalkFeedbacks() { + TALK_ID=$2 + echo "Talk: $TALK_ID" + NOW=$(date -u +"%Y-%m-%dT%H:%M:%SZ") + echo "Now: $NOW" + #{{baseUrl}}/api/events/{{eventId}}/talks/{{talkId}}/feedbacks?token={{secretToken}}&updatedSince={{updatedSinceISODatetime}} + curl --request GET --silent --url "${VOXXRIN_BASE_URL}/api/events/${VOXXRIN_EVENT_ID}/talks/${TALK_ID}/feedback?token=${VOXXRIN_TOKEN}&updatedSince=${NOW}" > feedback-${TALK_ID}.json +} + +############################################################################### +# Recuperation de l'url de gestion des talks +############################################################################### +function getTalksUrl() { + #{{baseUrl}}/api/events/{{eventId}}/talksEditors?token={{secretToken}}&baseUrl={{voxxrinInstanceBaseUrl}} + curl --request GET --silent --url "${VOXXRIN_BASE_URL}/api/events/${VOXXRIN_EVENT_ID}/talksEditors?token=${VOXXRIN_TOKEN}&baseUrl=${VOXXRIN_FRONT_END_BASE_URL}" > talks-url.json + node talks-url.cjs talks-url.json + rm talks-url.json +} + + ############################################################################### # Programme principal @@ -58,6 +82,12 @@ case $1 in "talks-stats") getTalksStats $* ;; + "talks-url") + getTalksUrl $* + ;; + "talk-feedbacks") + getTalkFeedbacks $* + ;; *) usage ;;