6 Commits

Author SHA1 Message Date
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
7 changed files with 3617 additions and 100 deletions

View File

@@ -99,6 +99,10 @@
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();
((System.ComponentModel.ISupportInitialize)(this.albumArtPicBox)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.logoBox)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.profilePictureBox)).BeginInit();
@@ -337,9 +341,9 @@
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.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.Text = "Qobuz Album / Track Link";
this.label6.Text = "Qobuz Link";
//
// totalTracksTextbox
//
@@ -865,20 +869,29 @@
//
// secretTextbox
//
this.secretTextbox.Location = new System.Drawing.Point(352, 34);
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 = true;
this.displaySecretButton.UseVisualStyleBackColor = false;
this.displaySecretButton.Visible = false;
this.displaySecretButton.Click += new System.EventHandler(this.displaySecretButton_Click);
//
@@ -903,12 +916,34 @@
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);
//
// 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, 533);
this.Controls.Add(this.hiddenTextPanel);
this.Controls.Add(this.logoutLabel);
this.Controls.Add(this.profilePictureBox);
this.Controls.Add(this.displaySecretButton);
@@ -1061,6 +1096,10 @@
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;
}
}

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">
<value>737, 13</value>
</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" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>

View File

@@ -30,6 +30,7 @@
{
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.exitLabel = new System.Windows.Forms.Label();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
@@ -43,7 +44,6 @@
this.getSecretBG = new System.ComponentModel.BackgroundWorker();
this.loginBG = new System.ComponentModel.BackgroundWorker();
this.visableCheckbox = new System.Windows.Forms.CheckBox();
this.disableLogin = new System.Windows.Forms.CheckBox();
this.panel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.SuspendLayout();
@@ -53,6 +53,7 @@
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;
@@ -62,6 +63,18 @@
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;
@@ -167,16 +180,18 @@
// 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, 250);
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);
//
// loginText
@@ -201,25 +216,13 @@
// visableCheckbox
//
this.visableCheckbox.AutoSize = true;
this.visableCheckbox.Location = new System.Drawing.Point(206, 257);
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);
//
// 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;
//
// LoginFrm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@@ -228,7 +231,6 @@
this.ClientSize = new System.Drawing.Size(282, 377);
this.Controls.Add(this.visableCheckbox);
this.Controls.Add(this.loginText);
this.Controls.Add(this.md5Button);
this.Controls.Add(this.panel4);
this.Controls.Add(this.panel3);
this.Controls.Add(this.passwordTextbox);

View File

@@ -192,12 +192,6 @@ namespace QobuzDownloaderX
private void loginButton_Click(object sender, EventArgs e)
{
//if (appidTextbox.Text == "app_id" | appidTextbox.Text == null | appidTextbox.Text == "")
//{
// // If there's no app_id typed in.
// loginText.Invoke(new Action(() => loginText.Text = "No app_id, please input app_id first."));
// return;
//}
if (emailTextbox.Text == "Email" | emailTextbox.Text == null | emailTextbox.Text == "")
{
// If there's no email typed in.
@@ -205,13 +199,37 @@ namespace QobuzDownloaderX
return;
}
var passMD5CheckLog = Regex.Match(passwordTextbox.Text, "(?<md5Test>^[0-9a-f]{32}$)").Groups;
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 == "")
{
loginText.Text = "Password not MD5! Hit \"MD5\" before logging in!";
return;
// 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.
@@ -373,32 +391,32 @@ namespace QobuzDownloaderX
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;
}
//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;
//string plainTextPW = passwordTextbox.Text;
// Generate the MD5 hash using the string created above.
using (MD5 md5PassHash = MD5.Create())
{
string hashedPW = GetMd5Hash(md5PassHash, plainTextPW);
//// 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;
}
}
// 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 getSecretBG_DoWork(object sender, DoWorkEventArgs e)
@@ -486,6 +504,11 @@ namespace QobuzDownloaderX
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;

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.8")]
[assembly: AssemblyFileVersion("0.9.9.8")]
[assembly: AssemblyVersion("0.9.9.11")]
[assembly: AssemblyFileVersion("0.9.9.11")]

View File

@@ -2,10 +2,9 @@
<a href="https://github.com/ImAiiR/QobuzDownloaderX">
<img src="https://github.com/ImAiiR/QobuzDownloaderX/raw/master/QobuzDownloaderX/Resources/qbdlx.png?raw=true" />
</a>
<a href="https://ko-fi.com/I3I41A5DY">
<img src="https://www.ko-fi.com/img/githubbutton_sm.svg" />
</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>