commit 524765015a611484d4d5a6bcc109969289b9a14a
parent 911c84fc88d819ef7b1cdb0e7a93ae10dc246b27
Author: Katja (ctucx) <git@ctu.cx>
Date: Thu, 23 Jan 2025 16:24:27 +0100
parent 911c84fc88d819ef7b1cdb0e7a93ae10dc246b27
Author: Katja (ctucx) <git@ctu.cx>
Date: Thu, 23 Jan 2025 16:24:27 +0100
app_functions.js: rename `mkSettings` to `journeySettings`
2 files changed, 33 insertions(+), 24 deletions(-)
diff --git a/src/app_functions.js b/src/app_functions.js @@ -16,6 +16,13 @@ subscribeSettings(async () => { if (settings.showDS100) await loadDS100(); }); +const journeySettings = () => { return { + stopovers: true, + polylines: false, + tickets: settings.showPrices, + language: settings.language, +}}; + const addJourneys = async data => { if (!data) return false; @@ -51,15 +58,6 @@ const addJourneys = async data => { //} }; -const mkSettings = () => { - return { - stopovers: true, - polylines: false, - tickets: settings.showPrices || false, - language: settings.language, - }; -}; - const processJourneys = data => { for (const journey of data.journeys) processJourney(journey); } @@ -90,6 +88,7 @@ const processJourney = journey => { export const getJourneys = async slug => { let data = await db.getJourneysOverview(slug); if (!data) return null; + return { ...data, journeys: await Promise.all(data.journeys.map(x => getJourney(x, data.profile))), @@ -97,18 +96,19 @@ export const getJourneys = async slug => { }; export const getJourney = async (refreshToken, profile) => { - let data = await db.getJourney(refreshToken); - const settings = mkSettings(); - if (!data || JSON.stringify(data.settings) != JSON.stringify(settings)) { + let data = await db.getJourney(refreshToken); + + if (!data || JSON.stringify(data.settings) != JSON.stringify(journeySettings())) { data = await refreshJourney(refreshToken, profile); } + processJourney(data); return data; }; export const getMoreJourneys = async (slug, mode) => { const saved = await db.getJourneysOverview(slug); - const params = { ...saved.params, ...mkSettings() }; + const params = { ...saved.params, ...journeySettings() }; params[mode+'Than'] = saved[mode+'Ref']; let { departure, arrival, from, to, ...moreOpt } = params; const [newData, ...existingJourneys] = await Promise.all( @@ -143,17 +143,20 @@ export const refreshJourneys = async (slug) => { }; export const refreshJourney = async (refreshToken, profile) => { - const client = await getHafasClient(profile || settings.profile || "db"); - const requestSettings = mkSettings(); + const client = await getHafasClient(profile || settings.profile || "db"); const [saved, data] = await Promise.all([ db.getJourney(refreshToken), - client.refreshJourney(trainsearchToHafas(refreshToken), requestSettings) + client.refreshJourney(trainsearchToHafas(refreshToken), journeySettings()) ]); const {journey} = data; - journey.settings = requestSettings; + + journey.settings = journeySettings(); journey.refreshToken = hafasToTrainsearch(journey.refreshToken); + if (saved) journey.slug = saved.slug; + db.updateJourney(journey); + return journey; }; @@ -161,26 +164,32 @@ const generateSlug = () => { const len = 8; let result = ''; const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + for (let i = 0; i < len; i++) result += characters.charAt(Math.floor(Math.random() * characters.length)); + return result; }; export const newJourneys = async (params) => { - const requestSettings = mkSettings(); const { from, to, ...moreOpts } = params; let data; - data = await client.journeys(from, to, { ...requestSettings, ...moreOpts }); + + data = await client.journeys(from, to, { ...journeySettings(), ...moreOpts }); + for (const journey of data.journeys) { journey.refreshToken = hafasToTrainsearch(journey.refreshToken); } - data.slug = generateSlug(); + + data.slug = generateSlug(); data.indexOffset = 0; - data.params = params; - data.settings = requestSettings; - data.profile = settings.profile; + data.params = params; + data.settings = journeySettings(); + data.profile = settings.profile; + await addJourneys(data); processJourneys(data); + return data; };
diff --git a/src/settings.js b/src/settings.js @@ -2,7 +2,7 @@ import { db } from './dataStorage.js'; const getDefaultLanguage = () => { const userLang = navigator.language || navigator.userLanguage; - if (['en', 'de'].includes(userLang)) return userLang; + if (['en', 'de', 'nl'].includes(userLang)) return userLang; return 'en'; };