31 Commits

Author SHA1 Message Date
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
AiiR
ffbd8e521e Fix misplaced string 2020-07-18 01:48:44 -04:00
AiiR
ea09798e3c Merge pull request #40 from tomty89/path_bs
ditch remaining backslashes in paths
2020-07-10 00:13:38 -04:00
Tom Yan
72db4d0814 ditch remaining backslashes in paths 2020-07-10 11:16:20 +08:00
AiiR
7fee36c600 0.9.9.17
0.9.9.17
2020-07-08 23:58:48 -04:00
AiiR
bb30ed6deb Update README.md 2020-06-26 22:21:08 -04:00
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
23 changed files with 7903 additions and 2623 deletions

BIN
-assets/QBDLX2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

178
QobuzDownloaderX/AboutForm.Designer.cs generated Normal file
View File

@@ -0,0 +1,178 @@
namespace QobuzDownloaderX
{
partial class AboutForm
{
/// <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(AboutForm));
this.panel1 = new System.Windows.Forms.Panel();
this.verNumLabel2 = new System.Windows.Forms.Label();
this.exitLabel = new System.Windows.Forms.Label();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.devLabel = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.panel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.SuspendLayout();
//
// panel1
//
this.panel1.BackgroundImage = global::QobuzDownloaderX.Properties.Resources.login_frame;
this.panel1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
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(365, 95);
this.panel1.TabIndex = 1;
this.panel1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseMove);
//
// 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.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.verNumLabel2.Location = new System.Drawing.Point(12, 98);
this.verNumLabel2.Name = "verNumLabel2";
this.verNumLabel2.Size = new System.Drawing.Size(341, 18);
this.verNumLabel2.TabIndex = 32;
this.verNumLabel2.Text = "#.#.#.#";
this.verNumLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.verNumLabel2.MouseMove += new System.Windows.Forms.MouseEventHandler(this.verNumLabel2_MouseMove);
//
// 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(345, 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(53, 12);
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);
//
// devLabel
//
this.devLabel.AutoSize = true;
this.devLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(88)))), ((int)(((byte)(92)))), ((int)(((byte)(102)))));
this.devLabel.Location = new System.Drawing.Point(140, 131);
this.devLabel.Name = "devLabel";
this.devLabel.Size = new System.Drawing.Size(84, 13);
this.devLabel.TabIndex = 34;
this.devLabel.Text = "Developer - AiiR";
//
// label1
//
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(79, 154);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(207, 13);
this.label1.TabIndex = 35;
this.label1.Text = "Inspired By - Qo-DL by Sorrow and DashLt";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// label2
//
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(47, 177);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(271, 26);
this.label2.TabIndex = 36;
this.label2.Text = "Thanks to the users on Github and Telegram for offering\r\nbug reports and ideas!";
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// label3
//
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(15, 237);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(334, 26);
this.label3.TabIndex = 37;
this.label3.Text = "IF YOU PAID FOR THIS PROGRAM, YOU HAVE BEEN SCAMMED!\r\nTHIS SOFTWARE IS COMPLETELY" +
" FREE AND OPEN-SOURCE.";
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// AboutForm
//
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(365, 289);
this.Controls.Add(this.label3);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.devLabel);
this.Controls.Add(this.verNumLabel2);
this.Controls.Add(this.panel1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "AboutForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "QobuzDLX | About";
this.Load += new System.EventHandler(this.AboutForm_Load);
this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.AboutForm_MouseMove);
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.Label verNumLabel2;
private System.Windows.Forms.Label exitLabel;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Label devLabel;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
}
}

View File

@@ -0,0 +1,78 @@
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.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Reflection;
namespace QobuzDownloaderX
{
public partial class AboutForm : Form
{
public AboutForm()
{
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 AboutForm_Load(object sender, EventArgs e)
{
// Get and display version number.
verNumLabel2.Text = Assembly.GetExecutingAssembly().GetName().Version.ToString();
}
private void exitLabel_Click(object sender, EventArgs e)
{
this.Close();
}
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 AboutForm_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
}
}
}

