From e8d7220b57db1a40e54caf76b464d739118fe386 Mon Sep 17 00:00:00 2001
From: Sybil <sybil.deboin@gmail.com>
Date: Sun, 14 Sep 2014 05:43:33 +0200
Subject: [PATCH] Better handling of the senders / channels listings.

---
 app/assets/javascripts/.music_player.js.swo   | Bin 12288 -> 0 bytes
 app/assets/stylesheets/music_index.css        |   5 ++++
 .../.channels_controller.rb.swp}              | Bin 12288 -> 12288 bytes
 app/controllers/channels_controller.rb        |  23 ++++++++++++++
 app/models/channel.rb                         |   5 ++++
 app/models/music.rb                           |   1 +
 .../.show_channel.html.erb.swp}               | Bin 12288 -> 12288 bytes
 app/views/channels/show_channel.html.erb      |  28 ++++++++++++++++++
 app/views/channels/show_user.html.erb         |  27 +++++++++++++++++
 app/views/musics/index.html.erb               |   3 +-
 config/routes.rb                              |   3 ++
 11 files changed, 94 insertions(+), 1 deletion(-)
 delete mode 100644 app/assets/javascripts/.music_player.js.swo
 rename app/{views/tags/.show.html.erb.swp => controllers/.channels_controller.rb.swp} (89%)
 create mode 100644 app/controllers/channels_controller.rb
 create mode 100644 app/models/channel.rb
 rename app/views/{musics/.index.html.erb.swo => channels/.show_channel.html.erb.swp} (92%)
 create mode 100644 app/views/channels/show_channel.html.erb
 create mode 100644 app/views/channels/show_user.html.erb

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
GIT binary patch
literal 0
HcmV?d00001

