コード例 #1
0
        protected override string DoDownloadSubtitle(string fileName, SubtitleInfo si)
        {
            OPMedia.Runtime.ProTONE.NuSoap.SubtitleDownload sd = new OPMedia.Runtime.ProTONE.NuSoap.SubtitleDownload();
            int x = 0;

            int.TryParse(si.IDSubtitleFile, out x);

            sd.cod_subtitle_file = x;
            sd.movie_hash        = si.MovieHash;

            string destPath = Path.ChangeExtension(fileName, si.SubFormat);

            SubtitleArchive[] archives = _wsdl.downloadSubtitles(new OPMedia.Runtime.ProTONE.NuSoap.SubtitleDownload[] { sd });

            if (archives != null && archives.Length > 0)
            {
                byte[] decodedBytes = Convert.FromBase64String(archives[0].data);

                using (MemoryStream compressedSubtitle = new MemoryStream(decodedBytes))
                {
                    using (InflaterInputStream str = new InflaterInputStream(compressedSubtitle))
                    {
                        using (FileStream outputSubtitle = new FileStream(destPath, FileMode.Create, FileAccess.Write, FileShare.Read))
                        {
                            byte[] buffer = new byte[65536];
                            int    read   = 0;
                            do
                            {
                                read = str.Read(buffer, 0, buffer.Length);
                                if (read > 0)
                                {
                                    outputSubtitle.Write(buffer, 0, read);
                                }
                            }while (read > 0);
                        }
                    }
                }

                return(destPath);
            }

            return(string.Empty);
        }
コード例 #2
0
ファイル: NuSoapWsdl.cs プロジェクト: rraguso/protone-suite
 /// <remarks/>
 public void downloadSubtitlesAsync(SubtitleDownload[] subtitles, object userState)
 {
     if ((this.downloadSubtitlesOperationCompleted == null))
     {
         this.downloadSubtitlesOperationCompleted = new System.Threading.SendOrPostCallback(this.OndownloadSubtitlesOperationCompleted);
     }
     this.InvokeAsync("downloadSubtitles", new object[] {
             subtitles}, this.downloadSubtitlesOperationCompleted, userState);
 }
コード例 #3
0
ファイル: NuSoapWsdl.cs プロジェクト: rraguso/protone-suite
 /// <remarks/>
 public void downloadSubtitlesAsync(SubtitleDownload[] subtitles)
 {
     this.downloadSubtitlesAsync(subtitles, null);
 }
コード例 #4
0
ファイル: NuSoapWsdl.cs プロジェクト: rraguso/protone-suite
 public SubtitleArchive[] downloadSubtitles(SubtitleDownload[] subtitles)
 {
     object[] results = this.Invoke("downloadSubtitles", new object[] {
             subtitles});
     return ((SubtitleArchive[])(results[0]));
 }
コード例 #5
0
        protected override string DoDownloadSubtitle(string fileName, SubtitleInfo si)
        {
            OPMedia.Runtime.ProTONE.NuSoap.SubtitleDownload sd = new OPMedia.Runtime.ProTONE.NuSoap.SubtitleDownload();
            int x = 0;
            int.TryParse(si.IDSubtitleFile, out x);

            sd.cod_subtitle_file = x;
            sd.movie_hash = si.MovieHash;

            string destPath = Path.ChangeExtension(fileName, si.SubFormat);

            SubtitleArchive[] archives = _wsdl.downloadSubtitles(new OPMedia.Runtime.ProTONE.NuSoap.SubtitleDownload[] { sd });

            if (archives != null && archives.Length > 0)
            {
                byte[] decodedBytes = Convert.FromBase64String(archives[0].data);

                using (MemoryStream compressedSubtitle = new MemoryStream(decodedBytes))
                {
                    using (InflaterInputStream str = new InflaterInputStream(compressedSubtitle))
                    {
                        using (FileStream outputSubtitle = new FileStream(destPath, FileMode.Create, FileAccess.Write, FileShare.Read))
                        {
                            byte[] buffer = new byte[65536];
                            int read = 0;
                            do
                            {
                                read = str.Read(buffer, 0, buffer.Length);
                                if (read > 0)
                                {
                                    outputSubtitle.Write(buffer, 0, read);
                                }
                            }
                            while (read > 0);
                        }
                    }
                }

                return destPath;
            }

            return string.Empty;
        }