33 Commits

Author SHA1 Message Date
AiiR
58a6be7283 0.9.9.16
0.9.9.16
2020-06-16 03:35:27 -04:00
AiiR
6c225b895e 0.9.9.15
Fixed downloading goodies (digital booklets)
2020-05-26 12:14:03 -04:00
AiiR
e302608d6e 0.9.9.14
0.9.9.14
2020-05-25 15:23:10 -04:00
AiiR
56ffb88b16 0.9.9.13
0.9.9.13
2020-04-30 04:27:06 -04:00
AiiR
5c40d5315a Merge branch 'master' of https://github.com/ImAiiR/QobuzDownloaderX 2020-03-29 01:39:53 -04:00
AiiR
984bed19f2 0.9.9.12
0.9.9.12
2020-03-29 01:39:50 -04:00
AiiR
b257e8540f Update README.md 2020-03-26 10:16:25 -04:00
AiiR
aebd046185 Update README.md 2020-03-26 10:16:13 -04:00
AiiR
8f33ebd46f Update README.md 2020-03-26 10:13:47 -04:00
AiiR
7c6b826c77 0.9.9.11
0.9.9.11
2020-03-25 15:01:33 -04:00
AiiR
8f8a01fddd 0.9.9.10
0.9.9.10
2020-03-23 16:31:00 -04:00
AiiR
8321081dd9 0.9.9.9
0.9.9.9
2020-03-22 21:57:27 -04:00
AiiR
2e44cbc5a3 0.9.9.8
0.9.9.8
2020-02-27 16:55:41 -05:00
AiiR
4e14909b22 0.9.9.7 2020-01-09 05:34:23 -05:00
AiiR
272babb837 Update README.md 2019-12-12 17:55:34 -05:00
AiiR
a4d8289063 0.9.9.6 (Bug fixes)
0.9.9.6 (Bug fixes)
2019-12-11 00:05:07 -05:00
AiiR
5d97d944a7 Merge branch 'master' of https://github.com/ImAiiR/QobuzDownloaderX 2019-12-10 00:10:12 -05:00
AiiR
8cfdd5ed7e Update QBDLX2.png 2019-12-10 00:10:00 -05:00
AiiR
4b92ec794d Update README.md 2019-12-10 00:07:16 -05:00
AiiR
97ff2e2a3e Update README.md 2019-12-10 00:06:48 -05:00
AiiR
9e778a9145 Create QBDLX2.png 2019-12-10 00:06:25 -05:00
AiiR
2446643d99 0.9.9.5
0.9.9.5 (UI Change Update)
2019-12-09 23:56:59 -05:00
AiiR
2b0ec2b90d 0.9.9.0 2019-11-23 16:19:36 -05:00
AiiR
7eba9848ba Change character replacements to "-" 2019-11-23 14:53:55 -05:00
AiiR
7cb2e827cb Update README.md 2019-11-02 14:15:20 -04:00
AiiR
8005e6297b Update README.md 2019-11-01 22:31:38 -04:00
AiiR
497d7f2963 Merge branch 'master' of https://github.com/ImAiiR/QobuzDownloaderX 2019-11-01 22:30:34 -04:00
AiiR
a8839434e7 Create QBDLX1.png 2019-11-01 22:30:15 -04:00
AiiR
799afa706f Update README.md 2019-11-01 22:23:18 -04:00
AiiR
6e8a4fe1dc Update README.md 2019-11-01 22:23:02 -04:00
AiiR
37eaaecc8a Update README.md 2019-11-01 22:17:45 -04:00
AiiR
15a099d6b2 Update README.md 2019-11-01 22:15:17 -04:00
AiiR
8a4ff7c871 Update README.md 2019-11-01 22:13:10 -04:00
20 changed files with 6134 additions and 305 deletions

BIN
-assets/QBDLX1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

BIN
-assets/QBDLX2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

View File

@@ -100,6 +100,21 @@
<setting name="audioType" serializeAs="String"> <setting name="audioType" serializeAs="String">
<value>.flac</value> <value>.flac</value>
</setting> </setting>
<setting name="savedUserID" serializeAs="String">
<value />
</setting>
<setting name="savedUserAuthToken" serializeAs="String">
<value />
</setting>
<setting name="savedAltLoginValue" serializeAs="String">
<value>0</value>
</setting>
<setting name="savedArtSize" serializeAs="String">
<value>1</value>
</setting>
<setting name="typeTag" serializeAs="String">
<value>True</value>
</setting>
</QobuzDownloaderX.Properties.Settings> </QobuzDownloaderX.Properties.Settings>
</userSettings> </userSettings>
</configuration> </configuration>

View File

