<commit_before># coding: utf-8
class ProjectsController < ApplicationController
  inherit_resources
  actions :index, :show, :new, :create, :edit, :update
  can_edit_on_the_spot
  skip_before_filter :verify_authenticity_token, :only => [:moip]
  before_filter :can_update_on_the_spot?, :only => :update_attribute_on_the_spot
  before_filter :date_format_convert, :only => [:create, :update]
  def date_format_convert
    params["project"]["expires_at"] = Date.strptime(params["project"]["expires_at"], '%d/%m/%Y')
  end

  def teaser
    @title = "Faça acontecer os projetos em que você acredita"
    if params[:status] == "success"
      flash.now[:success] = "Pronto. Agora é só verificar sua caixa de entrada e confirmar o cadastro. Muito obrigado!"
    elsif params[:status] == "failure"
      flash.now[:failure] = "Ooops. Ocorreu um erro ao adicionar seu email em nossa lista. Por favor, tente novamente."
    end
    render :layout => 'teaser'
  end
  def index
    index! do
      @title = "A primeira plataforma de financiamento colaborativo de projetos criativos do Brasil"
      @recommended = Project.visible.recommended.order('"order", created_at DESC')
      @recent = Project.visible.not_recommended.limit(12).order('created_at DESC')
    end
  end
  def start
    @title = "Envie seu projeto"
  end
  def send_mail
    ProjectsMailer.start_project_email(params[:about], params[:rewards], params[:links], params[:contact], current_user).deliver
    flash[:success] = "Seu projeto foi enviado com sucesso! Logo entraremos em contato. Muito obrigado!"
    redirect_to :root
  end
  def new
    return unless require_login
    new! do
      @title = "Envie seu projeto"
      @project.rewards.build
    end
  end
  def create
    create!(:notice => "Seu projeto foi criado com sucesso! Logo avisaremos se ele foi selecionado. Muito obrigado!")
    @project.reload
    @project.update_attribute :short_url, bitly
  end
  def update
    update!(:notice => "Seu projeto foi atualizado com sucesso!")
  end
  def show
    show!{
      @title = @project.name
      @rewards = @project.rewards.order(:minimum_value)
      @backers = @project.backers.confirmed.limit(12).order("confirmed_at DESC")
    }
  end
  def guidelines
    @title = "Como funciona o Catarse"
  end
  def faq
    @title = "Perguntas frequentes"
  end
  def terms
    @title = "Termos de uso"
  end
  def privacy
    @title = "Política de privacidade"
  end
  def vimeo
    project = Project.new(:video_url => params[:url])
    if project.vimeo
      render :json => project.vimeo.to_json
    else
      render :json => {:id => false}.to_json
    end
  end
  def back
    return unless require_login
    show! do
      @title = "Apoie o #{@project.name}"
      @backer = @project.backers.new(:user_id => current_user.id)
      empty_reward = Reward.new(:id => 0, :minimum_value => 0, :description => "Obrigado. Eu só quero ajudar o projeto.")
      @rewards = [empty_reward] + @project.rewards.order(:minimum_value)
    end
  end
  def review
    params[:backer][:reward_id] = nil if params[:backer][:reward_id] == '0'
    params[:backer][:user_id] = current_user.id
    @project = Project.find params[:id]
    @backer = @project.backers.new(params[:backer])
    unless @backer.save
      flash[:failure] = "Ooops. Ocorreu um erro ao registrar seu apoio. Por favor, tente novamente."
      return redirect_to back_project_path(project)
    end
    session[:thank_you_id] = @project.id
  end
  def thank_you
    unless session[:thank_you_id]
      flash[:failure] = "Ooops. Você só pode acessar esta página depois de apoiar um projeto."
      return redirect_to :root
    end
    @project = Project.find session[:thank_you_id]
    @title = "Muito obrigado"
    session[:thank_you_id] = nil
  end
  def moip
    MoipMailer.payment_received_email(nil, request.remote_ip).deliver
    id = params[:id_transacao]
    status = params[:status_pagamento]
    value = params[:valor]<commit_msg>Ignoring MoIP's know IP<commit_after># coding: utf-8
