module Settings module NostrSettings extend ActiveSupport::Concern included do field :nostr_enabled, type: :boolean, default: ENV["NOSTR_PRIVATE_KEY"].present? field :nostr_private_key, type: :string, default: ENV["NOSTR_PRIVATE_KEY"].presence field :nostr_public_key, type: :string, default: ENV["NOSTR_PUBLIC_KEY"].presence field :nostr_public_key_primary_domain, type: :string, default: ENV["NOSTR_PUBLIC_KEY_PRIMARY_DOMAIN"].presence field :nostr_relay_url, type: :string, default: ENV["NOSTR_RELAY_URL"].presence field :nostr_zaps_relay_limit, type: :integer, default: 12 field :nostr_discovery_relays, type: :array, default: %w[ wss://nostr.kosmos.org wss://purplepag.es wss://relay.nostr.band wss://njump.me wss://relay.damus.io ] def self.nostr_relay_url_http self.nostr_relay_url.gsub(/^ws:/, "http:") .gsub(/^wss:/, "https:") end end end end