Compare commits

...

10 Commits

Author SHA1 Message Date
AiiR
048c577b65 Update AssemblyInfo.cs 2021-03-03 12:23:50 -05:00
AiiR
ff3496f24c
Merge pull request #81 from jraiver/master
Update LoginForm-v2.cs (Fixed login / authorization)
2021-03-03 12:10:18 -05:00
Nikita Kuryshev
59d2d0de95 Update LoginForm-v2.cs
Fix authorization
2021-03-03 18:06:42 +03:00
AiiR
d39800c6c5 0.9.9.22
- Added the ability to download Playlists (finally). New feature, probably broken in some ways, so let me know if it is by creating issues.
- Reorganized tag options and made the tag options section smaller.
- Added debug option for listing / using custom format IDs.
- Added option for filename template. Choices are `00 Trackname` or `00 - Trackname`.
2020-08-24 14:13:13 -04:00
AiiR
be43bdde0a
Update README.md 2020-08-23 18:45:09 -04:00
AiiR
e548bfe90b 0.9.9.21
- Added another debug option for Re-enabling disabled buttons and checkboxes, for if anything goes wrong and they don't get re-enabled automatically.
- Added a Hide button in debug options
- Added a way for users to change the max length for filenames. There's a limit at 110 to avoid errors. If you still get errors with 110, just lower the value to download, but still create an issue with the error, and provide a link to the release, so I can check what a new limit should be.
- Added a line of code before grabbing tags to set composer to `null`, as sometimes QBDLX would keep the old value from another release and use it for another.
2020-08-15 00:43:54 -04:00
AiiR
bcc81b8462 0.9.9.20
- Fixed login
2020-08-10 15:25:26 -04:00
AiiR
ba8b9e3eec 0.9.9.19
0.9.9.19
2020-07-24 21:12:12 -04:00
AiiR
1ead0ed343 Track IDs regex
Changed regex for track IDs
2020-07-22 21:03:41 -04:00
AiiR
3962e0f682 0.9.9.18
0.9.9.18
2020-07-20 17:17:03 -04:00
9 changed files with 1210 additions and 126 deletions

View File

@ -115,6 +115,16 @@
<setting name="typeTag" serializeAs="String">
<value>True</value>
</setting>
<setting name="savedMaxLength" serializeAs="String">
<value>36</value>
</setting>
<setting name="savedFilenameTemplate" serializeAs="String">
<value>1</value>
</setting>
<setting name="savedFilenameTemplateString" serializeAs="String">
<value>
</value>
</setting>
</QobuzDownloaderX.Properties.Settings>
</userSettings>
</configuration>

View File

