private Matbot.Client.Message MessageFromEventArgs(MessageEventArgs e) { Matbot.Client.Message m = new Matbot.Client.Message(this, ChatFromEventArgs(e), UserFromEventArgs(e), e.Message.Text); return(m); }
public static Client.Audio DownloadAudioWithProgress(YoutubeParser.YoutubeVidDetail detail, Client.Message message) { IEnumerable <VideoInfo> videoInfos = DownloadUrlResolver.GetDownloadUrls(detail.URL); VideoInfo video = videoInfos.First(info => info.VideoType == VideoType.Mp4 && info.Resolution == 360); if (video.RequiresDecryption) { DownloadUrlResolver.DecryptDownloadUrl(video); } message.Reply("Found!"); string filename = string.Join("", video.Title.Split(Path.GetInvalidFileNameChars())); var videoDownloader = new VideoDownloader(video, Path.GetFullPath(Path.Combine("ffmpeg", filename + video.VideoExtension))); int prev = 1; int mul = 125; videoDownloader.DownloadProgressChanged += (sender, argss) => { int prog = (int)Math.Round(argss.ProgressPercentage); if (prog >= prev * mul) { message.Reply((mul * prev) + "%"); prev++; } }; videoDownloader.Execute(); //message.Reply("Converting!"); Convert(filename); File.Delete(Path.Combine("ffmpeg", filename + video.VideoExtension)); FileStream fstream = new FileStream(Path.Combine("ffmpeg", filename + ".mp3"), System.IO.FileMode.Open); MemoryStream mstream = new MemoryStream(); fstream.CopyTo(mstream); fstream.Close(); Mp3FileReader reader = new Mp3FileReader(Path.Combine("ffmpeg", filename + ".mp3")); TimeSpan duration = reader.TotalTime; reader.Close(); File.Delete(Path.Combine("ffmpeg", filename + ".mp3")); message.Reply("Success!"); System.Diagnostics.Debug.WriteLine("\n\nTitle: " + video.Title + "Duration: " + (int)duration.TotalSeconds); return(new Client.Audio(filename, detail.Channel, (int)duration.TotalSeconds, mstream, "mp3")); }