Compare commits

..

64 Commits

Author SHA1 Message Date
b25b5913db Update dependency @types/node to v24.0.13
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-07-11 02:08:00 +00:00
45cd88de52 Update dependency @types/node to v24.0.12
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-07-09 02:07:36 +00:00
2b1ba58033 Update dependency esbuild to v0.25.6
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-07-08 02:07:42 +00:00
26c340db98 Lock file maintenance
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-07-05 02:10:50 +00:00
4e089f53e5 Update dependency @types/node to v24.0.10
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-07-02 02:08:07 +00:00
f87fcb27dc Lock file maintenance
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-06-29 02:11:13 +00:00
dfac15e4b9 Update dependency @types/node to v24.0.7
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-06-29 02:10:51 +00:00
0c60473a3f Update dependency undici to v7.11.0
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-06-28 02:04:52 +00:00
e18a5f1d58 Update dependency @types/node to v24.0.6
All checks were successful
continuous-integration/drone/push Build is passing
2025-06-28 02:04:37 +00:00
86d704aa16 Lock file maintenance
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-06-21 02:05:22 +00:00
b0184893e3 Update dependency @types/node to v24.0.3
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-06-17 02:01:53 +00:00
b6e7a52451 Update dependency @types/node to v24
All checks were successful
continuous-integration/drone/push Build is passing
2025-06-15 02:04:51 +00:00
23148f8751 Lock file maintenance
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-06-15 02:04:44 +00:00
f8cb71398f Update dependency fastify to v5.4.0
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-06-14 02:04:00 +00:00
5464bd2d20 Update dependency @types/node to v22.15.31
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-06-11 02:04:05 +00:00
610681ae0a Lock file maintenance
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-06-07 02:05:28 +00:00
693180b8a5 Update dependency @types/node to v22.15.30
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-06-06 02:03:19 +00:00
6a8df01264 Lock file maintenance
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-06-01 02:04:12 +00:00
3d57292561 Update dependency esbuild to v0.25.5
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-05-31 02:05:25 +00:00
5a7759f89b Update dependency @types/node to v22.15.29
All checks were successful
continuous-integration/drone/push Build is passing
2025-05-31 02:05:15 +00:00
7a74106eb2 Lock file maintenance
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-05-25 02:03:59 +00:00
a6d010a966 Update dependency undici to v7.10.0
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-05-25 02:03:38 +00:00
ae7f3ec602 Update dependency @fastify/static to v8.2.0
All checks were successful
continuous-integration/drone/push Build is passing
2025-05-24 02:04:47 +00:00
e3008815bf Update dependency @types/node to v22.15.21
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-05-21 02:01:52 +00:00
3d58ecf99b Lock file maintenance
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-05-18 02:04:10 +00:00
c6a3cb322f Update src/server/api.ts
All checks were successful
continuous-integration/drone/push Build is passing
2025-05-17 08:43:07 +02:00
619a06629b Update dependency fastify to v5.3.3
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-05-17 02:10:46 +00:00
9f6dd77fb4 Update dependency @types/node to v22.15.18
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-05-15 02:06:55 +00:00
38d895a959 WIP
All checks were successful
continuous-integration/drone/push Build is passing
2025-05-15 00:55:06 +02:00
6690b055b4 Fix noversion
All checks were successful
continuous-integration/drone/push Build is passing
2025-05-15 00:47:04 +02:00
09b9830fd0 Update
All checks were successful
continuous-integration/drone/push Build is passing
2025-05-15 00:35:39 +02:00
d1c4a23e26 Update dependency undici to v7.9.0
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-05-11 02:07:41 +00:00
ae9c653ea9 Update dependency @fastify/view to v11.1.0
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-05-11 02:07:26 +00:00
8cec4c4d6c Update dependency esbuild to v0.25.4
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-05-10 02:09:10 +00:00
4095738cbc Update dependency @types/node to v22.15.17
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-05-09 02:03:50 +00:00
fdb5f04c9a Lock file maintenance
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-05-04 02:04:36 +00:00
ee69f6a101 Lock file maintenance
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-05-03 02:05:15 +00:00
5389670cfd Update dependency @types/node to v22.15.3
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-04-29 02:01:51 +00:00
910afba8e5 Lock file maintenance
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-04-27 02:05:48 +00:00
9912cd14ae Update dependency nodemon to v3.1.10
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-04-27 02:05:32 +00:00
da8fb171b9 Update dependency @types/node to v22.15.2
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-04-26 02:05:49 +00:00
ba62d6bddf Update dependency esbuild to v0.25.3
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-04-24 02:02:52 +00:00
6811b16ec4 Lock file maintenance
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-04-20 02:04:31 +00:00
fe96dbc5c2 Update dependency jsdom to v26.1.0
All checks were successful
continuous-integration/drone/push Build is passing
2025-04-19 02:05:06 +00:00
94161d5be6 Update dependency fastify to v5.3.2
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-04-19 02:04:54 +00:00
73394bc922 Lock file maintenance
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-04-13 02:05:25 +00:00
ee8d898fe8 Update dependency fastify to v5.3.0
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-04-13 02:05:04 +00:00
f47b52cd43 Update dependency @fastify/leveldb to v6.1.0
All checks were successful
continuous-integration/drone/push Build is passing
2025-04-12 02:04:30 +00:00
21cc72e1a4 Update dependency @types/node to v22.14.1
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-04-12 02:04:20 +00:00
3cf8a5137b Update dependency undici to v7.7.0
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-04-06 02:04:39 +00:00
cde4adccdc Update dependency @types/node to v22.14.0
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-04-05 02:05:32 +00:00
041f4c1e74 Update dependency esbuild to v0.25.2
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-03-31 02:02:09 +00:00
47e4dda875 Lock file maintenance
All checks were successful
continuous-integration/drone/push Build is passing
2025-03-30 02:05:32 +00:00
3026ec0b0f Update dependency undici to v7.6.0
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-03-30 02:05:09 +00:00
b021786b1a Update dependency fastify to v5.2.2
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-03-29 02:05:54 +00:00
ad3effe687 Update dependency @types/node to v22.13.14
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-03-28 02:02:58 +00:00
b307271c73 Update dependency @types/node to v22.13.11
All checks were successful
continuous-integration/drone/push Build is passing
2025-03-22 02:09:48 +00:00
0360f78669 Update dependency @fastify/view to v11
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-03-19 02:03:02 +00:00
6588e27c00 Lock file maintenance
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-03-16 02:04:16 +00:00
c57444bb53 Update dependency undici to v7.5.0
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-03-15 02:03:49 +00:00
c8483dc0fc Update dependency esbuild to v0.25.1
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-03-11 02:01:34 +00:00
b2a17d18ce Lock file maintenance
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is passing
2025-03-09 02:04:23 +00:00
7e881d1dea Lock file maintenance
All checks were successful
continuous-integration/drone/push Build is passing
2025-03-08 02:05:44 +00:00
d53e3e56b5 Style & flight
All checks were successful
continuous-integration/drone/push Build is passing
2025-03-07 23:30:49 +01:00
8 changed files with 419 additions and 413 deletions