@ -107,6 +107,18 @@
this.artSizeLabel = new System.Windows.Forms.Label();
this.typeCheckbox = new System.Windows.Forms.CheckBox();
this.aboutLabel = new System.Windows.Forms.Label();
this.enableBtnsButton = new System.Windows.Forms.Button();
this.hideDebugButton = new System.Windows.Forms.Button();
this.maxLengthLabel = new System.Windows.Forms.Label();
this.panel9 = new System.Windows.Forms.Panel();
this.maxLengthTextbox = new System.Windows.Forms.TextBox();
this.maxLengthWarnLabel = new System.Windows.Forms.Label();
this.customFormatPanel = new System.Windows.Forms.Panel();
this.customFormatIDTextbox = new System.Windows.Forms.TextBox();
this.formatIDLabel = new System.Windows.Forms.Label();
this.filenameTempSelect = new System.Windows.Forms.ComboBox();
this.label7 = new System.Windows.Forms.Label();
this.downloadPlaylistBG = new System.ComponentModel.BackgroundWorker();
((System.ComponentModel.ISupportInitialize)(this.albumArtPicBox)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.logoBox)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.profilePictureBox)).BeginInit();
@ -443,7 +455,7 @@
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(12, 540);
this.albumArtistCheckbox.Name = "albumArtistCheckbox";
this.albumArtistCheckbox.Size = new System.Drawing.Size(81, 17);
this.albumArtistCheckbox.TabIndex = 62;
@ -458,7 +470,7 @@
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(183, 540);
this.artistCheckbox.Name = "artistCheckbox";
this.artistCheckbox.Size = new System.Drawing.Size(80, 17);
this.artistCheckbox.TabIndex = 63;
@ -473,7 +485,7 @@
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(269, 540);
this.trackTitleCheckbox.Name = "trackTitleCheckbox";
this.trackTitleCheckbox.Size = new System.Drawing.Size(77, 17);
this.trackTitleCheckbox.TabIndex = 64;
@ -488,7 +500,7 @@
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(104, 568);
this.trackNumberCheckbox.Name = "trackNumberCheckbox";
this.trackNumberCheckbox.Size = new System.Drawing.Size(94, 17);
this.trackNumberCheckbox.TabIndex = 65;
@ -503,7 +515,7 @@
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(12, 568);
this.trackTotalCheckbox.Name = "trackTotalCheckbox";
this.trackTotalCheckbox.Size = new System.Drawing.Size(86, 17);
this.trackTotalCheckbox.TabIndex = 66;
@ -518,7 +530,7 @@
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(289, 568);
this.discNumberCheckbox.Name = "discNumberCheckbox";
this.discNumberCheckbox.Size = new System.Drawing.Size(87, 17);
this.discNumberCheckbox.TabIndex = 67;
@ -533,7 +545,7 @@
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(204, 568);
this.discTotalCheckbox.Name = "discTotalCheckbox";
this.discTotalCheckbox.Size = new System.Drawing.Size(79, 17);
this.discTotalCheckbox.TabIndex = 68;
@ -548,7 +560,7 @@
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(99, 540);
this.albumCheckbox.Name = "albumCheckbox";
this.albumCheckbox.Size = new System.Drawing.Size(78, 17);
this.albumCheckbox.TabIndex = 69;
@ -563,7 +575,7 @@
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(458, 568);
this.explicitCheckbox.Name = "explicitCheckbox";
this.explicitCheckbox.Size = new System.Drawing.Size(106, 17);
this.explicitCheckbox.TabIndex = 76;
@ -578,7 +590,7 @@
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(763, 540);
this.upcCheckbox.Name = "upcCheckbox";
this.upcCheckbox.Size = new System.Drawing.Size(52, 17);
this.upcCheckbox.TabIndex = 75;
@ -593,7 +605,7 @@
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(821, 540);
this.isrcCheckbox.Name = "isrcCheckbox";
this.isrcCheckbox.Size = new System.Drawing.Size(51, 17);
this.isrcCheckbox.TabIndex = 74;
@ -608,7 +620,7 @@
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(687, 540);
this.copyrightCheckbox.Name = "copyrightCheckbox";
this.copyrightCheckbox.Size = new System.Drawing.Size(70, 17);
this.copyrightCheckbox.TabIndex = 73;
@ -623,7 +635,7 @@
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(608, 540);
this.composerCheckbox.Name = "composerCheckbox";
this.composerCheckbox.Size = new System.Drawing.Size(73, 17);
this.composerCheckbox.TabIndex = 72;
@ -638,7 +650,7 @@
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(547, 540);
this.genreCheckbox.Name = "genreCheckbox";
this.genreCheckbox.Size = new System.Drawing.Size(55, 17);
this.genreCheckbox.TabIndex = 71;
@ -653,7 +665,7 @@
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(450, 540);
this.releaseCheckbox.Name = "releaseCheckbox";
this.releaseCheckbox.Size = new System.Drawing.Size(91, 17);
this.releaseCheckbox.TabIndex = 70;
@ -666,7 +678,7 @@
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(570, 568);
this.commentCheckbox.Name = "commentCheckbox";
this.commentCheckbox.Size = new System.Drawing.Size(70, 17);
this.commentCheckbox.TabIndex = 78;
@ -679,7 +691,7 @@
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(646, 566);
this.commentTextbox.Multiline = true;
this.commentTextbox.Name = "commentTextbox";
this.commentTextbox.Size = new System.Drawing.Size(112, 17);
@ -693,7 +705,7 @@
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(382, 568);
this.imageCheckbox.Name = "imageCheckbox";
this.imageCheckbox.Size = new System.Drawing.Size(70, 17);
this.imageCheckbox.TabIndex = 80;
@ -755,7 +767,7 @@
//
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, 596);
this.mp3WarnLabel.Name = "mp3WarnLabel";
this.mp3WarnLabel.Size = new System.Drawing.Size(182, 13);
this.mp3WarnLabel.TabIndex = 85;
@ -852,7 +864,7 @@
// 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.Location = new System.Drawing.Point(646, 585);
this.panel8.Name = "panel8";
this.panel8.Size = new System.Drawing.Size(112, 1);
this.panel8.TabIndex = 90;
@ -863,7 +875,7 @@
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.Location = new System.Drawing.Point(243, 41);
this.streamableCheckbox.Name = "streamableCheckbox";
this.streamableCheckbox.Size = new System.Drawing.Size(113, 17);
this.streamableCheckbox.TabIndex = 91;
@ -876,13 +888,14 @@
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.Location = new System.Drawing.Point(412, 15);
this.secretTextbox.Multiline = true;
this.secretTextbox.Name = "secretTextbox";
this.secretTextbox.ReadOnly = true;
this.secretTextbox.Size = new System.Drawing.Size(209, 20);
this.secretTextbox.Size = new System.Drawing.Size(179, 20);
this.secretTextbox.TabIndex = 92;
this.secretTextbox.Visible = false;
this.secretTextbox.WordWrap = false;
//
// displaySecretButton
//
@ -890,7 +903,7 @@
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.Location = new System.Drawing.Point(303, 12);
this.displaySecretButton.Name = "displaySecretButton";
this.displaySecretButton.Size = new System.Drawing.Size(103, 23);
this.displaySecretButton.TabIndex = 93;
@ -927,9 +940,9 @@
// 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.Location = new System.Drawing.Point(412, 36);
this.hiddenTextPanel.Name = "hiddenTextPanel";
this.hiddenTextPanel.Size = new System.Drawing.Size(209, 1);
this.hiddenTextPanel.Size = new System.Drawing.Size(179, 1);
this.hiddenTextPanel.TabIndex = 87;
this.hiddenTextPanel.Visible = false;
//
@ -952,9 +965,9 @@
"150",
"100",
"50"});
this.artSizeSelect.Location = new System.Drawing.Point(634, 538);
this.artSizeSelect.Location = new System.Drawing.Point(113, 593);
this.artSizeSelect.Name = "artSizeSelect";
this.artSizeSelect.Size = new System.Drawing.Size(121, 21);
this.artSizeSelect.Size = new System.Drawing.Size(87, 21);
this.artSizeSelect.TabIndex = 96;
this.artSizeSelect.SelectedIndexChanged += new System.EventHandler(this.artSizeSelect_SelectedIndexChanged);
//
@ -962,11 +975,11 @@
//
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.Location = new System.Drawing.Point(12, 596);
this.artSizeLabel.Name = "artSizeLabel";
this.artSizeLabel.Size = new System.Drawing.Size(246, 13);
this.artSizeLabel.Size = new System.Drawing.Size(207, 13);
this.artSizeLabel.TabIndex = 97;
this.artSizeLabel.Text = "Embedded Art Size: px";
this.artSizeLabel.Text = "Embedded Art Size: px";
//
// typeCheckbox
//
@ -975,7 +988,7 @@
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.Location = new System.Drawing.Point(352, 540);
this.typeCheckbox.Name = "typeCheckbox";
this.typeCheckbox.Size = new System.Drawing.Size(92, 17);
this.typeCheckbox.TabIndex = 98;
@ -999,12 +1012,154 @@
this.aboutLabel.MouseLeave += new System.EventHandler(this.aboutLabel_MouseLeave);
this.aboutLabel.MouseHover += new System.EventHandler(this.aboutLabel_MouseHover);
//
// enableBtnsButton
//
this.enableBtnsButton.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(112)))), ((int)(((byte)(239)))));
this.enableBtnsButton.FlatAppearance.BorderSize = 0;
this.enableBtnsButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.enableBtnsButton.ForeColor = System.Drawing.Color.White;
this.enableBtnsButton.Location = new System.Drawing.Point(597, 28);
this.enableBtnsButton.Name = "enableBtnsButton";
this.enableBtnsButton.Size = new System.Drawing.Size(120, 23);
this.enableBtnsButton.TabIndex = 100;
this.enableBtnsButton.Text = "Re-Enable Buttons";
this.enableBtnsButton.UseVisualStyleBackColor = false;
this.enableBtnsButton.Visible = false;
this.enableBtnsButton.Click += new System.EventHandler(this.enableBtnsButton_Click);
//
// hideDebugButton
//
this.hideDebugButton.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(112)))), ((int)(((byte)(239)))));
this.hideDebugButton.FlatAppearance.BorderSize = 0;
this.hideDebugButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.hideDebugButton.ForeColor = System.Drawing.Color.White;
this.hideDebugButton.Location = new System.Drawing.Point(243, 12);
this.hideDebugButton.Name = "hideDebugButton";
this.hideDebugButton.Size = new System.Drawing.Size(54, 23);
this.hideDebugButton.TabIndex = 101;
this.hideDebugButton.Text = "Hide";
this.hideDebugButton.UseVisualStyleBackColor = false;
this.hideDebugButton.Visible = false;
this.hideDebugButton.Click += new System.EventHandler(this.hideDebugButton_Click);
//
// maxLengthLabel
//
this.maxLengthLabel.AutoSize = true;
this.maxLengthLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.maxLengthLabel.Location = new System.Drawing.Point(444, 596);
this.maxLengthLabel.Name = "maxLengthLabel";
this.maxLengthLabel.Size = new System.Drawing.Size(121, 13);
this.maxLengthLabel.TabIndex = 102;
this.maxLengthLabel.Text = "Max File Name Length**";
//
// panel9
//
this.panel9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.panel9.Location = new System.Drawing.Point(567, 610);
this.panel9.Name = "panel9";
this.panel9.Size = new System.Drawing.Size(68, 1);
this.panel9.TabIndex = 92;
//
// maxLengthTextbox
//
this.maxLengthTextbox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.maxLengthTextbox.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.maxLengthTextbox.ForeColor = System.Drawing.Color.White;
this.maxLengthTextbox.Location = new System.Drawing.Point(567, 596);
this.maxLengthTextbox.Multiline = true;
this.maxLengthTextbox.Name = "maxLengthTextbox";
this.maxLengthTextbox.Size = new System.Drawing.Size(68, 17);
this.maxLengthTextbox.TabIndex = 91;
this.maxLengthTextbox.TextChanged += new System.EventHandler(this.maxLengthTextbox_TextChanged);
//
// maxLengthWarnLabel
//
this.maxLengthWarnLabel.AutoSize = true;
this.maxLengthWarnLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.maxLengthWarnLabel.Location = new System.Drawing.Point(819, 610);
this.maxLengthWarnLabel.Name = "maxLengthWarnLabel";
this.maxLengthWarnLabel.Size = new System.Drawing.Size(107, 13);
this.maxLengthWarnLabel.TabIndex = 103;
this.maxLengthWarnLabel.Text = "** = Max value is 110";
//
// customFormatPanel
//
this.customFormatPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.customFormatPanel.Location = new System.Drawing.Point(572, 60);
this.customFormatPanel.Name = "customFormatPanel";
this.customFormatPanel.Size = new System.Drawing.Size(19, 1);
this.customFormatPanel.TabIndex = 104;
this.customFormatPanel.Visible = false;
//
// customFormatIDTextbox
//
this.customFormatIDTextbox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.customFormatIDTextbox.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.customFormatIDTextbox.ForeColor = System.Drawing.Color.White;
this.customFormatIDTextbox.Location = new System.Drawing.Point(572, 42);
this.customFormatIDTextbox.Multiline = true;
this.customFormatIDTextbox.Name = "customFormatIDTextbox";
this.customFormatIDTextbox.Size = new System.Drawing.Size(19, 20);
this.customFormatIDTextbox.TabIndex = 105;
this.customFormatIDTextbox.Visible = false;
this.customFormatIDTextbox.WordWrap = false;
this.customFormatIDTextbox.TextChanged += new System.EventHandler(this.customFormatIDTextbox_TextChanged);
//
// formatIDLabel
//
this.formatIDLabel.AutoSize = true;
this.formatIDLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.formatIDLabel.Location = new System.Drawing.Point(513, 42);
this.formatIDLabel.Name = "formatIDLabel";
this.formatIDLabel.Size = new System.Drawing.Size(53, 13);
this.formatIDLabel.TabIndex = 106;
this.formatIDLabel.Text = "Format ID";
this.formatIDLabel.Visible = false;
//
// filenameTempSelect
//
this.filenameTempSelect.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.filenameTempSelect.FormattingEnabled = true;
this.filenameTempSelect.Items.AddRange(new object[] {
"00 Trackname",
"00 - Trackname"});
this.filenameTempSelect.Location = new System.Drawing.Point(325, 593);
this.filenameTempSelect.Name = "filenameTempSelect";
this.filenameTempSelect.Size = new System.Drawing.Size(108, 21);
this.filenameTempSelect.TabIndex = 107;
this.filenameTempSelect.SelectedIndexChanged += new System.EventHandler(this.filenameTempSelect_SelectedIndexChanged);
//
// label7
//
this.label7.AutoSize = true;
this.label7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.label7.Location = new System.Drawing.Point(225, 596);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(99, 13);
this.label7.TabIndex = 108;
this.label7.Text = "Filename Template:";
//
// downloadPlaylistBG
//
this.downloadPlaylistBG.DoWork += new System.ComponentModel.DoWorkEventHandler(this.downloadPlaylistBG_DoWork);
//
// QobuzDownloaderX
//
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(938, 733);
this.ClientSize = new System.Drawing.Size(938, 632);
this.Controls.Add(this.filenameTempSelect);
this.Controls.Add(this.label7);
this.Controls.Add(this.formatIDLabel);
this.Controls.Add(this.customFormatPanel);
this.Controls.Add(this.customFormatIDTextbox);
this.Controls.Add(this.maxLengthWarnLabel);
this.Controls.Add(this.panel9);
this.Controls.Add(this.maxLengthTextbox);
this.Controls.Add(this.maxLengthLabel);
this.Controls.Add(this.hideDebugButton);
this.Controls.Add(this.enableBtnsButton);
this.Controls.Add(this.aboutLabel);
this.Controls.Add(this.typeCheckbox);
this.Controls.Add(this.artSizeSelect);
@ -1170,6 +1325,18 @@
private System.Windows.Forms.Label artSizeLabel;
private System.Windows.Forms.CheckBox typeCheckbox;
private System.Windows.Forms.Label aboutLabel;
private System.Windows.Forms.Button enableBtnsButton;
private System.Windows.Forms.Button hideDebugButton;
private System.Windows.Forms.Label maxLengthLabel;
private System.Windows.Forms.Panel panel9;
private System.Windows.Forms.TextBox maxLengthTextbox;
private System.Windows.Forms.Label maxLengthWarnLabel;
private System.Windows.Forms.Panel customFormatPanel;
private System.Windows.Forms.TextBox customFormatIDTextbox;
private System.Windows.Forms.Label formatIDLabel;
private System.Windows.Forms.ComboBox filenameTempSelect;
private System.Windows.Forms.Label label7;
private System.ComponentModel.BackgroundWorker downloadPlaylistBG;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -144,6 +144,9 @@
<metadata name="downloadFaveArtistsBG.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1229, 13</value>
</metadata>
<metadata name="downloadPlaylistBG.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 52</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>

