Exemplo n.º 1
0
        public void AddStream(Models.Stream stream, bool local, Panel toPanel)
        {
            StreamInfo ctrlInfo = new StreamInfo
            {
                infoFileURL = stream.URL,
            };

            if (stream.Size != "-")
            {
                ctrlInfo.infoSize.Text = UtilityTools.bytesToString(Convert.ToInt32(stream.Size));
            }
            else
            {
                ctrlInfo.infoSize.Text = stream.Size;
            }
            if (stream.DateUploaded != "-")
            {
                ctrlInfo.infoAge.Text = UtilityTools.getTimeAgo(Convert.ToDateTime(stream.DateUploaded));
            }
            else
            {
                ctrlInfo.infoAge.Text = stream.DateUploaded;
            }
            ctrlInfo.infoName.Text = stream.Name;
            toPanel.Controls.Add(ctrlInfo);
        }
Exemplo n.º 2
0
        public void showFiles(List <string> dataFiles)
        {
            BackGroundWorker.RunWorkAsync <List <string> >(() => searchFiles(dataFiles), (data) =>
            {
                if (tabFiles.InvokeRequired)
                {
                    loadFilesCallBack b = new loadFilesCallBack(showFiles);
                    Invoke(b, new object[] { dataFiles });
                }
                else
                {
                    ComponentResourceManager resources = new ComponentResourceManager(typeof(MainForm));
                    cmboBoxFilesSort.SelectedIndex     = 0; dataGridFiles.Rows.Clear();
                    cmboBoxFilesHost.Items.Clear(); cmboBoxFilesHost.Items.Add(resources.GetString("cmboBoxFilesHost.Items"));

                    stopWatch.Start();

                    foreach (string jsonData in data)
                    {
                        var dataJson         = JsonConvert.DeserializeObject <Models.WebFile>(jsonData);
                        string formattedDate = dataJson.DateAdded;
                        if (dataJson.DateAdded != "-")
                        {
                            formattedDate = UtilityTools.getTimeAgo(Convert.ToDateTime(dataJson.DateAdded));
                        }
                        string formattedSize = dataJson.Size;
                        if (dataJson.Size != "-")
                        {
                            formattedSize = UtilityTools.bytesToString(Convert.ToInt64(dataJson.Size));
                        }
                        dataGridFiles.Rows.Add(dataJson.Type, dataJson.Title, formattedSize, formattedDate, dataJson.Host, dataJson.URL);

                        if (!(cmboBoxFilesHost.Items.Contains(dataJson.Host)))
                        {
                            cmboBoxFilesHost.Items.Add(dataJson.Host);
                        }
                    }

                    stopWatch.Stop(); TimeSpan ts = stopWatch.Elapsed;
                    lblFilesResultsInfo.Text      = UtilityTools.getFormattedNumber(dataGridFiles.Rows.Count.ToString()) + " / " + UtilityTools.getFormattedNumber(dataFiles.Count.ToString()) + " Files (" + String.Format("{0:0.000}", ts.TotalSeconds) + " Seconds)"; stopWatch.Reset();

                    tab.SelectedTab = currentTab;

                    cmboBoxFilesHost.DropDownWidth = UtilityTools.DropDownWidth(cmboBoxFilesHost);
                    imgSpinner.Visible             = false;
                }
            });
        }
        private void ctrlStreamInfo_Load(object sender, EventArgs e)
        {
            BackColor = Color.Transparent;
            VLCToolStripMenuItem.Visible = File.Exists(frmOpenTheatre.pathVLC);
            MPCToolStripMenuItem.Visible = File.Exists(frmOpenTheatre.pathMPCCodec64) || File.Exists(frmOpenTheatre.pathMPC64) || File.Exists(frmOpenTheatre.pathMPC86);
            if (Properties.Settings.Default.Bookmarks.Contains(infoFileURL))
            {
                imgAddToBookmarks.Image = Properties.Resources.bookmark_remove;
            }
            else
            {
                imgAddToBookmarks.Image = Properties.Resources.bookmark_plus;
            }

            try
            {
                WebRequest req = WebRequest.Create(infoFileURL);
                req.Method  = "HEAD";
                req.Timeout = 1500;
                using (HttpWebResponse fileResponse = (HttpWebResponse)req.GetResponse())
                {
                    DateTime fileModifiedTime = fileResponse.LastModified;
                    if (fileModifiedTime != null)
                    {
                        infoFileDateAdded.Text = UtilityTools.getTimeAgo(fileModifiedTime);
                    }
                    else
                    {
                        infoFileDateAdded.Text = "n/a";
                    }

                    int ContentLength;
                    if (int.TryParse(fileResponse.Headers.Get("Content-Length"), out ContentLength))
                    {
                        infoFileSize.Text = UtilityTools.ToFileSize(Convert.ToDouble(ContentLength));
                    }
                    else
                    {
                        infoFileSize.Text = "n/a";
                    }
                }
            }
            catch { infoFileSize.Text = "n/a"; infoFileDateAdded.Text = "n/a"; }
        }