@@ -49,7 +49,7 @@
this.upcTextBox = new System.Windows.Forms.TextBox(); this.upcTextBox = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label(); this.label5 = new System.Windows.Forms.Label();
this.albumArtPicBox = new System.Windows.Forms.PictureBox(); this.albumArtPicBox = new System.Windows.Forms.PictureBox();
this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.logoBox = new System.Windows.Forms.PictureBox();
this.label6 = new System.Windows.Forms.Label(); this.label6 = new System.Windows.Forms.Label();
this.totalTracksTextbox = new System.Windows.Forms.TextBox(); this.totalTracksTextbox = new System.Windows.Forms.TextBox();
this.totalTracksLabel = new System.Windows.Forms.Label(); this.totalTracksLabel = new System.Windows.Forms.Label();
@@ -84,8 +84,31 @@
this.flacMidCheckbox = new System.Windows.Forms.CheckBox(); this.flacMidCheckbox = new System.Windows.Forms.CheckBox();
this.flacHighCheckbox = new System.Windows.Forms.CheckBox(); this.flacHighCheckbox = new System.Windows.Forms.CheckBox();
this.mp3WarnLabel = new System.Windows.Forms.Label(); this.mp3WarnLabel = new System.Windows.Forms.Label();
this.panel1 = new System.Windows.Forms.Panel();
this.exitLabel = new System.Windows.Forms.Label();
this.minimizeLabel = new System.Windows.Forms.Label();
this.panel2 = new System.Windows.Forms.Panel();
this.panel3 = new System.Windows.Forms.Panel();
this.panel4 = new System.Windows.Forms.Panel();
this.panel5 = new System.Windows.Forms.Panel();
this.panel6 = new System.Windows.Forms.Panel();
this.panel7 = new System.Windows.Forms.Panel();
this.panel8 = new System.Windows.Forms.Panel();
this.streamableCheckbox = new System.Windows.Forms.CheckBox();
this.secretTextbox = new System.Windows.Forms.TextBox();
this.displaySecretButton = new System.Windows.Forms.Button();
this.profilePictureBox = new System.Windows.Forms.PictureBox();
this.logoutLabel = new System.Windows.Forms.Label();
this.downloadLabelBG = new System.ComponentModel.BackgroundWorker();
this.hiddenTextPanel = new System.Windows.Forms.Panel();
this.downloadFaveAlbumsBG = new System.ComponentModel.BackgroundWorker();
this.downloadFaveArtistsBG = new System.ComponentModel.BackgroundWorker();
this.artSizeSelect = new System.Windows.Forms.ComboBox();
this.artSizeLabel = new System.Windows.Forms.Label();
this.typeCheckbox = new System.Windows.Forms.CheckBox();
((System.ComponentModel.ISupportInitialize)(this.albumArtPicBox)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.albumArtPicBox)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.logoBox)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.profilePictureBox)).BeginInit();
this.SuspendLayout(); this.SuspendLayout();
// //
// testURLBox // testURLBox
@@ -101,17 +124,23 @@
// //
// selectFolder // selectFolder
// //
this.selectFolder.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(112)))), ((int)(((byte)(239)))));
this.selectFolder.FlatAppearance.BorderSize = 0;
this.selectFolder.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.selectFolder.ForeColor = System.Drawing.Color.White;
this.selectFolder.Location = new System.Drawing.Point(13, 115); this.selectFolder.Location = new System.Drawing.Point(13, 115);
this.selectFolder.Name = "selectFolder"; this.selectFolder.Name = "selectFolder";
this.selectFolder.Size = new System.Drawing.Size(349, 23); this.selectFolder.Size = new System.Drawing.Size(349, 23);
this.selectFolder.TabIndex = 2; this.selectFolder.TabIndex = 2;
this.selectFolder.Text = "Choose Folder"; this.selectFolder.Text = "Choose Folder";
this.selectFolder.UseVisualStyleBackColor = true; this.selectFolder.UseVisualStyleBackColor = false;
this.selectFolder.Click += new System.EventHandler(this.selectFolder_Click); this.selectFolder.Click += new System.EventHandler(this.selectFolder_Click);
// //
// output // output
// //
this.output.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(33)))), ((int)(((byte)(33))))); this.output.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(33)))), ((int)(((byte)(33)))), ((int)(((byte)(33)))));
this.output.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.output.Cursor = System.Windows.Forms.Cursors.IBeam;
this.output.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.output.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.output.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128))))); this.output.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128)))));
this.output.Location = new System.Drawing.Point(12, 144); this.output.Location = new System.Drawing.Point(12, 144);
@@ -125,29 +154,41 @@
// //
// openFolderButton // openFolderButton
// //
this.openFolderButton.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(112)))), ((int)(((byte)(239)))));
this.openFolderButton.FlatAppearance.BorderSize = 0;
this.openFolderButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.openFolderButton.ForeColor = System.Drawing.Color.White;
this.openFolderButton.Location = new System.Drawing.Point(368, 115); this.openFolderButton.Location = new System.Drawing.Point(368, 115);
this.openFolderButton.Name = "openFolderButton"; this.openFolderButton.Name = "openFolderButton";
this.openFolderButton.Size = new System.Drawing.Size(349, 23); this.openFolderButton.Size = new System.Drawing.Size(349, 23);
this.openFolderButton.TabIndex = 13; this.openFolderButton.TabIndex = 13;
this.openFolderButton.Text = "Open Folder"; this.openFolderButton.Text = "Open Folder";
this.openFolderButton.UseVisualStyleBackColor = true; this.openFolderButton.UseVisualStyleBackColor = false;
this.openFolderButton.Click += new System.EventHandler(this.openFolderButton_Click); this.openFolderButton.Click += new System.EventHandler(this.openFolderButton_Click);
// //
// downloadButton // downloadButton
// //
this.downloadButton.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(112)))), ((int)(((byte)(239)))));
this.downloadButton.FlatAppearance.BorderSize = 0;
this.downloadButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.downloadButton.ForeColor = System.Drawing.Color.White;
this.downloadButton.Location = new System.Drawing.Point(597, 86); this.downloadButton.Location = new System.Drawing.Point(597, 86);
this.downloadButton.Name = "downloadButton"; this.downloadButton.Name = "downloadButton";
this.downloadButton.Size = new System.Drawing.Size(120, 23); this.downloadButton.Size = new System.Drawing.Size(120, 23);
this.downloadButton.TabIndex = 17; this.downloadButton.TabIndex = 17;
this.downloadButton.Text = "Download"; this.downloadButton.Text = "Download";
this.downloadButton.UseVisualStyleBackColor = true; this.downloadButton.UseVisualStyleBackColor = false;
this.downloadButton.Click += new System.EventHandler(this.downloadButton_Click); this.downloadButton.Click += new System.EventHandler(this.downloadButton_Click);
// //
// albumUrl // albumUrl
// //
this.albumUrl.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.albumUrl.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.albumUrl.ForeColor = System.Drawing.Color.White;
this.albumUrl.Location = new System.Drawing.Point(15, 88); this.albumUrl.Location = new System.Drawing.Point(15, 88);
this.albumUrl.Multiline = true;
this.albumUrl.Name = "albumUrl"; this.albumUrl.Name = "albumUrl";
this.albumUrl.Size = new System.Drawing.Size(579, 20); this.albumUrl.Size = new System.Drawing.Size(576, 20);
this.albumUrl.TabIndex = 16; this.albumUrl.TabIndex = 16;
this.albumUrl.WordWrap = false; this.albumUrl.WordWrap = false;
this.albumUrl.KeyDown += new System.Windows.Forms.KeyEventHandler(this.albumUrl_KeyDown); this.albumUrl.KeyDown += new System.Windows.Forms.KeyEventHandler(this.albumUrl_KeyDown);
@@ -165,6 +206,7 @@
// //
// verNumLabel // verNumLabel
// //
this.verNumLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.verNumLabel.Location = new System.Drawing.Point(159, 55); this.verNumLabel.Location = new System.Drawing.Point(159, 55);
this.verNumLabel.Name = "verNumLabel"; this.verNumLabel.Name = "verNumLabel";
this.verNumLabel.Size = new System.Drawing.Size(63, 13); this.verNumLabel.Size = new System.Drawing.Size(63, 13);
@@ -175,6 +217,7 @@
// label1 // label1
// //
this.label1.AutoSize = true; this.label1.AutoSize = true;
this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.label1.Location = new System.Drawing.Point(801, 213); this.label1.Location = new System.Drawing.Point(801, 213);
this.label1.Name = "label1"; this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(51, 13); this.label1.Size = new System.Drawing.Size(51, 13);
@@ -184,6 +227,7 @@
// label2 // label2
// //
this.label2.AutoSize = true; this.label2.AutoSize = true;
this.label2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.label2.Location = new System.Drawing.Point(751, 236); this.label2.Location = new System.Drawing.Point(751, 236);
this.label2.Name = "label2"; this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(62, 13); this.label2.Size = new System.Drawing.Size(62, 13);
@@ -192,7 +236,11 @@
// //
// albumArtistTextBox // albumArtistTextBox
// //
this.albumArtistTextBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.albumArtistTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.albumArtistTextBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.albumArtistTextBox.Location = new System.Drawing.Point(754, 252); this.albumArtistTextBox.Location = new System.Drawing.Point(754, 252);
this.albumArtistTextBox.Multiline = true;
this.albumArtistTextBox.Name = "albumArtistTextBox"; this.albumArtistTextBox.Name = "albumArtistTextBox";
this.albumArtistTextBox.ReadOnly = true; this.albumArtistTextBox.ReadOnly = true;
this.albumArtistTextBox.Size = new System.Drawing.Size(150, 20); this.albumArtistTextBox.Size = new System.Drawing.Size(150, 20);
@@ -201,7 +249,11 @@
// //
// albumTextBox // albumTextBox
// //
this.albumTextBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.albumTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.albumTextBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.albumTextBox.Location = new System.Drawing.Point(754, 294); this.albumTextBox.Location = new System.Drawing.Point(754, 294);
this.albumTextBox.Multiline = true;
this.albumTextBox.Name = "albumTextBox"; this.albumTextBox.Name = "albumTextBox";
this.albumTextBox.ReadOnly = true; this.albumTextBox.ReadOnly = true;
this.albumTextBox.Size = new System.Drawing.Size(150, 20); this.albumTextBox.Size = new System.Drawing.Size(150, 20);
@@ -211,6 +263,7 @@
// label3 // label3
// //
this.label3.AutoSize = true; this.label3.AutoSize = true;
this.label3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.label3.Location = new System.Drawing.Point(751, 278); this.label3.Location = new System.Drawing.Point(751, 278);
this.label3.Name = "label3"; this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(36, 13); this.label3.Size = new System.Drawing.Size(36, 13);
@@ -219,7 +272,11 @@
// //
// releaseDateTextBox // releaseDateTextBox
// //
this.releaseDateTextBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.releaseDateTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.releaseDateTextBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.releaseDateTextBox.Location = new System.Drawing.Point(754, 463); this.releaseDateTextBox.Location = new System.Drawing.Point(754, 463);
this.releaseDateTextBox.Multiline = true;
this.releaseDateTextBox.Name = "releaseDateTextBox"; this.releaseDateTextBox.Name = "releaseDateTextBox";
this.releaseDateTextBox.ReadOnly = true; this.releaseDateTextBox.ReadOnly = true;
this.releaseDateTextBox.Size = new System.Drawing.Size(150, 20); this.releaseDateTextBox.Size = new System.Drawing.Size(150, 20);
@@ -229,6 +286,7 @@
// label4 // label4
// //
this.label4.AutoSize = true; this.label4.AutoSize = true;
this.label4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.label4.Location = new System.Drawing.Point(751, 447); this.label4.Location = new System.Drawing.Point(751, 447);
this.label4.Name = "label4"; this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(72, 13); this.label4.Size = new System.Drawing.Size(72, 13);
@@ -237,7 +295,11 @@
// //
// upcTextBox // upcTextBox
// //
this.upcTextBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.upcTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.upcTextBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.upcTextBox.Location = new System.Drawing.Point(754, 420); this.upcTextBox.Location = new System.Drawing.Point(754, 420);
this.upcTextBox.Multiline = true;
this.upcTextBox.Name = "upcTextBox"; this.upcTextBox.Name = "upcTextBox";
this.upcTextBox.ReadOnly = true; this.upcTextBox.ReadOnly = true;
this.upcTextBox.Size = new System.Drawing.Size(150, 20); this.upcTextBox.Size = new System.Drawing.Size(150, 20);
@@ -247,6 +309,7 @@
// label5 // label5
// //
this.label5.AutoSize = true; this.label5.AutoSize = true;
this.label5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.label5.Location = new System.Drawing.Point(751, 404); this.label5.Location = new System.Drawing.Point(751, 404);
this.label5.Name = "label5"; this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(29, 13); this.label5.Size = new System.Drawing.Size(29, 13);
@@ -263,28 +326,35 @@
this.albumArtPicBox.TabIndex = 39; this.albumArtPicBox.TabIndex = 39;
this.albumArtPicBox.TabStop = false; this.albumArtPicBox.TabStop = false;
// //
// pictureBox1 // logoBox
// //
this.pictureBox1.Image = global::QobuzDownloaderX.Properties.Resources.qbdlx; this.logoBox.Image = global::QobuzDownloaderX.Properties.Resources.qbdlx_white;
this.pictureBox1.Location = new System.Drawing.Point(12, 12); this.logoBox.Location = new System.Drawing.Point(12, 12);
this.pictureBox1.Name = "pictureBox1"; this.logoBox.Name = "logoBox";
this.pictureBox1.Size = new System.Drawing.Size(207, 52); this.logoBox.Size = new System.Drawing.Size(207, 52);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.logoBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pictureBox1.TabIndex = 36; this.logoBox.TabIndex = 36;
this.pictureBox1.TabStop = false; this.logoBox.TabStop = false;
this.logoBox.Click += new System.EventHandler(this.logoBox_Click);
this.logoBox.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseMove);
// //
// label6 // label6
// //
this.label6.AutoSize = true; this.label6.AutoSize = true;
this.label6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.label6.Location = new System.Drawing.Point(12, 70); this.label6.Location = new System.Drawing.Point(12, 70);
this.label6.Name = "label6"; this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(132, 13); this.label6.Size = new System.Drawing.Size(61, 13);
this.label6.TabIndex = 49; this.label6.TabIndex = 49;
this.label6.Text = "Qobuz Album / Track Link"; this.label6.Text = "Qobuz Link";
// //
// totalTracksTextbox // totalTracksTextbox
// //
this.totalTracksTextbox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.totalTracksTextbox.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.totalTracksTextbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.totalTracksTextbox.Location = new System.Drawing.Point(754, 378); this.totalTracksTextbox.Location = new System.Drawing.Point(754, 378);
this.totalTracksTextbox.Multiline = true;
this.totalTracksTextbox.Name = "totalTracksTextbox"; this.totalTracksTextbox.Name = "totalTracksTextbox";
this.totalTracksTextbox.ReadOnly = true; this.totalTracksTextbox.ReadOnly = true;
this.totalTracksTextbox.Size = new System.Drawing.Size(150, 20); this.totalTracksTextbox.Size = new System.Drawing.Size(150, 20);
@@ -294,6 +364,7 @@
// totalTracksLabel // totalTracksLabel
// //
this.totalTracksLabel.AutoSize = true; this.totalTracksLabel.AutoSize = true;
this.totalTracksLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.totalTracksLabel.Location = new System.Drawing.Point(751, 362); this.totalTracksLabel.Location = new System.Drawing.Point(751, 362);
this.totalTracksLabel.Name = "totalTracksLabel"; this.totalTracksLabel.Name = "totalTracksLabel";
this.totalTracksLabel.Size = new System.Drawing.Size(67, 13); this.totalTracksLabel.Size = new System.Drawing.Size(67, 13);
@@ -318,7 +389,11 @@
// //
// qualityTextbox // qualityTextbox
// //
this.qualityTextbox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.qualityTextbox.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.qualityTextbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.qualityTextbox.Location = new System.Drawing.Point(754, 336); this.qualityTextbox.Location = new System.Drawing.Point(754, 336);
this.qualityTextbox.Multiline = true;
this.qualityTextbox.Name = "qualityTextbox"; this.qualityTextbox.Name = "qualityTextbox";
this.qualityTextbox.ReadOnly = true; this.qualityTextbox.ReadOnly = true;
this.qualityTextbox.Size = new System.Drawing.Size(150, 20); this.qualityTextbox.Size = new System.Drawing.Size(150, 20);
@@ -328,6 +403,7 @@
// qualityLabel // qualityLabel
// //
this.qualityLabel.AutoSize = true; this.qualityLabel.AutoSize = true;
this.qualityLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.qualityLabel.Location = new System.Drawing.Point(751, 320); this.qualityLabel.Location = new System.Drawing.Point(751, 320);
this.qualityLabel.Name = "qualityLabel"; this.qualityLabel.Name = "qualityLabel";
this.qualityLabel.Size = new System.Drawing.Size(71, 13); this.qualityLabel.Size = new System.Drawing.Size(71, 13);
@@ -336,21 +412,26 @@
// //
// openSearch // openSearch
// //
this.openSearch.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(112)))), ((int)(((byte)(239)))));
this.openSearch.FlatAppearance.BorderSize = 0;
this.openSearch.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.openSearch.ForeColor = System.Drawing.Color.White;
this.openSearch.Location = new System.Drawing.Point(597, 57); this.openSearch.Location = new System.Drawing.Point(597, 57);
this.openSearch.Name = "openSearch"; this.openSearch.Name = "openSearch";
this.openSearch.Size = new System.Drawing.Size(120, 23); this.openSearch.Size = new System.Drawing.Size(120, 23);
this.openSearch.TabIndex = 60; this.openSearch.TabIndex = 60;
this.openSearch.Text = "Open Search"; this.openSearch.Text = "Open Search";
this.openSearch.UseVisualStyleBackColor = true; this.openSearch.UseVisualStyleBackColor = false;
this.openSearch.Click += new System.EventHandler(this.openSearch_Click); this.openSearch.Click += new System.EventHandler(this.openSearch_Click);
// //
// tagsLabel // tagsLabel
// //
this.tagsLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.tagsLabel.Location = new System.Drawing.Point(12, 501); this.tagsLabel.Location = new System.Drawing.Point(12, 501);
this.tagsLabel.Name = "tagsLabel"; this.tagsLabel.Name = "tagsLabel";
this.tagsLabel.Size = new System.Drawing.Size(914, 23); this.tagsLabel.Size = new System.Drawing.Size(914, 23);
this.tagsLabel.TabIndex = 61; this.tagsLabel.TabIndex = 61;
this.tagsLabel.Text = "🠋 Choose which tags to save 🠋"; this.tagsLabel.Text = "🠋 Choose which tags to save (click me) 🠋";
this.tagsLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.tagsLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.tagsLabel.Click += new System.EventHandler(this.tagsLabel_Click); this.tagsLabel.Click += new System.EventHandler(this.tagsLabel_Click);
// //
@@ -359,6 +440,8 @@
this.albumArtistCheckbox.AutoSize = true; this.albumArtistCheckbox.AutoSize = true;
this.albumArtistCheckbox.Checked = true; this.albumArtistCheckbox.Checked = true;
this.albumArtistCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.albumArtistCheckbox.CheckState = System.Windows.Forms.CheckState.Checked;
this.albumArtistCheckbox.FlatAppearance.BorderSize = 0;
this.albumArtistCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.albumArtistCheckbox.Location = new System.Drawing.Point(325, 563); this.albumArtistCheckbox.Location = new System.Drawing.Point(325, 563);
this.albumArtistCheckbox.Name = "albumArtistCheckbox"; this.albumArtistCheckbox.Name = "albumArtistCheckbox";
this.albumArtistCheckbox.Size = new System.Drawing.Size(81, 17); this.albumArtistCheckbox.Size = new System.Drawing.Size(81, 17);
@@ -372,6 +455,8 @@
this.artistCheckbox.AutoSize = true; this.artistCheckbox.AutoSize = true;
this.artistCheckbox.Checked = true; this.artistCheckbox.Checked = true;
this.artistCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.artistCheckbox.CheckState = System.Windows.Forms.CheckState.Checked;
this.artistCheckbox.FlatAppearance.BorderSize = 0;
this.artistCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.artistCheckbox.Location = new System.Drawing.Point(325, 609); this.artistCheckbox.Location = new System.Drawing.Point(325, 609);
this.artistCheckbox.Name = "artistCheckbox"; this.artistCheckbox.Name = "artistCheckbox";
this.artistCheckbox.Size = new System.Drawing.Size(80, 17); this.artistCheckbox.Size = new System.Drawing.Size(80, 17);
@@ -385,6 +470,8 @@
this.trackTitleCheckbox.AutoSize = true; this.trackTitleCheckbox.AutoSize = true;
this.trackTitleCheckbox.Checked = true; this.trackTitleCheckbox.Checked = true;
this.trackTitleCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.trackTitleCheckbox.CheckState = System.Windows.Forms.CheckState.Checked;
this.trackTitleCheckbox.FlatAppearance.BorderSize = 0;
this.trackTitleCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.trackTitleCheckbox.Location = new System.Drawing.Point(325, 586); this.trackTitleCheckbox.Location = new System.Drawing.Point(325, 586);
this.trackTitleCheckbox.Name = "trackTitleCheckbox"; this.trackTitleCheckbox.Name = "trackTitleCheckbox";
this.trackTitleCheckbox.Size = new System.Drawing.Size(77, 17); this.trackTitleCheckbox.Size = new System.Drawing.Size(77, 17);
@@ -398,6 +485,8 @@
this.trackNumberCheckbox.AutoSize = true; this.trackNumberCheckbox.AutoSize = true;
this.trackNumberCheckbox.Checked = true; this.trackNumberCheckbox.Checked = true;
this.trackNumberCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.trackNumberCheckbox.CheckState = System.Windows.Forms.CheckState.Checked;
this.trackNumberCheckbox.FlatAppearance.BorderSize = 0;
this.trackNumberCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.trackNumberCheckbox.Location = new System.Drawing.Point(325, 632); this.trackNumberCheckbox.Location = new System.Drawing.Point(325, 632);
this.trackNumberCheckbox.Name = "trackNumberCheckbox"; this.trackNumberCheckbox.Name = "trackNumberCheckbox";
this.trackNumberCheckbox.Size = new System.Drawing.Size(94, 17); this.trackNumberCheckbox.Size = new System.Drawing.Size(94, 17);
@@ -411,6 +500,8 @@
this.trackTotalCheckbox.AutoSize = true; this.trackTotalCheckbox.AutoSize = true;
this.trackTotalCheckbox.Checked = true; this.trackTotalCheckbox.Checked = true;
this.trackTotalCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.trackTotalCheckbox.CheckState = System.Windows.Forms.CheckState.Checked;
this.trackTotalCheckbox.FlatAppearance.BorderSize = 0;
this.trackTotalCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.trackTotalCheckbox.Location = new System.Drawing.Point(325, 655); this.trackTotalCheckbox.Location = new System.Drawing.Point(325, 655);
this.trackTotalCheckbox.Name = "trackTotalCheckbox"; this.trackTotalCheckbox.Name = "trackTotalCheckbox";
this.trackTotalCheckbox.Size = new System.Drawing.Size(86, 17); this.trackTotalCheckbox.Size = new System.Drawing.Size(86, 17);
@@ -424,6 +515,8 @@
this.discNumberCheckbox.AutoSize = true; this.discNumberCheckbox.AutoSize = true;
this.discNumberCheckbox.Checked = true; this.discNumberCheckbox.Checked = true;
this.discNumberCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.discNumberCheckbox.CheckState = System.Windows.Forms.CheckState.Checked;
this.discNumberCheckbox.FlatAppearance.BorderSize = 0;
this.discNumberCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.discNumberCheckbox.Location = new System.Drawing.Point(325, 676); this.discNumberCheckbox.Location = new System.Drawing.Point(325, 676);
this.discNumberCheckbox.Name = "discNumberCheckbox"; this.discNumberCheckbox.Name = "discNumberCheckbox";
this.discNumberCheckbox.Size = new System.Drawing.Size(87, 17); this.discNumberCheckbox.Size = new System.Drawing.Size(87, 17);
@@ -437,6 +530,8 @@
this.discTotalCheckbox.AutoSize = true; this.discTotalCheckbox.AutoSize = true;
this.discTotalCheckbox.Checked = true; this.discTotalCheckbox.Checked = true;
this.discTotalCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.discTotalCheckbox.CheckState = System.Windows.Forms.CheckState.Checked;
this.discTotalCheckbox.FlatAppearance.BorderSize = 0;
this.discTotalCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.discTotalCheckbox.Location = new System.Drawing.Point(325, 699); this.discTotalCheckbox.Location = new System.Drawing.Point(325, 699);
this.discTotalCheckbox.Name = "discTotalCheckbox"; this.discTotalCheckbox.Name = "discTotalCheckbox";
this.discTotalCheckbox.Size = new System.Drawing.Size(79, 17); this.discTotalCheckbox.Size = new System.Drawing.Size(79, 17);
@@ -450,6 +545,8 @@
this.albumCheckbox.AutoSize = true; this.albumCheckbox.AutoSize = true;
this.albumCheckbox.Checked = true; this.albumCheckbox.Checked = true;
this.albumCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.albumCheckbox.CheckState = System.Windows.Forms.CheckState.Checked;
this.albumCheckbox.FlatAppearance.BorderSize = 0;
this.albumCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.albumCheckbox.Location = new System.Drawing.Point(325, 540); this.albumCheckbox.Location = new System.Drawing.Point(325, 540);
this.albumCheckbox.Name = "albumCheckbox"; this.albumCheckbox.Name = "albumCheckbox";
this.albumCheckbox.Size = new System.Drawing.Size(78, 17); this.albumCheckbox.Size = new System.Drawing.Size(78, 17);
@@ -463,6 +560,8 @@
this.explicitCheckbox.AutoSize = true; this.explicitCheckbox.AutoSize = true;
this.explicitCheckbox.Checked = true; this.explicitCheckbox.Checked = true;
this.explicitCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.explicitCheckbox.CheckState = System.Windows.Forms.CheckState.Checked;
this.explicitCheckbox.FlatAppearance.BorderSize = 0;
this.explicitCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.explicitCheckbox.Location = new System.Drawing.Point(425, 678); this.explicitCheckbox.Location = new System.Drawing.Point(425, 678);
this.explicitCheckbox.Name = "explicitCheckbox"; this.explicitCheckbox.Name = "explicitCheckbox";
this.explicitCheckbox.Size = new System.Drawing.Size(106, 17); this.explicitCheckbox.Size = new System.Drawing.Size(106, 17);
@@ -476,6 +575,8 @@
this.upcCheckbox.AutoSize = true; this.upcCheckbox.AutoSize = true;
this.upcCheckbox.Checked = true; this.upcCheckbox.Checked = true;
this.upcCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.upcCheckbox.CheckState = System.Windows.Forms.CheckState.Checked;
this.upcCheckbox.FlatAppearance.BorderSize = 0;
this.upcCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.upcCheckbox.Location = new System.Drawing.Point(425, 655); this.upcCheckbox.Location = new System.Drawing.Point(425, 655);
this.upcCheckbox.Name = "upcCheckbox"; this.upcCheckbox.Name = "upcCheckbox";
this.upcCheckbox.Size = new System.Drawing.Size(52, 17); this.upcCheckbox.Size = new System.Drawing.Size(52, 17);
@@ -489,6 +590,8 @@
this.isrcCheckbox.AutoSize = true; this.isrcCheckbox.AutoSize = true;
this.isrcCheckbox.Checked = true; this.isrcCheckbox.Checked = true;
this.isrcCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.isrcCheckbox.CheckState = System.Windows.Forms.CheckState.Checked;
this.isrcCheckbox.FlatAppearance.BorderSize = 0;
this.isrcCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.isrcCheckbox.Location = new System.Drawing.Point(425, 632); this.isrcCheckbox.Location = new System.Drawing.Point(425, 632);
this.isrcCheckbox.Name = "isrcCheckbox"; this.isrcCheckbox.Name = "isrcCheckbox";
this.isrcCheckbox.Size = new System.Drawing.Size(51, 17); this.isrcCheckbox.Size = new System.Drawing.Size(51, 17);
@@ -502,6 +605,8 @@
this.copyrightCheckbox.AutoSize = true; this.copyrightCheckbox.AutoSize = true;
this.copyrightCheckbox.Checked = true; this.copyrightCheckbox.Checked = true;
this.copyrightCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.copyrightCheckbox.CheckState = System.Windows.Forms.CheckState.Checked;
this.copyrightCheckbox.FlatAppearance.BorderSize = 0;
this.copyrightCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.copyrightCheckbox.Location = new System.Drawing.Point(425, 609); this.copyrightCheckbox.Location = new System.Drawing.Point(425, 609);
this.copyrightCheckbox.Name = "copyrightCheckbox"; this.copyrightCheckbox.Name = "copyrightCheckbox";
this.copyrightCheckbox.Size = new System.Drawing.Size(70, 17); this.copyrightCheckbox.Size = new System.Drawing.Size(70, 17);
@@ -515,6 +620,8 @@
this.composerCheckbox.AutoSize = true; this.composerCheckbox.AutoSize = true;
this.composerCheckbox.Checked = true; this.composerCheckbox.Checked = true;
this.composerCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.composerCheckbox.CheckState = System.Windows.Forms.CheckState.Checked;
this.composerCheckbox.FlatAppearance.BorderSize = 0;
this.composerCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.composerCheckbox.Location = new System.Drawing.Point(425, 586); this.composerCheckbox.Location = new System.Drawing.Point(425, 586);
this.composerCheckbox.Name = "composerCheckbox"; this.composerCheckbox.Name = "composerCheckbox";
this.composerCheckbox.Size = new System.Drawing.Size(73, 17); this.composerCheckbox.Size = new System.Drawing.Size(73, 17);
@@ -528,6 +635,8 @@
this.genreCheckbox.AutoSize = true; this.genreCheckbox.AutoSize = true;
this.genreCheckbox.Checked = true; this.genreCheckbox.Checked = true;
this.genreCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.genreCheckbox.CheckState = System.Windows.Forms.CheckState.Checked;
this.genreCheckbox.FlatAppearance.BorderSize = 0;
this.genreCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.genreCheckbox.Location = new System.Drawing.Point(425, 563); this.genreCheckbox.Location = new System.Drawing.Point(425, 563);
this.genreCheckbox.Name = "genreCheckbox"; this.genreCheckbox.Name = "genreCheckbox";
this.genreCheckbox.Size = new System.Drawing.Size(55, 17); this.genreCheckbox.Size = new System.Drawing.Size(55, 17);
@@ -541,6 +650,8 @@
this.releaseCheckbox.AutoSize = true; this.releaseCheckbox.AutoSize = true;
this.releaseCheckbox.Checked = true; this.releaseCheckbox.Checked = true;
this.releaseCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.releaseCheckbox.CheckState = System.Windows.Forms.CheckState.Checked;
this.releaseCheckbox.FlatAppearance.BorderSize = 0;
this.releaseCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.releaseCheckbox.Location = new System.Drawing.Point(425, 540); this.releaseCheckbox.Location = new System.Drawing.Point(425, 540);
this.releaseCheckbox.Name = "releaseCheckbox"; this.releaseCheckbox.Name = "releaseCheckbox";
this.releaseCheckbox.Size = new System.Drawing.Size(91, 17); this.releaseCheckbox.Size = new System.Drawing.Size(91, 17);
@@ -552,6 +663,8 @@
// commentCheckbox // commentCheckbox
// //
this.commentCheckbox.AutoSize = true; this.commentCheckbox.AutoSize = true;
this.commentCheckbox.FlatAppearance.BorderSize = 0;
this.commentCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.commentCheckbox.Location = new System.Drawing.Point(533, 699); this.commentCheckbox.Location = new System.Drawing.Point(533, 699);
this.commentCheckbox.Name = "commentCheckbox"; this.commentCheckbox.Name = "commentCheckbox";
this.commentCheckbox.Size = new System.Drawing.Size(70, 17); this.commentCheckbox.Size = new System.Drawing.Size(70, 17);
@@ -562,9 +675,13 @@
// //
// commentTextbox // commentTextbox
// //
this.commentTextbox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.commentTextbox.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.commentTextbox.ForeColor = System.Drawing.Color.White;
this.commentTextbox.Location = new System.Drawing.Point(609, 697); this.commentTextbox.Location = new System.Drawing.Point(609, 697);
this.commentTextbox.Multiline = true;
this.commentTextbox.Name = "commentTextbox"; this.commentTextbox.Name = "commentTextbox";
this.commentTextbox.Size = new System.Drawing.Size(112, 20); this.commentTextbox.Size = new System.Drawing.Size(112, 17);
this.commentTextbox.TabIndex = 79; this.commentTextbox.TabIndex = 79;
this.commentTextbox.TextChanged += new System.EventHandler(this.commentTextbox_TextChanged); this.commentTextbox.TextChanged += new System.EventHandler(this.commentTextbox_TextChanged);
// //
@@ -573,6 +690,8 @@
this.imageCheckbox.AutoSize = true; this.imageCheckbox.AutoSize = true;
this.imageCheckbox.Checked = true; this.imageCheckbox.Checked = true;
this.imageCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.imageCheckbox.CheckState = System.Windows.Forms.CheckState.Checked;
this.imageCheckbox.FlatAppearance.BorderSize = 0;
this.imageCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.imageCheckbox.Location = new System.Drawing.Point(425, 699); this.imageCheckbox.Location = new System.Drawing.Point(425, 699);
this.imageCheckbox.Name = "imageCheckbox"; this.imageCheckbox.Name = "imageCheckbox";
this.imageCheckbox.Size = new System.Drawing.Size(70, 17); this.imageCheckbox.Size = new System.Drawing.Size(70, 17);
@@ -584,6 +703,7 @@
// mp3Checkbox // mp3Checkbox
// //
this.mp3Checkbox.AutoSize = true; this.mp3Checkbox.AutoSize = true;
this.mp3Checkbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.mp3Checkbox.Location = new System.Drawing.Point(243, 61); this.mp3Checkbox.Location = new System.Drawing.Point(243, 61);
this.mp3Checkbox.Name = "mp3Checkbox"; this.mp3Checkbox.Name = "mp3Checkbox";
this.mp3Checkbox.Size = new System.Drawing.Size(69, 17); this.mp3Checkbox.Size = new System.Drawing.Size(69, 17);
@@ -595,6 +715,7 @@
// flacLowCheckbox // flacLowCheckbox
// //
this.flacLowCheckbox.AutoSize = true; this.flacLowCheckbox.AutoSize = true;
this.flacLowCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.flacLowCheckbox.Location = new System.Drawing.Point(318, 61); this.flacLowCheckbox.Location = new System.Drawing.Point(318, 61);
this.flacLowCheckbox.Name = "flacLowCheckbox"; this.flacLowCheckbox.Name = "flacLowCheckbox";
this.flacLowCheckbox.Size = new System.Drawing.Size(93, 17); this.flacLowCheckbox.Size = new System.Drawing.Size(93, 17);
@@ -606,6 +727,7 @@
// flacMidCheckbox // flacMidCheckbox
// //
this.flacMidCheckbox.AutoSize = true; this.flacMidCheckbox.AutoSize = true;
this.flacMidCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.flacMidCheckbox.Location = new System.Drawing.Point(417, 61); this.flacMidCheckbox.Location = new System.Drawing.Point(417, 61);
this.flacMidCheckbox.Name = "flacMidCheckbox"; this.flacMidCheckbox.Name = "flacMidCheckbox";
this.flacMidCheckbox.Size = new System.Drawing.Size(84, 17); this.flacMidCheckbox.Size = new System.Drawing.Size(84, 17);
@@ -619,6 +741,7 @@
this.flacHighCheckbox.AutoSize = true; this.flacHighCheckbox.AutoSize = true;
this.flacHighCheckbox.Checked = true; this.flacHighCheckbox.Checked = true;
this.flacHighCheckbox.CheckState = System.Windows.Forms.CheckState.Checked; this.flacHighCheckbox.CheckState = System.Windows.Forms.CheckState.Checked;
this.flacHighCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.flacHighCheckbox.Location = new System.Drawing.Point(507, 61); this.flacHighCheckbox.Location = new System.Drawing.Point(507, 61);
this.flacHighCheckbox.Name = "flacHighCheckbox"; this.flacHighCheckbox.Name = "flacHighCheckbox";
this.flacHighCheckbox.Size = new System.Drawing.Size(90, 17); this.flacHighCheckbox.Size = new System.Drawing.Size(90, 17);
@@ -630,17 +753,260 @@
// mp3WarnLabel // mp3WarnLabel
// //
this.mp3WarnLabel.AutoSize = true; this.mp3WarnLabel.AutoSize = true;
this.mp3WarnLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.mp3WarnLabel.Location = new System.Drawing.Point(744, 711); this.mp3WarnLabel.Location = new System.Drawing.Point(744, 711);
this.mp3WarnLabel.Name = "mp3WarnLabel"; this.mp3WarnLabel.Name = "mp3WarnLabel";
this.mp3WarnLabel.Size = new System.Drawing.Size(182, 13); this.mp3WarnLabel.Size = new System.Drawing.Size(182, 13);
this.mp3WarnLabel.TabIndex = 85; this.mp3WarnLabel.TabIndex = 85;
this.mp3WarnLabel.Text = "* = Not available on MP3 downloads."; this.mp3WarnLabel.Text = "* = Not available on MP3 downloads.";
// //
// panel1
//
this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.panel1.Location = new System.Drawing.Point(15, 107);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(576, 1);
this.panel1.TabIndex = 86;
//
// exitLabel
//
this.exitLabel.AutoSize = true;
this.exitLabel.BackColor = System.Drawing.Color.Transparent;
this.exitLabel.Font = new System.Drawing.Font("Calibri", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.exitLabel.ForeColor = System.Drawing.Color.White;
this.exitLabel.Location = new System.Drawing.Point(911, 8);
this.exitLabel.Name = "exitLabel";
this.exitLabel.Size = new System.Drawing.Size(20, 23);
this.exitLabel.TabIndex = 87;
this.exitLabel.Text = "X";
this.exitLabel.TextAlign = System.Drawing.ContentAlignment.TopCenter;
this.exitLabel.Click += new System.EventHandler(this.exitLabel_Click);
this.exitLabel.MouseLeave += new System.EventHandler(this.exitLabel_MouseLeave);
this.exitLabel.MouseHover += new System.EventHandler(this.exitLabel_MouseHover);
//
// minimizeLabel
//
this.minimizeLabel.AutoSize = true;
this.minimizeLabel.BackColor = System.Drawing.Color.Transparent;
this.minimizeLabel.Font = new System.Drawing.Font("Calibri", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.minimizeLabel.ForeColor = System.Drawing.Color.White;
this.minimizeLabel.Location = new System.Drawing.Point(886, 4);
this.minimizeLabel.Name = "minimizeLabel";
this.minimizeLabel.Size = new System.Drawing.Size(19, 23);
this.minimizeLabel.TabIndex = 88;
this.minimizeLabel.Text = "_";
this.minimizeLabel.TextAlign = System.Drawing.ContentAlignment.TopCenter;
this.minimizeLabel.Click += new System.EventHandler(this.minimizeLabel_Click);
this.minimizeLabel.MouseLeave += new System.EventHandler(this.minimizeLabel_MouseLeave);
this.minimizeLabel.MouseHover += new System.EventHandler(this.minimizeLabel_MouseHover);
//
// panel2
//
this.panel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.panel2.Location = new System.Drawing.Point(754, 271);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(150, 1);
this.panel2.TabIndex = 87;
//
// panel3
//
this.panel3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.panel3.Location = new System.Drawing.Point(754, 313);
this.panel3.Name = "panel3";
this.panel3.Size = new System.Drawing.Size(150, 1);
this.panel3.TabIndex = 88;
//
// panel4
//
this.panel4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.panel4.Location = new System.Drawing.Point(754, 355);
this.panel4.Name = "panel4";
this.panel4.Size = new System.Drawing.Size(150, 1);
this.panel4.TabIndex = 89;
//
// panel5
//
this.panel5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.panel5.Location = new System.Drawing.Point(754, 397);
this.panel5.Name = "panel5";
this.panel5.Size = new System.Drawing.Size(150, 1);
this.panel5.TabIndex = 89;
//
// panel6
//
this.panel6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.panel6.Location = new System.Drawing.Point(754, 439);
this.panel6.Name = "panel6";
this.panel6.Size = new System.Drawing.Size(150, 1);
this.panel6.TabIndex = 89;
//
// panel7
//
this.panel7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.panel7.Location = new System.Drawing.Point(754, 482);
this.panel7.Name = "panel7";
this.panel7.Size = new System.Drawing.Size(150, 1);
this.panel7.TabIndex = 89;
//
// panel8
//
this.panel8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.panel8.Location = new System.Drawing.Point(609, 716);
this.panel8.Name = "panel8";
this.panel8.Size = new System.Drawing.Size(112, 1);
this.panel8.TabIndex = 90;
//
// streamableCheckbox
//
this.streamableCheckbox.AutoSize = true;
this.streamableCheckbox.Checked = true;
this.streamableCheckbox.CheckState = System.Windows.Forms.CheckState.Checked;
this.streamableCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.streamableCheckbox.Location = new System.Drawing.Point(243, 12);
this.streamableCheckbox.Name = "streamableCheckbox";
this.streamableCheckbox.Size = new System.Drawing.Size(113, 17);
this.streamableCheckbox.TabIndex = 91;
this.streamableCheckbox.Text = "Streamable Check";
this.streamableCheckbox.UseVisualStyleBackColor = true;
this.streamableCheckbox.Visible = false;
//
// secretTextbox
//
this.secretTextbox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.secretTextbox.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.secretTextbox.ForeColor = System.Drawing.Color.White;
this.secretTextbox.Location = new System.Drawing.Point(352, 35);
this.secretTextbox.Multiline = true;
this.secretTextbox.Name = "secretTextbox";
this.secretTextbox.ReadOnly = true;
this.secretTextbox.Size = new System.Drawing.Size(209, 20);
this.secretTextbox.TabIndex = 92;
this.secretTextbox.Visible = false;
//
// displaySecretButton
//
this.displaySecretButton.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(112)))), ((int)(((byte)(239)))));
this.displaySecretButton.FlatAppearance.BorderSize = 0;
this.displaySecretButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.displaySecretButton.ForeColor = System.Drawing.Color.White;
this.displaySecretButton.Location = new System.Drawing.Point(243, 32);
this.displaySecretButton.Name = "displaySecretButton";
this.displaySecretButton.Size = new System.Drawing.Size(103, 23);
this.displaySecretButton.TabIndex = 93;
this.displaySecretButton.Text = "Display appSecret";
this.displaySecretButton.UseVisualStyleBackColor = false;
this.displaySecretButton.Visible = false;
this.displaySecretButton.Click += new System.EventHandler(this.displaySecretButton_Click);
//
// profilePictureBox
//
this.profilePictureBox.Location = new System.Drawing.Point(15, 501);
this.profilePictureBox.Name = "profilePictureBox";
this.profilePictureBox.Size = new System.Drawing.Size(20, 20);
this.profilePictureBox.TabIndex = 94;
this.profilePictureBox.TabStop = false;
//
// logoutLabel
//
this.logoutLabel.AutoSize = true;
this.logoutLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.logoutLabel.Location = new System.Drawing.Point(41, 506);
this.logoutLabel.Name = "logoutLabel";
this.logoutLabel.Size = new System.Drawing.Size(161, 13);
this.logoutLabel.TabIndex = 95;
this.logoutLabel.Text = "Logged in as %name%, Log out?";
this.logoutLabel.Click += new System.EventHandler(this.logoutLabel_Click);
this.logoutLabel.MouseLeave += new System.EventHandler(this.logoutLabel_MouseLeave);
this.logoutLabel.MouseHover += new System.EventHandler(this.logoutLabel_MouseHover);
//
// downloadLabelBG
//
this.downloadLabelBG.DoWork += new System.ComponentModel.DoWorkEventHandler(this.downloadLabelBG_DoWork);
//
// hiddenTextPanel
//
this.hiddenTextPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.hiddenTextPanel.Location = new System.Drawing.Point(352, 55);
this.hiddenTextPanel.Name = "hiddenTextPanel";
this.hiddenTextPanel.Size = new System.Drawing.Size(209, 1);
this.hiddenTextPanel.TabIndex = 87;
this.hiddenTextPanel.Visible = false;
//
// downloadFaveAlbumsBG
//
this.downloadFaveAlbumsBG.DoWork += new System.ComponentModel.DoWorkEventHandler(this.downloadFaveAlbumsBG_DoWork);
//
// downloadFaveArtistsBG
//
this.downloadFaveArtistsBG.DoWork += new System.ComponentModel.DoWorkEventHandler(this.downloadFaveArtistsBG_DoWork);
//
// artSizeSelect
//
this.artSizeSelect.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.artSizeSelect.FormattingEnabled = true;
this.artSizeSelect.Items.AddRange(new object[] {
"max",
"600",
"300",
"150",
"100",
"50"});
this.artSizeSelect.Location = new System.Drawing.Point(634, 538);
this.artSizeSelect.Name = "artSizeSelect";
this.artSizeSelect.Size = new System.Drawing.Size(121, 21);
this.artSizeSelect.TabIndex = 96;
this.artSizeSelect.SelectedIndexChanged += new System.EventHandler(this.artSizeSelect_SelectedIndexChanged);
//
// artSizeLabel
//
this.artSizeLabel.AutoSize = true;
this.artSizeLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.artSizeLabel.Location = new System.Drawing.Point(530, 541);
this.artSizeLabel.Name = "artSizeLabel";
this.artSizeLabel.Size = new System.Drawing.Size(246, 13);
this.artSizeLabel.TabIndex = 97;
this.artSizeLabel.Text = "Embedded Art Size: px";
//
// typeCheckbox
//
this.typeCheckbox.AutoSize = true;
this.typeCheckbox.Checked = true;
this.typeCheckbox.CheckState = System.Windows.Forms.CheckState.Checked;
this.typeCheckbox.FlatAppearance.BorderSize = 0;
this.typeCheckbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.typeCheckbox.Location = new System.Drawing.Point(533, 563);
this.typeCheckbox.Name = "typeCheckbox";
this.typeCheckbox.Size = new System.Drawing.Size(92, 17);
this.typeCheckbox.TabIndex = 98;
this.typeCheckbox.Text = "Release Type";
this.typeCheckbox.UseVisualStyleBackColor = true;
this.typeCheckbox.CheckedChanged += new System.EventHandler(this.typeCheckbox_CheckedChanged);
//
// QobuzDownloaderX // QobuzDownloaderX
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(938, 533); this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.ClientSize = new System.Drawing.Size(938, 733);
this.Controls.Add(this.typeCheckbox);
this.Controls.Add(this.artSizeSelect);
this.Controls.Add(this.artSizeLabel);
this.Controls.Add(this.hiddenTextPanel);
this.Controls.Add(this.logoutLabel);
this.Controls.Add(this.profilePictureBox);
this.Controls.Add(this.displaySecretButton);
this.Controls.Add(this.secretTextbox);
this.Controls.Add(this.streamableCheckbox);
this.Controls.Add(this.panel8);
this.Controls.Add(this.panel7);
this.Controls.Add(this.panel6);
this.Controls.Add(this.panel5);
this.Controls.Add(this.panel4);
this.Controls.Add(this.panel3);
this.Controls.Add(this.panel2);
this.Controls.Add(this.minimizeLabel);
this.Controls.Add(this.exitLabel);
this.Controls.Add(this.panel1);
this.Controls.Add(this.mp3WarnLabel); this.Controls.Add(this.mp3WarnLabel);
this.Controls.Add(this.flacHighCheckbox); this.Controls.Add(this.flacHighCheckbox);
this.Controls.Add(this.flacMidCheckbox); this.Controls.Add(this.flacMidCheckbox);
@@ -682,7 +1048,7 @@
this.Controls.Add(this.label1); this.Controls.Add(this.label1);
this.Controls.Add(this.albumArtPicBox); this.Controls.Add(this.albumArtPicBox);
this.Controls.Add(this.verNumLabel); this.Controls.Add(this.verNumLabel);
this.Controls.Add(this.pictureBox1); this.Controls.Add(this.logoBox);
this.Controls.Add(this.imageURLTextbox); this.Controls.Add(this.imageURLTextbox);
this.Controls.Add(this.downloadButton); this.Controls.Add(this.downloadButton);
this.Controls.Add(this.albumUrl); this.Controls.Add(this.albumUrl);
@@ -690,7 +1056,7 @@
this.Controls.Add(this.output); this.Controls.Add(this.output);
this.Controls.Add(this.selectFolder); this.Controls.Add(this.selectFolder);
this.Controls.Add(this.testURLBox); this.Controls.Add(this.testURLBox);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false; this.MaximizeBox = false;
this.Name = "QobuzDownloaderX"; this.Name = "QobuzDownloaderX";
@@ -698,8 +1064,10 @@
this.Text = "QobuzDownloaderX"; this.Text = "QobuzDownloaderX";
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.QobuzDownloaderX_FormClosed); this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.QobuzDownloaderX_FormClosed);
this.Load += new System.EventHandler(this.Form1_Load); this.Load += new System.EventHandler(this.Form1_Load);
this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.QobuzDownloaderX_MouseMove);
((System.ComponentModel.ISupportInitialize)(this.albumArtPicBox)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.albumArtPicBox)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.logoBox)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.profilePictureBox)).EndInit();
this.ResumeLayout(false); this.ResumeLayout(false);
this.PerformLayout(); this.PerformLayout();
@@ -715,7 +1083,7 @@
private System.Windows.Forms.Button downloadButton; private System.Windows.Forms.Button downloadButton;
private System.Windows.Forms.TextBox albumUrl; private System.Windows.Forms.TextBox albumUrl;
private System.Windows.Forms.TextBox imageURLTextbox; private System.Windows.Forms.TextBox imageURLTextbox;
private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.PictureBox logoBox;
private System.Windows.Forms.Label verNumLabel; private System.Windows.Forms.Label verNumLabel;
private System.Windows.Forms.PictureBox albumArtPicBox; private System.Windows.Forms.PictureBox albumArtPicBox;
private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label1;
@@ -761,6 +1129,28 @@
private System.Windows.Forms.CheckBox flacMidCheckbox; private System.Windows.Forms.CheckBox flacMidCheckbox;
private System.Windows.Forms.CheckBox flacHighCheckbox; private System.Windows.Forms.CheckBox flacHighCheckbox;
private System.Windows.Forms.Label mp3WarnLabel; private System.Windows.Forms.Label mp3WarnLabel;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Label exitLabel;
private System.Windows.Forms.Label minimizeLabel;
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.Panel panel3;
private System.Windows.Forms.Panel panel4;
private System.Windows.Forms.Panel panel5;
private System.Windows.Forms.Panel panel6;
private System.Windows.Forms.Panel panel7;
private System.Windows.Forms.Panel panel8;
private System.Windows.Forms.CheckBox streamableCheckbox;
private System.Windows.Forms.TextBox secretTextbox;
private System.Windows.Forms.Button displaySecretButton;
private System.Windows.Forms.PictureBox profilePictureBox;
private System.Windows.Forms.Label logoutLabel;
private System.ComponentModel.BackgroundWorker downloadLabelBG;
private System.Windows.Forms.Panel hiddenTextPanel;
private System.ComponentModel.BackgroundWorker downloadFaveAlbumsBG;
private System.ComponentModel.BackgroundWorker downloadFaveArtistsBG;
private System.Windows.Forms.ComboBox artSizeSelect;
private System.Windows.Forms.Label artSizeLabel;
private System.Windows.Forms.CheckBox typeCheckbox;
} }
} }

