class Muck::TopicsController < ApplicationController unloadable before_filter :adjust_format_for_iphone before_filter :check_terms, :except => [:new] before_filter :build_tag_feeds, :only => [:show, :rss_discovery] def show respond_to do |format| format.html do @opml_path = topic_path(params[:id], :service_ids => params[:service_ids], :format => 'opml') render :template => 'topics/show' end format.opml { render :template => 'topics/show' } format.iphone { render :template => 'topics/show' } end end def rss_discovery render :template => 'aggregations/rss_discovery' end def photos @terms = CGI.unescape(params[:id]) @page_title = @title = @terms.titleize @photo_feeds = Service.build_photo_feeds(@terms, current_user, params[:service_ids]) @number_of_images = 36 respond_to do |format| format.html do render :template => 'topics/photos' end format.iphone { render :template => 'topics/photos' } end end def videos @terms = CGI.unescape(params[:id]) @page_title = @title = @terms.titleize @videos_feeds = Service.build_video_feeds(@terms, current_user, params[:service_ids]) @number_of_videos = 36 respond_to do |format| format.html do render :template => 'topics/videos' end format.iphone { render :template => 'topics/videos' } end end def new @page_title = I18n.t('muck.raker.new_topic_title') @service_categories = ServiceCategory.sorted.find(:all, :include => [:tag_services]) respond_to do |format| format.html { render :template => 'topics/new' } end end def create @terms = CGI.escape(params[:terms]) respond_to do |format| format.html { redirect_to topic_path(@terms, :service_ids => params[:service_ids]) } format.opml { redirect_to topic_path(@terms, :service_ids => params[:service_ids], :format => 'opml') } end end protected def check_terms if params[:id].blank? && params[:terms].blank? flash[:error] = I18n.t('muck.raker.no_terms_error') redirect_to new_topic_path end end def build_tag_feeds @terms = CGI.unescape(params[:id]) @page_title = @title = @terms.titleize @photo_feeds = Service.build_photo_feeds(@terms, current_user, params[:service_ids]) @video_feeds = Service.build_video_feeds(@terms, current_user, params[:service_ids]) @bookmark_feeds = Service.build_bookmark_feeds(@terms, current_user, params[:service_ids]) @music_feeds = Service.build_music_feeds(@terms, current_user, params[:service_ids]) @general_feeds = Service.build_general_feeds(@terms, current_user, params[:service_ids]) @discovered_feeds = GoogleFeedRequest.find_feeds(@terms) @feeds = @photo_feeds + @video_feeds + @bookmark_feeds + @music_feeds + @general_feeds + @discovered_feeds @number_of_items = 6 @number_of_images = 12 @number_of_videos = 6 end end