# frozen_string_literal: true require "excon" module DiscourseNarrativeBot class QuoteGenerator API_ENDPOINT = "http://api.forismatic.com/api/1.0/".freeze def self.format_quote(quote, author) I18n.t("discourse_narrative_bot.quote.results", quote: quote, author: author) end def self.generate(user) quote, author = if !user.effective_locale.start_with?("en") translation_key = "discourse_narrative_bot.quote.#{rand(1..10)}" [I18n.t("#{translation_key}.quote"), I18n.t("#{translation_key}.author")] else connection = Excon.new("#{API_ENDPOINT}?lang=en&format=json&method=getQuote") response = connection.request(expects: [200, 201], method: :Get) response_body = JSON.parse(response.body) [response_body["quoteText"].strip, response_body["quoteAuthor"].strip] end format_quote(quote, author) end end end