101 lines
3.0 KiB
C#
101 lines
3.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace ytdlp_gui
|
|
{
|
|
public partial class Main : Form
|
|
{
|
|
public Main()
|
|
{
|
|
ytdlp = new YTdlp();
|
|
downloads = new List<Download>();
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void btnCancel_Click(object sender, EventArgs e)
|
|
{
|
|
this.Close();
|
|
}
|
|
|
|
private void btnDownload_Click(object sender, EventArgs e)
|
|
{
|
|
// Get user download folder on Windows
|
|
string user = Environment.GetEnvironmentVariable("USERNAME");
|
|
string workdir = @"C:\Users\" + user + @"\Downloads\";
|
|
|
|
if (checkDownloadPlaylist.Checked && checkPlaylistFolder.Checked)
|
|
{
|
|
workdir = Path.Combine(workdir, textPlaylistFolder.Text);
|
|
if (!Directory.Exists(workdir))
|
|
System.IO.Directory.CreateDirectory(workdir);
|
|
}
|
|
|
|
YTdlpProcess process = ytdlp.Download(
|
|
textUrl.Text,
|
|
checkAudioOnly.Checked,
|
|
checkDownloadPlaylist.Checked,
|
|
workdir
|
|
);
|
|
Download download = new Download(
|
|
process,
|
|
workdir,
|
|
checkConvert.Checked ? comboConvertFormat.Text : null
|
|
);
|
|
|
|
download.Show();
|
|
downloads.Add(download);
|
|
|
|
download.FormClosed += (_sender, _e) => {
|
|
downloads.Remove(download);
|
|
};
|
|
}
|
|
|
|
private void Main_FormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
if (downloads.Count == 0)
|
|
return;
|
|
var window = MessageBox.Show(
|
|
"Close the window?\nClosing current window will cancel current downloads!",
|
|
"Are you sure?",
|
|
MessageBoxButtons.YesNo
|
|
);
|
|
e.Cancel = (window == DialogResult.No);
|
|
}
|
|
|
|
private void checkAudioOnly_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
if (checkAudioOnly.Checked)
|
|
comboConvertFormat.Text = "mp3";
|
|
else
|
|
comboConvertFormat.Text = "mp4";
|
|
}
|
|
|
|
private void checkConvert_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
comboConvertFormat.Enabled = checkConvert.Checked;
|
|
}
|
|
|
|
private void checkDownloadPlaylist_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
groupPlaylist.Enabled = checkDownloadPlaylist.Checked;
|
|
}
|
|
|
|
private void checkPlaylistFolder_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
textPlaylistFolder.Enabled = checkPlaylistFolder.Checked;
|
|
lblPlaylistFolder.Enabled = checkPlaylistFolder.Checked;
|
|
}
|
|
|
|
protected List<Download> downloads;
|
|
protected YTdlp ytdlp;
|
|
}
|
|
}
|