Files
Gov_Travel_App/scripts/show_country_rates.py
mblanke 66b72d5f74 Integrate OpenFlights API for free, no-auth flight data generation
- Added openFlightsService.js to fetch and cache OpenFlights airport/airline/routes data
- Validates airport codes exist in OpenFlights database (6072+ airports)
- Generates realistic flights using major international airlines
- Creates varied routing options: direct, 1-stop, 2-stop flights
- Updated flightService.js to use OpenFlights as primary source before Amadeus
- OpenFlights as fallback if Amadeus unavailable or returns no results
- No API keys or authentication required
- Cached locally to avoid repeated network requests
- Realistic pricing, times, and stop locations

Docker container rebuilt with OpenFlights integration.
2026-01-13 10:32:05 -05:00

55 lines
1.7 KiB
Python

import sqlite3
conn = sqlite3.connect('data/travel_rates_scraped.sqlite3')
cursor = conn.cursor()
countries = ['Latvia', 'Germany', 'Dominican Republic', 'Brazil', 'Australia']
for country in countries:
print(f"\n{'='*80}")
print(f"{country.upper()}")
print(f"{'='*80}")
# Get all cities for this country
cursor.execute("""
SELECT DISTINCT city, currency
FROM rate_entries
WHERE country = ? AND city IS NOT NULL
ORDER BY city
""", (country,))
cities = cursor.fetchall()
if not cities:
print(f"No cities found for {country}")
continue
for city_name, currency in cities:
print(f"\n📍 {city_name} ({currency})")
print("-" * 80)
# Get meal rates for this city
cursor.execute("""
SELECT rate_type, rate_amount
FROM rate_entries
WHERE country = ? AND city = ? AND rate_type IN
('breakfast', 'lunch', 'dinner', 'incidental amount')
ORDER BY CASE
WHEN rate_type = 'breakfast' THEN 1
WHEN rate_type = 'lunch' THEN 2
WHEN rate_type = 'dinner' THEN 3
WHEN rate_type = 'incidental amount' THEN 4
END
""", (country, city_name))
rates = cursor.fetchall()
if rates:
for rate_type, amount in rates:
# Format the display
type_display = rate_type.replace('incidental amount', 'Incidentals').title()
print(f" {type_display:.<25} ${amount:>8.2f} {currency}")
else:
print(" No rate details found")
conn.close()