View File

@ -20,8 +20,8 @@
"dependencies": {
"@fastify/leveldb": "^6.0.0",
"@fastify/static": "^8.0.0",
"@fastify/view": "^10.0.0",
"@types/node": "^22.13.5",
"@fastify/view": "^11.0.0",
"@types/node": "^24.0.0",
"esbuild": "^0.25.0",
"fastify": "^5.2.1",
"jsdom": "^26.0.0",

View File

@ -41,15 +41,20 @@ export const load = (id: string) =>
return res;
});
export const save = (id: string, v: journey) =>
fetch("/api/" + id, { method: "post", body: JSON.stringify(v) })
var version_add = 1
export const save = async (id: string, v: journey) => {
let body = JSON.parse(JSON.stringify(v))
body.version +=version_add;
return fetch("/api/" + id, { method: "post", body: JSON.stringify(body) })
.then((res) => {
if (!res.ok) throw new Error("Error " + res.statusText);
return res.json();
})
.then((_res) => {
version_add+=1;
console.log("Saved...");
});
}
export const query_nominatim = (
q: string,

View File

@ -1,61 +1,96 @@
import { getGeoLine } from "../types/geom";
import * as api from "../api";
const filter_existing = function (tpe: "nominatim" | "travel", leg: leg, r: geoloc[]) {
const filter_existing = function (
tpe: "nominatim" | "travel",
leg: leg,
r: geoloc[]
) {
switch (tpe) {
case 'nominatim':
return r.filter(e => {
case "nominatim":
return r.filter((e) => {
if (leg.hotel && leg.hotel.osm_id == e.osm_id) return false;
if (leg.places.restaurants.find(i => i.osm_id == e.osm_id)) return false;
if (leg.places.activities.find(i => i.osm_id == e.osm_id)) return false;
return true
})
case 'travel':
console.log(r)
return r.filter(e => {
if (leg.travel.find(i => `${(e as any).from}->${(e as any).to}` == `${(i as any).from}->${(i as any).to}`)) return false;
return true
})
if (leg.places.restaurants.find((i) => i.osm_id == e.osm_id))
return false;
if (leg.places.activities.find((i) => i.osm_id == e.osm_id))
return false;
return true;
});
case "travel":
console.log(r);
return r.filter((e) => {
if (
leg.travel.find(
(i) =>
`${(e as any).from}->${(e as any).to}` ==
`${(i as any).from}->${(i as any).to}`
)
)
return false;
return true;
});
}
}
};
const process_results = function (tpe: "nominatim" | "travel", r: geoloc[]) {
switch (tpe) {
case 'nominatim':
case "nominatim":
return r.map((rr) => {
rr.latlon = [parseFloat((rr as any).lat), parseFloat((rr as any).lon)];
rr.latlon = [
parseFloat((rr as any).lat),
parseFloat((rr as any).lon),
];
rr.title = (rr as any).display_name.split(",")[0];
return rr;
});
case 'travel':
console.log(r)
return r.map(el => {
case "travel":
console.log(r);
return r.map((el) => {
(el as any).path = getGeoLine(
{ lat: (el as any).from_geo.lat, lng: (el as any).from_geo.lon },
{ lat: (el as any).to_geo.lat, lng: (el as any).to_geo.lon }, { dist: 2_500_000 }).map(v => [v.lat, v.lng]);
{
lat: (el as any).from_geo.lat,
lng: (el as any).from_geo.lon,
},
{
lat: (el as any).to_geo.lat,
lng: (el as any).to_geo.lon,
},
{ dist: 2_500_000 }
).map((v) => [v.lat, v.lng]);
(el as any).type = "flight";
return el;
});
}
}
};
var _search_set_results: (...arg: any[]) => any;
export const set_search_set_results = function (f: (...arg: any[]) => any) {
_search_set_results = f;
}
};
export const search_nominatim = api.throttle(
(f: string, q: string, bb: [[number, number], [number, number]], leg: leg) =>
api.query_nominatim(q, bb, api.get_filter(f)).catch((_err) => console.log(_err)).then((r) => {
r = process_results('nominatim', r)
r = filter_existing('nominatim', leg, r)
_search_set_results(r)
}), 1000);
(
f: string,
q: string,
bb: [[number, number], [number, number]],
leg: leg
) =>
api
.query_nominatim(q, bb, api.get_filter(f))
.catch((_err) => console.log(_err))
.then((r) => {
r = process_results("nominatim", r);
r = filter_existing("nominatim", leg, r);
_search_set_results(r);
}),
1000
);
export const search_flight = api.throttle(
(f: string, q: string, leg: leg) =>
api.query_flight(q).then((r) => {
r = process_results('travel', r)
r = filter_existing('travel', leg, r)
_search_set_results(r)
}), 2000)
r = process_results("travel", r);
r = filter_existing("travel", leg, r);
_search_set_results(r);
}),
3000
);

