From f3d0ea426e5ea51effdd6c344a1157943410fa64 Mon Sep 17 00:00:00 2001 From: Wizzy69 Date: Tue, 3 May 2022 20:14:13 +0300 Subject: [PATCH] --- BUILDS/net6.0/MusicCommands.dll | Bin 19968 -> 18432 bytes BUILDS/net6.0/PluginManager.dll | Bin 43008 -> 45056 bytes MusicCommands/LinkMusic.cs | 73 -------------------------------- MusicCommands/LinkType.cs | 13 ------ MusicCommands/MusicPlayer.cs | 61 ++++++++++++++++++++++++++ MusicCommands/lplay.cs | 22 +++++++--- 6 files changed, 76 insertions(+), 93 deletions(-) delete mode 100644 MusicCommands/LinkMusic.cs delete mode 100644 MusicCommands/LinkType.cs diff --git a/BUILDS/net6.0/MusicCommands.dll b/BUILDS/net6.0/MusicCommands.dll index 80586f44b86bf15f87c1250e4bd8a2dc384a66a9..f7f0d7fcfea520632d539d9c5cd3b484ddf9c855 100644 GIT binary patch literal 18432 zcmeHv3z%Hhac14qw{O2@M(UoI9!ToZv(ZSc8NC>ZvCupuG@y}$Mi28aqt?tFsiCLu zaJxrH9yMw~WDH*H5IUsFH&@baLH z=7t4NHP9bLUTFKevHgX%J%_V}-Sax>$}kxV}C6q5(-q&t~UX7kDZokPiSXVgyD z*GCt7qIYc}+HM4B$1lD2wy*6BElkFY4sC>`slB(NOyW6!hiInMmA0D+Y`=US1_Yfy z0XlGsS^2+e>7h)*=O-T_+R2pzME&fD^FL*xI?!GQ-xcS#T@FtYg=^Zwz_-=l>7sqK z2z=Wn0JMq2J-dO)Ckd<4ZowS^Cbk_wg$LS;r{=R6z09QW+1++KQ*f@7&P^B%Ol;Rksuew!i@&-c3u@zq z?iyLMxtl7@(L!d45T-#0cp-!lEo6>6q$guU7lKvhWFy@b0&9zdRRZ%XuAJlEtJy!T z3&ASA{CULam0n69WZSI8|6 z@(G$-oq1fQ<^x9C$*RskWhx+hZbyvX3=mf=+CJ~6nl9lGt zruLw7B?x86Gw)*1bk=AzO^`O%8e{{|qxE7PYjrIPI{&Spm>!C9Kp+R90?LvnuMWQX@>SILLxJ%sw3SR}iA6 zxUtbv$GJS)j5SsDkb*d@xM&IM9P`bvi~urKlcwCo$gD)@Y%?lzKf)r%1*$C82w_oB_Ib=-(Z>;V^oh>ilxfLHFtgdn92C>>>Uun z=a6_|TTQ;Z7Sa~3|r1Bq&!X{D`t74OJU_%)Fc7fRp3x=DJ8*5 zR%=?dtM+|9AC^sZ2rSIGnuj1U%ZbK|Sxz)!2@=gBR_qUg6Affw5FcVKQ{2djhRd3m z<-U;S#cU&TL)sp)nISB_b6YKh7W`?zyYKnC_AA+9LCIA@JBxba8g)QTfC*O+(EH;bh zArg;l{M`@EojW~8FFY|wrW`Bo8kTgriC0{ep4!Y*EHzncC}wD->3Re}6%bukDJ5gka4G5~oEF*X zOeyq0XbFcwjF$1FERL26e%3=rl7Or+Z36&(-JcTu`LoAjs z^wjCSm+e)d61E*vVI?d8jYvl7+Kp*O7bZy(YP8}O($Li)V->K!r`TAXfUZQX zM!cG00um4xpUhTMP-7?&N_9aq_8eZn;@xh?PxoV`E4i=dvaX zNneOVoJ33QEI>_hQ9{td7>39~jp2A$4qY-3tT&_<&p76&Ni8+oA+K3&T4egnM=CS_ zaq$jMId6v-n|gmcY!6WT0$!KeNn(e;E~D}2#$P>)b=lS!n{?Dmti@yA@{|qn zg67m_p2g+VgEh~e5S~V?HB9(yQl?8o$@UuZ?&vo&#fa3Ug8?eqWD~UHpt-qJLMO!Jh(-{waYk46%XNl_uOcO+WK;2+$dxgGgom>Z z7X1M+fm^Ymb5V1j;jR#dHH7;NUvn;UIp8A#Qbly-R*4PKh9g4%G<89!L!N`Wci?C> z#jSis;Iig+Ae|u(Qy(p1pG00^=-&>6qNcF#qd{DW7`95Afs-{$PBkr<9LAl!5aH}& zIXyMa3zc`du)NEKHSKcITfA|{7=y%5zD%T!a$UO?)sIrTfuK=s+F zawyp=X` zzEe!gy*G5d$WjXXF=jP2faWPootgSD$IXoZd@#8QrT0>R1>j(UR3JO&wJ7Cal90(e z4FlB_H{xKz#o6Yle|(po5Oyv$L?Ea1&s zA^b%*EMeWIug@&=v$z2Oz98$o05}Le?aNSFGmu`BL{K_PaCRyXR(l`dxx&W5dh5i)Zsa@Hr

