diff --git a/app/assets/javascripts/.music_player.js.swo b/app/assets/javascripts/.music_player.js.swo deleted file mode 100644 index ba44fcc7887c8b7050c2e22fb655f17bf2412c79..0000000000000000000000000000000000000000 Binary files a/app/assets/javascripts/.music_player.js.swo and /dev/null differ diff --git a/app/assets/stylesheets/music_index.css b/app/assets/stylesheets/music_index.css index 3a7a1daa5ffbe19f994ab96c6a7290efb6a1dd08..35147a4db892608b5dfa21f5cb031ed9bddcbd0a 100644 --- a/app/assets/stylesheets/music_index.css +++ b/app/assets/stylesheets/music_index.css @@ -27,6 +27,11 @@ ul text-align: center; } +.music_chan +{ + width: 10% +} + .music_title { width: 50%; diff --git a/app/views/tags/.show.html.erb.swp b/app/controllers/.channels_controller.rb.swp similarity index 89% rename from app/views/tags/.show.html.erb.swp rename to app/controllers/.channels_controller.rb.swp index bb4ae67f0b2dceccda59dab28c28f35e349ca1b2..cfc225ed60b20e7b67e4a2384bf4fc1735d002d4 100644 Binary files a/app/views/tags/.show.html.erb.swp and b/app/controllers/.channels_controller.rb.swp differ diff --git a/app/controllers/channels_controller.rb b/app/controllers/channels_controller.rb new file mode 100644 index 0000000000000000000000000000000000000000..60f1af5818313caac67456ca36c358ddbc748e78 --- /dev/null +++ b/app/controllers/channels_controller.rb @@ -0,0 +1,23 @@ +class ChannelsController < ApplicationController + def index_user + @users = Channel.all + + respond_to do |format| + format.html + end + end + + def show_user + @musics = Music.joins(:channel).where(playbot_chan: {sender_irc: params[:user]}).page params[:page] + respond_to do |format| + format.html + end + end + + def show_channel + @musics = Music.joins(:channel).where(playbot_chan: {chan: "#"+params[:channel]}).page params[:page] + respond_to do |format| + format.html + end + end +end diff --git a/app/models/channel.rb b/app/models/channel.rb new file mode 100644 index 0000000000000000000000000000000000000000..6a955d7cfec69c9e832d6ced6c96a0ee6ce9c822 --- /dev/null +++ b/app/models/channel.rb @@ -0,0 +1,5 @@ +class Channel < ActiveRecord::Base + self.table_name = "playbot_chan" + + belongs_to :music +end diff --git a/app/models/music.rb b/app/models/music.rb index 302f329e5e29a42b2499b124360436ac3bc86b5b..48b0c4f5e0cb674cec5a0dbce8fe0b9679653b59 100644 --- a/app/models/music.rb +++ b/app/models/music.rb @@ -3,4 +3,5 @@ class Music < ActiveRecord::Base self.inheritance_column = "inheritance_type" has_many :tags, foreign_key: "id" + has_one :channel, primary_key: "id", foreign_key: "content" end diff --git a/app/views/musics/.index.html.erb.swo b/app/views/channels/.show_channel.html.erb.swp similarity index 92% rename from app/views/musics/.index.html.erb.swo rename to app/views/channels/.show_channel.html.erb.swp index 8e8aba757e7a34f84ca6450aee0cb795a37e0352..b765e8a90a40bccd3d9961cd73175932c48d87a7 100644 Binary files a/app/views/musics/.index.html.erb.swo and b/app/views/channels/.show_channel.html.erb.swp differ diff --git a/app/views/channels/show_channel.html.erb b/app/views/channels/show_channel.html.erb new file mode 100644 index 0000000000000000000000000000000000000000..b52a3be244386fb27d7082573a63b7f2f8523a16 --- /dev/null +++ b/app/views/channels/show_channel.html.erb @@ -0,0 +1,28 @@ +<div id="music_player"></div> + +<ul> + <% @musics.each do |music| %> + <li class="clickable_links" + data-id="<%= music.id %>" + data-player="<%= music.type %>" + data-url="<%= + if music.type == "youtube" + track = music.url.sub(/.*v=/,'') + elsif music.type == "soundcloud" + begin + track = $soundcloud.get('/resolve', :url => music.url) + track.id + rescue + "Link down" + end + end %>"> + <span class="music_id"><%= music.id %></span> + <span class="music_chan"> + <%= link_to(music.channel.chan,'/musics/channels/'+music.channel.chan.sub('#','')) %></span> + <span class="music_title"><%= music.title %></span> + <span class="music_tags"><%= music.tags.map{|t| t.tag}.join(", ") %></span> + <span class="music_sender"><%= music.channel.sender_irc %></span> + </li> + <% end %> +</ul> +<%= paginate @musics %> diff --git a/app/views/channels/show_user.html.erb b/app/views/channels/show_user.html.erb new file mode 100644 index 0000000000000000000000000000000000000000..922884e5279e64d714820bdce8df2094d94819d2 --- /dev/null +++ b/app/views/channels/show_user.html.erb @@ -0,0 +1,27 @@ +<div id="music_player"></div> + +<ul> + <% @musics.each do |music| %> + <li class="clickable_links" + data-id="<%= music.id %>" + data-player="<%= music.type %>" + data-url="<%= + if music.type == "youtube" + track = music.url.sub(/.*v=/,'') + elsif music.type == "soundcloud" + begin + track = $soundcloud.get('/resolve', :url => music.url) + track.id + rescue + "Link down" + end + end %>"> + <span class="music_id"><%= music.id %></span> + <span class="music_chan"><%= music.channel.chan %></span> + <span class="music_title"><%= music.title %></span> + <span class="music_tags"><%= music.tags.map{|t| t.tag}.join(", ") %></span> + <span class="music_sender"><%= music.channel.sender_irc %></span> + </li> + <% end %> +</ul> +<%= paginate @musics %> diff --git a/app/views/musics/index.html.erb b/app/views/musics/index.html.erb index fa3cd8e81fd13f99baa1ec436f7224d22f971ab4..8ec427a89601506abdf8097988a8afa1eeb20573 100644 --- a/app/views/musics/index.html.erb +++ b/app/views/musics/index.html.erb @@ -17,9 +17,10 @@ end end %>"> <span class="music_id"><%= music.id %></span> + <span class="music_chan"><%= music.channel.chan %></span> <span class="music_title"><%= music.title%></span> <span class="music_tags"><%= music.tags.map{|t| t.tag}.join(", ") %></span> - <span class="music_sender"><%= music.sender_irc %></span> + <span class="music_sender"><%= music.channel.sender_irc %></span> </li> <% end %> </ul> diff --git a/config/routes.rb b/config/routes.rb index 37aea0848cc0dfb4bde676c0cb52c7c9c986094a..0c4b22bf0803652df3506b07fe8593261bc42a45 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -55,6 +55,9 @@ Rails.application.routes.draw do # end resources :musics resources :tags + resources :channels get '/musics/tags/:tag', to: "tags#show" + get '/musics/users/:user', to: "channels#show_user" + get '/musics/channels/:channel', to: "channels#show_channel" end