From b768990e054b1a61cfdcd570de03e940dc694d4d Mon Sep 17 00:00:00 2001 From: TopherMayor Date: Thu, 30 Apr 2026 21:17:48 -0700 Subject: [PATCH] Expand flight search coverage --- price-watch/watch-targets.json | 8 ++++++-- public/index.html | 6 ++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/price-watch/watch-targets.json b/price-watch/watch-targets.json index f673673..d446424 100644 --- a/price-watch/watch-targets.json +++ b/price-watch/watch-targets.json @@ -44,8 +44,11 @@ "categories": ["flight"], "bookingType": "standalone", "requiredChecks": [ - "LAX to SJD date-matched round trip", - "ONT to SJD date-matched round trip", + "LAX to SJD date-matched round trip on airline and travel sites", + "ONT to SJD date-matched round trip on airline and travel sites", + "Google Flights exact-date search", + "KAYAK exact-date flight search", + "airline direct-booking results when publicly visible", "capture airline, stops, schedule window, baggage caveats, and total price per traveler" ] }, @@ -164,6 +167,7 @@ "notes": [ "Use seed-data.js as the current baseline for names, links, and budget assumptions.", "Check hotels, flights, golf, nightlife, and excursions on every run before updating itinerary or budget recommendations.", + "For flights, search both airline direct-booking pages and travel aggregators such as Google Flights, KAYAK, Expedia, and similar public flight search tools when available.", "Differentiate bundled package prices from standalone booking prices using bookingType and priceBasis on every price point.", "For package quotes, list the included and excluded components so budgets do not double-count flights, hotels, transfers, or resort credits.", "For standalone quotes, list the exact unit being priced: per night, per traveler, per person, per group, per round, or per table.", diff --git a/public/index.html b/public/index.html index 6ceeff7..e1872fe 100644 --- a/public/index.html +++ b/public/index.html @@ -3132,6 +3132,12 @@ switch(type) { case 'gmaps': url = `https://www.google.com/maps/search/${encodeURIComponent(q)}`; break; case 'flights': url = `https://www.google.com/travel/flights/search?q=${encodeURIComponent(q)}&tfpla=on`; break; + case 'flights-google': url = `https://www.google.com/travel/flights/search?q=${encodeURIComponent(q)}&tfpla=on`; break; + case 'flights-kayak': url = `https://www.kayak.com/flights/${encodeURIComponent(q)}`; break; + case 'flights-expedia': url = `https://www.expedia.com/Flights-Search?trip=roundtrip&leg1=from:${encodeURIComponent(q)},to:SJD,departure:${encodeURIComponent('2027-02-03TANYT')}&leg2=from:SJD,to:${encodeURIComponent(q)},departure:${encodeURIComponent('2027-02-07TANYT')}`; break; + case 'flights-united': url = `https://www.united.com/en/us/fsr/choose-flights?f=1&t=SJD&d=2027-02-03&tt=2027-02-07&pt=roundtrip`; break; + case 'flights-delta': url = `https://www.delta.com/flight-search/search?tripType=roundtrip&inputOrigin=${encodeURIComponent(q)}&destination=SJD&departureDate=2027-02-03&returnDate=2027-02-07`; break; + case 'flights-alaska': url = `https://www.alaskaair.com/booking/flights`; break; case 'hotels': url = `https://www.kayak.com/hotels/${encodeURIComponent(q)}/2admins`; break; case 'viator': url = `https://www.viator.com/search/${encodeURIComponent(q)}`; break; case 'expedia': url = `https://www.expedia.com/Thotel-Search?destination=${encodeURIComponent(q)}`; break;