Exemplo n.º 4
0
        public void showSelectedFiles(string[] files)
        {
            BackGroundWorker.RunWorkAsync <List <string> >(() => searchFiles(files), (data) =>
            {
                if (tabFiles.InvokeRequired)
                {
                    loadFilesCallBack b = new loadFilesCallBack(showSelectedFiles);
                    Invoke(b, new object[] { files });
                }
                else
                {
                    ComponentResourceManager resources = new ComponentResourceManager(typeof(frmOpenTheatre));
                    cmboBoxFilesSort.SelectedIndex     = 0; dataGridFiles.Rows.Clear();
                    cmboBoxFilesHost.Items.Clear(); cmboBoxFilesHost.Items.Add(resources.GetString("cmboBoxFilesHost.Items"));
                    cmboBoxFilesFormat.Items.Clear(); cmboBoxFilesFormat.Items.Add(resources.GetString("cmboBoxFilesFormat.Items"));

                    foreach (string jsonData in data)
                    {
                        var dataJson     = DatabaseFilesEntity.FromJson(jsonData);
                        string dateAdded = dataJson.DateAdded;
                        if (dataJson.DateAdded != "-")
                        {
                            dateAdded = UtilityTools.getTimeAgo(Convert.ToDateTime(dataJson.DateAdded));
                        }
                        dataGridFiles.Rows.Add(dataJson.Type, dataJson.Title, dataJson.Size, dateAdded, dataJson.Host, dataJson.URL);
                        if (!(cmboBoxFilesFormat.Items.Contains(dataJson.Type)))
                        {
                            cmboBoxFilesFormat.Items.Add(dataJson.Type);
                        }
                        if (!(cmboBoxFilesHost.Items.Contains(dataJson.Host)))
                        {
                            cmboBoxFilesHost.Items.Add(dataJson.Host);
                        }
                    }

                    cmboBoxFilesHost.DropDownWidth = DropDownWidth(cmboBoxFilesHost);
                    imgSpinner.Visible             = false;
                }
            });
        }
Exemplo n.º 5
0
        private void ctrlFileDetails_Load(object sender, EventArgs e)
        {
            VLCToolStripMenuItem.Visible = File.Exists(MainForm.pathVLC);
            MPCToolStripMenuItem.Visible = File.Exists(MainForm.pathMPCCodec64) || File.Exists(MainForm.pathMPC64) || File.Exists(MainForm.pathMPC86);

            if (videoFileTypes.Contains(infoType.Text.ToUpper()) || audioFileTypes.Contains(infoType.Text.ToUpper()))
            {
                btnPlayMedia.Visible = true;
            }

            if (infoAge.Text == "-")
            {
                try { infoAge.Text = UtilityTools.getTimeAgo(Convert.ToDateTime(UtilityTools.getLastModifiedTime(infoFileURL.Text))); } catch { infoAge.Text = "-"; }
            }

            if (infoSize.Text == "-")
            {
                btnRequestFileSize.Visible = true;
            }

            if (infoFileSubtitles == null)
            {
                if (UtilityTools.isExistingSubtitlesFile(infoFileURL.Text) == true)
                {
                    infoFileSubtitles = MainForm.userDownloadsDirectory + Path.GetFileNameWithoutExtension(infoFileURL.Text) + ".srt";
                }
            }

            if (UtilityTools.isSaved(UtilityTools.fileToJson(infoFileURL.Text, infoName.Text, infoType.Text, infoReferrer.Text)))
            {
                btnSaveFile.Image = WebCrunch.Properties.Resources.bookmark_remove;
            }
            else
            {
                btnSaveFile.Image = WebCrunch.Properties.Resources.bookmark_plus;
            }
        }