File diff suppressed because it is too large Load Diff

View File

@@ -135,6 +135,15 @@
<metadata name="downloadDiscogBG.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="downloadDiscogBG.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>737, 13</value> <value>737, 13</value>
</metadata> </metadata>
<metadata name="downloadLabelBG.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>901, 13</value>
</metadata>
<metadata name="downloadFaveAlbumsBG.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1065, 13</value>
</metadata>
<metadata name="downloadFaveArtistsBG.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1229, 13</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <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"> <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>

343
QobuzDownloaderX/LoginForm-v2.Designer.cs generated Normal file
View File

@@ -0,0 +1,343 @@
namespace QobuzDownloaderX
{
partial class LoginFrm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LoginFrm));
this.panel1 = new System.Windows.Forms.Panel();
this.disableLogin = new System.Windows.Forms.CheckBox();
this.verNumLabel2 = new System.Windows.Forms.Label();
this.md5Button = new System.Windows.Forms.Button();
this.exitLabel = new System.Windows.Forms.Label();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.userAuthTokenTextbox = new System.Windows.Forms.TextBox();
this.loginButton = new System.Windows.Forms.Button();
this.panel3 = new System.Windows.Forms.Panel();
this.panel4 = new System.Windows.Forms.Panel();
this.emailTextbox = new System.Windows.Forms.TextBox();
this.passwordTextbox = new System.Windows.Forms.TextBox();
this.loginText = new System.Windows.Forms.Label();
this.getSecretBG = new System.ComponentModel.BackgroundWorker();
this.loginBG = new System.ComponentModel.BackgroundWorker();
this.visableCheckbox = new System.Windows.Forms.CheckBox();
this.altLoginLabel = new System.Windows.Forms.Label();
this.altLoginTutLabel = new System.Windows.Forms.Label();
this.userIdTextbox = new System.Windows.Forms.TextBox();
this.altLoginBG = new System.ComponentModel.BackgroundWorker();
this.panel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.SuspendLayout();
//
// panel1
//
this.panel1.BackgroundImage = global::QobuzDownloaderX.Properties.Resources.login_frame;
this.panel1.Controls.Add(this.disableLogin);
this.panel1.Controls.Add(this.verNumLabel2);
this.panel1.Controls.Add(this.md5Button);
this.panel1.Controls.Add(this.exitLabel);
this.panel1.Controls.Add(this.pictureBox1);
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(282, 175);
this.panel1.TabIndex = 0;
this.panel1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseMove);
//
// disableLogin
//
this.disableLogin.AutoSize = true;
this.disableLogin.ForeColor = System.Drawing.Color.Transparent;
this.disableLogin.Location = new System.Drawing.Point(12, 155);
this.disableLogin.Name = "disableLogin";
this.disableLogin.Size = new System.Drawing.Size(90, 17);
this.disableLogin.TabIndex = 34;
this.disableLogin.Text = "Disable Login";
this.disableLogin.UseVisualStyleBackColor = true;
this.disableLogin.Visible = false;
//
// verNumLabel2
//
this.verNumLabel2.BackColor = System.Drawing.Color.Transparent;
this.verNumLabel2.Font = new System.Drawing.Font("Trebuchet MS", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.verNumLabel2.ForeColor = System.Drawing.Color.White;
this.verNumLabel2.Location = new System.Drawing.Point(194, 157);
this.verNumLabel2.Name = "verNumLabel2";
this.verNumLabel2.Size = new System.Drawing.Size(85, 18);
this.verNumLabel2.TabIndex = 32;
this.verNumLabel2.Text = "#.#.#.#";
this.verNumLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.verNumLabel2.MouseMove += new System.Windows.Forms.MouseEventHandler(this.verNumLabel2_MouseMove);
//
// md5Button
//
this.md5Button.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(112)))), ((int)(((byte)(239)))));
this.md5Button.Enabled = false;
this.md5Button.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.md5Button.FlatAppearance.BorderSize = 2;
this.md5Button.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.md5Button.ForeColor = System.Drawing.Color.White;
this.md5Button.Location = new System.Drawing.Point(227, 122);
this.md5Button.Name = "md5Button";
this.md5Button.Size = new System.Drawing.Size(43, 27);
this.md5Button.TabIndex = 9;
this.md5Button.Text = "MD5";
this.md5Button.UseVisualStyleBackColor = false;
this.md5Button.Visible = false;
this.md5Button.Click += new System.EventHandler(this.md5Button_Click);
//
// exitLabel
//
this.exitLabel.AutoSize = true;
this.exitLabel.BackColor = System.Drawing.Color.Transparent;
this.exitLabel.Font = new System.Drawing.Font("Calibri", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.exitLabel.ForeColor = System.Drawing.Color.Black;
this.exitLabel.Location = new System.Drawing.Point(262, 0);
this.exitLabel.Name = "exitLabel";
this.exitLabel.Size = new System.Drawing.Size(20, 23);
this.exitLabel.TabIndex = 9;
this.exitLabel.Text = "X";
this.exitLabel.TextAlign = System.Drawing.ContentAlignment.TopCenter;
this.exitLabel.Click += new System.EventHandler(this.exitLabel_Click);
//
// pictureBox1
//
this.pictureBox1.BackColor = System.Drawing.Color.Transparent;
this.pictureBox1.Image = global::QobuzDownloaderX.Properties.Resources.qbdlx_white;
this.pictureBox1.Location = new System.Drawing.Point(12, 52);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(258, 64);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pictureBox1.TabIndex = 29;
this.pictureBox1.TabStop = false;
this.pictureBox1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseMove);
//
// userAuthTokenTextbox
//
this.userAuthTokenTextbox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.userAuthTokenTextbox.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.userAuthTokenTextbox.Font = new System.Drawing.Font("Trebuchet MS", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.userAuthTokenTextbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.userAuthTokenTextbox.Location = new System.Drawing.Point(12, 255);
this.userAuthTokenTextbox.Multiline = true;
this.userAuthTokenTextbox.Name = "userAuthTokenTextbox";
this.userAuthTokenTextbox.Size = new System.Drawing.Size(237, 23);
this.userAuthTokenTextbox.TabIndex = 35;
this.userAuthTokenTextbox.Text = "user_auth_token";
this.userAuthTokenTextbox.Visible = false;
this.userAuthTokenTextbox.Click += new System.EventHandler(this.userAuthTokenTextbox_Click);
this.userAuthTokenTextbox.Leave += new System.EventHandler(this.userAuthTokenTextbox_Leave);
//
// loginButton
//
this.loginButton.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(112)))), ((int)(((byte)(239)))));
this.loginButton.FlatAppearance.BorderSize = 0;
this.loginButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.loginButton.Font = new System.Drawing.Font("Trebuchet MS", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.loginButton.ForeColor = System.Drawing.Color.White;
this.loginButton.Location = new System.Drawing.Point(12, 293);
this.loginButton.Name = "loginButton";
this.loginButton.Size = new System.Drawing.Size(258, 30);
this.loginButton.TabIndex = 2;
this.loginButton.Text = "LOGIN";
this.loginButton.UseVisualStyleBackColor = false;
this.loginButton.Click += new System.EventHandler(this.loginButton_Click);
//
// panel3
//
this.panel3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.panel3.Location = new System.Drawing.Point(12, 221);
this.panel3.Name = "panel3";
this.panel3.Size = new System.Drawing.Size(258, 1);
this.panel3.TabIndex = 2;
//
// panel4
//
this.panel4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.panel4.Location = new System.Drawing.Point(12, 277);
this.panel4.Name = "panel4";
this.panel4.Size = new System.Drawing.Size(258, 1);
this.panel4.TabIndex = 2;
//
// emailTextbox
//
this.emailTextbox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.emailTextbox.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.emailTextbox.Font = new System.Drawing.Font("Trebuchet MS", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.emailTextbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.emailTextbox.Location = new System.Drawing.Point(12, 199);
this.emailTextbox.Multiline = true;
this.emailTextbox.Name = "emailTextbox";
this.emailTextbox.Size = new System.Drawing.Size(258, 23);
this.emailTextbox.TabIndex = 7;
this.emailTextbox.Text = "Email";
this.emailTextbox.Click += new System.EventHandler(this.emailTextbox_Click);
this.emailTextbox.Leave += new System.EventHandler(this.emailTextbox_Leave);
//
// passwordTextbox
//
this.passwordTextbox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.passwordTextbox.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.passwordTextbox.Font = new System.Drawing.Font("Trebuchet MS", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.passwordTextbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.passwordTextbox.Location = new System.Drawing.Point(12, 255);
this.passwordTextbox.Multiline = true;
this.passwordTextbox.Name = "passwordTextbox";
this.passwordTextbox.Size = new System.Drawing.Size(237, 23);
this.passwordTextbox.TabIndex = 8;
this.passwordTextbox.Text = "Password";
this.passwordTextbox.Click += new System.EventHandler(this.passwordTextbox_Click);
this.passwordTextbox.Leave += new System.EventHandler(this.passwordTextbox_Leave);
//
// loginText
//
this.loginText.Font = new System.Drawing.Font("Trebuchet MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.loginText.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.loginText.Location = new System.Drawing.Point(12, 349);
this.loginText.Name = "loginText";
this.loginText.Size = new System.Drawing.Size(258, 23);
this.loginText.TabIndex = 30;
this.loginText.Text = "Waiting for login...";
this.loginText.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// getSecretBG
//
this.getSecretBG.DoWork += new System.ComponentModel.DoWorkEventHandler(this.getSecretBG_DoWork);
//
// loginBG
//
this.loginBG.DoWork += new System.ComponentModel.DoWorkEventHandler(this.loginBG_DoWork);
//
// visableCheckbox
//
this.visableCheckbox.AutoSize = true;
this.visableCheckbox.Location = new System.Drawing.Point(255, 256);
this.visableCheckbox.Name = "visableCheckbox";
this.visableCheckbox.Size = new System.Drawing.Size(15, 14);
this.visableCheckbox.TabIndex = 31;
this.visableCheckbox.UseVisualStyleBackColor = true;
this.visableCheckbox.CheckedChanged += new System.EventHandler(this.visableCheckbox_CheckedChanged);
//
// altLoginLabel
//
this.altLoginLabel.Font = new System.Drawing.Font("Trebuchet MS", 8.25F);
this.altLoginLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.altLoginLabel.Location = new System.Drawing.Point(12, 326);
this.altLoginLabel.Name = "altLoginLabel";
this.altLoginLabel.Size = new System.Drawing.Size(258, 20);
this.altLoginLabel.TabIndex = 32;
this.altLoginLabel.Text = "Can\'t login? Click here";
this.altLoginLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.altLoginLabel.Click += new System.EventHandler(this.altLoginLabel_Click);
//
// altLoginTutLabel
//
this.altLoginTutLabel.AutoSize = true;
this.altLoginTutLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.altLoginTutLabel.Location = new System.Drawing.Point(77, 180);
this.altLoginTutLabel.Name = "altLoginTutLabel";
this.altLoginTutLabel.Size = new System.Drawing.Size(128, 13);
this.altLoginTutLabel.TabIndex = 33;
this.altLoginTutLabel.Text = "Click Here for Instructions";
this.altLoginTutLabel.Visible = false;
this.altLoginTutLabel.Click += new System.EventHandler(this.altLoginTutLabel_Click);
//
// userIdTextbox
//
this.userIdTextbox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.userIdTextbox.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.userIdTextbox.Font = new System.Drawing.Font("Trebuchet MS", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.userIdTextbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.userIdTextbox.Location = new System.Drawing.Point(12, 199);
this.userIdTextbox.Multiline = true;
this.userIdTextbox.Name = "userIdTextbox";
this.userIdTextbox.Size = new System.Drawing.Size(258, 23);
this.userIdTextbox.TabIndex = 9;
this.userIdTextbox.Text = "user_id";
this.userIdTextbox.Visible = false;
this.userIdTextbox.Click += new System.EventHandler(this.userIdTextbox_Click);
this.userIdTextbox.Leave += new System.EventHandler(this.userIdTextbox_Leave);
//
// altLoginBG
//
this.altLoginBG.DoWork += new System.ComponentModel.DoWorkEventHandler(this.altLoginBG_DoWork);
//
// LoginFrm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.ClientSize = new System.Drawing.Size(282, 392);
this.Controls.Add(this.altLoginTutLabel);
this.Controls.Add(this.altLoginLabel);
this.Controls.Add(this.visableCheckbox);
this.Controls.Add(this.loginText);
this.Controls.Add(this.panel4);
this.Controls.Add(this.panel3);
this.Controls.Add(this.passwordTextbox);
this.Controls.Add(this.emailTextbox);
this.Controls.Add(this.loginButton);
this.Controls.Add(this.panel1);
this.Controls.Add(this.userIdTextbox);
this.Controls.Add(this.userAuthTokenTextbox);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "LoginFrm";
this.Text = "QobuzDLX | Login";
this.Load += new System.EventHandler(this.LoginFrm_Load);
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Button loginButton;
private System.Windows.Forms.Panel panel3;
private System.Windows.Forms.Panel panel4;
private System.Windows.Forms.TextBox emailTextbox;
private System.Windows.Forms.TextBox passwordTextbox;
private System.Windows.Forms.Label exitLabel;
private System.Windows.Forms.Button md5Button;
private System.Windows.Forms.Label loginText;
private System.ComponentModel.BackgroundWorker getSecretBG;
private System.ComponentModel.BackgroundWorker loginBG;
private System.Windows.Forms.Label verNumLabel2;
private System.Windows.Forms.CheckBox visableCheckbox;
private System.Windows.Forms.CheckBox disableLogin;
private System.Windows.Forms.TextBox userAuthTokenTextbox;
private System.Windows.Forms.Label altLoginLabel;
private System.Windows.Forms.Label altLoginTutLabel;
private System.Windows.Forms.TextBox userIdTextbox;
private System.ComponentModel.BackgroundWorker altLoginBG;
}
}

View File

@@ -0,0 +1,809 @@
using QobuzDownloaderX.Properties;
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Text;
using System.IO;
using System.Diagnostics;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Security.Cryptography;
using System.Reflection;
using System.Text.RegularExpressions;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Drawing.Imaging;
using TagLib.Flac;
using QobuzDownloaderX;
namespace QobuzDownloaderX
{
public partial class LoginFrm : Form
{
public LoginFrm()
{
InitializeComponent();
}
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0x2;
[DllImportAttribute("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImportAttribute("user32.dll")]
public static extern bool ReleaseCapture();
private void QobuzDownloaderX_FormClosing(Object sender, FormClosingEventArgs e)
{
Application.Exit();
}
QobuzDownloaderX qbdlx = new QobuzDownloaderX();
public string appSecret { get; set; }
public string appID { get; set; }
public string userID { get; set; }
public string userAuthToken { get; set; }
public string altLoginValue { get; set; }
string errorLog = Path.GetDirectoryName(Application.ExecutablePath) + "\\Latest_Error.log";
string dllCheck = Path.GetDirectoryName(Application.ExecutablePath) + "\\taglib-sharp.dll";
static string GetMd5Hash(MD5 md5Hash, string input)
{
// Convert the input string to a byte array and compute the hash.
byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(input));
// Create a new Stringbuilder to collect the bytes and create a string.
StringBuilder sBuilder = new StringBuilder();
// Loop through each byte of the hashed data and format each one as a hexadecimal string.
for (int i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString("x2"));
}
// Return the hexadecimal string.
return sBuilder.ToString();
}
// Verify a hash against a string.
static bool VerifyMd5Hash(MD5 md5Hash, string input, string hash)
{
// Hash the input.
string hashOfInput = GetMd5Hash(md5Hash, input);
// Create a StringComparer an compare the hashes.
StringComparer comparer = StringComparer.OrdinalIgnoreCase;
if (0 == comparer.Compare(hashOfInput, hash))
{
return true;
}
else
{
return false;
}
}
private void LoginFrm_Load(object sender, EventArgs e)
{
try
{
WebClient versionURLClient = new WebClient();
// Run through TLS to allow secure connection.
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
// Set user-agent to Firefox.
versionURLClient.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0");
string versionHTML = versionURLClient.DownloadString("https://api.github.com/repos/ImAiiR/QobuzDownloaderX/releases/latest");
// Grab latest version number
var versionLog = Regex.Match(versionHTML, "\"tag_name\": \"(?<latestVersion>.*?)\",").Groups;
var version = versionLog[1].Value;
// Grab changelog
var changesLog = Regex.Match(versionHTML, "\"body\": \"(?<changeLog>.*?)\"").Groups;
var changes = changesLog[1].Value;
string currentVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString();
string newVersion = version;
if (currentVersion.Contains(newVersion))
{
// Do nothing. All is good.
}
else
{
DialogResult dialogResult = MessageBox.Show("New version of QBDLX is available!\r\n\r\nInstalled version - " + currentVersion + "\r\nLatest version - "+ newVersion + "\r\n\r\nChangelog Below\r\n==============\r\n" + changes.Replace("\\r\\n", "\r\n") + "\r\n==============\r\n\r\nWould you like to update?", "QBDLX | Update Available", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
{
// If "Yes" is clicked, open GitHub page and close QBDLX.
Process.Start("https://github.com/ImAiiR/QobuzDownloaderX/releases/latest");
Application.Exit();
}
else if (dialogResult == DialogResult.No)
{
// Ignore the update until next open.
}
}
}
catch
{
DialogResult dialogResult = MessageBox.Show("Connection to GitHub to check for an update has failed.\r\nWould you like to check for an update manually?\r\n\r\nYour current version is " + Assembly.GetExecutingAssembly().GetName().Version.ToString(), "QBDLX | GitHub Connection Failed", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
{
// If "Yes" is clicked, open GitHub page and close QBDLX.
Process.Start("https://github.com/ImAiiR/QobuzDownloaderX/releases/latest");
Application.Exit();
}
else if (dialogResult == DialogResult.No)
{
// Ignore the update until next open.
}
}
// Get and display version number.
verNumLabel2.Text = Assembly.GetExecutingAssembly().GetName().Version.ToString();
// Check for taglib-sharp.dll
if (!System.IO.File.Exists(dllCheck))
{
MessageBox.Show("taglib-sharp.dll missing from folder!\r\nPlease Make sure the DLL is in the same folder as QobuzDownloaderX.exe!", "ERROR",
MessageBoxButtons.OK, MessageBoxIcon.Error);
Application.Exit();
}
// Bring to center of screen.
CenterToScreen();
if (Properties.Settings.Default.UpgradeRequired)
{
Properties.Settings.Default.Upgrade();
Properties.Settings.Default.UpgradeRequired = false;
Properties.Settings.Default.Save();
}
// Set saved settings to correct places.
emailTextbox.Text = Settings.Default.savedEmail.ToString();
passwordTextbox.Text = Settings.Default.savedPassword.ToString();
userIdTextbox.Text = Settings.Default.savedUserID.ToString();
userAuthTokenTextbox.Text = Settings.Default.savedUserAuthToken.ToString();
altLoginValue = Settings.Default.savedAltLoginValue.ToString();
// Set alt login mode & label text based on saved value
if (altLoginValue == "0")
{
// Change alt login label text
altLoginLabel.Text = "Can't login? Click here";
// Hide alt login methods
altLoginTutLabel.Visible = false;
userIdTextbox.Visible = false;
userAuthTokenTextbox.Visible = false;
// Unhide standard login methods
emailTextbox.Visible = true;
passwordTextbox.Visible = true;
}
else if (altLoginValue == "1")
{
// Change alt login label text
altLoginLabel.Text = "Login normally? Click here";
// Hide standard login methods
emailTextbox.Visible = false;
passwordTextbox.Visible = false;
// Unhide alt login methods
altLoginTutLabel.Visible = true;
userIdTextbox.Visible = true;
userAuthTokenTextbox.Visible = true;
}
// Set values for email textbox.
if (emailTextbox.Text != "Email")
{
emailTextbox.ForeColor = Color.FromArgb(186, 186, 186);
}
if (emailTextbox.Text == null | emailTextbox.Text == "")
{
emailTextbox.ForeColor = Color.FromArgb(88, 92, 102);
emailTextbox.Text = "Email";
}
// Set values for user_id textbox.
if (userIdTextbox.Text != "user_id")
{
userIdTextbox.ForeColor = Color.FromArgb(186, 186, 186);
}
if (userIdTextbox.Text == null | userIdTextbox.Text == "")
{
userIdTextbox.ForeColor = Color.FromArgb(88, 92, 102);
userIdTextbox.Text = "user_id";
}
// Set values for password textbox.
if (passwordTextbox.Text != "Password")
{
passwordTextbox.PasswordChar = '*';
passwordTextbox.UseSystemPasswordChar = false;
passwordTextbox.ForeColor = Color.FromArgb(186, 186, 186);
}
if (passwordTextbox.Text == null | passwordTextbox.Text == "")
{
passwordTextbox.ForeColor = Color.FromArgb(88, 92, 102);
passwordTextbox.UseSystemPasswordChar = true;
passwordTextbox.Text = "Password";
}
// Set values for user_auth_token textbox.
if (userAuthTokenTextbox.Text != "user_auth_token")
{
userAuthTokenTextbox.PasswordChar = '*';
userAuthTokenTextbox.UseSystemPasswordChar = false;
userAuthTokenTextbox.ForeColor = Color.FromArgb(186, 186, 186);
}
if (userAuthTokenTextbox.Text == null | userAuthTokenTextbox.Text == "")
{
userAuthTokenTextbox.ForeColor = Color.FromArgb(88, 92, 102);
userAuthTokenTextbox.UseSystemPasswordChar = true;
userAuthTokenTextbox.Text = "user_auth_token";
}
}
private void loginButton_Click(object sender, EventArgs e)
{
// Hide alt login label until job is finished or failed
altLoginLabel.Visible = false;
// If logging in normally (email & password)
if (altLoginValue == "0")
{
#region Normal Login
if (emailTextbox.Text == "Email" | emailTextbox.Text == null | emailTextbox.Text == "")
{
// If there's no email typed in.
loginText.Invoke(new Action(() => loginText.Text = "No email, please input email first."));
return;
}
if (passwordTextbox.Text == "Password")
{
// If there's no password typed in.
loginText.Invoke(new Action(() => loginText.Text = "No password typed, please input password first."));
return;
}
string plainTextPW = passwordTextbox.Text;
var passMD5CheckLog = Regex.Match(plainTextPW, "(?<md5Test>^[0-9a-f]{32}$)").Groups;
var passMD5Check = passMD5CheckLog[1].Value;
if (passMD5Check == null | passMD5Check == "")
{
// Generate the MD5 hash using the string created above.
using (MD5 md5PassHash = MD5.Create())
{
string hashedPW = GetMd5Hash(md5PassHash, plainTextPW);
if (VerifyMd5Hash(md5PassHash, plainTextPW, hashedPW))
{
// If the MD5 hash is verified, proceed to get the streaming URL.
passwordTextbox.Text = hashedPW;
}
else
{
// If the hash can't be verified.
loginText.Invoke(new Action(() => loginText.Text = "Hashing failed. Please retry."));
return;
}
}
}
// Save info locally to be used on next launch.
Settings.Default.savedEmail = emailTextbox.Text;
Settings.Default.savedPassword = passwordTextbox.Text;
Settings.Default.savedAltLoginValue = altLoginValue;
Settings.Default.Save();
loginText.Text = "Getting App ID and Secret...";
loginButton.Enabled = false;
getSecretBG.RunWorkerAsync();
#endregion
}
// If logging in the alternate way (user_id & user_auth_token)
else
{
#region Alt Login
if (userIdTextbox.Text == "user_id" | userIdTextbox.Text == null | userIdTextbox.Text == "")
{
// If there's no email typed in.
loginText.Invoke(new Action(() => loginText.Text = "No user_id, please input user_id first."));
return;
}
if (userAuthTokenTextbox.Text == "user_auth_token")
{
// If there's no password typed in.
loginText.Invoke(new Action(() => loginText.Text = "No user_auth_token typed, please input user_auth_token first."));
return;
}
// Set user_id & user_auth_token to login.
userID = userIdTextbox.Text;
userAuthToken = userAuthTokenTextbox.Text;
// Save info locally to be used on next launch.
Settings.Default.savedUserID = userIdTextbox.Text;
Settings.Default.savedUserAuthToken = userAuthTokenTextbox.Text;
Settings.Default.savedAltLoginValue = altLoginValue;
Settings.Default.Save();
loginText.Text = "Getting App ID and Secret...";
loginButton.Enabled = false;
getSecretBG.RunWorkerAsync();
#endregion
}
}
private void getSecretBG_DoWork(object sender, DoWorkEventArgs e)
{
getSecretBG.WorkerSupportsCancellation = true;
WebClient bundleURLClient = new WebClient();
string bundleHTML = bundleURLClient.DownloadString("https://play.qobuz.com/login");
// Grab link to bundle.js
var bundleLog = Regex.Match(bundleHTML, "<script src=\"(?<bundleJS>\\/resources\\/\\d+\\.\\d+\\.\\d+-[a-z]\\d{3}\\/bundle\\.js)").Groups;
var bundleSuffix = bundleLog[1].Value;
var bundleURL = "https://play.qobuz.com" + bundleSuffix;
WebRequest bundleWR = WebRequest.Create(bundleURL);
try
{
WebResponse bundleWS = bundleWR.GetResponse();
StreamReader bundleSR = new StreamReader(bundleWS.GetResponseStream());
string getBundleRequest = bundleSR.ReadToEnd();
string text = getBundleRequest;
// Grab app_id from bundle.js
var bundleLog0 = Regex.Match(getBundleRequest, "\\):\\(n.qobuzapi={app_id:\"(?<appID>.*?)\",app_secret:").Groups;
appID = bundleLog0[1].Value;
// Grab "info" and "extras"
var bundleLog1 = Regex.Match(getBundleRequest, "{offset:\"(?<notUsed>.*?)\",name:\"Europe\\/Berlin\",info:\"(?<info>.*?)\",extras:\"(?<extras>.*?)\"}").Groups;
var bundleInfo = bundleLog1[2].Value;
var bundleExtras = bundleLog1[3].Value;
// Grab "seed"
var bundleLog2 = Regex.Match(getBundleRequest, "window.utimezone.paris\\):h.initialSeed\\(\"(?<seed>.*?)\",window.utimezone.berlin\\)").Groups;
var bundleSeed = bundleLog2[1].Value;
// Step 1 of getting the app_secret
string B64step1 = bundleSeed + bundleInfo + bundleExtras;
B64step1 = B64step1.Remove(B64step1.Length - 44, 44);
byte[] step1Bytes = Encoding.UTF8.GetBytes(B64step1);
B64step1 = Convert.ToBase64String(step1Bytes);
// Step 2 of getting the app_secret
byte[] step2Data = Convert.FromBase64String(B64step1);
string B64step2 = Encoding.UTF8.GetString(step2Data);
// Step 3 of getting the app_secret
byte[] step3Data = Convert.FromBase64String(B64step2);
// Set app_secret
appSecret = Encoding.UTF8.GetString(step3Data);
loginText.Invoke(new Action(() => loginText.Text = "ID and Secret Obtained! Logging in.."));
System.Threading.Thread.Sleep(1000);
}
catch (Exception bundleEx)
{
// If obtaining bundle.js info fails, show error info.
string bundleError = bundleEx.ToString();
loginText.Invoke(new Action(() => loginText.Text = "Couldn't obtain app info. Error Log saved"));
System.IO.File.WriteAllText(errorLog, bundleError);
bundleWR.Abort();
loginButton.Invoke(new Action(() => loginButton.Enabled = true));
altLoginLabel.Invoke(new Action(() => altLoginLabel.Visible = true));
return;
}
bundleWR.Abort();
if (altLoginValue == "0")
{
loginBG.RunWorkerAsync();
}
else if (altLoginValue == "1")
{
altLoginBG.RunWorkerAsync();
}
getSecretBG.CancelAsync();
}
private void loginBG_DoWork(object sender, DoWorkEventArgs e)
{
loginBG.WorkerSupportsCancellation = true;
// Create WebRequest to login using login information from input textboxes.
WebRequest wr = WebRequest.Create("https://www.qobuz.com/api.json/0.2/user/login?email=" + emailTextbox.Text + "&password=" + passwordTextbox.Text + "&app_id=" + appID);
try
{
// Grab info to be displayed and used.
WebResponse ws = wr.GetResponse();
StreamReader sr = new StreamReader(ws.GetResponseStream());
string loginRequest = sr.ReadToEnd();
string text = loginRequest;
// Grab user_id
var userIDLog = Regex.Match(loginRequest, "{\"user\":{\"id\":(?<userID>.*?),\"publicId").Groups;
var userID = userIDLog[1].Value;
qbdlx.userID = userID;
// Grab display name
var displayNameLog = Regex.Match(loginRequest, "\"display_name\":\"(?<displayName>.*?)\",\\\"").Groups;
var displayName = displayNameLog[1].Value;
qbdlx.displayName = displayName;
// Grab account type
var accountTypeLog = Regex.Match(loginRequest, "short_label\":\"(?<accountType>\\w+)").Groups;
var accountType = accountTypeLog[1].Value;
qbdlx.accountType = accountType;
// Grab authentication token
var userAuth = Regex.Match(loginRequest, "\"user_auth_token\":\"(?<userAuth>.*?)\\\"}").Groups;
var userAuthToken = userAuth[1].Value;
// Grab profile image
var profilePic = Regex.Match(loginRequest, "avatar\\\":\\\"(?<profilePic>.*?)\",").Groups;
var profilePicURL = profilePic[1].Value.Replace(@"\", null).Replace("s=50", "s=20");
qbdlx.profilePic = profilePicURL;
// Set user_auth_token
qbdlx.userAuth = userAuthToken;
loginText.Invoke(new Action(() => loginText.Text = "Login Successful! Launching QBDLX..."));
}
catch (Exception ex)
{
// If connection to API fails, show error info.
string error = ex.ToString();
loginText.Invoke(new Action(() => loginText.Text = "Login Failed. Error Log saved"));
System.IO.File.WriteAllText(errorLog, error);
wr.Abort();
loginButton.Invoke(new Action(() => loginButton.Enabled = true));
altLoginLabel.Invoke(new Action(() => altLoginLabel.Visible = true));
return;
}
wr.Abort();
finishLogin(sender, e);
loginBG.CancelAsync();
}
private void altLoginBG_DoWork(object sender, DoWorkEventArgs e)
{
altLoginBG.WorkerSupportsCancellation = true;
// Create WebRequest to login using login information from input textboxes.
WebRequest wr = WebRequest.Create("http://www.qobuz.com/api.json/0.2/user/get?user_id=" + userID + "&user_auth_token=" + userAuthToken + "&app_id=" + appID);
try
{
// Grab info to be displayed and used.
WebResponse ws = wr.GetResponse();
StreamReader sr = new StreamReader(ws.GetResponseStream());
string loginRequest = sr.ReadToEnd();
string text = loginRequest;
// Use user_id that was used by the user
qbdlx.userID = userID;
// Use user_auth_token that was used by the user
qbdlx.userAuth = userAuthToken;
// Grab display name
var displayNameLog = Regex.Match(loginRequest, "\"display_name\":\"(?<displayName>.*?)\",\\\"").Groups;
var displayName = displayNameLog[1].Value;
qbdlx.displayName = displayName;
// Grab account type
var accountTypeLog = Regex.Match(loginRequest, "short_label\":\"(?<accountType>\\w+)").Groups;
var accountType = accountTypeLog[1].Value;
qbdlx.accountType = accountType;
// Grab profile image
var profilePic = Regex.Match(loginRequest, "avatar\\\":\\\"(?<profilePic>.*?)\\\"}").Groups;
var profilePicURL = profilePic[1].Value.Replace(@"\", null).Replace("s=50", "s=20");
qbdlx.profilePic = profilePicURL;
loginText.Invoke(new Action(() => loginText.Text = "Login Successful! Launching QBDLX..."));
}
catch (Exception ex)
{
// If connection to API fails, show error info.
string error = ex.ToString();
loginText.Invoke(new Action(() => loginText.Text = "Login Failed. Error Log saved"));
System.IO.File.WriteAllText(errorLog, error);
wr.Abort();
loginButton.Invoke(new Action(() => loginButton.Enabled = true));
altLoginLabel.Invoke(new Action(() => altLoginLabel.Visible = true));
return;
}
wr.Abort();
finishLogin(sender, e);
altLoginBG.CancelAsync();
}
private void finishLogin(object sender, EventArgs e)
{
loginButton.Invoke(new Action(() => loginButton.Enabled = true));
altLoginLabel.Invoke(new Action(() => altLoginLabel.Visible = true));
// If info is legit, go to the main form.
qbdlx.appid = appID;
qbdlx.eMail = emailTextbox.Text;
qbdlx.password = passwordTextbox.Text;
qbdlx.appSecret = appSecret;
if (disableLogin.Checked != true)
{
this.Invoke(new Action(() => this.Hide()));
Application.Run(qbdlx);
}
}
#region Textbox Focous & Text Change
#region app_id Textbox (Removed)
//private void appIdTextbox_Click(object sender, EventArgs e)
//{
// if (appidTextbox.Text == "app_id")
// {
// appidTextbox.Text = null;
// appidTextbox.ForeColor = Color.FromArgb(186, 186, 186);
// }
//}
//private void panel2_Click(object sender, EventArgs e)
//{
// appidTextbox.Focus();
// if (appidTextbox.Text == "app_id")
// {
// appidTextbox.Text = null;
// appidTextbox.ForeColor = Color.FromArgb(186, 186, 186);
// }
//}
//private void appIdTextbox_Leave(object sender, EventArgs e)
//{
// if (appidTextbox.Text == null | appidTextbox.Text == "")
// {
// appidTextbox.ForeColor = Color.FromArgb(88, 92, 102);
// appidTextbox.Text = "app_id";
// }
//}
#endregion
#region Email Textbox
private void emailTextbox_Click(object sender, EventArgs e)
{
if (emailTextbox.Text == "Email")
{
emailTextbox.Text = null;
emailTextbox.ForeColor = Color.FromArgb(186, 186, 186);
}
}
private void emailTextbox_Leave(object sender, EventArgs e)
{
if (emailTextbox.Text == null | emailTextbox.Text == "")
{
emailTextbox.ForeColor = Color.FromArgb(88, 92, 102);
emailTextbox.Text = "Email";
}
}
#endregion
#region Password Textbox
private void passwordTextbox_Click(object sender, EventArgs e)
{
if (passwordTextbox.Text == "Password")
{
passwordTextbox.Text = null;
passwordTextbox.PasswordChar = '*';
passwordTextbox.UseSystemPasswordChar = false;
passwordTextbox.ForeColor = Color.FromArgb(186, 186, 186);
}
}
private void passwordTextbox_Leave(object sender, EventArgs e)
{
if (passwordTextbox.Text == null | passwordTextbox.Text == "")
{
passwordTextbox.ForeColor = Color.FromArgb(88, 92, 102);
passwordTextbox.UseSystemPasswordChar = true;
passwordTextbox.Text = "Password";
}
}
#endregion
#region user_id Textbox
private void userIdTextbox_Click(object sender, EventArgs e)
{
if (userIdTextbox.Text == "user_id")
{
userIdTextbox.Text = null;
userIdTextbox.ForeColor = Color.FromArgb(186, 186, 186);
}
}
private void userIdTextbox_Leave(object sender, EventArgs e)
{
if (userIdTextbox.Text == null | userIdTextbox.Text == "")
{
userIdTextbox.ForeColor = Color.FromArgb(88, 92, 102);
userIdTextbox.Text = "user_id";
}
}
#endregion
#region user_auth_token Textbox
private void userAuthTokenTextbox_Click(object sender, EventArgs e)
{
if (userAuthTokenTextbox.Text == "user_auth_token")
{
userAuthTokenTextbox.Text = null;
userAuthTokenTextbox.PasswordChar = '*';
userAuthTokenTextbox.UseSystemPasswordChar = false;
userAuthTokenTextbox.ForeColor = Color.FromArgb(186, 186, 186);
}
}
private void userAuthTokenTextbox_Leave(object sender, EventArgs e)
{
if (userAuthTokenTextbox.Text == null | userAuthTokenTextbox.Text == "")
{
userAuthTokenTextbox.ForeColor = Color.FromArgb(88, 92, 102);
userAuthTokenTextbox.UseSystemPasswordChar = true;
userAuthTokenTextbox.Text = "user_auth_token";
}
}
#endregion
#endregion
private void visableCheckbox_CheckedChanged(object sender, EventArgs e)
{
if (visableCheckbox.Checked == true)
{
passwordTextbox.UseSystemPasswordChar = true;
userAuthTokenTextbox.UseSystemPasswordChar = true;
}
else
{
passwordTextbox.UseSystemPasswordChar = false;
userAuthTokenTextbox.UseSystemPasswordChar = false;
}
}
private void exitLabel_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void panel1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
}
private void verNumLabel2_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
}
private void md5Button_Click(object sender, EventArgs e)
{
//if (passwordTextbox.Text == "Password")
//{
// // If there's no password typed in.
// loginText.Invoke(new Action(() => loginText.Text = "No password typed, please input password first."));
// return;
//}
//string plainTextPW = passwordTextbox.Text;
//// Generate the MD5 hash using the string created above.
//using (MD5 md5PassHash = MD5.Create())
//{
// string hashedPW = GetMd5Hash(md5PassHash, plainTextPW);
// if (VerifyMd5Hash(md5PassHash, plainTextPW, hashedPW))
// {
// // If the MD5 hash is verified, proceed to get the streaming URL.
// passwordTextbox.Text = hashedPW;
// }
// else
// {
// // If the hash can't be verified.
// loginText.Invoke(new Action(() => loginText.Text = "Hashing failed. Please retry."));
// return;
// }
//}
}
private void altLoginLabel_Click(object sender, EventArgs e)
{
if (altLoginLabel.Text == "Can't login? Click here")
{
// Set value if alt login is needed.
altLoginValue = "1";
// Change alt login label text
altLoginLabel.Text = "Login normally? Click here";
// Hide standard login methods
emailTextbox.Visible = false;
passwordTextbox.Visible = false;
// Unhide alt login methods
altLoginTutLabel.Visible = true;
userIdTextbox.Visible = true;
userAuthTokenTextbox.Visible = true;
}
else
{
// Set value if alt login is not needed.
altLoginValue = "0";
// Change alt login label text
altLoginLabel.Text = "Can't login? Click here";
// Hide alt login methods
altLoginTutLabel.Visible = false;
userIdTextbox.Visible = false;
userAuthTokenTextbox.Visible = false;
// Unhide standard login methods
emailTextbox.Visible = true;
passwordTextbox.Visible = true;
}
}
private void altLoginTutLabel_Click(object sender, EventArgs e)
{
Process.Start("https://github.com/ImAiiR/QobuzDownloaderX/wiki/Logging-In-(The-Alternate-Way)");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -16,7 +16,7 @@ namespace QobuzDownloaderX
{ {
Application.EnableVisualStyles(); Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false); Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new LoginForm()); Application.Run(new LoginFrm());
} }
} }
} }

View File

@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers // You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.9.8.7")] [assembly: AssemblyVersion("0.9.9.16")]
[assembly: AssemblyFileVersion("0.9.8.7")] [assembly: AssemblyFileVersion("0.9.9.16")]

View File

@@ -60,6 +60,16 @@ namespace QobuzDownloaderX.Properties {
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap login_frame {
get {
object obj = ResourceManager.GetObject("login_frame", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>
@@ -79,5 +89,15 @@ namespace QobuzDownloaderX.Properties {
return ((System.Drawing.Icon)(obj)); return ((System.Drawing.Icon)(obj));
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap qbdlx_white {
get {
object obj = ResourceManager.GetObject("qbdlx_white", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
} }
} }

View File

@@ -118,10 +118,16 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="login_frame" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\login-frame.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="qbdlx" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="qbdlx" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\qbdlx.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\qbdlx.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="qbdlx_icon" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="qbdlx_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\qbdlx_icon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\qbdlx_icon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="qbdlx_white" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\qbdlx-white.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root> </root>

View File

@@ -382,5 +382,65 @@ namespace QobuzDownloaderX.Properties {
this["audioType"] = value; this["audioType"] = value;
} }
} }
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string savedUserID {
get {
return ((string)(this["savedUserID"]));
}
set {
this["savedUserID"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string savedUserAuthToken {
get {
return ((string)(this["savedUserAuthToken"]));
}
set {
this["savedUserAuthToken"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public string savedAltLoginValue {
get {
return ((string)(this["savedAltLoginValue"]));
}
set {
this["savedAltLoginValue"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("1")]
public int savedArtSize {
get {
return ((int)(this["savedArtSize"]));
}
set {
this["savedArtSize"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool typeTag {
get {
return ((bool)(this["typeTag"]));
}
set {
this["typeTag"] = value;
}
}
} }
} }

View File

@@ -92,5 +92,20 @@
<Setting Name="audioType" Type="System.String" Scope="User"> <Setting Name="audioType" Type="System.String" Scope="User">
<Value Profile="(Default)">.flac</Value> <Value Profile="(Default)">.flac</Value>
</Setting> </Setting>
<Setting Name="savedUserID" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="savedUserAuthToken" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="savedAltLoginValue" Type="System.String" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="savedArtSize" Type="System.Int32" Scope="User">
<Value Profile="(Default)">1</Value>
</Setting>
<Setting Name="typeTag" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
</Settings> </Settings>
</SettingsFile> </SettingsFile>

View File

@@ -79,6 +79,12 @@
<Compile Include="Form1.Designer.cs"> <Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon> <DependentUpon>Form1.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="LoginForm-v2.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="LoginForm-v2.Designer.cs">
<DependentUpon>LoginForm-v2.cs</DependentUpon>
</Compile>
<Compile Include="searchForm.cs"> <Compile Include="searchForm.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
@@ -97,6 +103,9 @@
<EmbeddedResource Include="Form1.resx"> <EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon> <DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="LoginForm-v2.resx">
<DependentUpon>LoginForm-v2.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="searchForm.resx"> <EmbeddedResource Include="searchForm.resx">
<DependentUpon>searchForm.cs</DependentUpon> <DependentUpon>searchForm.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
@@ -148,6 +157,12 @@
<Install>false</Install> <Install>false</Install>
</BootstrapperPackage> </BootstrapperPackage>
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Include="Resources\login-frame.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\qbdlx-white.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -60,7 +60,7 @@ namespace QobuzDownloaderX
string searchRequest = searchsr.ReadToEnd(); string searchRequest = searchsr.ReadToEnd();
// Remove backslashes from the stream URL to have a proper URL. // Remove backslashes from the stream URL to have a proper URL.
string resultpattern = "\"maximum_sampling_rate\":(?<sampleRate>.*?),(?:.*?)\",\"id\":\"(?<albumID>.*?)\",\"maximum_bit_depth\":(?<bitDepth>.*?),(?:.*?)\"title\":\"(?<albumTitle>.*?)\",\"(?:.*?)\"artist\":(?:.*?)\"name\":\"(?<albumArtist>.*?)\""; string resultpattern = "\"maximum_bit_depth\":(?<bitDepth>.*?),(?:.*?),\"artist\":(?:.*?)\"name\":\"(?<albumArtist>.*?)\",(?:.*?)\"title\":\"(?<albumTitle>.*?)\"(?:.*?),\"maximum_channel_count\":(?:.*?),\"id\":\"(?<albumID>.*?)\",\"maximum_sampling_rate\":(?<sampleRate>.*?),\"";
string resultinput = searchRequest; string resultinput = searchRequest;
RegexOptions resultoptions = RegexOptions.Multiline; RegexOptions resultoptions = RegexOptions.Multiline;

View File

@@ -1 +1,37 @@
# QobuzDownloaderX <p style="align:center;">
<a href="https://github.com/ImAiiR/QobuzDownloaderX">
<img src="https://github.com/ImAiiR/QobuzDownloaderX/raw/master/QobuzDownloaderX/Resources/qbdlx.png?raw=true" />
</a>
</p>
<center><a href="https://www.buymeacoffee.com/ImAiiR" target="_blank"><img src="https://i.imgur.com/H2hMOg6.png" alt="Buy Me A Coffee" style="height: 51px !important;width: 217px !important;" ></a></center>
Inspired by Qo-DL by <a href="https://github.com/Sorrow446">Sorrow</a> & <a href="https://github.com/DashLt">Dash</a>
<p style="align:center;">
<a href="https://github.com/ImAiiR/QobuzDownloaderX/blob/master/-assets/QBDLX2.png?raw=true">
<img src="https://github.com/ImAiiR/QobuzDownloaderX/blob/master/-assets/QBDLX2.png?raw=true" />
</a>
</p>
# About
QobuzDownloaderX is a program for downloading music streams from the streaming platform <a href="https://qobuz.com/">Qobuz</a>.
You can not download anything with a free account.
# Disclaimer & Legal
I will not be responsible for how you use QBDLX (QobuzDownloaderX).
This program DOES NOT include...
- Code to bypass Qobuz's region restrictions.
- Qobuz app IDs or secrets.
QBDLX does not publish any of Qobuz's private secrets or app IDs. It contains regular expressions and other code to dynamically grab them from Qobuz's web player's *publicly available* JavaScript, which is not rehosted, but grabbed client side. Scraping public data is not a violation of the Computer Fraud and Abuse Act (USA) according to the Ninth Court of Appeals, [case # 17-16783](http://cdn.ca9.uscourts.gov/datastore/opinions/2019/09/09/17-16783.pdf) (see page 29).
QBDLX uses the Qobuz API, but is not endorsed, certified or otherwise approved in any way by Qobuz.
Qobuz brand and name is the registered trademark of its respective owner.
QBDLX has no partnership, sponsorship or endorsement with Qobuz.
By using QBDLX, you agree to the following: http://static.qobuz.com/apps/api/QobuzAPI-TermsofUse.pdf