View File

@ -141,11 +141,12 @@ const app = new Vue({
},
drawer_click_item: function (item) {
const tpe = this.query.type
this.search_set_clear(item ? true : false);
this.drawer_hover_item();
if (item) {
item.step = -1;
journey_add_place(this.journey, this.query.type, item)
journey_add_place(this.journey, tpe, item)
}
},

View File

@ -35,6 +35,7 @@ declare global {
interface journey {
fmt_ver: number
version: number
title: string
main: leg[]
}
@ -52,6 +53,7 @@ const leg_template: leg = {
}
const journey_template: journey = {
fmt_ver: 1,
version: 0,
title: "New Journey",
main: [leg_template],
}

View File

@ -10,6 +10,7 @@ function migrate_A_to_0(e: journey): journey {
v.travel = v.travel || [];
v.day_title = typeof (v.day_title) == "string" ? [v.day_title] : []
})
e.version = e.version || 0;
console.log(e)
return e;
}

View File

@ -60,31 +60,27 @@ export default function (server, opts, done) {
if (req.params.id == undefined)
return reply.code(400).send({ error: "No ID query parameter" });
server.level.db.get(req.params.id, (err, val) => {
if (err) {
return server.level.db.get(req.params.id)
.then(r=> reply.send(JSON.parse(r)))
.catch(err=>{
console.warn(err);
reply.code(500).send();
} else {
reply.send(JSON.parse(val));
}
});
return reply;
return reply.code(500).send({error: "Error with DB"});
})
});
server.post("/:id", async (req, reply) => {
if (req.params.id == undefined)
return reply.code(400).send({ error: "No ID query parameter" });
server.level.db.put(req.params.id, req.body, (err) => {
if (err) {
console.warn(err);
reply.code(500).send({ error: "Error with DB" });
} else {
reply.send({ content: "ok" });
}
});
return reply;
});
return server.level.db.get(req.params.id).then(r=>JSON.parse(r)).then(r=>r.version||-1).catch(_=>-1).then(db_version=>{
if(db_version+1 == req.body.version || db_version == -1)
return server.level.db.put(req.params.id, req.body)
.then(_=>reply.send({ content: "ok" }))
.catch(_=>reply.code(500).send({ error: "Error with DB" }))
return reply.code(409).send({error:"Too old version, please refresh."});
})
})
done();
};

678
yarn.lock

File diff suppressed because it is too large Load Diff