ctucx.git: trainsearch

web based trip-planner, fork of https://cyberchaos.dev/yuka/trainsearch

commit 524765015a611484d4d5a6bcc109969289b9a14a
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(-)
M
src/app_functions.js
|
55
++++++++++++++++++++++++++++++++-----------------------
M
src/settings.js
|
2
+-
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';
 };