Ejemplo n.º 1
0
        private void radGridViewSubtitles_DoubleClick(object sender, EventArgs e)
        {
            Encoding subtitleEncoding = Encoding.UTF8;

            if (radGridViewSubtitles.SelectedRows.Count == 1)
            {
                XMLRPCOpenSubtitles.IOpenSubtitles    proxy             = XmlRpcProxyGen.Create <XMLRPCOpenSubtitles.IOpenSubtitles>();
                XMLRPCOpenSubtitles.DownloadSubtitles downloadSubtitles = new XMLRPCOpenSubtitles.DownloadSubtitles();
                XMLRPCOpenSubtitles.LogIn             logIn             = XMLRPCOpenSubtitles.logIn;

                int[] downloadSubtitle = new int[1];

                var idSubtitleFile = radGridViewSubtitles.SelectedRows[0].Cells["IDSubtitleFile"].Value.ToString();
                downloadSubtitle[0] = Convert.ToInt32(idSubtitleFile);

                downloadSubtitles = proxy.DownloadSubtitles(logIn.token, downloadSubtitle);

                byte[] compressedSubtitleData = Convert.FromBase64String(downloadSubtitles.data[0].data);

                var uncompressedSubtitleData = XMLRPCOpenSubtitles.GZipDecompress(compressedSubtitleData, subtitleEncoding);

                var title = MovieTitle;
                // safen title for filename
                Array.ForEach(Path.GetInvalidFileNameChars(),
                              c => title = title.Replace(c.ToString(), String.Empty));

                var extractFolder = Path.Combine(ConfigurationManager.AppSettings["Path.Download"],
                                                 ConfigurationManager.AppSettings["Name.Transfer"], title);

                var subFileName = radGridViewSubtitles.SelectedRows[0].Cells["SubFileName"].Value.ToString();

                // check directory
                if (!Directory.Exists(extractFolder))
                {
                    Directory.CreateDirectory(extractFolder);
                }

                // save subtitle file to disk
                File.WriteAllText(Path.Combine(extractFolder, subFileName), uncompressedSubtitleData, subtitleEncoding);

                toolTipSubtitles.ToolTipTitle = "Successful";
                toolTipSubtitles.ToolTipIcon  = ToolTipIcon.Info;
                toolTipSubtitles.Show(String.Format("Subtitle {0} downloaded successfully", subFileName), radGridViewSubtitles);

                // update image of first column
                radGridViewSubtitles.SelectedRows[0].Cells["#"].Value = "OK";
            }
        }
Ejemplo n.º 2
0
        private void SearchSubtitles()
        {
            XMLRPCOpenSubtitles.SearchSubtitles searchSubtitles = new XMLRPCOpenSubtitles.SearchSubtitles();
            XMLRPCOpenSubtitles.IOpenSubtitles  proxy           = XmlRpcProxyGen.Create <XMLRPCOpenSubtitles.IOpenSubtitles>();

            try
            {
                // HD Download Manager v5.7.2
                //var rarr = proxy.ServerInfo();

                XMLRPCOpenSubtitles.LogIn logIn = XMLRPCOpenSubtitles.logIn;

                if (!logIn.status.Contains("OK"))
                {
                    return;
                }

                XMLRPCOpenSubtitles.QueryParameters[] movie = new XMLRPCOpenSubtitles.QueryParameters[1];
                movie[0] = new XMLRPCOpenSubtitles.QueryParameters();
                movie[0].sublanguageid = radDropDownListLanguage.SelectedItem.Text;
                movie[0].moviehash     = String.Empty;
                movie[0].moviebytesize = String.Empty;
                // IMDB ID is without the \tt
                movie[0].imdbid = ImdbID;

                // TODO Data subfile = false (bool) when nothing returns from server
                searchSubtitles = proxy.SearchSubtitles(logIn.token, movie);

                // TODO do not logout each time, keep token in session
                //XMLRPCOpenSubtitles.LogOut logOut = proxy.LogOut(logIn.token);
            }
            catch (Exception ex)
            {
                radLabelSubtitlesCount.Text = ex.Message;
                return;
            }

            var subtitlesList = searchSubtitles.data.ToList();

            subtitlesList = subtitlesList.OrderByDescending(s => Convert.ToInt32(s.SubDownloadsCnt)).ToList();

            // reset for column renaming second time made possible
            radGridViewSubtitles.DataSource = null;

            // set datasource
            radGridViewSubtitles.DataSource = subtitlesList;

            // count the number of subtitles available from OpenSubtitles server
            radLabelSubtitlesCount.Text = String.Format(radLabelSubtitlesCount.Tag.ToString(), subtitlesList.Count);

            var listOfColumnToDisplay = "SubDownloadsCnt;MovieReleaseName;SubFormat;SubSumCD;SubAddDate";

            var columnsToHide = radGridViewSubtitles.Columns.Where(t => !listOfColumnToDisplay.Contains(t.HeaderText)).ToList();

            foreach (var column in columnsToHide)
            {
                column.IsVisible = false;
            }

            radGridViewSubtitles.Columns["MovieReleaseName"].Width      = 70;
            radGridViewSubtitles.Columns["MovieReleaseName"].HeaderText = "Movie name (uploaded)";

            radGridViewSubtitles.Columns["SubDownloadsCnt"].HeaderText = "# Downloads";
            radGridViewSubtitles.Columns["SubFormat"].Width            = 10;
            radGridViewSubtitles.Columns["SubFormat"].HeaderText       = "Format";
            radGridViewSubtitles.Columns["SubSumCD"].Width             = 10;
            radGridViewSubtitles.Columns["SubSumCD"].HeaderText        = "# CD";
            radGridViewSubtitles.Columns["SubAddDate"].HeaderText      = "Date";

            GridViewTextBoxColumn gvtxtcol = new GridViewTextBoxColumn("#");

            gvtxtcol.Width = 5;

            radGridViewSubtitles.Columns.Insert(0, gvtxtcol);
        }