2025-02-10 14:37:20 -05:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
|
|
class Users::SafeSettings
|
|
|
|
|
attr_reader :settings
|
|
|
|
|
|
|
|
|
|
def initialize(settings)
|
|
|
|
|
@settings = settings
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# rubocop:disable Metrics/MethodLength
|
|
|
|
|
def config
|
|
|
|
|
{
|
|
|
|
|
fog_of_war_meters: fog_of_war_meters,
|
|
|
|
|
meters_between_routes: meters_between_routes,
|
|
|
|
|
preferred_map_layer: preferred_map_layer,
|
|
|
|
|
speed_colored_routes: speed_colored_routes,
|
|
|
|
|
points_rendering_mode: points_rendering_mode,
|
|
|
|
|
minutes_between_routes: minutes_between_routes,
|
|
|
|
|
time_threshold_minutes: time_threshold_minutes,
|
|
|
|
|
merge_threshold_minutes: merge_threshold_minutes,
|
|
|
|
|
live_map_enabled: live_map_enabled,
|
|
|
|
|
route_opacity: route_opacity,
|
|
|
|
|
immich_url: immich_url,
|
|
|
|
|
immich_api_key: immich_api_key,
|
|
|
|
|
photoprism_url: photoprism_url,
|
|
|
|
|
photoprism_api_key: photoprism_api_key,
|
2025-05-17 14:35:38 -04:00
|
|
|
maps: maps,
|
|
|
|
|
distance_unit: distance_unit
|
2025-02-10 14:37:20 -05:00
|
|
|
}
|
|
|
|
|
end
|
|
|
|
|
# rubocop:enable Metrics/MethodLength
|
|
|
|
|
|
|
|
|
|
def fog_of_war_meters
|
|
|
|
|
settings['fog_of_war_meters'] || 50
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def meters_between_routes
|
|
|
|
|
settings['meters_between_routes'] || 500
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def preferred_map_layer
|
|
|
|
|
settings['preferred_map_layer'] || 'OpenStreetMap'
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def speed_colored_routes
|
|
|
|
|
settings['speed_colored_routes'] || false
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def points_rendering_mode
|
|
|
|
|
settings['points_rendering_mode'] || 'raw'
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def minutes_between_routes
|
|
|
|
|
settings['minutes_between_routes'] || 30
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def time_threshold_minutes
|
|
|
|
|
settings['time_threshold_minutes'] || 30
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def merge_threshold_minutes
|
|
|
|
|
settings['merge_threshold_minutes'] || 15
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def live_map_enabled
|
2025-02-11 15:12:35 -05:00
|
|
|
return settings['live_map_enabled'] if settings.key?('live_map_enabled')
|
|
|
|
|
|
|
|
|
|
true
|
2025-02-10 14:37:20 -05:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def route_opacity
|
|
|
|
|
settings['route_opacity'] || 0.6
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def immich_url
|
|
|
|
|
settings['immich_url']
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def immich_api_key
|
|
|
|
|
settings['immich_api_key']
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def photoprism_url
|
|
|
|
|
settings['photoprism_url']
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def photoprism_api_key
|
|
|
|
|
settings['photoprism_api_key']
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def maps
|
|
|
|
|
settings['maps'] || {}
|
|
|
|
|
end
|
2025-05-17 14:35:38 -04:00
|
|
|
|
|
|
|
|
def distance_unit
|
2025-05-17 15:53:50 -04:00
|
|
|
settings.dig('maps', 'distance_unit') || 'km'
|
2025-05-17 14:35:38 -04:00
|
|
|
end
|
2025-02-10 14:37:20 -05:00
|
|
|
end
|