File diff suppressed because it is too large Load Diff

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,32 @@
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();
this.aboutLabel = new System.Windows.Forms.Label();
((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 +125,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 +155,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 +207,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 +218,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 +228,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 +237,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 +250,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 +264,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 +273,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 +287,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 +296,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 +310,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 +327,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 +365,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 +390,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 +404,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 +413,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 +441,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 +456,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 +471,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 +486,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 +501,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 +516,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 +531,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 +546,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 +561,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 +576,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 +591,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 +606,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 +621,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 +636,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 +651,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 +664,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 +676,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 +691,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 +704,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 +716,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 +728,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 +742,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 +754,277 @@
// 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);
//
// aboutLabel
//
this.aboutLabel.AutoSize = true;
this.aboutLabel.BackColor = System.Drawing.Color.Transparent;
this.aboutLabel.Font = new System.Drawing.Font("Calibri", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.aboutLabel.ForeColor = System.Drawing.Color.White;
this.aboutLabel.Location = new System.Drawing.Point(866, 8);
this.aboutLabel.Name = "aboutLabel";
this.aboutLabel.Size = new System.Drawing.Size(15, 23);
this.aboutLabel.TabIndex = 99;
this.aboutLabel.Text = "i";
this.aboutLabel.TextAlign = System.Drawing.ContentAlignment.TopCenter;
this.aboutLabel.Click += new System.EventHandler(this.aboutLabel_Click);
this.aboutLabel.MouseLeave += new System.EventHandler(this.aboutLabel_MouseLeave);
this.aboutLabel.MouseHover += new System.EventHandler(this.aboutLabel_MouseHover);
//
// 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.aboutLabel);
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 +1066,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 +1074,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 +1082,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 +1101,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 +1147,29 @@
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;
private System.Windows.Forms.Label aboutLabel;
} }
} }

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>

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

@@ -0,0 +1,360 @@
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.aboutLabel = new System.Windows.Forms.Label();
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.aboutLabel);
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);
//
// aboutLabel
//
this.aboutLabel.AutoSize = true;
this.aboutLabel.BackColor = System.Drawing.Color.Transparent;
this.aboutLabel.Font = new System.Drawing.Font("Calibri", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.aboutLabel.ForeColor = System.Drawing.Color.Black;
this.aboutLabel.Location = new System.Drawing.Point(241, 0);
this.aboutLabel.Name = "aboutLabel";
this.aboutLabel.Size = new System.Drawing.Size(15, 23);
this.aboutLabel.TabIndex = 35;
this.aboutLabel.Text = "i";
this.aboutLabel.TextAlign = System.Drawing.ContentAlignment.TopCenter;
this.aboutLabel.Click += new System.EventHandler(this.aboutLabel_Click);
//
// 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;
private System.Windows.Forms.Label aboutLabel;
}
}

View File

@@ -0,0 +1,874 @@
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 Newtonsoft.Json.Linq;
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();
AboutForm about = new AboutForm();
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.Combine(Path.GetDirectoryName(Application.ExecutablePath), "Latest_Error.log");
string dllCheck = Path.Combine(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 async void LoginFrm_Load(object sender, EventArgs e)
{
// 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";
}
try
{
// Create HttpClient to grab version number from Github
var versionURLClient = new HttpClient();
// Run through TLS to allow secure connection.
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
// Set user-agent to Firefox.
versionURLClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0");
// Grab response from Github to get Track IDs from Album response.
var versionURL = "https://api.github.com/repos/ImAiiR/QobuzDownloaderX/releases/latest";
var versionURLResponse = await versionURLClient.GetAsync(versionURL);
string versionURLResponseString = versionURLResponse.Content.ReadAsStringAsync().Result;
// Grab metadata from API JSON response
JObject joVersionResponse = JObject.Parse(versionURLResponseString);
// Grab latest version number
string version = (string)joVersionResponse["tag_name"];
// Grab changelog
string changes = (string)joVersionResponse["body"];
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.
}
}
}
private void loginButton_Click(object sender, EventArgs e)
{
// Hide alt login label until job is finished or failed
altLoginLabel.Visible = false;
switch (altLoginValue)
{
// If logging in normally (email & password)
case "0":
#region Normal Login
#region Check if textboxes are valid
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;
}
#endregion
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
break;
default:
#region Alt Login
#region Check if textboxes are valid
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;
}
#endregion
// 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
break;
}
}
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 async void loginBG_DoWork(object sender, DoWorkEventArgs e)
{
loginBG.WorkerSupportsCancellation = true;
// 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.PostAsync(loginURL, encodedContent);
string loginResponseString = loginResponse.Content.ReadAsStringAsync().Result;
// Grab metadata from API JSON response
JObject joLoginResponse = JObject.Parse(loginResponseString);
try
{
// Grab user_id
string userID = (string)joLoginResponse["user"]["id"];
qbdlx.userID = userID;
// Grab display name
string displayName = (string)joLoginResponse["user"]["display_name"];
qbdlx.displayName = displayName;
// Grab account type
try
{
string accountType = (string)joLoginResponse["user"]["credential"]["parameters"]["short_label"];
// Check if accountType returns null or not
switch (accountType)
{
case null:
qbdlx.accountType = null;
break;
default:
qbdlx.accountType = accountType;
break;
}
}
catch
{
// Free account, still able to login but won't be able to download anything.
qbdlx.accountType = null;
}
// Grab authentication token
string userAuthToken = (string)joLoginResponse["user_auth_token"];
qbdlx.userAuth = userAuthToken;
// Grab profile image
string profilePic = (string)joLoginResponse["user"]["avatar"];
string profilePicURL = profilePic.Replace(@"\", null).Replace("s=50", "s=20");
qbdlx.profilePic = profilePicURL;
// Set user_auth_token
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);
loginButton.Invoke(new Action(() => loginButton.Enabled = true));
altLoginLabel.Invoke(new Action(() => altLoginLabel.Visible = true));
return;
}
finishLogin(sender, e);
loginBG.CancelAsync();
}
private async void altLoginBG_DoWork(object sender, DoWorkEventArgs e)
{
altLoginBG.WorkerSupportsCancellation = true;
// Create HttpClient to grab Track ID
var altLoginClient = new HttpClient();
// Run through TLS to allow secure connection.
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
// Set user-agent to Firefox.
altLoginClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0");
// Grab response from Rhapsody to get Track IDs from Album response.
var altLoginUrl = "http://www.qobuz.com/api.json/0.2/user/get?user_id=" + userID + "&user_auth_token=" + userAuthToken + "&app_id=" + appID;
var altLoginResponse = await altLoginClient.GetAsync(altLoginUrl);
string altLoginResponseString = altLoginResponse.Content.ReadAsStringAsync().Result;
// Grab metadata from API JSON response
JObject joAltLoginResponse = JObject.Parse(altLoginResponseString);
try
{
// 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
string displayName = (string)joAltLoginResponse["display_name"];
qbdlx.displayName = displayName;
// Grab account type
try
{
string accountType = (string)joAltLoginResponse["subscription"]["offer"];
// Check if accountType returns null or not
switch (accountType)
{
case null:
qbdlx.accountType = null;
break;
default:
qbdlx.accountType = accountType;
break;
}
}
catch
{
// Free account, still able to login but won't be able to download anything.
qbdlx.accountType = null;
}
// Grab profile image
string profilePic = (string)joAltLoginResponse["avatar"];
var profilePicURL = profilePic.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);
loginButton.Invoke(new Action(() => loginButton.Enabled = true));
altLoginLabel.Invoke(new Action(() => altLoginLabel.Visible = true));
return;
}
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)");
}
private void aboutLabel_Click(object sender, EventArgs e)
{
about.Show();
}
}
}

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.9.0")] [assembly: AssemblyVersion("0.9.9.20")]
[assembly: AssemblyFileVersion("0.9.9.0")] [assembly: AssemblyFileVersion("0.9.9.20")]

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

