From b12b118f634647454e110084173fefbb659419cc Mon Sep 17 00:00:00 2001 From: rvbglas Date: Thu, 28 Dec 2017 13:22:20 +0300 Subject: [PATCH] =?utf8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B4=D0=B5=D0=BB=D0=BA?= =?utf8?q?=D0=B0=20=D0=B8=D0=BD=D1=82=D0=B5=D1=80=D1=84=D0=B5=D0=B9=D1=81?= =?utf8?q?=D0=B0=20=D1=81=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7?= =?utf8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=D0=BC=20SVG-=D0=B8=D0=BA?= =?utf8?q?=D0=BE=D0=BD=D0=BE=D0=BA,=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?utf8?q?=D0=B5=D0=BD=20=D1=81=D1=87=D0=B5=D1=82=D1=87=D0=B8=D0=BA=20?= =?utf8?q?=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=B8=20=D0=B8=20=D0=BA?= =?utf8?q?=D0=BD=D0=BE=D0=BF=D0=BA=D0=B8=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BC?= =?utf8?q?=D0=BE=D1=82=D0=BA=D0=B8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- images/addall.png | Bin 1267 -> 0 bytes images/back.svg | 39 +++++++++++++ images/cancel.svg | 39 +++++++++++++ images/down-arrow.svg | 39 +++++++++++++ images/down.png | Bin 1344 -> 0 bytes images/download.svg | 39 +++++++++++++ images/fast-forward.svg | 39 +++++++++++++ images/folder.svg | 42 ++++++++++++++ images/list.svg | 39 +++++++++++++ images/lists.png | Bin 958 -> 0 bytes images/minus.png | Bin 981 -> 0 bytes images/minus.svg | 39 +++++++++++++ images/music-player.svg | 39 +++++++++++++ images/next.png | Bin 1267 -> 0 bytes images/next.svg | 39 +++++++++++++ images/pause.png | Bin 1058 -> 0 bytes images/pause.svg | 39 +++++++++++++ images/play-button.svg | 39 +++++++++++++ images/play.png | Bin 1281 -> 0 bytes images/playlist.png | Bin 1445 -> 0 bytes images/plus.png | Bin 1055 -> 0 bytes images/plus.svg | 39 +++++++++++++ images/previous.png | Bin 1268 -> 0 bytes images/remove.png | Bin 1256 -> 0 bytes images/removeall.png | Bin 1280 -> 0 bytes images/repeatoff.png | Bin 1671 -> 0 bytes images/repeaton.png | Bin 1709 -> 0 bytes images/replay.svg | 39 +++++++++++++ images/replayoff.svg | 39 +++++++++++++ images/rewind.svg | 39 +++++++++++++ images/save.png | Bin 10992 -> 0 bytes images/songs.png | Bin 1353 -> 0 bytes images/stop.png | Bin 938 -> 0 bytes images/stop.svg | 39 +++++++++++++ images/stopoff.svg | 39 +++++++++++++ images/up-arrow.svg | 39 +++++++++++++ images/up.png | Bin 1317 -> 0 bytes images/update.png | Bin 1732 -> 0 bytes index.html | 27 +++++---- css/general.css => mpd.css | 33 +++++++++-- ajax/mpd.js => mpd.js | 110 ++++++++++++++++++++++++++++--------- mpd.lua | 83 +++++++++++++++++++++++++++- 42 files changed, 956 insertions(+), 41 deletions(-) delete mode 100755 images/addall.png create mode 100644 images/back.svg create mode 100644 images/cancel.svg create mode 100644 images/down-arrow.svg delete mode 100755 images/down.png create mode 100644 images/download.svg create mode 100644 images/fast-forward.svg create mode 100644 images/folder.svg create mode 100644 images/list.svg delete mode 100644 images/lists.png delete mode 100755 images/minus.png create mode 100644 images/minus.svg create mode 100644 images/music-player.svg delete mode 100755 images/next.png create mode 100644 images/next.svg delete mode 100755 images/pause.png create mode 100644 images/pause.svg create mode 100644 images/play-button.svg delete mode 100755 images/play.png delete mode 100755 images/playlist.png delete mode 100755 images/plus.png create mode 100644 images/plus.svg delete mode 100755 images/previous.png delete mode 100755 images/remove.png delete mode 100755 images/removeall.png delete mode 100755 images/repeatoff.png delete mode 100755 images/repeaton.png create mode 100644 images/replay.svg create mode 100644 images/replayoff.svg create mode 100644 images/rewind.svg delete mode 100644 images/save.png delete mode 100755 images/songs.png delete mode 100755 images/stop.png create mode 100644 images/stop.svg create mode 100644 images/stopoff.svg create mode 100644 images/up-arrow.svg delete mode 100755 images/up.png delete mode 100755 images/update.png rename css/general.css => mpd.css (87%) rename ajax/mpd.js => mpd.js (75%) diff --git a/images/addall.png b/images/addall.png deleted file mode 100755 index fa3983ed6d71921d29f1cf179123d0770f41edd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1267 zcmVPx#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipr8 z6B`Pv+W!jx0013nR9JLFZ*6U5Zgc_CX>@2HM@dakWG-a~000C^ zNklQ8`2n^#xcqu2*PTL3L&B*--3E5dx+>C;v`noQxEo* zgo*SIdoSuG!XzRzA_yr(p+GczFq^EHBqE)unRE79tB1Y!Is2S@$C=zOcOUlN>-*NX zzP--5jwO!b;8w!~OhJWu?i=&&L!Y{(#B+-SPMWC?flX>qRY0(cM7|~rJ^H1)B;dIN zlh)44@@!Qw6I@zX!ARtMAZEhy$G>$;2LAVpEtUeevoTd1iX}3dz@@2x#x;b?pZwk} z3OxJyvsPymBz75z8Yrxp`9P*p#N$lEe)T~G5r((?=oSQ?`RpmH1J-h4f{S%E^_XdV zmaGK6lHRl?na-LDS8n^+^#EVk|AbkUQEr+5=2UWgsLJStgjvka1(LkR?@K^e=PuD&8jF1JRKdB%Tz{D@grw@RjT7{x@I?#`sv zRQJ3*jkS0K;@apdbFKrRQbwQ_aDzl$`^#3WWz}Q*EB5C;*o6Ff3QSn@!W00%zcIq- z%YTIV&K1q_0G)FmJ!tBS8mMJ1taU|9>5kmgxCw)+H&9F;kLtwIl|?o8z6jZ(fHCzd zHlV&heSu1eO86Bi(6V6U=|hY>^Icpkk+^4Y_00gx|8^_@uemjN#MfXVWi>ZnqAI8w zW}pTG;$u)Bz{D4*FA*&p>?INuU(mgJ0)X>J_5#oyyB+Z*J_A!fUz5NHP65#X+)*il zaR@F|6~-rzHKZKdegc50-Pb^On8B6TA#;B-b8;UmH|=6@<$CB2qqEal#wGl#_!_%@lSfPBt~)u7?=YCI#uHk zU)@iWP?b}!jW({9iDzj14gh|6|6yiM?Bj|Jn;F~uAw%mnl3_LGrUA?xxH#`fSv0zn zX=wVidbOE?>#!_J{ms2Q_UM?%J96WG8|4V)pX1u$ndA$M};wT205f|CTKX!cIE ztQ$E(@hoe7mVT}Oi`HfP)98pVKqFAri&N9LM99@gU943P16l~y2RY6izz;iCS<1>Z zv^FEWhcOKx)?%KgN}rTk_s6V$oY+n1)!r8Ytnt-hP3C=ASI^d8Q?phn`f)n^QpdvQ zi}m2;r*r1ClCHp9uNbL3ckZF}J{I3Nm`<2$X4cO@jha(m8QcPXXoooTJeC7Dd=nqc zWtsG;agVeS9AM*HxCKA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/cancel.svg b/images/cancel.svg new file mode 100644 index 0000000..b8ccc3e --- /dev/null +++ b/images/cancel.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/down-arrow.svg b/images/down-arrow.svg new file mode 100644 index 0000000..7514b45 --- /dev/null +++ b/images/down-arrow.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/down.png b/images/down.png deleted file mode 100755 index e8f3d6efecabce05623878a5cdad9f9e060370d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1344 zcmV-G1;6@Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipr8 z5;p+^`zIOz0013nR9JLFZ*6U5Zgc_CX>@2HM@dakWG-a~000D+ zNkl-S6o$W=ZieRJjL3u$;%i0J#D%hO5)wlUA<>1=4Q@0>qah%X7(-yA z#u(Wc<2$-==faH}GgQ2H!fM2E+jd!h0UKZ=G{oRMma-^uUBlI$hnj>iqvX z=Rc?FI_5aq`!*UTUO3z)fcAgJF{rR22}cAW?lLv>yN3T^I25 z@Fwf@%BtR~U?#ZqTm>VM^MRNN3!gmb<_tXb)dow3JH0Vg9Ev3}n!u$V0gcZP7C(L1 zT@!d>&vRCK6hiDOBub$0%*+QeMMON#G^|%2q98*5hCke_z*lxXW2M0|oS5KZUQIn_ z8h=YA1-=NqX-P8eH5Ha@KIUcsU;gqbv%;gQXabm10hGqzeYk}KQCtcbmQRt79m1}h zD#@TAr6`j?2VOkw0GbI{eLFBWk4h!C6%R0B!OBOOcgs*MJvwy`8QD&L;opz~Dtl76 zH3~J39)R@2Ce^t^khgU6P164#k|kmxan0nP=YP4PL-1Wl}xpiD5S z)G>*a&6;B`IZgzvmLFCx+Q_@9(#B%!ooXcDBjZ3uQ%RxSJvPI{qj_F*w9Zs?HjSp_ z?IO1+&ndso6j6cLokB@jmq3GR6c;x0Vfu0n0hq3gtLHdE|6#zjYE7PFcZOF9Hal9^)wbOW#Z@v+4!$$HjQhxW}Y<7 z7L6NkM_ms+y?wN98=|%1UMBwB&Gf0Ca2CMKfzvQ|qi?P>YW=kuR#-B$fu*ar;2OP5 zpZb~B;N3J9EU8CRh3xDonq6W3vOAePc97G1w=sS4aFJW9e1{zS94snPN>yt-Q_mcD z2Wd~TY|VBS-Lbm+q2AM=wd^jmJ;}sB`x)E4mF)B{wUek*8O>1i5h#^_`AR(sXZF8~ z<{5))UuND7gWYr7p5*e;5ytjxBOCv%CafBAoI8LYUs-CVWtTxhmvKquF0}Q5`=4d` zy4RT3cXJI?+7nzp@(us(+)8$KwCka3m2zJ77On~4eLH~FZXH%H38##I{|PF>iicjO zw{Lj>%_g`sI?RckTglG-Rf}l?vo7H-I30SaY2o@}b-WIB7(EQEdV*UY-a%tQKNo)A z%ZXjv$Ptm_}EhqN9L4N*tOh@!a zD-9#rpzd<*>hs-}(25gqRS!i6D!PxOXMP`&U92sh5!wh2u=+jRte3q5FGTQeXHeBD zGn3{jeYs}9;DPsX*Sy|-ySWxQYz}V)S6j2@1KgZ1^drxAQ`yx=w`C80h`X*=n0=e- z-giCfT!#h>)_%nGy~1>k;f=wx%_6p>i*+B*&F23mj9~ZM!P=<+0000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/fast-forward.svg b/images/fast-forward.svg new file mode 100644 index 0000000..aa3b9a0 --- /dev/null +++ b/images/fast-forward.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/folder.svg b/images/folder.svg new file mode 100644 index 0000000..9be9119 --- /dev/null +++ b/images/folder.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/list.svg b/images/list.svg new file mode 100644 index 0000000..496facd --- /dev/null +++ b/images/list.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/lists.png b/images/lists.png deleted file mode 100644 index cbae3018ee023b9739c3661f149a438464dec845..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 958 zcmV;v13~Zv~Pb{>EO5T59 zV`C7JL_`!(Qi$59SfzM~C@4hH?4Fs=;+(U4cJI61OYSsx_nzJPX1@8(oLOT->n@!Z za!^1x<8_)`-|)l-wuwJm54a;m%8unDXawMB2%=qc4j=!-t_%3zi#wWUr8e7eB**G{ zIHCrZa$s_9eCjLP82F!$PpUeeXQK#=KsA`C;67y_${Nm1C%(0{z<+=Atj3Ho#nuEd z0_8O+QVHB_iSsCI#TM1zQa>T^w;=h_ppYH!~0Ba zwAA?EV1MrzM^0U4fA82@up_4~57(Z$L5!2~0QTE^kE=?biCUdIPkg>r#{0WBGw7!7 za|D7#q^_tpCXFFSw>slCvsIS711}jP1ek#Y3r{^JCu&qx$?_$TO~6`H-)FdX(-wU# z!aG#Bw}=uz*&Z9zxcz?~m`gbTEjJCja{d7gdog^{JnlaG(^fV9`4xi#s)Ag>7vVjl zxXN!ic{Ww`suF|-Tuen*C6>j|I6MsklRIMj8dqQ|zcR2Wz}|PIE&9;fRF1TDs-82j zRO1+HTLY-du^(Q)N5}~|=A)`368FCL=Tb|$3@D@4rSV1aQ|D(&SOs_C54l(U$mv+NLn74tnAOpeQg-+npTWHU%r4^ z;8qVq2Wn!O1fkj1VG0iL;5lsNu=mCD1^giDTCcMVYCDt;@GN-fZEWp$``MWZbF3@3 zt$F6*cUV8(R{Qk1#+Nqv<~aDVN8V-gfxfj%JJakZBC8H;rUAjD=efR5n7Lg%on32% g*s3lb+uO|Nf1jQ*pb(o2i2wiq07*qoM6N<$g7$~M#Q*>R diff --git a/images/minus.png b/images/minus.png deleted file mode 100755 index dff37f6858d599204e3346469e89c4b9319701b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 981 zcmV;`11kK9P)Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipr8 z696+^>AaZ$0013nR9JLFZ*6U5Zgc_CX>@2HM@dakWG-a~0009l zNkl3*-O-mB>q%sEEu%LEmm0j4PT zp}OC4;<3!LpUehaAuYs>sRh&wfPy^V<3ycw=paZB+Epnu1hFo;L-N$%ROa zifyOg%G|(zo-Z+P+(tt)2n@_*EQ4#E0ZVgGY(M)!W&;0ycAh1om|}4x3Q(LQLnPB@ zBtU5KeG4%Qs@SpgS*8O2dU}p!!;(%=A*rsk0MgR4x)Ovw^|V4Vucaw=u6~sX;Ga*< zkbOj6G!aZp0mMy71vI7>J!ndI2897yM41J;`|>vdfGz`D7{$d5Fm<(c5o9&T5-7xC zX6Th}p(hBRZc8M6#6KRLBwgM5H08xGP_?`|?zC$pL9@&(#g-0KjydfEwV6 zL|uDdhDnCcv#9kf3D1ud|4%W;ESohBy&MDcHVu;hbD;?wUg%fywHJe7%mX%Cxu}MZQ&w*QL zzQ-D>g?R;~j%-LkRn1W>1DT?Sc8fQcKo4B$COyz~9}d)bBDDz|01n=UOg-$qzL>y= z8o|E=CC*aq&IAtKfy_MKzFMs^Hz?RyKK0}9UCch-=JE2vkjiGX#(~$4+{63_dOy}z z>gc_C(W*XcfWXoF*xX;3cC0POtvN+(Sr^A1%(v%XIz`r;#|0)W00000NkvXXu0mjf DLEN1v diff --git a/images/minus.svg b/images/minus.svg new file mode 100644 index 0000000..601c5bb --- /dev/null +++ b/images/minus.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/music-player.svg b/images/music-player.svg new file mode 100644 index 0000000..e258c4f --- /dev/null +++ b/images/music-player.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/next.png b/images/next.png deleted file mode 100755 index fc2c7911f6ec242288328a7a3baaa625016ad4c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1267 zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipr8 z6DlyPiy;dD0013nR9JLFZ*6U5Zgc_CX>@2HM@dakWG-a~000C^ zNklWQ!2bpc;FF=K63 zR%fe%nc#|X6^tUdm;y6l`k9~H*ucwQ?Xkjfn~kaBP^<_>3vg*Fpm_}8#^-)^*989e z_zPAsN)o$T5EW1wGm9yhQjv%=P4*g-3L>oA^Q&7C_@86XTjj8lbM2!Gjo=3JyKr?C zGGHOSX%!?UDJT`z&;C*3^@`5rqtBX(MD{OQVnCwj!rL2d1h_D=>@>Zn-w1H@sCxRFwzGQky{vigAl9EoV+NCehWv~} zL~_4Iq6ctk;c=5}q%mL`@}#f=a2hic0QxuI!PK9GBz8s6F{U6SdNd3XceSu3pVHaqCuYdh8IoYKoZi z#bQ8JP&Ldz4SJHDND)<$iJBsn*p<~OAI!9~>P>Fi#)hYk;#RFeRS*mT6cEk8DxMg8 z#Wn^s49l#v6{L>Am&w%$zWHu8JpCn1tV1*dX3)eqROuhXFlAy^z+xbFFfLRv)vF#b zQ@3wt!vN}AQCee#R|hg7Lli=^&s7CrvrZwTNlZ2)s=N?)T-Yb7x~ zO)$x;vI4M1k4d~LV~s-wi}Rd2{wgMlkw9IJwJ*V^+FUX&m{hg8ld)xI9Vd-RVCmGy zoISQ59bU#2c9s$hpr4!wYJ!vE6jHQyrjD@D3~F?$vGmJf&U~>S9S+KqsBPMp=s`13 zzFC;X^3b!{N}V&a&RC=8 z(&8abAK6D-9;B_4_pVwkqZPKkiR%Nz=s{8zSGSIp(^bhC+5kPw=_9kq@=~?dR*`MX z-2>Qm;IfOkJgP)gtr2CH)T$s?254C3;^JX`|8$n{-%?qbBrBpdrebi{TPYX&RT+#` zltr56eb*&5!1+^$7!J + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/pause.png b/images/pause.png deleted file mode 100755 index 9508f98e7283f49fd38c074f4731e4f2f7a3af89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1058 zcmV+-1l{|IP)Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipr8 z6CMKCc7uEX0013nR9JLFZ*6U5Zgc_CX>@2HM@dakWG-a~000Ad zNkl zh)5z55J{_@t%8Usq==%~J2S^(?#JGJd*6HH!sG3GcXrOqnKQF@1xK#=`bB~U&;d8J zYwfP@dErYr#-AJpJSAPjF|C2R12C`#vD`D9IrpvH74U!8PPxvC%WU018l>#IfhfUg z1V+QXFWr=*f&cyH0*m8yHgt!;!4ixYaO)ZHya&U5uly(nf&cmXJX=OVu`GgUK(R+^ z1XCGN2tDjwg9S6(f8l2t0{{Kht85M%ouEN-UFiza^KV;}Kr8k17G$}XZg}w0FR}xC z`|8VN&1fl_024O=;gmGMf?8D2Om_i=1J*=Y1p4sXe+U3f1=w|to2hV%n;$rLb*KKf zK0BLBU=R;x=!S=0`)SAauPcum{Pzkn>JTvY8iw|BY-`1OR2R79AX9^1xZE#+#MQ|rMdN@ zTUWc0Qv2cJpy{?P0c22SiPRR62Ub6=2EV6hJ%!7phyvAsUS8<|&J7p#frG+iF_^@LFRHu{aH4t#0mvx~X