Exemplo n.º 6
0
        private void ctrlStreamInfo_Load(object sender, EventArgs e)
        {
            BackColor = Color.Transparent;

            VLCToolStripMenuItem.Visible = File.Exists(frmOpenTheatre.pathVLC);
            MPCToolStripMenuItem.Visible = File.Exists(frmOpenTheatre.pathMPCCodec64) || File.Exists(frmOpenTheatre.pathMPC64) || File.Exists(frmOpenTheatre.pathMPC86);

            if (Properties.Settings.Default.dataBookmarks.Contains(infoFileURL))
            {
                imgAddToBookmarks.Image = Properties.Resources.bookmark_remove;
            }
            else
            {
                imgAddToBookmarks.Image = Properties.Resources.bookmark_plus;
            }
            if (frmOpenTheatre.currentDownloads.Contains(infoFileURL))
            {
                imgDownload.Image = Properties.Resources.cloud_sync;
            }
            else if (File.Exists(Properties.Settings.Default.downloadsDirectory + Path.GetFileName(new Uri(infoFileURL).LocalPath)) && infoFileSize.Text == UtilityTools.ToFileSize(Convert.ToDouble(new FileInfo(Properties.Settings.Default.downloadsDirectory + Path.GetFileName(new Uri(infoFileURL).LocalPath)).Length)))
            {
                imgDownload.Image = Properties.Resources.cloud_done;
            }

            if (isTorrent == true)
            {
                imgReportBroken.Visible = false;
                imgWatch.Visible        = false;
                imgMagnet.Visible       = true;
            }

            if (isLocal == false)
            {
                try
                {
                    WebRequest req = WebRequest.Create(infoFileURL);
                    req.Method  = "HEAD";
                    req.Timeout = 1500;
                    using (HttpWebResponse fileResponse = (HttpWebResponse)req.GetResponse())
                    {
                        DateTime fileModifiedTime = fileResponse.LastModified;
                        if (fileModifiedTime != null)
                        {
                            infoFileAge.Text = UtilityTools.getTimeAgo(fileModifiedTime);
                        }
                        else
                        {
                            infoFileAge.Text = "n/a";
                        }

                        int ContentLength;
                        if (int.TryParse(fileResponse.Headers.Get("Content-Length"), out ContentLength))
                        {
                            infoFileSize.Text = UtilityTools.ToFileSize(Convert.ToDouble(ContentLength));
                        }
                        else
                        {
                            infoFileSize.Text = "n/a";
                        }
                    }
                }
                catch { infoFileSize.Text = "n/a"; infoFileAge.Text = "n/a"; }
            }
            else
            {
                infoFileHost.Text = frmOpenTheatre.rm.GetString("local"); infoFileSize.Text = UtilityTools.ToFileSize(new FileInfo(infoFileURL).Length); infoFileAge.Text = UtilityTools.getTimeAgo(File.GetLastWriteTime(infoFileURL)); imgDownload.Visible = false; imgReportBroken.Visible = false; imgShare.Visible = false; imgCopyURL.Visible = false;
            }

            // Checks for exact file name of a subtitle file that matches the one being loaded (e.g. Media File Name: 'Jigsaw.2017.mp4' > Subtitle File Name: 'Jigsaw.2017.srt' will be loaded)
            if (infoFileSubtitles == null)
            {
                if (UtilityTools.isExistingSubtitlesFile(infoFileURL) == true)
                {
                    infoFileSubtitles = Properties.Settings.Default.downloadsDirectory + Path.GetFileNameWithoutExtension(infoFileURL) + ".srt";
                }
            }
        }