Пример #1
0
        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);
        }
Пример #2
0
        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"));
        }