From a9819ab6154af194436175ca647ac969f09e35be Mon Sep 17 00:00:00 2001 From: Sybil <sybil.deboin@gmail.com> Date: Tue, 16 Sep 2014 03:52:56 +0200 Subject: [PATCH] - Soundcloud fuckin' shitty API is working. - Now all integrated players (iframe) are in javascript. - Autonext track is on. --- app/assets/javascripts/.music_player.js.swo | Bin 0 -> 12288 bytes app/assets/javascripts/music_player.js | 82 ++++++++++++++---- app/assets/stylesheets/music_index.css | 8 +- app/views/channels/show_channel.html.erb | 16 +--- app/views/channels/show_user.html.erb | 11 +-- app/views/layouts/application.html.erb | 7 +- .../musics/.index.html.erb.swo} | Bin 12288 -> 12288 bytes app/views/musics/index.html.erb | 9 +- app/views/musics/show.html.erb | 35 ++------ .../.show.html.erb.swp} | Bin 12288 -> 12288 bytes app/views/tags/show.html.erb | 15 ++-- config/initializers/soundcloud.rb | 4 - config/routes.rb | 2 + 13 files changed, 99 insertions(+), 90 deletions(-) create mode 100644 app/assets/javascripts/.music_player.js.swo rename app/{controllers/.channels_controller.rb.swp => views/musics/.index.html.erb.swo} (90%) rename app/views/{channels/.show_channel.html.erb.swp => tags/.show.html.erb.swp} (88%) delete mode 100644 config/initializers/soundcloud.rb diff --git a/app/assets/javascripts/.music_player.js.swo b/app/assets/javascripts/.music_player.js.swo new file mode 100644 index 0000000000000000000000000000000000000000..193c93e3a4cf5249702f8e9d0d3a895f5a1ce0e7 GIT binary patch literal 12288 zcmYc?2=nw+FxN9-U|?VnU|@)tEFQ9s{S}LyAOk~jWm0AiNSpu;DNZcN$j(e9q_z%h zpniC2Qb0~(rBi;1equp^eqwQPYDuwvR$^IVadJ^+K}oTGZfS95a(qEfVr6QPURE&y z>qn(WLtr!n2!%jtNt&(&FN3j>p#ey#vXY{Luuv$7If_R^U^E0qLtr!nMnhmU1V%$( zGz3ONU^E0qNC=b^Ff!CLFfcGd{hI`(8PRAcca$0pfzc2c4S~@R7!85Z5Eu=C(GVC7 zfzc2c4S~@R7!85Z5Ez0XkeI^2@RyZ=VIezY{vX!=|G>|{@Pwa%;W0l0!%lt%h8}(f zhGc#QhIoDk1}%ODhJSnv48Qmo7{2i_Fnr}>V7SG{z;K9<fngmV1H&3V28Pvq3=I8z z3=GwL3=9E$3=Fn>3=G<Q3=Hgi3=BVc85nNzGBB*=Wnk#%Wnk#!WngILWngIJWngIF zWnjqQWnfU|WnlQs!@zKthk@ZH4+FzO9tMUE9tMUM9tMUc9tMU+9tMVJ9tH*{9tH*j z9tH*-9tH+29tH+(9tMWr+zbpqxfvL4ax*aO<z`^m&CS5Di<^OACpQDb4sHg9S=<Z^ zP23C&+1v~ancNHv8QcsEKHLlpHrxyhLfi}tr@0syj&d<D9N}VM*u}-bu!xI+VGb7q zLk|}NLpK)#Ln9XhgAW%2gFF`lgCrLN11A>)0}B@e0}~em10xp$!vjtRhP9jw44s?| z3?ZBh3^JSy3?iHi3__d?41$~t44*g{818W}FwEv)V6fm|U|{B8V7SW8z;K?Ofng~- z1H%$_28KoKkT_9iXJDvhXJANYV_?u^V_+y`WnlQnG6WOasFO!S08a?iGB7A8=<C;N zS~DmpfLPGgKSimDDU}+<`K5U&$vOF@De*a(#U-hEsYPIg`uYkA5QPf13Mv}v$`DR` zQciwywz{TXMoBIMK9liEQe<t82E-{C&Kv+M74ltklTuSap^>9klv<FJn4GGiUY1#0 znwVo-QdF9%rmmx|4s~g;vmQjb24odhX;F@jLbXC7W$va-cV%i3&iKU{&{XktX-PhK z9U5KSk3D;U({FKVNl0dHYJO=6w!EODU}Rumpa70RSPp_DKjMN7DHB2Bo|vS9E1|%G z%t`^2v=np{auX{uQZv&tN~{zNjSRs2^30Ty3@ZggkgIET6w*rbl1no4^E4o~Yl2FE zY6b;`vcw_<cq&w|RZz+(DJdwn($`0n2YSi*x%x`l5LKCZY5967i6w~|ntG*0IiR8h z5)APvsl_El`IQ=))(kMq6cC1hqd2ulLsOxefuR;$0KtM$L7_Y|B|Wu7FDWxGMI+c* zFC4;kElbTSDb{oI^z#h%&{4=sttg2HI|3XD1at+tI=Vz6c^hOe$j>1ELabA;Re;;2 zk(pMMn41bU7^DUwpkS+zlAm0fo0?amS6G@_R2iI_lbT$TU!<W9Q2@%)*nA5sLJ|J0 zRRDWBIk6-;LnBpFp&A+pU{M7Hh;e!aiAAY-C4TuSsd`1Jx%p+O&Ka3GDX7kaL>fc` zQ4R$8yQHWR6!IV@E+;_ZQ4c8|L8_57LR_q%prWA!s|5=3i!(vVN=Z{Mv7jI|FGWMi zCMB~>Av47`MhRjdq^5{bva``o$t<%|f(CMCnt}$BLE!2{NmDN;H7~s+L&4To!2l9v zAaxLfKzw*uLxd2C4&*tI`>>=qP#OiNn|M&-1!vcijLc#j=`=YfGdUX)ZIFbT3QC50 zC5c6#Bnq-NEHfoFA0?TCL{p36a}rDQK#>d50CFtIJ&06`O-E``QGSsI*anyekR}BM zRBfQ-p#V{)2g-Z!;DHB6ejaGOZ)#C+Nn%N=b4FrbdMZRc$XIZGgP4mWcv5qUQx!lV zjR+^OMH-rV5Wj(JR6=N0QUIB&pa3znGQYH>G$|FH#X$j1&@iYbm`MnW!4agClNk;2 zsV*oXsbedAGE=mbV$@@mH1$AXg%Y?R0Z2&!iARttVTBEd4NBJP`FXCOz*o0|wr=9V zaRJSZ>iKy{A*pVqfF*o&5Nd-!EhvOZkaPf%2ghx(l>(@&RZu7cB^}QcD`=4mN{_H` z1~me}CPE8tbu$wKb%+_TqFvqC5+VeP6NS9ga)rncJxJVZs6)gd8BSdXY$sF*DO1DK z3^WGd(FV&x=;EO0M2jBu`~%a1lzAWl4he1*4X_5i{5%Z>b+8(B9pt(JECenW;0Y0? z1(XPgONB5UD3+i&3~U1^VZxMR8V*$tNtG%Z3QBrlw<RX!q{ioD=4BTvDQN1YCMIWS Xz=9Ey#6VRBB&e+!Kx{;KSu+3tq0aRb literal 0 HcmV?d00001 diff --git a/app/assets/javascripts/music_player.js b/app/assets/javascripts/music_player.js index 18f3312..6b6df22 100644 --- a/app/assets/javascripts/music_player.js +++ b/app/assets/javascripts/music_player.js @@ -5,6 +5,9 @@ $( ".clickable_links" ).each(function() { if ($(this).data().player == "youtube" ) { $(this).on( 'click', youtube_click); } + else if ($(this).data().player == "soundcloud" ) { + $(this).on( 'click', soundcloud_click); + } }); function youtube_click() { @@ -13,28 +16,27 @@ function youtube_click() { } function youtube_player() { - if (player && $("div#music_player").length == 0) { - player.loadVideoById(music_info.data().url); - } - else { - player = new YT.Player('music_player', { - height: '390', - width: '640', - videoId: music_info.data().url, - events: { - 'onReady': player_launch, - 'onStateChange': onPlayerStateChange, - 'onError': player_error - } - }); - } + player_destroy(); + player = new YT.Player('player_block', { + height: '390', + width: '640', + videoId: music_info.data().url, + events: { + 'onReady': player_launch, + 'onStateChange': onPlayerStateChange, + 'onError': player_error + } + }); } function next_music() { music_info = $("li[data-id=\'"+music_info.data().id+"\']").next(); if (music_info.data().player == "youtube" ) { youtube_player(); - } + } + else if (music_info.data().player == "soundcloud" ) { + soundcloud_player(); + } } function onPlayerStateChange(event) { @@ -42,11 +44,55 @@ function onPlayerStateChange(event) { next_music(); } } - function player_error(event) { next_music(); } - function player_launch(event) { event.target.playVideo(); } + + + +function soundcloud_click() { + music_info = $(this); + soundcloud_player(); +} + +function player_destroy() { + if (player) { + if ($("#player_block").length == 0) { + $("#player_position").append("<div id=\"player_block\"></div>"); + } + + try { + player.destroy(); + } + catch(e) {} + + try { + var iframe = document.querySelector('iframe'); + iframe.parentNode.removeChild(iframe); + } + catch(e) {} + } +} + +function soundcloud_listener() { + var iframe = document.querySelector('iframe'); + var widget = SC.Widget(iframe); + widget.bind(SC.Widget.Events.READY, function() { + widget.bind(SC.Widget.Events.FINISH, next_music); + }); +} + +function soundcloud_player() { + player_destroy(); + var music_url = "https://soundcloud.com/"+music_info.data().url; + SC.oEmbed(music_url, { auto_play: true , maxheight: 120, maxwidth: 1000 }, function(oEmbed) { + player = oEmbed.html.replace('visual=true&',''); + player = $('#player_block').html(player); + }); + setTimeout(soundcloud_listener, 2000 ); + +} + diff --git a/app/assets/stylesheets/music_index.css b/app/assets/stylesheets/music_index.css index 35147a4..58960d6 100644 --- a/app/assets/stylesheets/music_index.css +++ b/app/assets/stylesheets/music_index.css @@ -10,6 +10,8 @@ ul background-color: rgba(0, 110, 140, 0.8); margin: 2px; cursor: pointer; + overflow: hidden; + position: relative; } @@ -19,6 +21,9 @@ ul padding: 15px 0; font: 15px 'Helvetica Neue', Helvetica, Arial, sans-serif; color: rgba(250,220,180,1); + overflow: hidden; + position: relative; + text-overflow: ellipsis; } .music_id @@ -29,7 +34,7 @@ ul .music_chan { - width: 10% + width: 10%; } .music_title @@ -40,7 +45,6 @@ ul .music_sender { width: 10%; - /*overflow: hidden;*/ } .music_tags diff --git a/app/views/channels/show_channel.html.erb b/app/views/channels/show_channel.html.erb index b52a3be..ea696e1 100644 --- a/app/views/channels/show_channel.html.erb +++ b/app/views/channels/show_channel.html.erb @@ -1,5 +1,3 @@ -<div id="music_player"></div> - <ul> <% @musics.each do |music| %> <li class="clickable_links" @@ -9,17 +7,11 @@ 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 + track = music.url.sub(/https:\/\/soundcloud\.com\//,'') 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_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> diff --git a/app/views/channels/show_user.html.erb b/app/views/channels/show_user.html.erb index 922884e..ea696e1 100644 --- a/app/views/channels/show_user.html.erb +++ b/app/views/channels/show_user.html.erb @@ -1,5 +1,3 @@ -<div id="music_player"></div> - <ul> <% @musics.each do |music| %> <li class="clickable_links" @@ -9,16 +7,11 @@ 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 + track = music.url.sub(/https:\/\/soundcloud\.com\//,'') 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_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> diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 2ed556e..38a3231 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -6,10 +6,15 @@ <%= csrf_meta_tags %> </head> <body> - + <div id="player_position"> + <div id="player_block"></div> + </div> <%= yield %> </body> <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> <script src="https://www.youtube.com/iframe_api"></script> +<script src="https://connect.soundcloud.com/sdk.js"></script> +<script src="https://w.soundcloud.com/player/api.js"></script> + </html> diff --git a/app/controllers/.channels_controller.rb.swp b/app/views/musics/.index.html.erb.swo similarity index 90% rename from app/controllers/.channels_controller.rb.swp rename to app/views/musics/.index.html.erb.swo index cfc225ed60b20e7b67e4a2384bf4fc1735d002d4..a7022bc50a3d652a8beb4988133347be7f1ba119 100644 GIT binary patch literal 12288 zcmYc?2=nw+FxN9-U|?VnU|@JXO*~{b$1fH;K?a86%B0L3kT?MxQk+<jk)4@JNNpY1 zK>hI4q=1~nN~io1{ltO-{j$u|@?!nm(&EhIV*Sj#l++5njFQ|Oz0{&40``tdkA}c# z2oM<pr6p;)7Q76`Mur9;9m-0I3c^C6Am%6@4S~@R7!85Z5Eu=C(GVC7fzc2c4S~@R z7$G50QozVi&%nUI1of{7lx9Suq1;hwGz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0q zLtr!nMnhl-hCpHp1H(if28O>pkokXD|Nl2X1H)~828Lby3=Grx85r{T85qL(85s2W z85kJ&85l0}F);M<F)&o{F)+CBF)*<3F)*CwWnie}WneJmWnfU}WnhrzWnd8Hg_!*Z zWd0BgpHU}|hQMeDjE2By2#kinXb6mkz-S1JhQMeD43iMBQMFYlNKDVnODsuMaDXg9 zR#3HLu+cBgv13qBuu)Y=%}W7^C@3f>*y!hEf<(dW;)29Hh2)&X;$mARu*Ue})V!3` zA|*SJp<ofc<c!3;ywn^$h)jHDQL=)nosB+7D;{%764Q&3O#$)sauW-xYf5SqO7uz+ z(`)sz@-y=^lynr7G>I}Xvm_@K#Ym6<5l#Vl09hZ15AqO*CdT5-6lC3*ppZoMJ}4*^ zpkb^83loT-f<j4AVsf^EtpX%4ON(;!ic6C;^fO9I3W}{_^kejk^Gowml5_G)Q)2Xz z^K)bL^>x(MH5p*~L3C<Pab_CSgp$gFR0UgG1to+&B^1Rtt<=*hv&A$U)8NYd(vs4o zR3!ztu_=iqiMpjlIkrlmWPvJNkds)MS_F}S_z~<vRXcS3nJLJMz`+PrVv~~zON7Ze rnaSCSNja(UIhlFc#b5<Cs<2e8mztQIp^%cVPy@E929&04K#3dxxV#Z> 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 diff --git a/app/views/musics/index.html.erb b/app/views/musics/index.html.erb index 8ec427a..ea696e1 100644 --- a/app/views/musics/index.html.erb +++ b/app/views/musics/index.html.erb @@ -1,5 +1,3 @@ -<div id="music_player"></div> - <ul> <% @musics.each do |music| %> <li class="clickable_links" @@ -9,12 +7,7 @@ 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 + track = music.url.sub(/https:\/\/soundcloud\.com\//,'') end %>"> <span class="music_id"><%= music.id %></span> <span class="music_chan"><%= music.channel.chan %></span> diff --git a/app/views/musics/show.html.erb b/app/views/musics/show.html.erb index 3d5e0f8..78e787c 100644 --- a/app/views/musics/show.html.erb +++ b/app/views/musics/show.html.erb @@ -1,33 +1,16 @@ <ul> - <li class="clickable_links" 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 %> - "> + <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" + track = music.url.sub(/https:\/\/soundcloud\.com\//,'') + end %>"> <span class="music_id"><%= @music.id %></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> </li> </ul> -<%=if @music.type == "youtube" - track = @music.url.sub(/watch\?v=/,'embed/') - raw("<iframe id=\"ytplayer\" type=\"text/html\" width=\"640\" height=\"390\" src=\""+track+"?autoplay=1\" frameborder=\"0\"/>") - elsif @music.type == "soundcloud" - begin - track = $soundcloud.get('/oembed', :url => @music.url, :maxwidth => "800", :maxheight => "150", :auto_play => "true") - raw(track['html'].gsub("visual=true&","")) - #The Soundcloud API doesn't enable modification of the parameter 'visual' - rescue - "Link down" - end - end -%> diff --git a/app/views/channels/.show_channel.html.erb.swp b/app/views/tags/.show.html.erb.swp similarity index 88% rename from app/views/channels/.show_channel.html.erb.swp rename to app/views/tags/.show.html.erb.swp index b765e8a90a40bccd3d9961cd73175932c48d87a7..84869f8ddadad2521ef884c44e34ea0f13766bf8 100644 GIT binary patch delta 267 zcmZojXh;xFG6?hZRWR2xVPIfj5MW@CoGw05xRkRbF}+y7I3vG&<6Ix+i3U8IUoxxn zFp6##6!^@a)x*QU@P`MYUKFH{fq~&SKLf*Ueg=kJ{0t1!`574U_!$_&`574W`571( z_!$^3^D!{=@-Z+}@G&sB@G&s3@G&r)=4D{0<Yizm<Yiz`=Vf4!=4D_I<z-;_3pM{2 z&t^q|exAvvw4)~1=`5c7LPuF9IU_Mo$<9XARw1{vI5Sxf#Lr930n?M8>!?gVr7JaA zTbFb4J6-9?@AbqLGD=DcimhVwWAuyjOY>5abMi}5V)T;pb7S=Nb=1{0H*eO{V*~(o C-$Stg delta 525 zcmZojXh;xFG6?hZRWR2xVPIfj5MW@q$tOBdxKuPbBQY;8HK$m=I3vG29?IJ|(T92S zOJ;Q*Mw!im0-yQoXK*txsPI5E%76@DU|@K}&%p4IpMl{HKLf)aeg=lw{0s~g{0t2K z{0s~h{0s~NAbCCphAn&y3=8-e7$W%?80`5N7_|5p82I=Y7=H6IFg)XBVA#mZz%Y@Q zfkB6tf#DMm1H%Fy28IY81_nPK1_mb{1_m1*24)5op3RIbF5Hv<>O@WctMfNSLDkMi zzqlYV&yGO>3T#wu6>>83vg1qgHF8UfGn4h8z5&xZ>iS^8VtuG+vA()CSOhGcmzo2n z^@>ZAG}M*Vb=1{0C-2u)Wd*5LnyjxYJvmlSicw*5xt>Z;YF>&0+*+vZ3Q9hidD#jn z`Q>>^XmUlV#mS|qXo3m~B}IwJ*?O5^qbBK#IjI!qm*%A;=j4~B=%uHYXsGKKr55Ms zl%=ZcC|H#i<tW(NDL@=tT9l)SW?WKgdS>3{OL}^Y@(ea9nPm!@DYi;r)$s*6iIu5E NN_IB-DVb$<3;?U@gWLcB diff --git a/app/views/tags/show.html.erb b/app/views/tags/show.html.erb index 7d46448..18488d2 100644 --- a/app/views/tags/show.html.erb +++ b/app/views/tags/show.html.erb @@ -1,5 +1,3 @@ -<div id="music_player"></div> - <ul> <% @musics.each do |music| %> <li class="clickable_links" @@ -9,18 +7,15 @@ 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 + track = music.url.sub(/https:\/\/soundcloud\.com\//,'') end %>"> <span class="music_id"><%= music.id %></span> - <span class="music_title"><%= music.title %></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> <%= paginate @musics %> + diff --git a/config/initializers/soundcloud.rb b/config/initializers/soundcloud.rb deleted file mode 100644 index 308fe5f..0000000 --- a/config/initializers/soundcloud.rb +++ /dev/null @@ -1,4 +0,0 @@ -#require 'yaml' - -soundcloud = YAML.load_file("#{File.dirname(__FILE__)}/../soundcloud.yml") -$soundcloud = Soundcloud.new(:client_id => soundcloud["client_id"]) diff --git a/config/routes.rb b/config/routes.rb index 0c4b22b..c05a8d5 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -56,6 +56,8 @@ Rails.application.routes.draw do resources :musics resources :tags resources :channels + + root to: 'musics#index' get '/musics/tags/:tag', to: "tags#show" get '/musics/users/:user', to: "channels#show_user" -- GitLab