4lOWo9bL>|6K)tcQ^-Hk`0+9a2SVNdl){cxq$oPcVkoVq;QQ}-ea4oIIgLQ)Y zBGE!TOYyL+{BU0u#p6S$;ZqFh(O7gY_*%rG8!U$ZWIh;~LGMRcN-p@P7B1G-hOk9v zf(*YX@F{@{gg#H|??h*YqjX2$8A!;PGr_r5WbO<;7-^t+b&mkP7nX^z=*zGZZvdno z3I7+vqQ=mw=p6dpz<0p&f$%R5-5Z!s-;6#OnNN3zng4qhOFIH<8)#REE%`L9inh?R z>fS&L-4|szCh$`Mt{;mrToqv$1HFN^N8Sa0k5GQy6nKXD#qqZ+b1o?!X9?NsWFa`nY6J^ zV`&PY-yeX+oL32k+yJbZHVVczbkZ#97VL{aJ83apQ`0X^y*1c+L@dj^7XjUgFOasu z@&$p7cq!K{Fci23^_u`2>DpK?U|(n};FqoI0~USD+zHqe*$ue5ZXe)lftvu`*sXxC z7}o$Ui5`T6>u3z{4D|xOM_Is=G!FO{O#-Hj5;&hV#sEKKvCOT}jex%Vlc+C=UJuR@ z+6nk~^fACDgX_HlM~wSXzennyF&;quBs~cD7O~`7Ia-UB_EGvgc(k;C63JTHN%Z2r z57zX({1|^tG}h|6JpaSscf=>p3T!jjGwX~;0QVW}|4HNGUh>Dn@*fZ1FP`C1?7@3M z_AtYcNaz(fV6d-l6VKdlJdXNFdIIn*dMdChiEyDeBU6E|Vcz$9m>Xv7Ru6kv+H4Pd z&ZsjCI_zQj2xGTglH* z#$KwY_dJZfR8Q}F7<;Ln&UqMnsh$*X0Q9DKsh;A3X)ncTj&74#iBp@0vA#H^JdE|l zX_beuzBsM+FxD5Rbson0;?$)v(HEyr3a0fn)317*90kqvpFE89HPfRW#`>D+_dJaC zHPat>80%}MuX-5kYo;ePCi3$37HNozomGq;)0=j|^!xDoQB`GDCmXf6I_NtU5Z4yjNX`^jk8|!PM z=h9WqHhNw#&AE_X_S%?pA#LucaxSD^!8GS0+U~V6=OXIouK>I;ETXM~Y0ky8%WGrK z#q{#}Dkq;)4CHV=T)h_H@1I>9TTJ9|rhgnq79YL}x}th;8Xl}|eOCA{CFlPZ{fA=D zu*o(&jy>2QUB4Jqv<~A~hx5`poUYbk-&}`pHTEI{?8Um@i&eXq8t}}(6QNH;46G~8 zRJ+#^V2{87fj0=eQQ$GaX2cx#{SASS5&QWu;%ItDD2DNgNE^LQpEp+k zJ{jwzjL_SR&zpVJW-z7Am=W4R8^CD+wwN=i$M|p2qo_X@oeAhzCjfsMJAwP!ld)f- z2kHLU*T9pEJq7q<>lsjHg`T4ujQQ$CjBq6KJ~h!lBRjrMXVgriiI&Ee8uw9Gq}_PT zSRLv_o%x?IGU_Vh3gKTY{ELP2Y5G`b)QB4+k%IA(&|d=GqNk0!O$(#2!zUoQ1C)r- zq<+g-D-ybev&~?Q-6AJqtWwV#5o4p;fl+_g`Wn4t{3P&wqs?FmZ3attRYv_f;6EGx z2>1culc2w2ykLGGHe7>qP{eq{N~re?mS8A`?4K6(j!_4mcZ}755#z(*`RZxf4_!|f zdBB&9??#7JKV4sUhkD7F6}?l%)!#?&Qr!0*)oJ`N_Umf4`W*J2HpQNAQ+KK7)pi-n z9vRCX8O3bl{@DLiSE?=QJ#~w;j!NsOH^%G330U}o*%pWxzpbtew9)PKZL^I&L2m@p zd=oI!INwJA=i)aIX{^^yz;-$WxQ0Focr~2@?4w@+yk6)-fIT9oN91Irj>v(`lTtq^ z^)qxcebGFFGt#%sq``U@3EV8OPv8N8BLd3;?-BT$0-q6hMj$DckQBICU|HQv&zoh% z@*hS$6nt3fW%Fk04wg-(m#v#=ELgV0hR{8r90=V^p9&rbG3A>=NrstT7I;SB<_J@k z(I%W?Zl%NI(gSqL_>^(RSgCr{SCzsF4`B70@SuhD8KPFKV_ezjMBt~$R!71NACdZB z89zhajWC=WX820zUjTn5@Kwc>XN3Oq^!umg7v1@0ce z)re+=K3ib@1hhvmzYAdfM^TT_an$RmjCvj2je0%4kDCYhanu{=KcL<~pG18I{R-+c z=rgGQFA5s{#&+XY;}4CejN8XR~ui?;B#E^ zE1xJ9>-n_jE<(FQ|!>c=}d(+79aDTQik;@$G%Vi3M&JDw$PUqd~ zI^)~3`P(-g9OlNoySHyzH$2=)-L74jaPkG)Lk||RANA`Knc`uOys1l=H%)S}V=|Y^ z9L(7VI%!X)aJyIZ+?mN1Z5P<~Y@vvvd&^OKWU^?pnVqX?AYWXwn!2}UbM}tRxaa_S zaB^(Sc3BIMO$A**3ozHtjB>*o>K@G&MjY423Pm)Hdrb#NoXLFALs$UV*~~SpaQ#~9 z9vd5!;}k#_cF3oB~U{in{HiUgZ-0=D}~E z?m=gCGG}ihIGzsK#bNv~cW=S&AEaynVCYz(Xpg4{c2a+)nDNm*CzrEFidjrg`dT}0 zyV()y8|)w6Tg>JP>A}eY@ZE4yPvKa8gg7h)?Lr}Q$kv4YF6Kj5x8^1bhjmqVz*{!B z(Cb)qCUmXO$>*U^BZ#PxTKrnuYv{gQXl)u5lgJyC%WY4h)o4k>xci6>rpW_Mv#@Qq@Kzs8OJcrbW zIW9uQJ|{b3i%9CX4^AFBWV^ktbEgbOle;%{4#U;VErTPTRgBJ+@CJFbr-=8z2az>A z5$uTbX*FW2O+AHzJ$^8EOq^0n#@Z0&-mt4pzKuggdjiqvOddL1ZQPS_u}rt(H}v+M zj(dBx!SA&#J34CTt8`yKPsKjlEnwAN*f@|MbKLO^FX>F~l3bYMvFxEqSNN(zw6BD? z+sL8Jq{KnS9rUTHMHH% zA3}9YezdSZiwdT%X4ms~GGXQYM=E`X@s|#E&I>{x<4h}2=@X7{i2BIDv?W-f%HHZ@ zl4ao_&H{z>XfEeP`>wu0ol8V}Zw7vnlVx;1Hd(7KUq|Yv=kmX3!DcDDl6}B85 zu_vU34eGZGBW_mX2(1w$Dwz;h$!xAd=INeJ?%q@!9zN*t?8;3Z%H{_%dE{W128N1Rq*zx>;LJ+{ z*D|A2_0&t1g?fhvaiaR9= z3fRi-n8a@8qtgeqvv?Tk&(~h#o3s}_5(qu+p~-QmD2U4|$d;oxI~K4lxCdWK!k!jKbmnzkuz|X z5l`*5N3pU;c(1N)(rJMPog?-R{xc@eZk?&bHV{YHE|eU#2qA_!z9t~)_P8!ed=Z+% z{V#{NKR{OQ@@h%kR3@oFS=?HZG={sO14&)6?G+A(Nl+h}&RCyzD{J>#Hby!B)7&^YAc1W44k64qsD6xc8wtk~(o?v;?_ zfQRMrNOPdE?Rgm)w`W0FNJig6;m(NnS4({iut1%(UV1Zc2L4XcTI#~Rp8v6|tXQ!T zd`2WKHsOaYsND(fBk)ujmhxPW2$gMt#jOLd;0UNZv!jr+7vGd`Cn`U>S0<3vXcrby zI|##*V9Wz@I9z&SR-n}pBQMW)p>%diL3Fb@TxX~?BAp|!*!6h?65hu*Z-4T zfx`c2-fnPIsY$eFz@NcavPt|&1&`wxa2%w8yB;sw%Z{c1B*dcB51fOHW~A{7Ww5d& zD6k6eu{f-6$K$}gY#Uq6p^g6d-NMd|SN`R5clUjLQTO8?Sl@h}@b=FL2a;q2QHjSH zZQyERgTTE)E}0=Cu^2Be;&+5P48xc?AHUsU3ds0zGsVjfGTsqPQlfkxQ&%v)f@^EJ zww7yMTe-5)u}KsB~kujDijN==J<_9;vJ#riSm<)@*gM4-$<07o|hyiO2B%_q_JOVg)mdhvQk5828nM=LN%IOEiZe z`$i)i(MEzjk_^E2!XUC&n1rcp3DrSFq9YnsGMX@?LSQhdj4NhYJkRBKEcX9>VQo?e zyb#6PQ=T1}o@hlyM_tI`{)x40nPy)*FXW5Hq;-iS^=ygxQ8JnnCxb>qVgP1y1^$}{ zkCSSc*ARw@m^#!O8ho!oh+oYhSTL<8>&54%w8E~|P)J8Y`GG{Y=qsO6;ly|>2~|Az zmFPy( zNtAWJ4q6R!Fn8J!V6*llvkU#VJHz|8m%YHXAvBSw%&f0tfy|Z9|FJv$u{s>}LddHSM zeDB6teuZ~q`p}W}=?(~JXsX;z`HcbgbbhHu34H%I?aG2*Fc}n-(<6S=1mT_d4Ho`s zx*$Z$3|cs?S6WU9?dQG0BavzqHkADdqK ze;2N)IB>fCx!hm|H@tCv9ctThALZ6_OCaNXHPeOtJNEyH2lyK!{N@+uujvNs-?Cxh zUO;EQZFoL>faq<-nEt%2_@@Q?Xb30KefXwlH);d;KP~J4J^;8?|6dpA8|IJC>Th5C z0M;dbbS@tgutu!V`T_B)C>(iQ$kAtHK1Yt>IK-dD#J%>Ql@D$OIdvAn#|J9?`HHy> zLJind1eZR%T_|a>@aPjR!?ifL!3X#)T?6{|K^~vHS;sMqNT11Be)X`XdB%kYuba`< zFMWMo{c;E#5gR68OV!59$>=~jH!36F2N^D8SNnG25ZY0BSZ4zK>>)mMx+wX)UA6eq zy3#nh=J1by>&@Rs^6lu5^yZOGVBGAzLpXRA!IQ+ZU3BgA=3z@lRMk)TQxx%O5B$jY#&OJa4x>vV%BFj_+J}Ao XZ{V{_|K7NN)4zeS{QD4oVGsNtPbVzK literal 19968 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 Mm;XP7-`N8H8wia|zW@LL diff --git a/BUILDS/net6.0/PluginManager.dll b/BUILDS/net6.0/PluginManager.dll index 57222cfb3c0353cf275fa742efaa10ae382621bc..2241ba39cd5aa456dce8dcf51fdf7a18e068f309 100644 GIT binary patch literal 45056 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 E08CEK)tx5XEv}r>NrIb=iLz6Apgy19 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 diff --git a/MusicCommands/LinkMusic.cs b/MusicCommands/LinkMusic.cs deleted file mode 100644 index 32fc6bf..0000000 --- a/MusicCommands/LinkMusic.cs +++ /dev/null @@ -1,73 +0,0 @@ -using PluginManager.Others.Exceptions; - -using System; -using System.IO; -using System.Net; -using System.Threading.Tasks; -namespace MusicCommands -{ - public class LinkMusic - { - public string URL { get; private set; } - public LinkType type { get; private set; } - - - public LinkMusic(string URL) - { - this.URL = URL; - if (URL.StartsWith("https://www.youtube.com/watch?v=")) - type = LinkType.YOUTUBE; - else if (URL.StartsWith("https://open.spotify.com/track/")) - type = LinkType.SPOTIFY; - else type = LinkType.RAW; - } - - private async Task GetYoutubeVideoID() - { - //https://www.youtube.com/watch?v=i-p--m7qaCM&ab_channel={channel}/ - return URL.Split('=')[1].Split('&')[0]; - } - - public async Task GetStream() - { - Stream s; - if (type == LinkType.SPOTIFY) s = await GetSpotifyMusicStreamAsync(); - else if (type == LinkType.YOUTUBE) s = await GetYoutubeMusicStreamAsync(); - else s = await GetRAWMusicStreamAsync(); - if (s == null) - { - Console.WriteLine("Failed to get the stream for url: " + this.URL); - throw new APIException("URL [" + this.URL + "] is invalid", "async Task GetStream()", "Work in progress", PluginManager.Others.Error.STREAM_NOT_FOUND); - } - return s; - } - - private async Task GetSpotifyMusicStreamAsync() - { - throw new APIException("Not implemented", "async Task GetSpotifyMusicStream()", - "Work in progress", PluginManager.Others.Error.STREAM_NOT_FOUND); - } - - private async Task GetYoutubeMusicStreamAsync() - { - //https://www.youtube.com/get_video_info?video_id={id}&el=detailpage - string ID = await GetYoutubeVideoID(); - - - using (var webc = new WebClient()) - { - Stream s = await webc.OpenReadTaskAsync($"https://www.youtube.com/get_video_info?video_id={ID}&el=detailpage"); - string str = await new StreamReader(s).ReadToEndAsync(); - Console.WriteLine(str); - - await Task.Delay(-1); - } - return null; - } - - private async Task GetRAWMusicStreamAsync() - { - return await new WebClient().OpenReadTaskAsync(URL); - } - } -} diff --git a/MusicCommands/LinkType.cs b/MusicCommands/LinkType.cs deleted file mode 100644 index 3a65356..0000000 --- a/MusicCommands/LinkType.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace MusicCommands -{ - public enum LinkType - { - YOUTUBE, RAW, SPOTIFY - } -} diff --git a/MusicCommands/MusicPlayer.cs b/MusicCommands/MusicPlayer.cs index 293feac..ae58026 100644 --- a/MusicCommands/MusicPlayer.cs +++ b/MusicCommands/MusicPlayer.cs @@ -4,6 +4,10 @@ using PluginManager.Others; using System; using System.IO; +using System.Net; +using System.Net.Http; +using System.Net.Http.Headers; +using System.Threading; using System.Threading.Tasks; namespace MusicCommands @@ -18,6 +22,12 @@ namespace MusicCommands outputStream = output; } + public MusicPlayer(Stream output) + { + inputStream = null; + outputStream = output; + } + public bool Paused { get; set; } private bool _stop { get; set; } public void Stop() @@ -25,6 +35,57 @@ namespace MusicCommands _stop = true; } + public async Task StartSendAudioFromLink(string URL) + { + Stream ms = new MemoryStream(); + int bsize = 512; + new Thread(async delegate (object o) + { + var response = await new HttpClient().GetAsync(URL); + using (var stream = await response.Content.ReadAsStreamAsync()) + { + byte[] buffer = new byte[bsize]; + int read; + while ((read = stream.Read(buffer, 0, buffer.Length)) > 0) + { + var pos = ms.Position; + ms.Position = ms.Length; + ms.Write(buffer, 0, read); + ms.Position = pos; + } + } + }).Start(); + Console.Write("Reading data: "); + while (ms.Length < bsize * 10) + { + await Task.Delay(1000); + Console.Title = "Reading data: " + ms.Length + " bytes read of " + bsize * 10; + Console.Write("."); + } + Console.WriteLine("\nDone"); + ms.Position = 0; + + _stop = false; + Paused = false; + + while (!_stop) + { + if (Paused) continue; + byte[] buffer = new byte[bsize]; + int read = await ms.ReadAsync(buffer, 0, buffer.Length); + if (read > 0) + { + await outputStream.WriteAsync(buffer, 0, read); + } + else + { + break; + } + } + + + } + public async Task StartSendAudio() { Paused = false; diff --git a/MusicCommands/lplay.cs b/MusicCommands/lplay.cs index fe06e8d..dcaafde 100644 --- a/MusicCommands/lplay.cs +++ b/MusicCommands/lplay.cs @@ -15,16 +15,22 @@ namespace MusicCommands public string Description => "Play music from a link"; - public string Usage => "lplay [name]"; + public string Usage => "lplay [url]"; public bool canUseDM => false; - public bool canUseServer => false; + public bool canUseServer => true; public bool requireAdmin => false; public async void Execute(SocketCommandContext context, SocketMessage message, DiscordSocketClient client, bool isDM) { + string URL = message.Content.Split(' ')[1]; + if (!URL.EndsWith(".mp3") && !URL.EndsWith(".wav") && !URL.EndsWith(".flac") && !URL.EndsWith(".ogg")) + { + await message.Channel.SendMessageAsync("Invalid URL"); + return; + } Data.voiceChannel = (context.User as IGuildUser)?.VoiceChannel; if (Data.voiceChannel == null) { await context.Channel.SendMessageAsync("User must be in a voice channel, or a voice channel must be passed as an argument."); return; } @@ -33,11 +39,13 @@ namespace MusicCommands using (var discord = Data.audioClient.CreatePCMStream(AudioApplication.Mixed)) { - if (Data.CurrentlyRunning != null) - Data.CurrentlyRunning.Stop(); - LinkMusic music = new LinkMusic(Functions.GetArguments(message)[0]); - Data.CurrentlyRunning = new MusicPlayer(await music.GetStream(), discord); - await Data.CurrentlyRunning.StartSendAudio(); + + + await message.Channel.SendMessageAsync("Loading..."); + + Data.CurrentlyRunning = new MusicPlayer(discord); + await Data.CurrentlyRunning.StartSendAudioFromLink(URL); + } }