@@ -52,6 +52,10 @@
<ApplicationIcon>Resources\qbdlx_icon.ico</ApplicationIcon> <ApplicationIcon>Resources\qbdlx_icon.ico</ApplicationIcon>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="policy.2.0.taglib-sharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=db62eba44689b5b0, processorArchitecture=MSIL"> <Reference Include="policy.2.0.taglib-sharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=db62eba44689b5b0, processorArchitecture=MSIL">
<HintPath>..\packages\taglib.2.1.0.0\lib\policy.2.0.taglib-sharp.dll</HintPath> <HintPath>..\packages\taglib.2.1.0.0\lib\policy.2.0.taglib-sharp.dll</HintPath>
<Private>True</Private> <Private>True</Private>
@@ -79,6 +83,18 @@
<Compile Include="Form1.Designer.cs"> <Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon> <DependentUpon>Form1.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="AboutForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="AboutForm.Designer.cs">
<DependentUpon>AboutForm.cs</DependentUpon>
</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 +113,12 @@
<EmbeddedResource Include="Form1.resx"> <EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon> <DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="AboutForm.resx">
<DependentUpon>AboutForm.cs</DependentUpon>
</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 +170,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

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net46" />
<package id="taglib" version="2.1.0.0" targetFramework="net46" /> <package id="taglib" version="2.1.0.0" targetFramework="net46" />
</packages> </packages>

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

@@ -3,15 +3,20 @@
<img src="https://github.com/ImAiiR/QobuzDownloaderX/raw/master/QobuzDownloaderX/Resources/qbdlx.png?raw=true" /> <img src="https://github.com/ImAiiR/QobuzDownloaderX/raw/master/QobuzDownloaderX/Resources/qbdlx.png?raw=true" />
</a> </a>
</p> </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> 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;"> <p style="align:center;">
<a href="https://github.com/ImAiiR/QobuzDownloaderX"> <a href="https://github.com/ImAiiR/QobuzDownloaderX/blob/master/-assets/QBDLX2.png?raw=true">
<img src="https://github.com/ImAiiR/QobuzDownloaderX/blob/master/-assets/QBDLX1.png?raw=true" /> <img src="https://github.com/ImAiiR/QobuzDownloaderX/blob/master/-assets/QBDLX2.png?raw=true" />
</a> </a>
</p> </p>
Telegram Group Chat - <a href="https://t.me/QbdLX">@QbdLX</a><br />
Telegram Updates Channel - <a href="https://t.me/QobuzDownloaderX">@QobuzDownloaderX</a>
# About # About
QobuzDownloaderX is a program for downloading music streams from the streaming platform <a href="https://qobuz.com/">Qobuz</a>. QobuzDownloaderX is a program for downloading music streams from the streaming platform <a href="https://qobuz.com/">Qobuz</a>.