View File

@ -370,6 +370,7 @@ namespace QobuzDownloaderX
getSecretBG.WorkerSupportsCancellation = true;
WebClient bundleURLClient = new WebClient();
bundleURLClient.Proxy = null;
string bundleHTML = bundleURLClient.DownloadString("https://play.qobuz.com/login");
// Grab link to bundle.js
@ -397,7 +398,7 @@ namespace QobuzDownloaderX
var bundleExtras = bundleLog1[3].Value;
// Grab "seed"
var bundleLog2 = Regex.Match(getBundleRequest, "window.utimezone.paris\\):h.initialSeed\\(\"(?<seed>.*?)\",window.utimezone.berlin\\)").Groups;
var bundleLog2 = Regex.Match(getBundleRequest, "window.utimezone.algier\\):f.initialSeed\\(\"(?<seed>.*?)\",window.utimezone.berlin\\)").Groups;
var bundleSeed = bundleLog2[1].Value;
// Step 1 of getting the app_secret
@ -447,16 +448,25 @@ namespace QobuzDownloaderX
{
loginBG.WorkerSupportsCancellation = true;
// Create HttpClient to grab Track ID
// Create HttpClient for logging in using Napster / Rhapsody API.
var loginClient = new HttpClient();
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; //Make connection secure
loginClient.DefaultRequestHeaders.Add("Authorization", "Basic WlRKbE9XTmhaR1V0TnpsbVpTMDBaR1UyTFRrd1lqTXRaRGsxT0RSbE1Ea3dPRE01Ok1UUmpaVFZqTTJFdE9HVmxaaTAwT1RVM0xXRm1Oamt0TlRsbE9ERmhObVl5TnpJNQ=="); //This value is from logging in to the Napster Android app.
// Create HttpClient to grab Track ID
var loginClient2 = new HttpClient();
// Run through TLS to allow secure connection.
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
// Set user-agent to Firefox.
loginClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0");
var loginURL = "https://www.qobuz.com/api.json/0.2/user/login"; //Set base URL
var parameters = new Dictionary<string, string> { { "username", emailTextbox.Text }, { "email", emailTextbox.Text }, { "password", passwordTextbox.Text }, { "extra", "partner" }, { "app_id", appID } }; //Set email & password parameters
var encodedContent = new FormUrlEncodedContent(parameters); //Add parameters as encoded content to login
// Grab response from Rhapsody to get Track IDs from Album response.
var loginUrl = "https://www.qobuz.com/api.json/0.2/user/login?email=" + emailTextbox.Text + "&password=" + passwordTextbox.Text + "&app_id=" + appID;
var loginResponse = await loginClient.GetAsync(loginUrl);
var loginResponse = await loginClient.PostAsync(loginURL, encodedContent);
string loginResponseString = loginResponse.Content.ReadAsStringAsync().Result;
// Grab metadata from API JSON response

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
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.9.9.17")]
[assembly: AssemblyFileVersion("0.9.9.17")]
[assembly: AssemblyVersion("0.9.9.23")]
[assembly: AssemblyFileVersion("0.9.9.23")]

View File

@ -442,5 +442,41 @@ namespace QobuzDownloaderX.Properties {
this["typeTag"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("36")]
public int savedMaxLength {
get {
return ((int)(this["savedMaxLength"]));
}
set {
this["savedMaxLength"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("1")]
public int savedFilenameTemplate {
get {
return ((int)(this["savedFilenameTemplate"]));
}
set {
this["savedFilenameTemplate"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string savedFilenameTemplateString {
get {
return ((string)(this["savedFilenameTemplateString"]));
}
set {
this["savedFilenameTemplateString"] = value;
}
}
}
}

View File

@ -107,5 +107,14 @@
<Setting Name="typeTag" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="savedMaxLength" Type="System.Int32" Scope="User">
<Value Profile="(Default)">36</Value>
</Setting>
<Setting Name="savedFilenameTemplate" Type="System.Int32" Scope="User">
<Value Profile="(Default)">1</Value>
</Setting>
<Setting Name="savedFilenameTemplateString" Type="System.String" Scope="User">
<Value Profile="(Default)"> </Value>
</Setting>
</Settings>
</SettingsFile>

View File

@ -15,7 +15,8 @@ Inspired by Qo-DL by <a href="https://github.com/Sorrow446">Sorrow</a> & <a href
</p>
Telegram Group Chat - <a href="https://t.me/QbdLX">@QbdLX</a><br />
Telegram Updates Channel - <a href="https://t.me/QobuzDownloaderX">@QobuzDownloaderX</a>
Telegram Updates Channel - <a href="https://t.me/QobuzDownloaderX">@QobuzDownloaderX</a><br />
I'm rarely active on Telegram, but these are official.
# About
QobuzDownloaderX is a program for downloading music streams from the streaming platform <a href="https://qobuz.com/">Qobuz</a>.