class RssController < ApplicationController include TagHelper def feed @weather_arts = WeatherArt.order(created_at: :desc).includes(:image_attachment, city: [ :country, :state ]).limit(20) Rails.logger.info "RssController#feed - Format: #{request.format}" respond_to do |format| format.rss { render layout: false } format.json { render json: generate_json_feed } end end private def generate_json_feed { version: "https://jsonfeed.org/version/1.1", title: "Today AI Weather Art", home_page_url: root_url, feed_url: rss_feed_url(format: :json), items: @weather_arts.map do |art| { id: city_weather_art_url(art.city, art), url: city_weather_art_url(art.city, art), title: "#{art.city.full_name} Weather Art", content_html: "
#{art.description}
", date_published: art.created_at.iso8601, image: art.image.attached? ? rails_blob_url(art.webp_image.processed) : nil, metadata: { country: format_as_tag(art.city&.country&.name), city: format_as_tag(art.city&.name), state: format_as_tag(art.city&.state&.name), region: format_as_tag(art.city&.country&.region&.name), subregion: format_as_tag(art.city&.country&.subregion&.name), description: art.description, prompt: art.prompt, date: art.weather_date&.strftime("%Y-%m-%d"), dateYear: art.weather_date&.strftime("%Y"), formattedDate: art.formatted_time(:all, true), cityUrl: city_url(art.city) } } end } end end