From 944363c06995196f68a57997973b11eac93d7d59 Mon Sep 17 00:00:00 2001 From: Alystrasz Date: Fri, 5 Aug 2022 01:12:59 +0200 Subject: feat: handle release notes fetching with no internet When release notes (either Northstar or Viper) fetching fails, if cache contains data, we display it even if it's outdated; if cache is empty, we display an error message in place of release notes. --- src/extras/requests.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/extras/requests.js') diff --git a/src/extras/requests.js b/src/extras/requests.js index 16b1330..c609da3 100644 --- a/src/extras/requests.js +++ b/src/extras/requests.js @@ -103,6 +103,20 @@ async function getNsReleaseNotes() { _saveCache(cache); resolve( cache[NORTHSTAR_RELEASE_NOTES_KEY]["body"] ); }); + }) + + // When GitHub cannot be reached (when user doesn't have Internet + // access for instance), we return latest cache content even if + // it's not up-to-date, or display an error message if cache + // is empty. + .on('error', () => { + if ( cache[NORTHSTAR_RELEASE_NOTES_KEY] ) { + console.warn("Couldn't fetch Northstar release notes, returning data from cache."); + resolve( cache[NORTHSTAR_RELEASE_NOTES_KEY]["body"] ); + } else { + console.error("Couldn't fetch Northstar release notes, cache is empty."); + resolve( ["Couldn't fetch Northstar release notes.\nTry again later!"] ); + } }); } }); @@ -140,6 +154,20 @@ async function getVpReleaseNotes() { _saveCache(cache); resolve( cache[VIPER_RELEASE_NOTES_KEY]["body"] ); }); + }) + + // When GitHub cannot be reached (when user doesn't have Internet + // access for instance), we return latest cache content even if + // it's not up-to-date, or display an error message if cache + // is empty. + .on('error', () => { + if ( cache[VIPER_RELEASE_NOTES_KEY] ) { + console.warn("Couldn't fetch Viper release notes, returning data from cache."); + resolve( cache[VIPER_RELEASE_NOTES_KEY]["body"] ); + } else { + console.error("Couldn't fetch Viper release notes, cache is empty."); + resolve( ["Couldn't fetch Viper release notes.\nTry again later!"] ); + } }); } }); -- cgit v1.2.3 From c4e77a0f19804c94bc21c6d90dd3c49a37d4d5cb Mon Sep 17 00:00:00 2001 From: Alystrasz Date: Sat, 6 Aug 2022 22:46:41 +0200 Subject: feat: getLatestNsVersion returns false if no Internet --- src/extras/requests.js | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/extras/requests.js') diff --git a/src/extras/requests.js b/src/extras/requests.js index c609da3..6066e90 100644 --- a/src/extras/requests.js +++ b/src/extras/requests.js @@ -58,6 +58,11 @@ async function getLatestNsVersion() { _saveCache(cache); resolve( cache[NORTHSTAR_LATEST_RELEASE_KEY]["body"]["tag_name"] ); }); + }) + + .on('error', () => { + console.error('Failed to get latest Northstar version.'); + resolve( false ); }); } }); -- cgit v1.2.3 From 77f7e6fe85c243371c676ec4d4f60de8920d938d Mon Sep 17 00:00:00 2001 From: Alystrasz Date: Sat, 6 Aug 2022 23:26:46 +0200 Subject: feat: translate "impossible to fetch release notes" messages --- src/extras/requests.js | 5 +++-- src/lang/en.json | 5 ++++- src/lang/fr.json | 5 ++++- 3 files changed, 11 insertions(+), 4 deletions(-) (limited to 'src/extras/requests.js') diff --git a/src/extras/requests.js b/src/extras/requests.js index 6066e90..7509e9e 100644 --- a/src/extras/requests.js +++ b/src/extras/requests.js @@ -2,6 +2,7 @@ const { app } = require("electron"); const path = require("path"); const fs = require("fs"); const { https } = require("follow-redirects"); +const lang = require("../lang"); // all requests results are stored in this file @@ -120,7 +121,7 @@ async function getNsReleaseNotes() { resolve( cache[NORTHSTAR_RELEASE_NOTES_KEY]["body"] ); } else { console.error("Couldn't fetch Northstar release notes, cache is empty."); - resolve( ["Couldn't fetch Northstar release notes.\nTry again later!"] ); + resolve( [lang("request.northstar.noReleaseNotes")] ); } }); } @@ -171,7 +172,7 @@ async function getVpReleaseNotes() { resolve( cache[VIPER_RELEASE_NOTES_KEY]["body"] ); } else { console.error("Couldn't fetch Viper release notes, cache is empty."); - resolve( ["Couldn't fetch Viper release notes.\nTry again later!"] ); + resolve( [lang("request.viper.noReleaseNotes")] ); } }); } diff --git a/src/lang/en.json b/src/lang/en.json index d48b3b6..51093fa 100644 --- a/src/lang/en.json +++ b/src/lang/en.json @@ -161,5 +161,8 @@ "general.missingpath": "Game location could not be found automatically! Please select it manually!", "general.notinstalled": "Northstar is not installed!", "general.launching": "Launching", - "general.invalidconfig": "Your config file is improperly formatted, if it's been manually edited, please validate that everything is typed correctly.\n\nIf you did not manually edit the config file, it is recommended to simply reset the config.\n\nTo reset your config file simply click \"Ok\" below.\n\nMore details:\n" + "general.invalidconfig": "Your config file is improperly formatted, if it's been manually edited, please validate that everything is typed correctly.\n\nIf you did not manually edit the config file, it is recommended to simply reset the config.\n\nTo reset your config file simply click \"Ok\" below.\n\nMore details:\n", + + "request.viper.noReleaseNotes": "Couldn't fetch Viper release notes.\nTry again later!", + "request.northstar.noReleaseNotes": "Couldn't fetch Northstar release notes.\nTry again later!" } diff --git a/src/lang/fr.json b/src/lang/fr.json index cd4e4dc..4f819b4 100644 --- a/src/lang/fr.json +++ b/src/lang/fr.json @@ -161,5 +161,8 @@ "general.missingpath": "Le chemin du client n'a pu être trouvé automatiquement, merci de le sélectionner manuellement.", "general.notinstalled": "Northstar n'est pas installé !", "general.launching": "Lancement", - "general.invalidconfig": "Votre fichier de configuration n'est pas formaté correctement ; si vous l'avez manuellement édité, veuillez vérifier son contenu.\n\nSinon, il est recommandé de remettre la configuration à zéro.\n\nPour cela, cliquez sur le bouton \"Ok\" en-dessous de ce message.\n\nPlus d'informations :\n" + "general.invalidconfig": "Votre fichier de configuration n'est pas formaté correctement ; si vous l'avez manuellement édité, veuillez vérifier son contenu.\n\nSinon, il est recommandé de remettre la configuration à zéro.\n\nPour cela, cliquez sur le bouton \"Ok\" en-dessous de ce message.\n\nPlus d'informations :\n", + + "request.viper.noReleaseNotes": "Impossible de récupérer les notes de mises à jour de Viper.\nVeuillez réessayer plus tard.", + "request.northstar.noReleaseNotes": "Impossible de récupérer les notes de mises à jour de Northstar.\nVeuillez réessayer plus tard." } -- cgit v1.2.3