literal 12288
zcmYc?2=nw+FxN9-U|?VnU|=W}77W?U{))v;kb$ANGAT0$Bu)T_6ekvBWM`%lQd<W$
zP(M61DIh1Y(kZ`0Ke3=dKe4ztwWL@-E3quGIJqdZprlwox3oAjIldq#u`;ztFRPe<
z^`p|GAut*OghHUSBu&?Xm%-S`&;X=VSxHerSSS?49L1v{Fd71*Aut*OqaiRF0;3@?
z8UmvsFd70QBm_zd7#Zpr7#NtK{soT%FfcGMLisQn${nRfLtr!nMnhmU1V%$(Gz3ON
zU^E0qLtr!nMnhmU1V%$(Gz5lV2qdO3Fz|CTF#P6*%>Tps{~!1n7@qJmFg)gGVA#pe
zz|h0bz>v((z!1;Rz!1&Pz!1gHz+lhMz@X00z#z=ez#z!az#zcS!0?5Sfnh%%14ADl
z149=d14APp149TO1A{#u1A{gn0|P4`1H)Hd28PSL3=B(o85ml585nAL85l}=85jzA
z85r_;85r_-85qKN85jh485kb&Ffg3vVPH7M!@zKahk@ZR4+Fzo9tMUM9tMUY9tMUy
z9tMUS9tMVN9tH*<9tH**9tH+09tH+W9tH+U9tMWLP`^FqW?&HIVPJT}&A_mcn}K0E
zHv>Z*Hv>ZkHv@w+$nQfi?na$F8UmvsFd71*Aut*OqaiT-LO=lu^!1?(3<|dlhEkXS
z8CoD(iPngu5Qzyfgk+L(6Ns>q0!wOZ8EP366jIAl^Gfte5{uGPOY}esSHm(>Qu8%5
ztr^lv^O8$4^FfMgF#&e1wY4DS*v-T(gJfHt0>}-iMe#X_rFpn?;1Wl1H;PHg85&?m
zX)07RfW4iUT2T@YUagDG^3<ZD{30|RAWIb#Q1vM&WTq)V)aj)pmLw|J+A0`;?0|+{
zo<e>eXvJ`9QE*9ONvd;3VqSVGL_J6q*d?_J44{av%r7k|O-hBX9R@iHVmR21@tJvP
z`CuC~G{KRSS_HC6393m+0c4tj0z$2Vt%8b%Qch+x$W^+TDYh}{O4<l%m{FN2+Db9%
zu}YeHAb)`@g*zN101F^kph1G5R?`~nVg&^VALM%V{5)4sn5kRA;tw2zP<09l>iKy{
zA)s!BEnIYvRR^Uerc@$K1Eq%K444XVR2Ew)R6})?fs(9eiWO1-z<gL*lmpXMo|#gT
zVWpsMW@4ZY6U#`=OwTB>QcyRxgb6~@pMtGIUTV2QWQZOl{xsAfp$Cyw*8$s|np2z#
zW<UZ0BBz&=pO^y9L{62SDH;%M$njTNlmiYyP||^DQBYF@MOR8@nKDE<L|92vFDErG
zy(9w^*Qm(~8u9Sd0*fJZaZpS_j0Cv=oGMB(GK&$pJ5K?oB{?TEIa>pikQg8_4DpnT
z23Uh$ex8PcI#`Xm4yqowXJAS}X%0_1RnbsT(gT~6n3R(mpOcxFU96;_sh66VoS^|r
Ve-MY1B^E)`lQjc~jqr*!0|0wb0|Nj6

diff --git a/app/assets/stylesheets/music_index.css b/app/assets/stylesheets/music_index.css
index 3a7a1da..35147a4 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
GIT binary patch
literal 12288
zcmYc?2=nw+FxN9-U|?VnU|`5$6b)I={))v;kb$ANGAT0$Bu)T_6ekvBWM`%lQd<W$
zP(M61DIh1Y(kZ`0Ke3=dKRG|Iq$ocpC$*?pKRF{YFE2HxI36LWSCmA+`cdi85Eu;s
zqC$X|!Pv;q0Hjn|Nl`&qC=|pT#iJoG8UmvsFd71*Aut*OqaiRF0;3@?8UiCE1WF1R
z8R{7r7?_~`6^GJ{Xf%{NN{xoVXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeD
z48agcOkrSX<Yi#^$qSkPhxPx@^D{8)<7Z%4%Fn>Cgr9+-lb?a1oS%UqpPzvtlb?Yh
zgP(yRf}erm10Ms!RXzrW!+Z=3yZIOxw(>DBY~f>ISjfk~V8O@0Aj`+Vz|F_Nz|6<M
z@E2;&QjlFkFsw$MJQ@O{Aut*OqaiRF0;3@?8UmvsFd71*Aut*OG!KE)yc7ln1qg|t
z6%^9)i*gf7^fF3va~Kp96cmb5iwpAeQsPVU6;kpQY9P`zU@3>(R5U;hGfRszlZzE>
z6?{Pqy{!DqykZS2=pt@Sz4DCIqEwB7oW#nc{E~Q(u$4kJgi=yg(k@6WO3W>ehN+LO
z)zm9UOixvSiGw(?3<?S<sc8zu8TsX46Y@Z-%n@M#3lkE<0_0p0-CdlTmy%i(pIMY_
z1$SX-acU7^XM<ERP!fNT2m~1ea<emJjl5oB4k*$=fs>h+l3EcDl4nTHNh~f_fGR0=
ZhA*vGuu*U<D9Fi7PAtjH&qIha003YJ`#b;u

literal 12288
zcmYc?2=nw+FxN9-U|?VnU|=v15e%8g^p3?&kb$ANGAT0$Bu)T_6ekvBWM`%lQd<W$
zP(M61DIh1Y(kZ`0Ke3=dzbrGgyjZ^^F}+y7I3vGYFQX(kM=!M~iGZb}(xV|T8Un<J
zKxs*ut_3fHv5}zxNRzUXqJpqcD2O?VM?+vV1V%$(Gz3ONU^E0qLtr!nMnhmU1V%^*
zloT*B)H5(JFhTt*1*I9$Xef7-8V!Nb5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7
zfzc2cf+3KY!oZ-%!@#hK2QvQ;>;FIEXJB~9&%khppMhZyKLf*Teg=jLeg+1Aeg*~$
zeg*~skUSp)!xlaUh6Q{K43T^c4EB5s3|f2)419bH48M697@qMmFl^#wV5s0_U{C|`
zc^DY(@Gvl3;9+1m1+#MqhS{i-M?+vV1V%$(Gz3ONU^E0qLtr!nMnhmU1n3b0HmV?K
zt5A@bo|%_elB(d4TUwl%T&$pK$6%vhnq$YHpkSk_keZhQ5>Zf4P_WU@$pndl*~JBk
zc?!uniN(dXN??ug#i@BIsYOb5HmbG?U=cltNPK2dvVy9ejXp>V9{r$Y%gDMxe7)Sn
zg6f)*8if+QlEm~{y{!DqJPjos1tm?QOw26FNkuUdBtVSL%oJp8nV=v*bw4N!6rh2l
z1oIR`5F*R~<G^SopUk{$g_QjAJS8-_qSWH#(o{4-1%;BL#N=$f%oGLeG77c|D#iJw
zc`3;``K2j(>8T|e>iR{g#rZj9sp>ikR;5Kb3buC8m?$mE(L^&QDK$Ma4@E3Br#LeW
zs-dK^AXUNERzV421-i4r?o)upb!kzKUU6xXhQ6LwnXSH#x;m<Tm<CtomzI<!r79u3
zmy%eLs9Rc;W2*#8LU5;ng$r^LD^rUgGLXatcA=^ry8g@*WJTbZgDSDf$%G}?<ebdp
z?8Ky;)cBmtyzFAI0vlCW4$w<YOwLe9$ycZW+f)Ne|2Ciu!C;e;S*8H80W1*@ag>ss
LjebgInH>WFXF?qe

diff --git a/app/controllers/channels_controller.rb b/app/controllers/channels_controller.rb
new file mode 100644
index 0000000..60f1af5
--- /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 0000000..6a955d7
--- /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 302f329..48b0c4f 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
GIT binary patch
delta 281
zcmZojXh;xGG6?hZRWR2xVPIfj5MW@q$tM~zjp^M)@j|)ejKsXW)SP1d;*9+AcqmUV
zqa-&+FSRIX<3eZV%`chNc^G9j3krPZ=bgdLz@WkdF-2ywpn|{ZMqUPniM$L9I=l=F
zpLiG;7Vt1IMDQ>$`0+3>IPowr*zhngsBCUjaOIx7Stn}pW}SF;s4bHPb*HB&sM^`+
z7Z)Vv*)b?UfsLxILQZC0c6>>`Ms8_wX0jes1DMuP*9Qw0>qAA0_0_e(B4Fvf)EqFa
jS6rH;p{}g1qpq$wIagPe6{K2e@&;W~Mup8!b)}gAn3qsQ

delta 151
zcmZojXh;xGG6?hZRWR2xVPIfj5MW@?6%h>C&GBoZcp*=2X>n$9v3_P=N@~T%xjxJj
z4LCQyWLD>4l-evP@R^@ipND~AGY>?Y)MP;gf2B>l3=EaL3=HbL3=GeC7#QyIFfd%?
vVPH57Rk?|0v!Z|@&*W3uQ7j<CCwJ*gpZr2cdGaY;sma>9oSWb23NZlykbNk3

diff --git a/app/views/channels/show_channel.html.erb b/app/views/channels/show_channel.html.erb
new file mode 100644
index 0000000..b52a3be
--- /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 0000000..922884e
--- /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 fa3cd8e..8ec427a 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 37aea08..0c4b22b 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
-- 
GitLab