class ProjectsController < ApplicationController
  inherit_resources
  actions :index, :show, :new, :create, :edit, :update
  can_edit_on_the_spot
  skip_before_filter :verify_authenticity_token, :only => [:moip]
  before_filter :can_update_on_the_spot?, :only => :update_attribute_on_the_spot
  before_filter :date_format_convert, :only => [:create, :update]
  def date_format_convert
    params["project"]["expires_at"] = Date.strptime(params["project"]["expires_at"], '%d/%m/%Y')
  end

  def teaser
    @title = "Faça acontecer os projetos em que você acredita"
    if params[:status] == "success"
      flash.now[:success] = "Pronto. Agora é só verificar sua caixa de entrada e confirmar o cadastro. Muito obrigado!"
    elsif params[:status] == "failure"
      flash.now[:failure] = "Ooops. Ocorreu um erro ao adicionar seu email em nossa lista. Por favor, tente novamente."
    end
    render :layout => 'teaser'
  end
  def index
    index! do
      @title = "A primeira plataforma de financiamento colaborativo de projetos criativos do Brasil"
      @recommended = Project.visible.recommended.order('"order", created_at DESC')
      @recent = Project.visible.not_recommended.limit(12).order('created_at DESC')
    end
  end
  def start
    @title = "Envie seu projeto"
  end
  def send_mail
    ProjectsMailer.start_project_email(params[:about], params[:rewards], params[:links], params[:contact], current_user).deliver
    flash[:success] = "Seu projeto foi enviado com sucesso! Logo entraremos em contato. Muito obrigado!"
    redirect_to :root
  end
  def new
    return unless require_login
    new! do
      @title = "Envie seu projeto"
      @project.rewards.build
    end
  end
  def create
    create!(:notice => "Seu projeto foi criado com sucesso! Logo avisaremos se ele foi selecionado. Muito obrigado!")
    @project.reload
    @project.update_attribute :short_url, bitly
  end
  def update
    update!(:notice => "Seu projeto foi atualizado com sucesso!")
  end
  def show
    show!{
      @title = @project.name
      @rewards = @project.rewards.order(:minimum_value)
      @backers = @project.backers.confirmed.limit(12).order("confirmed_at DESC")
    }
  end
  def guidelines
    @title = "Como funciona o Catarse"
  end
  def faq
    @title = "Perguntas frequentes"
  end
  def terms
    @title = "Termos de uso"
  end
  def privacy
    @title = "Política de privacidade"
  end
  def vimeo
    project = Project.new(:video_url => params[:url])
    if project.vimeo
      render :json => project.vimeo.to_json
    else
      render :json => {:id => false}.to_json
    end
  end
  def back
    return unless require_login
    show! do
      @title = "Apoie o #{@project.name}"
      @backer = @project.backers.new(:user_id => current_user.id)
      empty_reward = Reward.new(:id => 0, :minimum_value => 0, :description => "Obrigado. Eu só quero ajudar o projeto.")
      @rewards = [empty_reward] + @project.rewards.order(:minimum_value)
    end
  end
  def review
    params[:backer][:reward_id] = nil if params[:backer][:reward_id] == '0'
    params[:backer][:user_id] = current_user.id
    @project = Project.find params[:id]
    @backer = @project.backers.new(params[:backer])
    unless @backer.save
      flash[:failure] = "Ooops. Ocorreu um erro ao registrar seu apoio. Por favor, tente novamente."
      return redirect_to back_project_path(project)
    end
    session[:thank_you_id] = @project.id
  end
  def thank_you
    unless session[:thank_you_id]
      flash[:failure] = "Ooops. Você só pode acessar esta página depois de apoiar um projeto."
      return redirect_to :root
    end
    @project = Project.find session[:thank_you_id]
    @title = "Muito obrigado"
    session[:thank_you_id] = nil
  end
  def moip
    if request.remote_ip.to_s != '192.168.3.11'
      MoipMailer.payment_received_email(nil, request.remote_ip).deliver
    end
    id = params[:id_transacao]
    status = params[:status_pagamento]
    value = params[:valor]
{'fraction_non_alphanumeric': 0.11063829787234042, 'fraction_numerical': 0.0031289111389236545, 'mean_word_length': 3.5610730593607305, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 31, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 1, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5201344', 'n_tokens_mistral': 2777, 'n_tokens_neox': 2746, 'n_words': 712}