Add files via upload
This commit is contained in:
parent
03e283b380
commit
c54be7fd03
|
@ -1,13 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
|
||||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.0.115.5" newVersion="1.0.115.5" />
|
||||
<assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-1.0.116.0" newVersion="1.0.116.0"/>
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
|
|
|
@ -33,20 +33,28 @@
|
|||
this.textBox1 = new System.Windows.Forms.TextBox();
|
||||
this.chromiumWebBrowser1 = new CefSharp.WinForms.ChromiumWebBrowser();
|
||||
this.textBox2 = new System.Windows.Forms.TextBox();
|
||||
this.comboBox1 = new System.Windows.Forms.ComboBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.textBoxURL = new System.Windows.Forms.TextBox();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.chromiumWebBrowser2 = new CefSharp.WinForms.ChromiumWebBrowser();
|
||||
this.textBox3 = new System.Windows.Forms.TextBox();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.button2 = new System.Windows.Forms.Button();
|
||||
this.folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog();
|
||||
this.textBox4 = new System.Windows.Forms.TextBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.labelTotal = new System.Windows.Forms.Label();
|
||||
this.labelToday = new System.Windows.Forms.Label();
|
||||
this.labelFailed = new System.Windows.Forms.Label();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.numericUpDown1 = new System.Windows.Forms.NumericUpDown();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.button3 = new System.Windows.Forms.Button();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(12, 109);
|
||||
this.label1.Location = new System.Drawing.Point(12, 74);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(75, 13);
|
||||
this.label1.TabIndex = 0;
|
||||
|
@ -54,126 +62,213 @@
|
|||
//
|
||||
// textBox1
|
||||
//
|
||||
this.textBox1.Location = new System.Drawing.Point(93, 106);
|
||||
this.textBox1.Location = new System.Drawing.Point(113, 71);
|
||||
this.textBox1.Name = "textBox1";
|
||||
this.textBox1.Size = new System.Drawing.Size(369, 20);
|
||||
this.textBox1.TabIndex = 1;
|
||||
this.textBox1.Click += new System.EventHandler(this.textBox1_Click);
|
||||
//
|
||||
// chromiumWebBrowser1
|
||||
//
|
||||
this.chromiumWebBrowser1.ActivateBrowserOnCreation = false;
|
||||
// TODO: Échec de la génération du code de '' en raison de l'exception 'Type Primitive non valide : System.IntPtr. Utilisez CodeObjectCreateExpression à la place.'.
|
||||
this.chromiumWebBrowser1.Location = new System.Drawing.Point(12, 301);
|
||||
this.chromiumWebBrowser1.Location = new System.Drawing.Point(12, 341);
|
||||
this.chromiumWebBrowser1.Name = "chromiumWebBrowser1";
|
||||
this.chromiumWebBrowser1.Size = new System.Drawing.Size(470, 245);
|
||||
this.chromiumWebBrowser1.Size = new System.Drawing.Size(470, 505);
|
||||
this.chromiumWebBrowser1.TabIndex = 2;
|
||||
this.chromiumWebBrowser1.LoadingStateChanged += new System.EventHandler<CefSharp.LoadingStateChangedEventArgs>(this.chromiumWebBrowser1_LoadingStateChanged);
|
||||
//
|
||||
// textBox2
|
||||
//
|
||||
this.textBox2.Location = new System.Drawing.Point(12, 132);
|
||||
this.textBox2.Location = new System.Drawing.Point(12, 115);
|
||||
this.textBox2.Multiline = true;
|
||||
this.textBox2.Name = "textBox2";
|
||||
this.textBox2.ReadOnly = true;
|
||||
this.textBox2.Size = new System.Drawing.Size(470, 163);
|
||||
this.textBox2.Size = new System.Drawing.Size(470, 125);
|
||||
this.textBox2.TabIndex = 3;
|
||||
//
|
||||
// comboBox1
|
||||
//
|
||||
this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.comboBox1.FormattingEnabled = true;
|
||||
this.comboBox1.Items.AddRange(new object[] {
|
||||
"Gatter Firefox History",
|
||||
"Load Playlist URL"});
|
||||
this.comboBox1.Location = new System.Drawing.Point(61, 51);
|
||||
this.comboBox1.Name = "comboBox1";
|
||||
this.comboBox1.Size = new System.Drawing.Size(219, 21);
|
||||
this.comboBox1.TabIndex = 4;
|
||||
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(12, 54);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(37, 13);
|
||||
this.label2.TabIndex = 5;
|
||||
this.label2.Text = "Mode:";
|
||||
//
|
||||
// textBoxURL
|
||||
//
|
||||
this.textBoxURL.Location = new System.Drawing.Point(61, 78);
|
||||
this.textBoxURL.Name = "textBoxURL";
|
||||
this.textBoxURL.Size = new System.Drawing.Size(343, 20);
|
||||
this.textBoxURL.TabIndex = 7;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(12, 81);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(32, 13);
|
||||
this.label3.TabIndex = 6;
|
||||
this.label3.Text = "URL:";
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.Location = new System.Drawing.Point(410, 76);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(52, 23);
|
||||
this.button1.TabIndex = 8;
|
||||
this.button1.Text = "Load";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.button1.Click += new System.EventHandler(this.button1_Click);
|
||||
//
|
||||
// chromiumWebBrowser2
|
||||
//
|
||||
this.chromiumWebBrowser2.ActivateBrowserOnCreation = false;
|
||||
// TODO: Échec de la génération du code de '' en raison de l'exception 'Type Primitive non valide : System.IntPtr. Utilisez CodeObjectCreateExpression à la place.'.
|
||||
this.chromiumWebBrowser2.Location = new System.Drawing.Point(488, 301);
|
||||
this.chromiumWebBrowser2.Name = "chromiumWebBrowser2";
|
||||
this.chromiumWebBrowser2.Size = new System.Drawing.Size(470, 245);
|
||||
this.chromiumWebBrowser2.TabIndex = 9;
|
||||
//
|
||||
// textBox3
|
||||
//
|
||||
this.textBox3.Location = new System.Drawing.Point(487, 3);
|
||||
this.textBox3.Location = new System.Drawing.Point(12, 242);
|
||||
this.textBox3.Multiline = true;
|
||||
this.textBox3.Name = "textBox3";
|
||||
this.textBox3.ReadOnly = true;
|
||||
this.textBox3.Size = new System.Drawing.Size(470, 292);
|
||||
this.textBox3.Size = new System.Drawing.Size(470, 93);
|
||||
this.textBox3.TabIndex = 10;
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(298, 54);
|
||||
this.label4.Location = new System.Drawing.Point(181, 25);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(70, 13);
|
||||
this.label4.Size = new System.Drawing.Size(87, 13);
|
||||
this.label4.TabIndex = 11;
|
||||
this.label4.Text = "Downloaded:";
|
||||
this.label4.Text = "Download today:";
|
||||
//
|
||||
// button2
|
||||
//
|
||||
this.button2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.button2.Location = new System.Drawing.Point(15, 6);
|
||||
this.button2.Name = "button2";
|
||||
this.button2.Size = new System.Drawing.Size(143, 36);
|
||||
this.button2.TabIndex = 12;
|
||||
this.button2.Text = "START";
|
||||
this.button2.UseVisualStyleBackColor = true;
|
||||
this.button2.Click += new System.EventHandler(this.button2_Click);
|
||||
//
|
||||
// folderBrowserDialog1
|
||||
//
|
||||
this.folderBrowserDialog1.Description = "Open location where to save downloaded files";
|
||||
//
|
||||
// textBox4
|
||||
//
|
||||
this.textBox4.Location = new System.Drawing.Point(113, 48);
|
||||
this.textBox4.Name = "textBox4";
|
||||
this.textBox4.Size = new System.Drawing.Size(369, 20);
|
||||
this.textBox4.TabIndex = 14;
|
||||
this.textBox4.Click += new System.EventHandler(this.textBox4_Click);
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(12, 51);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(98, 13);
|
||||
this.label2.TabIndex = 13;
|
||||
this.label2.Text = "Download location:";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(181, 6);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(86, 13);
|
||||
this.label3.TabIndex = 15;
|
||||
this.label3.Text = "Download totals:";
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(332, 6);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(86, 13);
|
||||
this.label5.TabIndex = 16;
|
||||
this.label5.Text = "Download failed:";
|
||||
//
|
||||
// labelTotal
|
||||
//
|
||||
this.labelTotal.AutoSize = true;
|
||||
this.labelTotal.Location = new System.Drawing.Point(278, 6);
|
||||
this.labelTotal.Name = "labelTotal";
|
||||
this.labelTotal.Size = new System.Drawing.Size(13, 13);
|
||||
this.labelTotal.TabIndex = 17;
|
||||
this.labelTotal.Text = "0";
|
||||
//
|
||||
// labelToday
|
||||
//
|
||||
this.labelToday.AutoSize = true;
|
||||
this.labelToday.Location = new System.Drawing.Point(278, 25);
|
||||
this.labelToday.Name = "labelToday";
|
||||
this.labelToday.Size = new System.Drawing.Size(13, 13);
|
||||
this.labelToday.TabIndex = 18;
|
||||
this.labelToday.Text = "0";
|
||||
//
|
||||
// labelFailed
|
||||
//
|
||||
this.labelFailed.AutoSize = true;
|
||||
this.labelFailed.Location = new System.Drawing.Point(427, 6);
|
||||
this.labelFailed.Name = "labelFailed";
|
||||
this.labelFailed.Size = new System.Drawing.Size(13, 13);
|
||||
this.labelFailed.TabIndex = 19;
|
||||
this.labelFailed.Text = "0";
|
||||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.AutoSize = true;
|
||||
this.label6.Location = new System.Drawing.Point(308, 25);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(113, 13);
|
||||
this.label6.TabIndex = 20;
|
||||
this.label6.Text = "Seconds before failed:";
|
||||
//
|
||||
// numericUpDown1
|
||||
//
|
||||
this.numericUpDown1.Increment = new decimal(new int[] {
|
||||
5,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDown1.Location = new System.Drawing.Point(427, 23);
|
||||
this.numericUpDown1.Maximum = new decimal(new int[] {
|
||||
180,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDown1.Minimum = new decimal(new int[] {
|
||||
10,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDown1.Name = "numericUpDown1";
|
||||
this.numericUpDown1.Size = new System.Drawing.Size(55, 20);
|
||||
this.numericUpDown1.TabIndex = 21;
|
||||
this.numericUpDown1.Value = new decimal(new int[] {
|
||||
60,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numericUpDown1.ValueChanged += new System.EventHandler(this.numericUpDown1_ValueChanged);
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.Location = new System.Drawing.Point(12, 92);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(317, 23);
|
||||
this.button1.TabIndex = 22;
|
||||
this.button1.Text = "Select folder to add all songs names to downloaded list";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.button1.Click += new System.EventHandler(this.button1_Click);
|
||||
//
|
||||
// button3
|
||||
//
|
||||
this.button3.ForeColor = System.Drawing.Color.Red;
|
||||
this.button3.Location = new System.Drawing.Point(335, 92);
|
||||
this.button3.Name = "button3";
|
||||
this.button3.Size = new System.Drawing.Size(147, 23);
|
||||
this.button3.TabIndex = 23;
|
||||
this.button3.Text = "Clear downloaded list";
|
||||
this.button3.UseVisualStyleBackColor = true;
|
||||
this.button3.Click += new System.EventHandler(this.button3_Click);
|
||||
//
|
||||
// Form1
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(969, 558);
|
||||
this.BackColor = System.Drawing.SystemColors.ActiveCaption;
|
||||
this.ClientSize = new System.Drawing.Size(497, 858);
|
||||
this.Controls.Add(this.button3);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.numericUpDown1);
|
||||
this.Controls.Add(this.label6);
|
||||
this.Controls.Add(this.labelFailed);
|
||||
this.Controls.Add(this.labelToday);
|
||||
this.Controls.Add(this.labelTotal);
|
||||
this.Controls.Add(this.label5);
|
||||
this.Controls.Add(this.label3);
|
||||
this.Controls.Add(this.textBox4);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.button2);
|
||||
this.Controls.Add(this.label4);
|
||||
this.Controls.Add(this.textBox3);
|
||||
this.Controls.Add(this.chromiumWebBrowser2);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.textBoxURL);
|
||||
this.Controls.Add(this.label3);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.comboBox1);
|
||||
this.Controls.Add(this.textBox2);
|
||||
this.Controls.Add(this.chromiumWebBrowser1);
|
||||
this.Controls.Add(this.textBox1);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.MaximizeBox = false;
|
||||
this.Name = "Form1";
|
||||
this.Text = "Youtube2MP3 - Bot by Bouletmarc";
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
|
@ -185,14 +280,21 @@
|
|||
private System.Windows.Forms.TextBox textBox1;
|
||||
private CefSharp.WinForms.ChromiumWebBrowser chromiumWebBrowser1;
|
||||
private System.Windows.Forms.TextBox textBox2;
|
||||
private System.Windows.Forms.ComboBox comboBox1;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.TextBox textBoxURL;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Button button1;
|
||||
private CefSharp.WinForms.ChromiumWebBrowser chromiumWebBrowser2;
|
||||
private System.Windows.Forms.TextBox textBox3;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.Button button2;
|
||||
private System.Windows.Forms.FolderBrowserDialog folderBrowserDialog1;
|
||||
private System.Windows.Forms.TextBox textBox4;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.Label labelTotal;
|
||||
private System.Windows.Forms.Label labelToday;
|
||||
private System.Windows.Forms.Label labelFailed;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private System.Windows.Forms.NumericUpDown numericUpDown1;
|
||||
private System.Windows.Forms.Button button1;
|
||||
private System.Windows.Forms.Button button3;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
724
Form1.cs
724
Form1.cs
|
@ -16,7 +16,9 @@ using System.Windows.Forms;
|
|||
using BrowserHistoryGatherer;
|
||||
using Microsoft.Win32;
|
||||
using CefSharp;
|
||||
//using CefSharp.Example.Handlers;
|
||||
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
|
||||
using static System.Windows.Forms.VisualStyles.VisualStyleElement.ToolBar;
|
||||
using System.Runtime.InteropServices.ComTypes;
|
||||
|
||||
namespace Youtube2MP3
|
||||
{
|
||||
|
@ -26,13 +28,21 @@ namespace Youtube2MP3
|
|||
string YoutubeSearchString = "tube.com/watch";
|
||||
List<string> URL_List = new List<string>();
|
||||
List<string> URL_Done_List = new List<string>();
|
||||
|
||||
List<string> SongNames_List = new List<string>();
|
||||
List<string> SongNames_Done_List = new List<string>();
|
||||
string LastDoneURL = "";
|
||||
string YT2MP3 = "https://mp3y.download/fr/your-mp3-convert";
|
||||
bool IsDownloading = false;
|
||||
string DownloadedFilename = "";
|
||||
string DownloadsDirectoryPath = "C:\\Users\\" + Environment.UserName + "\\Downloads\\";
|
||||
public string DownloadsDirectoryPath = "C:\\Users\\" + Environment.UserName + "\\Downloads\\";
|
||||
int DownloadCountToday = 0;
|
||||
int DownloadCountFailed = 0;
|
||||
bool IsRunning = false;
|
||||
int IntervalInSecondsBetweenNextSong = 5;
|
||||
bool RetryDownloadFailed = false;
|
||||
int RetryFailedCount = 0;
|
||||
bool IsLoadingSettings = true;
|
||||
|
||||
|
||||
static System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer();
|
||||
|
@ -40,19 +50,35 @@ namespace Youtube2MP3
|
|||
[System.Runtime.InteropServices.DllImport("user32.dll")]
|
||||
private static extern short VkKeyScan(char ch);
|
||||
|
||||
|
||||
//####################################
|
||||
/*[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
|
||||
public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint cButtons, uint dwExtraInfo);
|
||||
//Mouse actions
|
||||
private const int MOUSEEVENTF_LEFTDOWN = 0x02;
|
||||
private const int MOUSEEVENTF_LEFTUP = 0x04;
|
||||
private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
|
||||
private const int MOUSEEVENTF_RIGHTUP = 0x10;*/
|
||||
//####################################
|
||||
|
||||
// Get a handle to an application window.
|
||||
[DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
|
||||
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
|
||||
|
||||
// Activate an application window.
|
||||
[DllImport("USER32.DLL")]
|
||||
public static extern bool SetForegroundWindow(IntPtr hWnd);
|
||||
//####################################
|
||||
|
||||
public Form1()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
if (Directory.Exists(@"C:\Users\boule\Desktop\Musique 2022\"))
|
||||
{
|
||||
textBox1.Text = "C:\\Users\\boule\\Desktop\\Musique 2022\\";
|
||||
}
|
||||
|
||||
myTimer.Tick += new EventHandler(TimerEventProcessor);
|
||||
myTimer.Interval = 10000;
|
||||
myTimer.Interval = IntervalInSecondsBetweenNextSong * 1000;
|
||||
|
||||
comboBox1.SelectedIndex = 0;
|
||||
textBox2.Text = "";
|
||||
textBox3.Visible = true;
|
||||
|
||||
//Load URL done
|
||||
string ThisFileCheck = Application.StartupPath + "\\URLDone.txt";
|
||||
|
@ -61,67 +87,274 @@ namespace Youtube2MP3
|
|||
string[] AllLines = File.ReadAllLines(ThisFileCheck);
|
||||
foreach (string Line in AllLines)
|
||||
{
|
||||
URL_Done_List.Add(Line);
|
||||
URL_Done_List.Add(removeListfromURL(Line));
|
||||
}
|
||||
|
||||
if (URL_Done_List.Count >= 1)
|
||||
{
|
||||
textBoxURL.Text = URL_Done_List[URL_Done_List.Count - 1];
|
||||
comboBox1.SelectedIndex = 1;
|
||||
}
|
||||
SetDownloadCounts();
|
||||
|
||||
label4.Text = "Downloaded: " + DownloadCountToday + "/" + URL_Done_List.Count + " (failed:" + DownloadCountFailed + ")";
|
||||
AddText("Found " + labelTotal.Text + " already done downloads links!");
|
||||
}
|
||||
else
|
||||
{
|
||||
File.Create(ThisFileCheck).Dispose();
|
||||
}
|
||||
|
||||
//Load name song list
|
||||
ThisFileCheck = Application.StartupPath + "\\SongNamesDone.txt";
|
||||
if (File.Exists(ThisFileCheck))
|
||||
{
|
||||
LoadMP3DoneList();
|
||||
AddText("Found " + SongNames_Done_List.Count + " already done song names!");
|
||||
}
|
||||
|
||||
//Load Settings
|
||||
ThisFileCheck = Application.StartupPath + "\\Setting.txt";
|
||||
if (File.Exists(ThisFileCheck))
|
||||
{
|
||||
string[] AllLines = File.ReadAllLines(ThisFileCheck);
|
||||
if (AllLines.Length > 0)
|
||||
{
|
||||
textBox1.Text = AllLines[0];
|
||||
}
|
||||
if (AllLines.Length > 1)
|
||||
{
|
||||
textBox4.Text = AllLines[1];
|
||||
DownloadsDirectoryPath = textBox4.Text;
|
||||
}
|
||||
if (AllLines.Length > 2)
|
||||
{
|
||||
numericUpDown1.Value = int.Parse(AllLines[2]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SaveSettings();
|
||||
}
|
||||
//########
|
||||
|
||||
chromiumWebBrowser1.LoadUrl(YT2MP3);
|
||||
chromiumWebBrowser1.DownloadHandler = new MyCustomDownloadHandler();
|
||||
|
||||
myTimer.Start();
|
||||
|
||||
//myTimer.Start();
|
||||
CheckLocations();
|
||||
IsFirefoxRunning();
|
||||
|
||||
IsLoadingSettings = false;
|
||||
}
|
||||
|
||||
private string removeListfromURL(string ThisURLLi)
|
||||
{
|
||||
string returnURL = ThisURLLi;
|
||||
if (ThisURLLi.Contains("&list="))
|
||||
{
|
||||
returnURL = ThisURLLi.Substring(0, ThisURLLi.IndexOf("&list="));
|
||||
}
|
||||
if (returnURL == "https://www.youtube.com/watch?v=")
|
||||
{
|
||||
returnURL = ThisURLLi;
|
||||
}
|
||||
return returnURL;
|
||||
}
|
||||
|
||||
private void SaveSettings()
|
||||
{
|
||||
string ThisFileCheck = Application.StartupPath + "\\Setting.txt";
|
||||
File.Create(ThisFileCheck).Dispose();
|
||||
File.WriteAllText(ThisFileCheck, textBox1.Text + Environment.NewLine + textBox4.Text + Environment.NewLine + numericUpDown1.Value.ToString());
|
||||
}
|
||||
|
||||
private void button2_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (!IsRunning)
|
||||
{
|
||||
AddText("Bot will start in " + IntervalInSecondsBetweenNextSong.ToString() + " seconds!");
|
||||
myTimer.Start();
|
||||
button2.Text = "STOP";
|
||||
IsRunning = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
myTimer.Stop();
|
||||
button2.Text = "START";
|
||||
IsRunning = false;
|
||||
|
||||
if (RetryFailedCount > 0)
|
||||
{
|
||||
RetryFailedCount = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*public void DoMouseClick()
|
||||
{
|
||||
//Call the imported function with the cursor's current position
|
||||
uint X = (uint)Cursor.Position.X;
|
||||
uint Y = (uint)Cursor.Position.Y;
|
||||
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
|
||||
}*/
|
||||
|
||||
private void CheckLocations()
|
||||
{
|
||||
if (textBox1.Text == "" || textBox4.Text == "")
|
||||
{
|
||||
button2.Enabled = false;
|
||||
AddText("Select path's before running bot...");
|
||||
}
|
||||
else
|
||||
{
|
||||
button2.Enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void IsFirefoxRunning()
|
||||
{
|
||||
IntPtr ThisHandlee = FindWindow("MozillaWindowClass", null);
|
||||
if (ThisHandlee == IntPtr.Zero)
|
||||
{
|
||||
AddText("Firefox is not running...");
|
||||
}
|
||||
}
|
||||
|
||||
private void FocusFirefox()
|
||||
{
|
||||
IntPtr ThisHandlee = FindWindow("MozillaWindowClass", null);
|
||||
if (ThisHandlee == IntPtr.Zero)
|
||||
{
|
||||
AddText("Firefox is not running...");
|
||||
return;
|
||||
}
|
||||
|
||||
SetForegroundWindow(ThisHandlee);
|
||||
|
||||
Thread.Sleep(250);
|
||||
UnfocusAddressbar();
|
||||
}
|
||||
|
||||
private void UnfocusFirefox()
|
||||
{
|
||||
IntPtr ThisHandlee = this.Handle;
|
||||
if (ThisHandlee == IntPtr.Zero)
|
||||
{
|
||||
AddText("Youtube2MP3 is not running...");
|
||||
return;
|
||||
}
|
||||
|
||||
SetForegroundWindow(ThisHandlee);
|
||||
|
||||
Application.DoEvents();
|
||||
Thread.Sleep(250);
|
||||
}
|
||||
|
||||
private void UnfocusAddressbar()
|
||||
{
|
||||
//make it pop the search bar (Ctrl+F), then close it
|
||||
SendKeys.Send("^{f}");
|
||||
Thread.Sleep(250);
|
||||
SendKeys.Send("{ESC}");
|
||||
Thread.Sleep(250);
|
||||
}
|
||||
|
||||
private string getFirefoxURL()
|
||||
{
|
||||
FocusFirefox();
|
||||
|
||||
SendKeys.Send(" "); //send SPACE (in case the video is stopped and not playing)
|
||||
Thread.Sleep(250);
|
||||
SendKeys.Send("{F6}"); //send F6 (firefox shortcut to focus address bar)
|
||||
Thread.Sleep(250);
|
||||
SendKeys.Send("^{c}"); //send Ctrl+C (copy to clipboard shortcut)
|
||||
Thread.Sleep(250);
|
||||
string BuffStr = Clipboard.GetText(); //get clipboard data
|
||||
UnfocusFirefox();
|
||||
|
||||
return BuffStr;
|
||||
}
|
||||
|
||||
private string getFirefoxTitle()
|
||||
{
|
||||
string Tittle = "";
|
||||
try
|
||||
{
|
||||
System.Diagnostics.Process[] p = System.Diagnostics.Process.GetProcessesByName("firefox");
|
||||
if (p.Length > 0)
|
||||
{
|
||||
for (int i = 0; i < p.Length; i++)
|
||||
{
|
||||
if (p[i].MainWindowTitle != "")
|
||||
{
|
||||
//loud-sometimes-all-the-time-official-video-ft-charlotte-cardin.mp3
|
||||
//loud_-_sometimes,_all_the_time_(official_video)_ft._charlotte_cardin
|
||||
|
||||
string bufff = p[i].MainWindowTitle.Replace(" - YouTube — Mozilla Firefox", "");
|
||||
Tittle = FixSongString(bufff);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
|
||||
return Tittle;
|
||||
}
|
||||
|
||||
private string FixSongString(string ThisStr)
|
||||
{
|
||||
string Fixed = ThisStr.ToLower().Replace(" ", "-");
|
||||
Fixed = string.Concat(Fixed.Split(Path.GetInvalidFileNameChars()));
|
||||
Fixed = Fixed.Replace("---", "-").Replace(",", "").Replace(".", "").Replace("(", "").Replace(")", "").Replace("[", "").Replace("]", "");
|
||||
return Fixed;
|
||||
}
|
||||
|
||||
private void TimerEventProcessor(Object myObject, EventArgs myEventArgs)
|
||||
{
|
||||
myTimer.Stop();
|
||||
if (comboBox1.SelectedIndex == 0)
|
||||
|
||||
textBox2.Text = "";
|
||||
URL_List.Clear();
|
||||
SongNames_List.Clear();
|
||||
string BufferURL = getFirefoxURL();
|
||||
if (BufferURL.Contains(YoutubeSearchString))
|
||||
{
|
||||
GetURLList();
|
||||
BufferURL = removeListfromURL(BufferURL);
|
||||
URL_List.Add(BufferURL);
|
||||
string FireTitle = getFirefoxTitle();
|
||||
SongNames_List.Add(FireTitle);
|
||||
AddText("URL: " + BufferURL + " (" + FireTitle + ")");
|
||||
}
|
||||
else if (comboBox1.SelectedIndex == 1)
|
||||
else
|
||||
{
|
||||
textBox2.Text = "";
|
||||
URL_List.Clear();
|
||||
if (chromiumWebBrowser2.GetMainFrame().Url.Contains(YoutubeSearchString))
|
||||
{
|
||||
URL_List.Add(chromiumWebBrowser2.GetMainFrame().Url);
|
||||
AddText("URL: " + chromiumWebBrowser2.GetMainFrame().Url);
|
||||
}
|
||||
else
|
||||
{
|
||||
AddText("Nothing found...");
|
||||
}
|
||||
AddText("Nothing found from URL link...");
|
||||
|
||||
AddText("link:" + BufferURL);
|
||||
}
|
||||
|
||||
CheckThoseURL();
|
||||
if (!IsRunning) return;
|
||||
|
||||
//Perform Next Click
|
||||
if (comboBox1.SelectedIndex == 1)
|
||||
if (!RetryDownloadFailed)
|
||||
{
|
||||
SendShiftKeyEvent();
|
||||
Thread.Sleep(1000);
|
||||
textBoxURL.Text = chromiumWebBrowser2.GetMainFrame().Url;
|
||||
AddText("Next video...");
|
||||
chromiumWebBrowser1.LoadUrl(YT2MP3);
|
||||
FocusFirefox();
|
||||
SendKeys.Send("+{n}"); //send Shift+N (youtube playlist shortcut for next video)
|
||||
Thread.Sleep(2000);
|
||||
SendKeys.Send("{F5}"); //send F5 (firefox shortcut to refresh page, update the url link)
|
||||
Thread.Sleep(100);
|
||||
UnfocusFirefox();
|
||||
Thread.Sleep(100);
|
||||
|
||||
RetryFailedCount = 0;
|
||||
}
|
||||
|
||||
AddText("Wating " + IntervalInSecondsBetweenNextSong.ToString() + " seconds!");
|
||||
myTimer.Start();
|
||||
}
|
||||
|
||||
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
SaveURLDone();
|
||||
SaveMP3DoneList();
|
||||
}
|
||||
|
||||
void SaveURLDone()
|
||||
|
@ -141,19 +374,17 @@ namespace Youtube2MP3
|
|||
|
||||
private void CheckThoseURL()
|
||||
{
|
||||
foreach (string Line in URL_List)
|
||||
RetryDownloadFailed = false;
|
||||
|
||||
for (int Loop = 0; Loop < URL_List.Count; Loop++)
|
||||
{
|
||||
if (!IsURLDone(Line))
|
||||
string Line = URL_List[Loop];
|
||||
string Line2 = SongNames_List[Loop];
|
||||
|
||||
if (!IsURLDone(Line) && !IsSongNameSame(Line2))
|
||||
{
|
||||
//Downloading This URL
|
||||
AddText("Downloading: " + Line);
|
||||
chromiumWebBrowser1.LoadUrl(YT2MP3);
|
||||
Thread.Sleep(1000);
|
||||
while (chromiumWebBrowser1.IsLoading)
|
||||
{
|
||||
Thread.Sleep(1);
|
||||
Application.DoEvents();
|
||||
}
|
||||
AddText("Downloading: " + Line + " (" + Line2 + ")");
|
||||
LastDoneURL = Line;
|
||||
textBox2.Focus();
|
||||
chromiumWebBrowser1.Focus();
|
||||
|
@ -169,25 +400,79 @@ namespace Youtube2MP3
|
|||
}
|
||||
SendKeyEvent(Keys.Enter);
|
||||
|
||||
textBox2.AppendText("Waiting til ready");
|
||||
textBox2.AppendText("Waiting til download is ready");
|
||||
int WaitingTime = 0;
|
||||
while ((BrowserWidth() == 1338 || BrowserWidth() <= 720) && WaitingTime < 120)
|
||||
int ConvertionWidth = 0;
|
||||
int WidthCheck = 0;
|
||||
int ConversionTime = 0;
|
||||
while ((BrowserWidth() == 1338 || BrowserWidth() <= 720) && WaitingTime < numericUpDown1.Value)
|
||||
{
|
||||
//#########
|
||||
int ThissWidth = BrowserWidth();
|
||||
if (WidthCheck == 6)
|
||||
{
|
||||
ConvertionWidth = ThissWidth;
|
||||
}
|
||||
if (WidthCheck > 6)
|
||||
{
|
||||
if (ThissWidth == ConvertionWidth)
|
||||
{
|
||||
WaitingTime--;
|
||||
|
||||
//if convertion time is above 2min, perform reset
|
||||
if (ConversionTime > 120)
|
||||
{
|
||||
WaitingTime = (int)numericUpDown1.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
WidthCheck++;
|
||||
//#########
|
||||
|
||||
textBox2.AppendText(".");
|
||||
Thread.Sleep(1000);
|
||||
Application.DoEvents();
|
||||
WaitingTime++;
|
||||
}
|
||||
textBox2.AppendText(Environment.NewLine);
|
||||
ConversionTime++;
|
||||
|
||||
if (WaitingTime == 120)
|
||||
//close bot faster
|
||||
if (!IsRunning) WaitingTime = (int) numericUpDown1.Value;
|
||||
}
|
||||
|
||||
textBox2.AppendText(Environment.NewLine);
|
||||
if (!IsRunning) return;
|
||||
|
||||
if (WaitingTime == numericUpDown1.Value)
|
||||
{
|
||||
AddText("Retrying file conversion...");
|
||||
DownloadCountFailed++;
|
||||
label4.Text = "Downloaded: " + DownloadCountToday + "/" + URL_Done_List.Count + " (failed:" + DownloadCountFailed + ")";
|
||||
//DownloadCountFailed++;
|
||||
//SetDownloadCounts();
|
||||
|
||||
RetryFailedCount++;
|
||||
if (RetryFailedCount <= 1)
|
||||
{
|
||||
AddText("Taking too long or something went wrong converting file, retrying file conversion...");
|
||||
RetryDownloadFailed = true;
|
||||
chromiumWebBrowser1.LoadUrl(YT2MP3);
|
||||
}
|
||||
else
|
||||
{
|
||||
RetryFailedCount = 0;
|
||||
DownloadCountFailed++;
|
||||
SetDownloadCounts();
|
||||
AddText("Download failed after 3times, trying new video...");
|
||||
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
//###
|
||||
if (RetryFailedCount > 0)
|
||||
{
|
||||
RetryFailedCount = 0;
|
||||
}
|
||||
//###
|
||||
AddText("Took " + ConversionTime.ToString() + " seconds to convert the video to mp3");
|
||||
|
||||
//Click the download button
|
||||
IsDownloading = true;
|
||||
DownloadedFilename = "";
|
||||
|
@ -196,11 +481,12 @@ namespace Youtube2MP3
|
|||
var script = @"
|
||||
document.getElementsByClassName('btn-primary')[0].click();
|
||||
";
|
||||
textBox2.AppendText("Downloading..." + Environment.NewLine);
|
||||
chromiumWebBrowser1.ExecuteScriptAsyncWhenPageLoaded(script);
|
||||
//Thread.Sleep(1000);
|
||||
|
||||
//Check for ads and close then, retry
|
||||
textBox2.AppendText("Waiting til opened");
|
||||
textBox2.AppendText("Waiting til ads are opened");
|
||||
int SecondsWaited = 0;
|
||||
while (GetProcChildCount() == ProcessChildCount && SecondsWaited < 6)
|
||||
{
|
||||
|
@ -208,13 +494,17 @@ namespace Youtube2MP3
|
|||
Thread.Sleep(1000);
|
||||
Application.DoEvents();
|
||||
SecondsWaited++;
|
||||
}
|
||||
textBox2.AppendText(Environment.NewLine);
|
||||
|
||||
//close bot faster
|
||||
if (!IsRunning) SecondsWaited = 6;
|
||||
}
|
||||
|
||||
textBox2.AppendText(Environment.NewLine);
|
||||
if (!IsRunning) return;
|
||||
|
||||
//Close Process
|
||||
IEnumerable<Process> childnew = ParentProcessUtilities.GetChildProcesses();
|
||||
AddText("Closing new processes..");
|
||||
AddText("Closing new processes(ads)..");
|
||||
bool ClosedAds = false;
|
||||
foreach (Process procnew in childnew)
|
||||
{
|
||||
|
@ -226,67 +516,90 @@ namespace Youtube2MP3
|
|||
|
||||
if (!found && !ClosedAds)
|
||||
{
|
||||
//if (procnew.ProcessName != Process.GetCurrentProcess().ProcessName)
|
||||
//{
|
||||
try
|
||||
{
|
||||
Process.GetProcessById(procnew.Id).CloseMainWindow();
|
||||
Process.GetProcessById(procnew.Id).Dispose();
|
||||
Process.GetProcessById(procnew.Id).Close();
|
||||
Process.GetProcessById(procnew.Id).Kill();
|
||||
Process.GetCurrentProcess().CloseMainWindow();
|
||||
AddText("Closed process PID: " + procnew.Id);
|
||||
Console.WriteLine("Closed process PID: " + procnew.Id);
|
||||
ClosedAds = true;
|
||||
//}
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
}
|
||||
|
||||
//Restart Download
|
||||
Thread.Sleep(100);
|
||||
textBox2.AppendText("Starting download..." + Environment.NewLine);
|
||||
chromiumWebBrowser1.ExecuteScriptAsyncWhenPageLoaded(script);
|
||||
|
||||
int SecondsWaitedDownload = 0;
|
||||
while (IsDownloading && SecondsWaitedDownload < 1200)
|
||||
while (IsDownloading && SecondsWaitedDownload < (numericUpDown1.Value * 10))
|
||||
{
|
||||
LoadLogs();
|
||||
Thread.Sleep(100);
|
||||
Application.DoEvents();
|
||||
|
||||
//close bot faster
|
||||
if (!IsRunning) SecondsWaitedDownload = (int) (numericUpDown1.Value * 10);
|
||||
}
|
||||
|
||||
if (SecondsWaitedDownload >= 1200)
|
||||
if (!IsRunning) return;
|
||||
|
||||
if (SecondsWaitedDownload >= (numericUpDown1.Value * 10))
|
||||
{
|
||||
AddText("ERROR: Download not detected after 2mins!");
|
||||
AddText("ERROR: Download not detected after " + (numericUpDown1.Value * 10) + " secends!");
|
||||
DownloadCountFailed++;
|
||||
label4.Text = "Downloaded: " + DownloadCountToday + "/" + URL_Done_List.Count + " (failed:" + DownloadCountFailed + ")";
|
||||
SetDownloadCounts();
|
||||
return;
|
||||
}
|
||||
|
||||
if (DownloadedFilename != "")
|
||||
{
|
||||
//Cut and Paste the file to 'music' folder
|
||||
byte[] AllByte = File.ReadAllBytes(DownloadsDirectoryPath + DownloadedFilename);
|
||||
File.Create(@textBox1.Text + DownloadedFilename).Dispose();
|
||||
File.WriteAllBytes(@textBox1.Text + DownloadedFilename, AllByte);
|
||||
File.Delete(DownloadsDirectoryPath + DownloadedFilename);
|
||||
AddText("File transfered!");
|
||||
if (textBox1.Text != "")
|
||||
{
|
||||
//Cut and Paste the file to 'music' folder
|
||||
byte[] AllByte = File.ReadAllBytes(DownloadsDirectoryPath + DownloadedFilename);
|
||||
File.Create(@textBox1.Text + DownloadedFilename).Dispose();
|
||||
File.WriteAllBytes(@textBox1.Text + DownloadedFilename, AllByte);
|
||||
File.Delete(DownloadsDirectoryPath + DownloadedFilename);
|
||||
AddText("File transfered to save location path!");
|
||||
}
|
||||
textBox3.AppendText(DownloadedFilename + Environment.NewLine);
|
||||
}
|
||||
else
|
||||
{
|
||||
AddText("ERROR: Downloaded filename is Null!");
|
||||
DownloadCountFailed++;
|
||||
label4.Text = "Downloaded: " + DownloadCountToday + "/" + URL_Done_List.Count + " (failed:" + DownloadCountFailed + ")";
|
||||
SetDownloadCounts();
|
||||
return;
|
||||
}
|
||||
|
||||
//Finished, add to Done list
|
||||
URL_Done_List.Add(Line);
|
||||
SongNames_Done_List.Add(Line2);
|
||||
DownloadCountToday++;
|
||||
label4.Text = "Downloaded: " + DownloadCountToday + "/" + URL_Done_List.Count + " (failed:" + DownloadCountFailed + ")";
|
||||
SetDownloadCounts();
|
||||
SaveURLDone();
|
||||
SaveMP3DoneList();
|
||||
}
|
||||
else
|
||||
{
|
||||
AddText("This video has already been downloaded!");
|
||||
}
|
||||
}
|
||||
URL_List.Clear();
|
||||
}
|
||||
|
||||
private void SetDownloadCounts()
|
||||
{
|
||||
labelTotal.Text = URL_Done_List.Count.ToString();
|
||||
labelToday.Text = DownloadCountToday.ToString();
|
||||
labelFailed.Text = DownloadCountFailed.ToString();
|
||||
}
|
||||
|
||||
|
||||
void LoadLogs()
|
||||
{
|
||||
|
@ -374,6 +687,17 @@ namespace Youtube2MP3
|
|||
return false;
|
||||
}
|
||||
|
||||
private bool IsSongNameSame(string ThisSongName)
|
||||
{
|
||||
foreach (string Line in SongNames_Done_List)
|
||||
{
|
||||
if (Line == ThisSongName) return true;
|
||||
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void SendKeyEvent(Keys ThisKey)
|
||||
{
|
||||
KeyEvent k = new KeyEvent();
|
||||
|
@ -399,30 +723,9 @@ namespace Youtube2MP3
|
|||
Thread.Sleep(10);
|
||||
}
|
||||
|
||||
void SendShiftKeyEvent()
|
||||
{
|
||||
AddText("Next video...");
|
||||
chromiumWebBrowser2.Focus();
|
||||
chromiumWebBrowser2.GetBrowser().GetHost().SetFocus(true);
|
||||
chromiumWebBrowser2.GetBrowser().GetHost().SendFocusEvent(true);
|
||||
SendKeys.Send("+{n}");
|
||||
Thread.Sleep(10);
|
||||
}
|
||||
|
||||
private void chromiumWebBrowser1_LoadingStateChanged(object sender, LoadingStateChangedEventArgs e)
|
||||
{
|
||||
//Console.WriteLine(chromiumWebBrowser1.IsLoading);
|
||||
if (!chromiumWebBrowser1.IsLoading)
|
||||
{
|
||||
//Console.WriteLine("performed tab key");
|
||||
/*chromiumWebBrowser1.GetBrowser().GetHost().SendFocusEvent(true);
|
||||
Thread.Sleep(50);
|
||||
|
||||
SendKeyEvent(Keys.Tab);
|
||||
SendKeyEvent(Keys.Tab);
|
||||
SendKeyEvent(Keys.Tab);
|
||||
SendKeyCharEvent(Keys.T);*/
|
||||
}
|
||||
}
|
||||
|
||||
void AddText(string ThisText)
|
||||
|
@ -430,150 +733,143 @@ namespace Youtube2MP3
|
|||
textBox2.AppendText(ThisText + Environment.NewLine);
|
||||
}
|
||||
|
||||
void GetURLList()
|
||||
private void textBox1_Click(object sender, EventArgs e)
|
||||
{
|
||||
URL_List.Clear();
|
||||
textBox2.Text = "";
|
||||
|
||||
//1Minute ago
|
||||
DateTime TestDt = DateTime.Now - new TimeSpan(0, 5, 0);
|
||||
var history = BrowserHistory.GetHistory(Browser.Firefox, TestDt);
|
||||
int donecount = 0;
|
||||
|
||||
foreach (var entry in history)
|
||||
DialogResult result = folderBrowserDialog1.ShowDialog();
|
||||
if (result == DialogResult.OK)
|
||||
{
|
||||
if (entry.Uri.ToString().Contains(YoutubeSearchString))
|
||||
{
|
||||
URL_List.Add(entry.Uri.ToString());
|
||||
AddText("Found URL: " + entry.Uri.ToString());
|
||||
}
|
||||
//Console.WriteLine(entry.Uri);
|
||||
//Console.WriteLine(entry.Title);
|
||||
//Console.WriteLine(entry.LastVisitTime);
|
||||
|
||||
donecount++;
|
||||
if (donecount > 20) return;
|
||||
}
|
||||
|
||||
if (history.Count == 0)
|
||||
{
|
||||
AddText("Nothing found...");
|
||||
textBox1.Text = folderBrowserDialog1.SelectedPath + "\\";
|
||||
CheckLocations();
|
||||
SaveSettings();
|
||||
}
|
||||
}
|
||||
|
||||
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
|
||||
private void textBox4_Click(object sender, EventArgs e)
|
||||
{
|
||||
textBox2.Text = "";
|
||||
AddText("Chanded mode: " + comboBox1.Text);
|
||||
if (comboBox1.SelectedIndex == 0)
|
||||
DialogResult result = folderBrowserDialog1.ShowDialog();
|
||||
if (result == DialogResult.OK)
|
||||
{
|
||||
myTimer.Stop();
|
||||
textBoxURL.Enabled = false;
|
||||
this.Size = new Size(512, 597);
|
||||
chromiumWebBrowser2.Visible = false;
|
||||
textBox3.Visible = false;
|
||||
myTimer.Start();
|
||||
textBox4.Text = folderBrowserDialog1.SelectedPath + "\\";
|
||||
DownloadsDirectoryPath = textBox4.Text;
|
||||
CheckLocations();
|
||||
SaveSettings();
|
||||
}
|
||||
else if (comboBox1.SelectedIndex == 1)
|
||||
}
|
||||
|
||||
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (!IsLoadingSettings)
|
||||
{
|
||||
myTimer.Stop();
|
||||
textBoxURL.Enabled = true;
|
||||
this.Size = new Size(982, 597);
|
||||
chromiumWebBrowser2.Visible = true;
|
||||
textBox3.Visible = true;
|
||||
if (textBoxURL.Text != string.Empty)
|
||||
SaveSettings();
|
||||
}
|
||||
}
|
||||
|
||||
private void SaveMP3ListToDoneFiles(List<string> MP3List)
|
||||
{
|
||||
int IdenticalCount = 0;
|
||||
int AddedCount = 0;
|
||||
|
||||
for (int i = 0; i < MP3List.Count; i++)
|
||||
{
|
||||
bool FoundSame = false;
|
||||
|
||||
for (int k = 0; k < SongNames_Done_List.Count; k++)
|
||||
{
|
||||
chromiumWebBrowser2.LoadUrl(textBoxURL.Text);
|
||||
if (SongNames_Done_List[k] == MP3List[i])
|
||||
{
|
||||
FoundSame = true;
|
||||
k = SongNames_Done_List.Count;
|
||||
}
|
||||
}
|
||||
|
||||
if (!FoundSame)
|
||||
{
|
||||
SongNames_Done_List.Add(MP3List[i]);
|
||||
AddedCount++;
|
||||
}
|
||||
else
|
||||
{
|
||||
chromiumWebBrowser2.LoadUrl("https://www.youtube.com/");
|
||||
IdenticalCount++;
|
||||
}
|
||||
}
|
||||
|
||||
AddText("Added " + AddedCount + " done song names!");
|
||||
AddText(IdenticalCount + " song names were identicals!");
|
||||
|
||||
//save dones
|
||||
SaveMP3DoneList();
|
||||
}
|
||||
|
||||
private void SaveMP3DoneList()
|
||||
{
|
||||
string ThisFileCheck = Application.StartupPath + "\\SongNamesDone.txt";
|
||||
File.Create(ThisFileCheck).Dispose();
|
||||
|
||||
if (SongNames_Done_List.Count > 0)
|
||||
{
|
||||
string[] ListBuffer = new string[SongNames_Done_List.Count];
|
||||
for (int i = 0; i < SongNames_Done_List.Count; i++)
|
||||
{
|
||||
ListBuffer[i] = SongNames_Done_List[i];
|
||||
}
|
||||
|
||||
File.WriteAllLines(ThisFileCheck, ListBuffer);
|
||||
}
|
||||
|
||||
LoadMP3DoneList();
|
||||
}
|
||||
|
||||
private void LoadMP3DoneList()
|
||||
{
|
||||
SongNames_Done_List.Clear();
|
||||
string ThisFileCheck = Application.StartupPath + "\\SongNamesDone.txt";
|
||||
if (File.Exists(ThisFileCheck))
|
||||
{
|
||||
string[] AllLines = File.ReadAllLines(ThisFileCheck);
|
||||
foreach (string Line in AllLines)
|
||||
{
|
||||
if (Line != "")
|
||||
{
|
||||
SongNames_Done_List.Add(FixSongString(Line));
|
||||
}
|
||||
}
|
||||
myTimer.Start();
|
||||
}
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (textBoxURL.Text != string.Empty)
|
||||
DialogResult result = folderBrowserDialog1.ShowDialog();
|
||||
if (result == DialogResult.OK)
|
||||
{
|
||||
chromiumWebBrowser2.LoadUrl(textBoxURL.Text);
|
||||
string[] AllFiles = Directory.GetFiles(folderBrowserDialog1.SelectedPath + "\\");
|
||||
|
||||
if (AllFiles.Length > 0)
|
||||
{
|
||||
List<string> AllMP3Done = new List<string>();
|
||||
|
||||
for (int i = 0; i < AllFiles.Length; i++)
|
||||
{
|
||||
string filename = Path.GetFileName(AllFiles[i]);
|
||||
if (filename.ToLower().Contains(".mp3"))
|
||||
{
|
||||
AllMP3Done.Add(filename.Replace(".mp3", "").Replace(".MP3", ""));
|
||||
}
|
||||
}
|
||||
|
||||
SaveMP3ListToDoneFiles(AllMP3Done);
|
||||
}
|
||||
else
|
||||
{
|
||||
AddText("0 files found!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//#######################################################
|
||||
class MyCustomDownloadHandler : IDownloadHandler
|
||||
private void button3_Click(object sender, EventArgs e)
|
||||
{
|
||||
public event EventHandler<DownloadItem> OnBeforeDownloadFired;
|
||||
|
||||
public event EventHandler<DownloadItem> OnDownloadUpdatedFired;
|
||||
|
||||
void SaveLogs(string ThisText)
|
||||
{
|
||||
string SavePath = Application.StartupPath + "\\DownloadLogs.txt";
|
||||
bool Done = false;
|
||||
while (!Done)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!File.Exists(SavePath)) File.Create(SavePath).Dispose();
|
||||
File.AppendAllText(SavePath, ThisText + Environment.NewLine);
|
||||
Done = true;
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
}
|
||||
|
||||
public void OnBeforeDownload(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)
|
||||
{
|
||||
if (downloadItem.IsValid)
|
||||
{
|
||||
SaveLogs("== File information ========================");
|
||||
SaveLogs("File URL: " + downloadItem.Url);
|
||||
SaveLogs("Suggested FileName: " + downloadItem.SuggestedFileName);
|
||||
//SaveLogs("MimeType: " + downloadItem.MimeType);
|
||||
//SaveLogs("Content Disposition: " + downloadItem.ContentDisposition);
|
||||
SaveLogs("Total Size: " + (downloadItem.TotalBytes / 1000000));
|
||||
SaveLogs("============================================");
|
||||
}
|
||||
|
||||
OnBeforeDownloadFired?.Invoke(this, downloadItem);
|
||||
|
||||
if (!callback.IsDisposed)
|
||||
{
|
||||
using (callback)
|
||||
{
|
||||
string DownloadsDirectoryPath = "C:\\Users\\" + Environment.UserName + "\\Downloads\\";
|
||||
|
||||
callback.Continue(
|
||||
Path.Combine(
|
||||
DownloadsDirectoryPath,
|
||||
downloadItem.SuggestedFileName
|
||||
),
|
||||
showDialog: false
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
|
||||
{
|
||||
OnDownloadUpdatedFired?.Invoke(this, downloadItem);
|
||||
|
||||
if (downloadItem.IsValid)
|
||||
{
|
||||
// Show progress of the download
|
||||
if (downloadItem.IsInProgress && (downloadItem.PercentComplete != 0))
|
||||
{
|
||||
SaveLogs("Current Download Speed: " + (downloadItem.CurrentSpeed / 1000000) + " mB/s (" + downloadItem.PercentComplete + "%)");
|
||||
}
|
||||
|
||||
if (downloadItem.IsComplete)
|
||||
{
|
||||
SaveLogs("The download has been finished !");
|
||||
}
|
||||
}
|
||||
}
|
||||
AddText("Downloaded files cleared!");
|
||||
SongNames_Done_List.Clear();
|
||||
SaveMP3DoneList();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -117,6 +117,9 @@
|
|||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="folderBrowserDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
|
|
|
@ -0,0 +1,110 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Timers;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using BrowserHistoryGatherer;
|
||||
using Microsoft.Win32;
|
||||
using CefSharp;
|
||||
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
|
||||
|
||||
namespace Youtube2MP3
|
||||
{
|
||||
class MyCustomDownloadHandler : IDownloadHandler
|
||||
{
|
||||
public event EventHandler<DownloadItem> OnBeforeDownloadFired;
|
||||
public event EventHandler<DownloadItem> OnDownloadUpdatedFired;
|
||||
public event EventHandler<DownloadItem> CanDownloadFired;
|
||||
|
||||
void SaveLogs(string ThisText)
|
||||
{
|
||||
string SavePath = Application.StartupPath + "\\DownloadLogs.txt";
|
||||
bool Done = false;
|
||||
while (!Done)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!File.Exists(SavePath)) File.Create(SavePath).Dispose();
|
||||
File.AppendAllText(SavePath, ThisText + Environment.NewLine);
|
||||
Done = true;
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
}
|
||||
|
||||
public void OnBeforeDownload(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)
|
||||
{
|
||||
if (downloadItem.IsValid)
|
||||
{
|
||||
SaveLogs("== File information ========================");
|
||||
SaveLogs("File URL: " + downloadItem.Url);
|
||||
SaveLogs("Suggested FileName: " + downloadItem.SuggestedFileName);
|
||||
//SaveLogs("MimeType: " + downloadItem.MimeType);
|
||||
//SaveLogs("Content Disposition: " + downloadItem.ContentDisposition);
|
||||
SaveLogs("Total Size: " + (downloadItem.TotalBytes / 1000000));
|
||||
SaveLogs("============================================");
|
||||
}
|
||||
|
||||
OnBeforeDownloadFired?.Invoke(this, downloadItem);
|
||||
|
||||
if (!callback.IsDisposed)
|
||||
{
|
||||
using (callback)
|
||||
{
|
||||
string DownloadPath = "";
|
||||
|
||||
//Load Save location
|
||||
string ThisFileCheck = Application.StartupPath + "\\Setting.txt";
|
||||
if (File.Exists(ThisFileCheck))
|
||||
{
|
||||
string[] AllLines = File.ReadAllLines(ThisFileCheck);
|
||||
if (AllLines.Length > 1)
|
||||
{
|
||||
DownloadPath = AllLines[1];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SaveLogs("Cannot fint the download folder path!");
|
||||
}
|
||||
|
||||
callback.Continue(Path.Combine(DownloadPath, downloadItem.SuggestedFileName), showDialog: false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
|
||||
{
|
||||
OnDownloadUpdatedFired?.Invoke(this, downloadItem);
|
||||
|
||||
if (downloadItem.IsValid)
|
||||
{
|
||||
// Show progress of the download
|
||||
if (downloadItem.IsInProgress && (downloadItem.PercentComplete != 0))
|
||||
{
|
||||
SaveLogs("Current Download Speed: " + (downloadItem.CurrentSpeed / 1000000) + " mB/s (" + downloadItem.PercentComplete + "%)");
|
||||
}
|
||||
|
||||
if (downloadItem.IsComplete)
|
||||
{
|
||||
SaveLogs("The download has been finished !");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool CanDownload(IWebBrowser chromiumWebBrowser, IBrowser browser, string url, string requestMethod)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -19,7 +19,7 @@ namespace Youtube2MP3.Properties {
|
|||
// à l'aide d'un outil, tel que ResGen ou Visual Studio.
|
||||
// Pour ajouter ou supprimer un membre, modifiez votre fichier .ResX, puis réexécutez ResGen
|
||||
// avec l'option /str ou régénérez votre projet VS.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
|
|
@ -12,7 +12,7 @@ namespace Youtube2MP3.Properties {
|
|||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.3.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.3.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="packages\CefSharp.Common.98.1.210\build\CefSharp.Common.props" Condition="Exists('packages\CefSharp.Common.98.1.210\build\CefSharp.Common.props')" />
|
||||
<Import Project="packages\cef.redist.x86.98.1.21\build\cef.redist.x86.props" Condition="Exists('packages\cef.redist.x86.98.1.21\build\cef.redist.x86.props')" />
|
||||
<Import Project="packages\CefSharp.Common.106.0.290\build\CefSharp.Common.props" Condition="Exists('packages\CefSharp.Common.106.0.290\build\CefSharp.Common.props')" />
|
||||
<Import Project="packages\cef.redist.x86.106.0.29\build\cef.redist.x86.props" Condition="Exists('packages\cef.redist.x86.106.0.29\build\cef.redist.x86.props')" />
|
||||
<Import Project="packages\SQLite.3.13.0\build\net45\SQLite.props" Condition="Exists('packages\SQLite.3.13.0\build\net45\SQLite.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
|
@ -11,7 +11,7 @@
|
|||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>Youtube2MP3</RootNamespace>
|
||||
<AssemblyName>Youtube2MP3</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
|
@ -49,14 +49,14 @@
|
|||
<Reference Include="BrowserHistoryGatherer">
|
||||
<HintPath>dlls\BrowserHistoryGatherer.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="CefSharp, Version=98.1.210.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=MSIL">
|
||||
<HintPath>packages\CefSharp.Common.98.1.210\lib\net452\CefSharp.dll</HintPath>
|
||||
<Reference Include="CefSharp, Version=106.0.290.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=MSIL">
|
||||
<HintPath>packages\CefSharp.Common.106.0.290\lib\net452\CefSharp.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="CefSharp.Core, Version=98.1.210.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=MSIL">
|
||||
<HintPath>packages\CefSharp.Common.98.1.210\lib\net452\CefSharp.Core.dll</HintPath>
|
||||
<Reference Include="CefSharp.Core, Version=106.0.290.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=MSIL">
|
||||
<HintPath>packages\CefSharp.Common.106.0.290\lib\net452\CefSharp.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="CefSharp.WinForms, Version=98.1.210.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=MSIL">
|
||||
<HintPath>packages\CefSharp.WinForms.98.1.210\lib\net452\CefSharp.WinForms.dll</HintPath>
|
||||
<Reference Include="CefSharp.WinForms, Version=106.0.290.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=MSIL">
|
||||
<HintPath>packages\CefSharp.WinForms.106.0.290\lib\net452\CefSharp.WinForms.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="plist-cil">
|
||||
<HintPath>dlls\plist-cil.dll</HintPath>
|
||||
|
@ -64,8 +64,8 @@
|
|||
<Reference Include="System" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data.SQLite, Version=1.0.115.5, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
|
||||
<HintPath>packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.5\lib\net45\System.Data.SQLite.dll</HintPath>
|
||||
<Reference Include="System.Data.SQLite, Version=1.0.116.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
|
||||
<HintPath>packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.116.0\lib\net451\System.Data.SQLite.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Management" />
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
|
@ -90,6 +90,7 @@
|
|||
<Compile Include="Form1.Designer.cs">
|
||||
<DependentUpon>Form1.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="MyCustomDownloadHandler.cs" />
|
||||
<Compile Include="ParentProcessUtilities.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
|
@ -130,11 +131,11 @@
|
|||
<ErrorText>Ce projet fait référence à des packages NuGet qui sont manquants sur cet ordinateur. Utilisez l'option de restauration des packages NuGet pour les télécharger. Pour plus d'informations, consultez http://go.microsoft.com/fwlink/?LinkID=322105. Le fichier manquant est : {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('packages\SQLite.3.13.0\build\net45\SQLite.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\SQLite.3.13.0\build\net45\SQLite.props'))" />
|
||||
<Error Condition="!Exists('packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.5\build\net45\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.5\build\net45\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
|
||||
<Error Condition="!Exists('packages\cef.redist.x86.98.1.21\build\cef.redist.x86.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\cef.redist.x86.98.1.21\build\cef.redist.x86.props'))" />
|
||||
<Error Condition="!Exists('packages\CefSharp.Common.98.1.210\build\CefSharp.Common.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\CefSharp.Common.98.1.210\build\CefSharp.Common.props'))" />
|
||||
<Error Condition="!Exists('packages\CefSharp.Common.98.1.210\build\CefSharp.Common.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\CefSharp.Common.98.1.210\build\CefSharp.Common.targets'))" />
|
||||
<Error Condition="!Exists('packages\cef.redist.x86.106.0.29\build\cef.redist.x86.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\cef.redist.x86.106.0.29\build\cef.redist.x86.props'))" />
|
||||
<Error Condition="!Exists('packages\CefSharp.Common.106.0.290\build\CefSharp.Common.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\CefSharp.Common.106.0.290\build\CefSharp.Common.props'))" />
|
||||
<Error Condition="!Exists('packages\CefSharp.Common.106.0.290\build\CefSharp.Common.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\CefSharp.Common.106.0.290\build\CefSharp.Common.targets'))" />
|
||||
<Error Condition="!Exists('packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.116.0\build\net451\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.116.0\build\net451\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
|
||||
</Target>
|
||||
<Import Project="packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.5\build\net45\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.5\build\net45\Stub.System.Data.SQLite.Core.NetFramework.targets')" />
|
||||
<Import Project="packages\CefSharp.Common.98.1.210\build\CefSharp.Common.targets" Condition="Exists('packages\CefSharp.Common.98.1.210\build\CefSharp.Common.targets')" />
|
||||
<Import Project="packages\CefSharp.Common.106.0.290\build\CefSharp.Common.targets" Condition="Exists('packages\CefSharp.Common.106.0.290\build\CefSharp.Common.targets')" />
|
||||
<Import Project="packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.116.0\build\net451\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.116.0\build\net451\Stub.System.Data.SQLite.Core.NetFramework.targets')" />
|
||||
</Project>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1 @@
|
|||
afa7d688a7960ce8d92d15ddf0587669d0ecb689
|
|
@ -82,8 +82,6 @@ C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\local
|
|||
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\README.txt
|
||||
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\resources.pak
|
||||
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\snapshot_blob.bin
|
||||
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\swiftshader\libEGL.dll
|
||||
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\swiftshader\libGLESv2.dll
|
||||
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\v8_context_snapshot.bin
|
||||
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\vk_swiftshader.dll
|
||||
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\vk_swiftshader_icd.json
|
||||
|
@ -104,3 +102,113 @@ C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSh
|
|||
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.Core.xml
|
||||
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.WinForms.pdb
|
||||
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.WinForms.xml
|
||||
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\af.pak
|
||||
C:\Users\boule\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\ur.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\x86\sqlite3.dll
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\x64\sqlite3.dll
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\chrome_100_percent.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\chrome_200_percent.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\chrome_elf.dll
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\d3dcompiler_47.dll
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\icudtl.dat
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\libcef.dll
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\libEGL.dll
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\libGLESv2.dll
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\LICENSE.txt
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\af.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\am.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\ar.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\bg.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\bn.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\ca.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\cs.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\da.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\de.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\el.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\en-GB.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\en-US.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\es-419.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\es.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\et.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\fa.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\fi.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\fil.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\fr.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\gu.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\he.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\hi.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\hr.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\hu.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\id.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\it.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\ja.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\kn.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\ko.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\lt.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\lv.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\ml.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\mr.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\ms.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\nb.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\nl.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\pl.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\pt-BR.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\pt-PT.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\ro.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\ru.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\sk.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\sl.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\sr.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\sv.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\sw.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\ta.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\te.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\th.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\tr.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\uk.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\ur.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\vi.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\zh-CN.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\locales\zh-TW.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\README.txt
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\resources.pak
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\snapshot_blob.bin
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\v8_context_snapshot.bin
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\vk_swiftshader.dll
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\vk_swiftshader_icd.json
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\vulkan-1.dll
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.BrowserSubprocess.Core.dll
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.BrowserSubprocess.Core.pdb
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.BrowserSubprocess.exe
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.BrowserSubprocess.pdb
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.Core.Runtime.dll
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.Core.Runtime.pdb
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.Core.Runtime.xml
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\Youtube2MP3.exe.config
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\Youtube2MP3.exe
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\Youtube2MP3.pdb
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\BrowserHistoryGatherer.dll
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.Core.dll
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.dll
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.WinForms.dll
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\plist-cil.dll
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\System.Data.SQLite.dll
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\UrlHistoryLibrary.dll
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\BrowserHistoryGatherer.pdb
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.pdb
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.xml
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.Core.pdb
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.Core.xml
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.WinForms.pdb
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\CefSharp.WinForms.xml
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\System.Data.SQLite.xml
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\bin\Debug\UrlHistoryLibrary.pdb
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\obj\Debug\Youtube2MP3.csproj.AssemblyReference.cache
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\obj\Debug\Youtube2MP3.csproj.SuggestedBindingRedirects.cache
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\obj\Debug\Youtube2MP3.Form1.resources
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\obj\Debug\Youtube2MP3.Properties.Resources.resources
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\obj\Debug\Youtube2MP3.csproj.GenerateResource.cache
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\obj\Debug\Youtube2MP3.csproj.CoreCompileInputs.cache
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\obj\Debug\Youtube2MP3.csproj.CopyComplete
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\obj\Debug\Youtube2MP3.exe
|
||||
C:\Users\boule\OneDrive\Documents\Visual Studio 2019\Projects\Youtube2MP3\obj\Debug\Youtube2MP3.pdb
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,9 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="cef.redist.x86" version="98.1.21" targetFramework="net45" />
|
||||
<package id="CefSharp.Common" version="98.1.210" targetFramework="net452" />
|
||||
<package id="CefSharp.WinForms" version="98.1.210" targetFramework="net452" />
|
||||
<package id="cef.redist.x86" version="106.0.29" targetFramework="net452" />
|
||||
<package id="CefSharp.Common" version="106.0.290" targetFramework="net452" />
|
||||
<package id="CefSharp.WinForms" version="106.0.290" targetFramework="net452" requireReinstallation="true" />
|
||||
<package id="SQLite" version="3.13.0" targetFramework="net45" />
|
||||
<package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.115.5" targetFramework="net45" requireReinstallation="true" />
|
||||
<package id="System.Data.SQLite.Core" version="1.0.115.5" targetFramework="net45" />
|
||||
<package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.116.0" targetFramework="net452" requireReinstallation="true" />
|
||||
<package id="System.Data.SQLite.Core" version="1.0.116.0" targetFramework="net452" />
|
||||
</packages>
|
Loading…
Reference in New Issue