1
0
Fork 0
oldhaven/app/controllers/artist_controller.rb

55 lines
1.4 KiB
Ruby

# encoding: utf-8
class ArtistController < ApplicationController
require 'open-uri'
def view
# Dirty auth block START
unless request.session['session_id'].nil? or MainController.logged_in request.session['session_id']
redirect_to '/login'
return
else
if request.session['session_id'].nil?
redirect_to '/login'
return
end
end
# Dirty auth block END
if params[:name].nil?
name = ''
else
if request.request_method == 'POST'
redirect_to :action => 'view', :name => params[:name].gsub(' ', '+')
end
name = params[:name].gsub('+', ' ')
end
@artist = Artist.getByName(name)
if @artist.nil?
render :file => "#{Rails.root}/public/404.html", :status => 404, :layout => false
else
@albums = []
@artist.albums.each do |album|
unless album.releases.empty?
tracks = album.tracksInDb()
@albums << {
:object => album,
:tracks => tracks
}
end
end
end
end
def autocomplete
autocomplete = Artist.getLastFmAutocomplete(params[:query])
return render :nothing => true if autocomplete.nil?
suggestions = []
autocomplete["response"]["docs"].each do |doc|
suggestions << doc["artist"] unless suggestions.include?(doc["artist"])
end
render :json => {
:query => params[:query],
:suggestions => suggestions
}
end
end