4{WB=9$thihExyD~cgfX6T27R^r?H-$TEeYU7}&mV^K zku6J>Y)n1ze)K?Xgqv?gKxE9*nu+W>TmRS9e9=CT-MuG2SOEjT4{w4?;H4hw1X@g= zE{K(a1wA+bJaq*!JnVh{Mh4%aPF5_iKfTFfE_V(Hoc$1T@OXRUQpe7|jyc%N0Pyrj zIDEV<>$}$%zIe<#$F|usALIA~{c>GD?X&MhRvgGm0|cJ^1b6oevtHLOX4MbGR&?>) cr^osHA7(GhFe|?7h5!Hn07*qoM6N<$f`V|-vj6}9 diff --git a/images/pause.svg b/images/pause.svg new file mode 100644 index 0000000..57d5b9e --- /dev/null +++ b/images/pause.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/play-button.svg b/images/play-button.svg new file mode 100644 index 0000000..99f7554 --- /dev/null +++ b/images/play-button.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/play.png b/images/play.png deleted file mode 100755 index 3591973ab0e556be7483d5cc4bba8d2d080f4a46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1281 zcmV+c1^)VpP)Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipr8 z5;YWC5TSDb0013nR9JLFZ*6U5Zgc_CX>@2HM@dakWG-a~000D7 zNkl z@0|0-VZ^JR-A7OX8eob%mezQD&sT1g^W6G?)1*l_n3_S&04UgyDCZRYXHK{c0be~n z&8}4}tu+OyaB1EYL?S1F7!{kJJLN_OzVh8(rh~iI&DAk%n6;AmmJN$`RyuHSpctqHvR%}dM&W_N-LM@8?(tr)v$ z8&*z#4re}lAp$1X(=y4lm!`O3|Jeqwmj;8cpQmXJRS(k|CN)fJP<cE@=(;~Ko1*j(Bsy@bV*#)Y{ zm6Pv-=8L$-5TMwT+-*^)rNs+hKF!43#DnHx(E^h?Jd1BOy0LLg-1a#7Q*XmmpwTkZ z8m2xzho6Xt`8vGwE4Xm5&&FcY$hyc^CWdKj0+LxAW8>)Gz8h4*(vJrK^+lTHv`S(m z70{r30I2@?VmE_TWzJ@Cl_Eg_3;?d0z~t5^KoeX(@h(8gE^UMtGa=SOZOM__b7B3a&C2CqzgQ&+Qs+np!8 zTiey?@{8wj?z3Gm5@d{L3I_u^Bos;%g$j0A=O z`^)F?`{A9?!F-5>8{T`nJ1dnMun3e=fYLO5CPHoq=wKed9h!n)x{v|OWgLPW$GyAX zn{%3Kta^ynP#-#qi3dfXV9;A}s9&1LnVIcaS(<|(_J{5-rmYcBhPxSX?+0)d0EpCp zW|yuikI{uJK!5#sC;Z~vP;1Kkb$NTs89e~F@8H0R#15hYGqzbqieEs&JE?;8GNyb|x{-0ip;6w72uHyx^bH){Qxpe@62M@um z`}g*T{Vnf+BYYKHYt2K4;YR*L|NSe)Ssdk?WB9U%kHBr{6J~b0ZT-+z=Q=UMY9p4vKzlPY7E*|@Iv@`z)@_c!O1F`g000000NkvXXu0mjfU07JK diff --git a/images/playlist.png b/images/playlist.png deleted file mode 100755 index ae4af1407b278a516d2488bc582098e737df35ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1445 zcmV;W1zP%vP)Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipr8 z69N&szn}jA0013nR9JLFZ*6U5Zgc_CX>@2HM@dakWG-a~000F1 zNklz9J z;h6IDFJ@fe;jf<6dPcs)CP$(US-2=BmI$Up}Mtfc0{s z4wIa#ibYkD-!69qHY>eKon*RK#nHZ{+gt%W`1w<+Sw_jGAS5Wy!1Z@y!~sdr*69?c zE=Fq?K{Wx@y69AVrs6f?&L1TeXva%E1|Up<#YUdFTEsbmNgcG_`Zz(`eBzVeQT^>> zP)Ez$RZLp76;p2a8&z{P(=mnGyW{$dL^?u%zTJ5cpFFIo^vSCg2&XTiFm*mrPZu(9%9pFyMrq+a6zATK+6ro` zNeR`Lz2R9=gv)zh@tr|B2d3wv2a}$a24lb_L<%7qk2I)MH6SRK(YTtlQ>tFcOh%Jd z!#Su80Ez;}cut|SF-9FCF4wO~JDC;=tsTh7ag;i#pxi;&u@pDl>(?Qu^A;M2AnFKI zvdTqgkL2o}h)Z0AI`2A0Bq3l4+B%uG>N#547cp||Yx)oE#2}Owt!C!h?G#dh<&=6A zQS;9mr7KJ$ba9lOZFbIuBBfc&Dc`Uf6Sh)TVepSHkXk>Jm#rsk>zt6dR1!|64j!b6 zb~Z*_jI$B0GC-~OZ|uMsG_Df$9w+MSCK@BHD+Kk6)fKYxfF>Y=>wZZsZ2Y_;i()qqK!&9S$ZDh>YXO+T~0u!u&3 zUZtrPOo5;{1+~$5$Lr^!K@XN&7djh*Iz%1D)m1HGF@;uICeNWZd?|Zr7?iMWHpR{r zxZw*~Fq69H7%$rDnIl&a3!RNXJW!gYs-5F7Cf?x zaLSy-s%6|#cWo=xQ%#tLx4e4B9DQx3YSN=Bjvy$}I(H>gmp?=hmOgeV*xt1Co zS>fItm~pSS2evd+?tjgJQN}RVxc_}j(-->vn{%Ly>!kS%N+rKcQ$KH*J>aQZUR2OSMXfEb|E6wGx6$UdC00000NkvXXu0mjf<`AI- diff --git a/images/plus.png b/images/plus.png deleted file mode 100755 index b72d57908a97ef7f31df90d88308ced748811ac9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1055 zcmV+)1mOFLP)Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipr8 z696dJjCFMY0013nR9JLFZ*6U5Zgc_CX>@2HM@dakWG-a~000Aa zNkl}Q3yT0ca12R;qLR_%SOk4U45S2U=Jr~keXMz;`lSy)}r+12MXygppVSaSuC_Ox(&6>4Vu`$tbR5FWs_fL`F0f$JF0T7tD6 zY;atrh?v%h=?Ja+Ohkz=j-4YBH>)2CIxg5P%3k z0)uIR(BKVK6BG@!RL4l578w@+1~G%@@&i|kwgzm7l8M-hJKPQT?SGA19VcG-W8>Nn zmt?JJ3|7V|x134-s0JNi_1v5fZe{ALQy!0a7yuyv0+awTOpU{|3+#VlOaY|Mr%-ps zdgP9s;Y>Jb3-aA-_Y%($PPi#GG zu)crvO4t0F_`iG!B$uzB%n6$-xVA%b!7_oz-iBY Z{{g3S=OS4a(t7{^002ovPDHLkV1mMC(^3Ec diff --git a/images/plus.svg b/images/plus.svg new file mode 100644 index 0000000..e4b5135 --- /dev/null +++ b/images/plus.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/previous.png b/images/previous.png deleted file mode 100755 index 9c49139402bce1a85c361308cbeec2beee0fa27c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1268 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 D-FhW7 diff --git a/images/replay.svg b/images/replay.svg new file mode 100644 index 0000000..04c9a0d --- /dev/null +++ b/images/replay.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/replayoff.svg b/images/replayoff.svg new file mode 100644 index 0000000..0b80990 --- /dev/null +++ b/images/replayoff.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/rewind.svg b/images/rewind.svg new file mode 100644 index 0000000..d706a71 --- /dev/null +++ b/images/rewind.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/save.png b/images/save.png deleted file mode 100644 index 37ec0864dd8726fa9535e0a5c610ff002c955fd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10992 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 LNkvXXu0mjfNECkc diff --git a/images/stop.png b/images/stop.png deleted file mode 100755 index 1e1dd0fd767364a149f45df1c568dbc5dff85065..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 938 zcmV;b16BNqP)Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipr8 z6CEfh;2CKE0013nR9JLFZ*6U5Zgc_CX>@2HM@dakWG-a~00094 zNkl7$k^b1lN87HzKYC2|-*6Zp=zVK|-EE%?AkCWhE}6qTj%c z8-s`>B7%rnX6e>I5K(XuMKj%1$3_2{nS0;kUUH}5GBdY(>YS=NU0q}BImX+Ugd7wQ z&UBv__m92ymF;8Cb^{(uk&9vZ1R4Q2>LliK&Y26}*&_k}ck5W2UTN-aIFe&+J{-}= z6a;)Z6k&&W4`z!^yhh8y}Z0{T3ueQH{MtR04H-9GYXP5YTqf7(9*BUJPFpkArh8pn|F* zH}D}m^}5>CTu+`gfYmBhB_S*S4ZU!9?gEoLS`palRR$InxP^N1xD5SPc4+eRRI zj&lMzA;)}Dbwpk#$1`9S;>sgL1!^ad)=_l?+sO6)=-I3H&3z<1;hxAo;wj;Ig<9Qy z0#~_4z;hpB13=ED!f4TTXq6oI{BDH%2;lka4=m?;f_NrEJwFFkuI6R+)CDhm#Kw8- zxi7Z5%kO+(Tg{QQ-7s0*pNr>KFy?bQrS!DYm8J7i#4FwxZaDW$YV5c^F zKfYJNPYT`K>V^lc97-ox7QFN^wzIwc;qoGK>`J%oSaa?ZcDJ`}eE;sumiGDPIC=7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/stopoff.svg b/images/stopoff.svg new file mode 100644 index 0000000..dc75dbe --- /dev/null +++ b/images/stopoff.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/up-arrow.svg b/images/up-arrow.svg new file mode 100644 index 0000000..e0bc299 --- /dev/null +++ b/images/up-arrow.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/up.png b/images/up.png deleted file mode 100755 index 0ada34a63d2b0ba90c85df1e6ed0cae99c86c9d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1317 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 MPD Player - - + + + @@ -15,23 +16,27 @@ Now playing - +

+
--/---:--/-:--
+
---
- - - - - + + + + + + +
@@ -39,9 +44,9 @@
- + - +
Volume:
@@ -55,6 +60,8 @@
+
Code (C) Roman Bazalevsky, 2017 licensed by WTFPL
+
Icons made by Chanut is Industries from www.flaticon.com is licensed by CC 3.0 BY
diff --git a/css/general.css b/mpd.css similarity index 87% rename from css/general.css rename to mpd.css index 62e4e56..597f527 100644 --- a/css/general.css +++ b/mpd.css @@ -57,17 +57,38 @@ button width: 100%; } -#nowplaying_content { - margin: 10px 10% 10px 10%; +#nowplaying_trackname { text-align: center; + clear: both; + padding: 0.5em; +} + +#nowplaying_content { + height: 4em; border: 1px solid LightGray; - height: 3em; + margin: 10px 10% 10px 10%; padding: 10px 0px 5px 0px; background: SaddleBrown; font-weight: bold; color: White; } +#nowplaying_trackno { + text-align: left; + margin: 0 0 0 5%; + float:left; +} + +#nowplaying_tracklen { + text-align: right; + margin: 0 5% 0 0; + float:right; +} + +#nowplaying_counters { + width: 100%; +} + #control_buttons { text-align: center; margin: 10px 5px 10px 5px; @@ -162,8 +183,12 @@ button height: 0.6em; } - #volume_actual { background-color: DarkOrange; height: 0.6em; } + +#credits { + font-size: 0.6em; + background-color: Black; +} \ No newline at end of file diff --git a/ajax/mpd.js b/mpd.js similarity index 75% rename from ajax/mpd.js rename to mpd.js index ccee6fb..f1c60cf 100644 --- a/ajax/mpd.js +++ b/mpd.js @@ -1,6 +1,8 @@ -urlbase="mpd.lua?" +urlbase="/cgi-bin/mpd.lua?" minScrollHeight=200 +currentState="" + function GetFilename(url) { if (url) @@ -27,6 +29,45 @@ function SetSize() { } } +function toHHMMSS(seconds) { + var hours = Math.floor(seconds / 3600); + seconds -= hours*3600; + var minutes = Math.floor(seconds / 60); + seconds -= minutes*60; + + if (hours < 10) {hours = "0"+hours;} + if (minutes < 10) {minutes = "0"+minutes;} + if (seconds < 10) {seconds = "0"+seconds;} + if (hours == 0) { + return minutes+':'+seconds; + } else { + return hours+':'+minutes+':'+seconds; + } +} + +function RefreshTime() { + if (currentSeconds) { + currentTime = toHHMMSS(currentSeconds) + trackTime = toHHMMSS(trackSeconds) + nowPlayingTime = currentTime+"/"+trackTime + } else { + nowPlayingTime = "-:--/-:--" + } + document.getElementById('nowplaying_tracklen').innerHTML=nowPlayingTime; +} + +function PeriodicRefreshTime() { + if (currentState == "play") { + nowTime = Date.now() + delta = (nowTime - updateTime)/1000 + currentSeconds = updateSeconds + Math.round(delta) + if (currentSeconds > trackSeconds) { + currentSeconds = trackSeconds + } + RefreshTime() + } +} + function RefreshPageStatus() { var req = new XMLHttpRequest(); @@ -36,21 +77,40 @@ function RefreshPageStatus() { var returnedData = JSON.parse(this.responseText); trackName = GetFilename(returnedData['current_playing']); trackNo = returnedData['song']; + currentState = returnedData['state']; document.title='MPD Player: '+trackName; - nowPlaying = (1+Number(trackNo)) + '/' + returnedData['playlistlength'] + ' '+trackName; - if (returnedData['state']=='stop') { - nowPlaying = '' + nowPlaying+ '' + nowPlayingTrack = (1+Number(trackNo)) + '/' + returnedData['playlistlength']; + nowPlayingName = trackName; + playingTime = returnedData['time'] + if (playingTime) { + var splits = playingTime.split(":") + updateTime = Date.now() + currentSeconds = Number(splits[0]) + updateSeconds = currentSeconds + trackSeconds = Number(splits[1]) + } else { + currentSeconds = null + } + if (currentState=='stop') { + nowPlayingName = '' + nowPlayingName+ '' + } + document.getElementById('nowplaying_trackno').innerHTML=nowPlayingTrack; + document.getElementById('nowplaying_trackname').innerHTML=nowPlayingName; + RefreshTime() + if (currentState=="play") { + document.getElementById('playpausebutton').innerHTML=""; + } else { + document.getElementById('playpausebutton').innerHTML=""; } - document.getElementById('nowplaying_content').innerHTML=nowPlaying; - if (returnedData["state"]=="play") { - document.getElementById('playpausebutton').innerHTML=""; + if (currentState=="stop") { + document.getElementById('stopbutton').innerHTML=""; } else { - document.getElementById('playpausebutton').innerHTML=""; + document.getElementById('stopbutton').innerHTML=""; } if (returnedData["repeat"]=="1") { - document.getElementById('repeatstate').innerHTML=""; + document.getElementById('repeatstate').innerHTML=""; } else { - document.getElementById('repeatstate').innerHTML=""; + document.getElementById('repeatstate').innerHTML=""; } document.getElementById('volume_total').innerHTML="
"; @@ -58,7 +118,6 @@ function RefreshPageStatus() { var table = items.getElementsByClassName('track'); var current_track="track_"+trackNo; for (var i = 0; i < table.length; i++) { - console.log(table[i].id); if (table[i].id==current_track) { table[i].classList.add("itemActive"); } else { @@ -83,10 +142,10 @@ req.onreadystatechange = function () { var playlistMenuText = "\ \ - \
\ - \ - \ - \ + \ + \ + \ + \
"; @@ -117,13 +176,13 @@ req.onreadystatechange = function () { "+name+"\ \ \ - \ + \ \ \ - \ + \ \ \ - \ + \ \ "; } @@ -150,8 +209,8 @@ req.onreadystatechange = function () { var playlistMenuText = "\ \ - \
\ - \ + \ + \
"; @@ -205,13 +264,13 @@ req.onreadystatechange = function () { if (type == "directory") { itemsText = itemsText + "\ "+tailName+"\ - "; + "; }; if (type == "file") { itemsText = itemsText + "\ "+tailName+"\ - "; + "; }; itemsText = itemsText + ""; @@ -242,8 +301,8 @@ req.onreadystatechange = function () { var returnedData = JSON.parse(this.responseText); playlistMenuText="\ \ - \
\ - \ + \ + \
"; itemsText="\ @@ -266,7 +325,7 @@ req.onreadystatechange = function () { itemsText = itemsText + "\ \ \ - \ + \ "; } @@ -406,3 +465,4 @@ function subscribe_status() { } setTimeout(subscribe_status,5000) +setInterval(PeriodicRefreshTime, 1000); diff --git a/mpd.lua b/mpd.lua index 31275b6..b5e180d 100755 --- a/mpd.lua +++ b/mpd.lua @@ -182,10 +182,15 @@ if not command or command=="" then command="idle" end -if command=="play" or command=="pause" or command=="stop" or command=="previous" or command=="next" then +if command=="play" or command=="pause" or command=="stop" then res=mpd_send(m,command) +elseif command=="previous" or command=="next" then + + res=mpd_send(m,"play") + res=mpd_send(m,command) + elseif command=="idle" then m.timeout=30 @@ -203,6 +208,79 @@ elseif command=="volu" then volume=tonumber(status["volume"]) res=mpd_send(m,"setvol "..(volume+volstep)) +elseif string.starts(command,"fastfwd") then + + cmd=split(command,"|") + skip=tonumber(cmd[2]) + if not skip then + skip=15 + end + + status=mpd_send(m,"status") + rec_time=status["time"] + song=status["song"] + + if song then + + if rec_time then + rec_time=split(rec_time,":") + cur_time=tonumber(rec_time[1]) + + track_time=tonumber(rec_time[2]) + cur_time=cur_time+skip + if cur_time>track_time then + cur_time=track_time + end + + mpd_send(m,"seek "..song.." "..cur_time) + + else + + mpd_send(m,"play") + + end + + end + + res={} + +elseif string.starts(command,"rewind") then + + cmd=split(command,"|") + skip=tonumber(cmd[2]) + if not skip then + skip=15 + end + + status=mpd_send(m,"status") + rec_time=status["time"] + song=status["song"] + + if song then + + if rec_time then + rec_time=split(rec_time,":") + cur_time=tonumber(rec_time[1]) + + track_time=tonumber(rec_time[2]) + cur_time=cur_time-skip + if cur_time<0 then + cur_time=0 + end + + mpd_send(m,"seek "..song.." "..cur_time) + + else + + mpd_send(m,"play") + mpd_send(m,"previous") + + end + + end + + res={} + elseif command=="status" then res=mpd_send(m,"status") @@ -213,7 +291,8 @@ elseif command=="status" then if song then res['current_playing']=pl[song]['name'] else - res['current_playing']="No songs selected" + res['song']="--" + res['current_playing']="---" end elseif command=="playlist" then -- 2.34.1
"+name+"