diff --git a/Discord Media Loader.Application/Properties/AssemblyInfo.cs b/Discord Media Loader.Application/Properties/AssemblyInfo.cs index c36a5c8..e24413e 100644 --- a/Discord Media Loader.Application/Properties/AssemblyInfo.cs +++ b/Discord Media Loader.Application/Properties/AssemblyInfo.cs @@ -8,7 +8,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyTitle("Discord Media Loader.Application")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] +[assembly: AssemblyCompany("Serraniel")] [assembly: AssemblyProduct("Discord Media Loader.Application")] [assembly: AssemblyCopyright("Copyright © 2017 by Serraniel")] [assembly: AssemblyTrademark("")] diff --git a/Discord Media Loader/Discord Media Loader.csproj b/Discord Media Loader/Discord Media Loader.csproj index cd7c6a4..41a2237 100644 --- a/Discord Media Loader/Discord Media Loader.csproj +++ b/Discord Media Loader/Discord Media Loader.csproj @@ -33,9 +33,13 @@ 4 - Serraniel-Logo4-ABGERUNDET.ico + Serraniel-64x64.ico + + ..\packages\Octokit.0.24.1-alpha0001\lib\net45\Octokit.dll + True + @@ -49,8 +53,19 @@ + + Form + + + FrmDownload.cs + + + + + FrmDownload.cs + ResXFileCodeGenerator Resources.Designer.cs @@ -60,6 +75,7 @@ True Resources.resx + SettingsSingleFileGenerator Settings.Designer.cs @@ -74,6 +90,7 @@ + diff --git a/Discord Media Loader/FrmDownload.Designer.cs b/Discord Media Loader/FrmDownload.Designer.cs new file mode 100644 index 0000000..c4d148a --- /dev/null +++ b/Discord Media Loader/FrmDownload.Designer.cs @@ -0,0 +1,77 @@ +namespace Discord_Media_Loader +{ + partial class FrmDownload + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmDownload)); + this.pgbProgress = new System.Windows.Forms.ProgressBar(); + this.lbStatus = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // pgbProgress + // + this.pgbProgress.Location = new System.Drawing.Point(12, 12); + this.pgbProgress.Name = "pgbProgress"; + this.pgbProgress.Size = new System.Drawing.Size(351, 23); + this.pgbProgress.TabIndex = 0; + // + // lbStatus + // + this.lbStatus.AutoSize = true; + this.lbStatus.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbStatus.ForeColor = System.Drawing.SystemColors.ControlDarkDark; + this.lbStatus.Location = new System.Drawing.Point(12, 47); + this.lbStatus.Name = "lbStatus"; + this.lbStatus.Size = new System.Drawing.Size(37, 13); + this.lbStatus.TabIndex = 1; + this.lbStatus.Text = "Status"; + // + // FrmDownload + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(375, 70); + this.ControlBox = false; + this.Controls.Add(this.lbStatus); + this.Controls.Add(this.pgbProgress); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "FrmDownload"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Discord Media Loader"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ProgressBar pgbProgress; + private System.Windows.Forms.Label lbStatus; + } +} \ No newline at end of file diff --git a/Discord Media Loader/FrmDownload.cs b/Discord Media Loader/FrmDownload.cs new file mode 100644 index 0000000..70bfd80 --- /dev/null +++ b/Discord Media Loader/FrmDownload.cs @@ -0,0 +1,115 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Globalization; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Discord_Media_Loader +{ + internal partial class FrmDownload : Form + { + private string FileName { get; } + private string Source { get; } + private bool Finished { get; set; } = false; + + internal FrmDownload(string fileName, string source) + { + InitializeComponent(); + + FileName = fileName; + Source = source; + } + + internal void StartDownload() + { + Task.Run(() => + { + var wc = new WebClient + { + CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore) + }; + + SetStatus($"Downloading {FileName}..."); + + SetProgress(0, 100); + + wc.DownloadProgressChanged += Wc_DownloadProgressChanged; + wc.DownloadFileCompleted += Wc_DownloadFileCompleted; + + wc.DownloadFileAsync(new Uri(Source), FileName); + + while (!Finished) + { + // wait for download + } + + RequestClose(); + }); + } + + private void Wc_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e) + { + SetStatus(LocUtils.Remember("Download finished")); + Finished = true; + } + + private void Wc_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e) + { + var bytesIn = double.Parse(e.BytesReceived.ToString(CultureInfo.InvariantCulture)); + var totalBytes = double.Parse(e.TotalBytesToReceive.ToString(CultureInfo.InvariantCulture)); + var percentage = bytesIn / totalBytes * 100; + SetProgress(percentage, 100); + } + + delegate void SetStatusCallback(String status); + private void SetStatus(String status) + { + if (InvokeRequired) + { + var callback = new SetStatusCallback(SetStatus); + Invoke(callback, status); + } + else + { + lbStatus.Text = status; + } + } + + delegate void SetProgressCallback(double current, int max); + private void SetProgress(double current, int max) + { + if (InvokeRequired) + { + var callback = new SetProgressCallback(SetProgress); + Invoke(callback, current, max); + } + else + { + pgbProgress.Maximum = max; + pgbProgress.Value = (int)current; + Helper.TaskBarProgress.SetState(Handle, Helper.TaskBarProgress.TaskbarStates.Normal); + Helper.TaskBarProgress.SetValue(Handle, (int)current, max); + } + } + + delegate void RequestCloseCallback(); + private void RequestClose() + { + if (InvokeRequired) + { + var callback = new RequestCloseCallback(RequestClose); + Invoke(callback, new object[] { }); + } + else + { + Close(); + } + } + } +} diff --git a/Discord Media Loader/FrmDownload.resx b/Discord Media Loader/FrmDownload.resx new file mode 100644 index 0000000..88e8a1f --- /dev/null +++ b/Discord Media Loader/FrmDownload.resx @@ -0,0 +1,408 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8b////VP///3////+m////zP// + /+T////1//////////r////u////3f///8z///+m////f////1T///8b////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////M////5D////b//////// + //////////////////////////////////////////////////////////////////////////////// + /9v///+Q////M////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///w3///90////1v// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////W////dP///w3///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A2K4AANiuAADYrgAA2K4AANiuAADfswAA////EP// + /4D////t////////////////////////////////////////////////9/zq/7XiQ/+340n/w+ho/9Pu + kf/m9b//+Pzt///////////////////////////////////////////////////////////t////gf// + /xCa2AAAmtgAAJrYAACa2AAAmtgAAJrYAAD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////ANiuAADYrgAA2K4AANiu + AAD///8B////Yf///+v//////////////////////////////////////////////////////////+z4 + z/+a2AD/mtgA/5rYAP+a2AD/mtgA/6TcGf+65VL/3fKo//n98P////////////////////////////// + ///////////////////////r////Yf///wGa2AAAmtgAAJrYAACa2AAA////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wDYrgAA2K4AANiuAAD///8k////xP////////////////////////////////////////////////// + ///////////////////h87P/mtgA/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rYAP+n3SD/zOt+//X7 + 5v/////////////////////////////////////////////////////E////I5rYAACa2AAAmtgAAP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A2K4AANiuAAD///9V////8f////////////////////////////////// + ////////////////////////////////////////0+6Q/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rY + AP+a2AD/mtgA/5rYAP+k3Bn/0e2K//v+9v////////////////////////////////////////////// + //H///9VmtgAAJrYAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wH///+M//////////////////////// + /////////////////////////////////////////////////////////////8bpbv+a2AD/mtgA/5rY + AP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rYAP+u4DP/5/bD//////////////////// + /////////////////////////////////4z///8B////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wb///+l//////// + //////////////////////////////////////////////////////////////////////////////// + //+55E//mtgA/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/5zZ + Bv/P7Ib/////////////////////////////////////////////////////pf///wb///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wb///+3//////////////////////////////////////////////////////////////////////// + ///////////////////+//3/rd8x/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rY + AP+a2AD/mtgA/5rYAP+a2AD/mtgA/7zlV//5/fH///////////////////////////////////////// + //////+3////Bv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wH///+k//////////////////////////////////////////////////////// + ////////////////////////////////////////+f3v/6PcF/+a2AD/mtgA/5rYAP+a2AD/mtgA/5rY + AP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rYAP+a2AD/seE7//X75v////////////// + /////////////////////////////////6T///8B////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///+K//////////////////////////////////////// + /////////////////////////////////////////////////////////////+751f+a2AD/mtgA/5rY + AP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rY + AP+s3y7/9Pvi////////////////////////////////////////////////i////wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9V//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///s+M//rd8w/6XcHf+c2Qb/mtgA/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rY + AP+a2AD/mtgA/5rYAP+a2AD/mtgA/6zfLv/1++f///////////////////////////////////////// + //////9V////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8j////8P// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////v/6/fL/8PnZ/97yrP/E6Gv/qd4l/5rYAP+a2AD/mtgA/5rY + AP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rYAP+a2AD/suE8//v99P////////////// + ////////////////////////////8P///yP///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8B////xP////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////v9 + 9f/e8qz/s+JA/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rY + AP/A51/////////////////////////////////////////////////E////Af///wD///8A////AP// + /wD///8A////AP///wD///8A////Yf////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////f867/rN8t/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rY + AP+a2AD/mtgA/5rYAP+a2AD/mtgA/9jwnP////////////////////////////////////////////// + /2H///8A////AP///wD///8A////AP///wD///8A////EP///+r///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////r98//I6nX/mtgA/5rY + AP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rYAP+h2xL/8/rh//////////////////// + ///////////////////////q////Ev///wD///8A////AP///wD///8A////AP///3////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////9/yrf+h2xL/mtgA/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/8Dn + X////////////////////////////////////////////////4D///8A////AP///wD///8A////AP// + /w3////u//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////7PjQ/6reKP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rY + AP+a2AD/mtgA/5rYAP+c2QX/7vjT///////////////////////////////////////////u////Df// + /wD///8A////AP///wD///90//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////0++L/qd4n/5rY + AP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/8PoaP////////////////////////////// + /////////////////3T///8A////AP///wD///8B////2/////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////+360P+k4g3/mtgA/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rYAP+j2xb/+Pzu//// + ///////////////////////////////////////b////Af///wD///8A////O/////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////wNCY/53dAP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rY + AP+a2AD/mtgA/9/zr////////////////////////////////////////////////zv///8A////AP// + /5D///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////f39/+Puin/n+AA/5rY + AP+a2AD/mtgA/5rYAP+a2AD/mtgA/5rYAP/F6W3///////////////////////////////////////// + //////+Q////AP///wD////Y//////////////////////////////////////////////////////// + /////////////////////////////+3t7f+3t7f/jIyM/3Nzc/9oaGj/a2tr/35+fv+dnZ3/xsbG//Hx + 8f////////////////////////////////////////////////////////////////////////////// + ////////iZNy/5zbAP+b2QD/mtgA/5rYAP+a2AD/mtgA/5rYAP+a2AD/s+JA//////////////////// + ////////////////////////////2f///wD///8d//////////////////////////////////////// + ////////////////////////////////////////9fTx/46Pk/9BQUH/Li4u/y4uLv8uLi7/Li4u/y4u + Lv8uLi7/Li4u/y4uLv9ERET/fn5+/8rKyv////////////////////////////////////////////// + /////////////////////////////4iHjP98qA3/n+AA/5rYAP+a2AD/mtgA/5rYAP+a2AD/mtgA/6ne + J/////////////////////////////////////////////////////8e////Vv////////////////// + ////////////////////////////////////////////////////////+fDL/45/Qv8kJjH/Li4u/y4u + Lv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Xl5e/7e3t//+/v7///////// + //////////////////////////////////////////////////9vbXX/T2Ig/57fAP+a2QD/mtgA/5rY + AP+a2AD/mtgA/5rYAP+l3Bz/////////////////////////////////////////////////////Vv// + /4T/////////////////////////////////////////////////////////////////////8+ax/+O5 + D/92ZBv/JCYx/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4u + Lv8uLi7/YGBg/8jIyP/////////////////////////////////////////////////09PT/QkJE/zEz + Lf+Mwgb/nd0A/5rYAP+a2AD/mtgA/5rYAP+a2AD/pdwb//////////////////////////////////// + /////////////////4T///+t//////////////////////////////////////////////////////// + ////////8+ez/9mwB//htQD/dWMb/yQnMf8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4u + Lv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/dHR0/97e3v////////////////////////////// + ////////r6+v/y4uLv8nIzH/bZET/6HiAP+a2AD/mtgA/5rYAP+a2AD/mtgA/6neJv////////////// + //////////////////////////////////////+t////zP////////////////////////////////// + ////////////////////////+PHS/9qyDv/YrgD/4rUA/3lmGf8kJjH/Li4u/y4uLv8uLi7/Li4u/y4u + Lv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Ozs7/1ZWVv90dHT/jo6O/5mZmf/Hx8f//v7+//// + ////////////////////////7+/v/0dHR/8uLi7/KCUw/1BkH/+f4AD/mtgA/5rYAP+a2AD/mtgA/5rY + AP+z4T7/////////////////////////////////////////////////////zP///+X///////////// + /////////////////////////////////////////v35/+C/N//YrgD/2K4A/+O2AP+Dbhf/IyYx/y4u + Lv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/1VVVf+QkJD/xsbG/+rq6v////////////// + ////////////////////////////////////////+vr6/2tra/8uLi7/Li4u/yspL/86Qij/ltEC/5va + AP+a2AD/mtgA/5rYAP+a2AD/x+ly//////////////////////////////////////////////////// + /+D////y//////////////////////////////////////////////////////Dfm//YrgD/2K4A/9iu + AP/itQD/k3oT/yUnMf8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/cHBw/8bGxv/8/Pz///////// + ////////////////////////////////////////////////////////7+/v/3BwcP8uLi7/Li4u/y4u + Lv8tLC7/Ly8u/4e7CP+e3gD/mtgA/5rYAP+a2AD/mtgA/+X1vf////////////////////////////// + ///////////////////////s//////////////////////////////////////////////////////79 + +f/euyr/2K4A/9iuAP/YrgD/4LQA/6iKDf8oKTD/Li4u/y4uLv8uLi7/Li4u/y4uLv9QUFD/xMTE//// + ////////////////////////////////////////////////////////////////////////w8PD/1BQ + UP8uLi7/Li4u/y4uLv8uLi7/Li4u/yknMP95pA7/n+EA/5rYAP+a2AD/mtgA/6neJ//8/vj///////// + ////////////////////////////////////////////+f////////////////////////////////// + ///////////////////168D/2K4A/9iuAP/YrgD/2K4A/92yAP+/mwf/MTAt/ywtLv8uLi7/Li4u/y4u + Lv9wcHD/8PDw//////////////////////////////////////////////////////////////////r6 + +v/ExMT/bm5u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8oJDH/a44U/6HiAP+a2AD/mtgA/5rY + AP/W75j///////////////////////////////////////////////////////////n////y//////// + ////////////////////////////////////////6tR3/9iuAP/YrgD/2K4A/9iuAP/arwD/06oB/0VA + J/8pKi//Li4u/y4uLv9ra2v/+vr6//////////////////////////////////////////////////39 + /f/n5+f/wsLC/4yMjP9SUlL/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/JyMx/2F+ + GP+h4wD/mtgA/5rYAP+v4DX//P74//////////////////////////////////////////////////// + ///////s////5f///////////////////////////////////////////////+LDQv/YrgD/2K4A/9iu + AP/YrgD/2K4A/+C0AP9oWh7/JCcx/y4uLv9GRkb/7u7u/////////////////////////////v7+/8fH + x/+VlZX/iYmJ/3BwcP9TU1P/OTk5/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4u + Lv8uLi7/Li4u/ygkMf9bdRv/oOEA/5rYAP+g2g7/7fjR//////////////////////////////////// + ////////////////////////////4P///8z///////////////////////////////////////////// + ///euyj/2K4A/9iuAP/YrgD/2K4A/9iuAP/itQD/ln0S/yQnMf8uLi7/ra2t//////////////////// + ///////////////////i4uL/e3t7/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4u + Lv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8oJDH/WXEc/6DhAP+d2Qf/4fOy//////////////////// + /////////////////////////////////////////////////8z///+t//////////////////////// + ////////////////////////3Lcc/9iuAP/YrgD/2K4A/9iuAP/YrgD/3LEA/8agBf82NCz/Pj9C//T0 + 9P/////////////////////////////////////////////////Ozs7/ZmZm/y4uLv8uLi7/Li4u/y4u + Lv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/KCQx/1pzHP+m4w//4POx//// + //////////////////////////////////////////////////////////////////////+t////hP// + /////////////////////////////////////////////9y3Hf/YrgD/2K4A/9iuAP/YrgD/2K4A/9iu + AP/gtAD/Z1ke/2lrcv////////////////////////////////////////////////////////////// + //++vr7/ZGRk/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/y4uLv8uLi7/Li4u/ygk + Mf93i0X/7PnL//////////////////////////////////////////////////////////////////// + ////////////hP///1T////////////////////////////////////////////////euyr/2K4A/9iu + AP/YrgD/2K4A/9iuAP/YrgD/4LQA/66OC/+Dg4b///////////////////////////////////////// + ///////////////////////////////////Pz8//hISE/0hISP8uLi7/Li4u/y4uLv8uLi7/Li4u/y4u + Lv8uLi7/Li4u/0JCQv+RkJX/9PXy//////////////////////////////////////////////////// + /////////////////////////////////1b///8c//////////////////////////////////////// + ////////48RG/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/9mvAP/dsgD/kopq//////////////////// + ///////////////////////////////////////////////////////////////////09PT/y8vL/6Ki + ov+Dg4P/cXFx/21tbf94eHj/kJCQ/7q6uv/v7+////////////////////////////////////////// + //////////////////////////////////////////////////////8d////AP///9f///////////// + /////////////////////////////+rTdP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/4LQA/72f + Iv/09PT///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////Y////AP// + /wD///+P///////////////////////////////////////////06Lb/2K4A/9iuAP/YrgD/2K4A/9iu + AP/YrgD/2K4A/9iuAP/esgD/zsKO//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////kP///wD///8A////Ov///////////////////////////////////////////fvx/9y2 + Gv/YrgD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/+G3Cf/578j///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////zr///8A////AP///wH////a//////////////////////// + ///////////////////p0nD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/3bgh//r0 + 3P////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////9v///8B////AP///wD///8A////dP// + ////////////////////////////////////////+fPZ/9mxCP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iu + AP/YrgD/2K4A/9iuAP/duCH/9+7I//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////90////AP// + /wD///8A////AP///wz////t///////////////////////////////////////////oz2n/2K4A/9iu + AP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/9qyDf/x4qT///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////t////Df///wD///8A////AP///wD///8A////f/////////////////////////////////// + ////////+/fm/9u1Fv/YrgD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/+nQ + bP/8+u7///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////f////wD///8A////AP///wD///8A////AP///xD////q//////// + ///////////////////////////////////x4qX/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iu + AP/YrgD/2K4A/9iuAP/YrgD/3ron//Hipf///v3///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////6v///xD///8A////AP///wD///8A////AP// + /wD///8A////YP///////////////////////////////////////////////+jPaf/YrgD/2K4A/9iu + AP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/4cA5//HipP/9+/H///////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////2H///8A////AP// + /wD///8A////AP///wD///8A////AP///wH////D//////////////////////////////////////// + ///+/fj/4sRE/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iu + AP/YrgD/3bgf/+fNY//x4qX/+PHT//367//+/vv////+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /8P///8B////AP///wD///8A////AP///wD///8A////AP///wD///8A////Iv////D///////////// + //////////////////////////////z57f/gvzX/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iu + AP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/9ivA//cthj/37wr//fuyv////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////D///8i////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///9U////////////////////////////////////////////////+/jo/+C/Nf/YrgD/2K4A/9iu + AP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iu + AP/48NH///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////9V////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///4j///////////////////////////////////////////// + ///8+ev/4sND/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iu + AP/YrgD/2K4A/9iuAP/btBP//Pns//////////////////////////////////////////////////// + //////////////////////////////////////////////////////+J////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8B////pP////////////////// + //////////////////////////////789v/nzGD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iu + AP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/37wt///+/P////////////////////////////// + //////////////////////////////////////////////////////////////////////+k////Af// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wb///+3/////////////////////////////////////////////////////+7bj//asQr/2K4A/9iu + AP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/+PGSv////////////// + //////////////////////////////////////////////////////////////////////////////// + //////+3////Bv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////Bv///6X///////////////////////////////////////////// + ////////9+7K/+HBO//YrgD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A/9iu + AP/oz2n///////////////////////////////////////////////////////////////////////// + //////////////////////+l////Bv///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8B////jP////////////////// + ///////////////////////////////////+/fr/7t2T/924Hv/YrgD/2K4A/9iuAP/YrgD/2K4A/9iu + AP/YrgD/2K4A/9iuAP/YrgD/7dqL//////////////////////////////////////////////////// + //////////////////////////////////////+M////Af///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A2K4AANiu + AAD///9V////8f/////////////////////////////////////////////////////8+ev/7dmH/966 + Jv/YrgD/2K4A/9iuAP/YrgD/2K4A/9iuAP/YrgD/2K4A//Plrv////////////////////////////// + //////////////////////////////////////////////////H///9VmtgAAJrYAAD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////ANiuAADYrgAA2K4AAP///yT////E//////////////////////////////////////// + ///////////////////9/PT/8+av/+bLWv/duB7/2K4A/9iuAP/YrgD/2K4A/9iuAP/37sv///////// + /////////////////////////////////////////////////////////////////8T///8jmtgAAJrY + AACa2AAA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wDYrgAA2K4AANiuAADYrgAA////Af///2D////r//////// + /////////////////////////////////////////////////////////fvx//btxv/v3pf/6dJw/+TH + T//jxEX/+/jo////////////////////////////////////////////////////////////////6/// + /2D///8BmtgAAJrYAACa2AAAmtgAAP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////EP///3/////t//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////t////f////xD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////Df///3T////V//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////9X///90////Df///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /zP///+N////1/////////////////////////////////////////////////////////////////// + ///////////////////////X////jf///zP///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8b////VP///33///+l////y////+P////y//////// + ///////y////4////8v///+l////ff///1T///8b////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8A////4Af///////wAAD//////8AAAD/////+AAAAB/////wAAAAD////8AAAAAD////gAAAAA + H///4AAAAAAH///AAAAAAAP//4AAAAAAAf//AAAAAAAA//4AAAAAAAB//gAAAAAAAH/8AAAAAAAAP/gA + AAAAAAAf+AAAAAAAAB/wAAAAAAAAD/AAAAAAAAAH4AAAAAAAAAfgAAAAAAAAB8AAAAAAAAADwAAAAAAA + AAOAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAIAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABwAAAAAAAAAPAAAAAAAAAA+AA + AAAAAAAH4AAAAAAAAAfwAAAAAAAAD/AAAAAAAAAP+AAAAAAAAB/4AAAAAAAAH/wAAAAAAAA//gAAAAAA + AH/+AAAAAAAAf/8AAAAAAAD//4AAAAAAAf//wAAAAAAD///gAAAAAAf///gAAAAAH////AAAAAA///// + AAAAAP/////AAAAD//////AAAA///////AAAP///////4Af///8= + + + \ No newline at end of file diff --git a/Discord Media Loader/Helper/TaskBarProgress.cs b/Discord Media Loader/Helper/TaskBarProgress.cs new file mode 100644 index 0000000..93331e3 --- /dev/null +++ b/Discord Media Loader/Helper/TaskBarProgress.cs @@ -0,0 +1,65 @@ +using System; +using System.Runtime.InteropServices; + +namespace Discord_Media_Loader.Helper +{ + internal static class TaskBarProgress + { + internal enum TaskbarStates + { + NoProgress = 0, + Indeterminate = 0x1, + Normal = 0x2, + Error = 0x4, + Paused = 0x8 + } + + [ComImport] + [Guid("ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf")] + [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + private interface ITaskbarList3 + { + // ITaskbarList + [PreserveSig] + void HrInit(); + [PreserveSig] + void AddTab(IntPtr hwnd); + [PreserveSig] + void DeleteTab(IntPtr hwnd); + [PreserveSig] + void ActivateTab(IntPtr hwnd); + [PreserveSig] + void SetActiveAlt(IntPtr hwnd); + + // ITaskbarList2 + [PreserveSig] + void MarkFullscreenWindow(IntPtr hwnd, [MarshalAs(UnmanagedType.Bool)] bool fFullscreen); + + // ITaskbarList3 + [PreserveSig] + void SetProgressValue(IntPtr hwnd, UInt64 ullCompleted, UInt64 ullTotal); + [PreserveSig] + void SetProgressState(IntPtr hwnd, TaskbarStates state); + } + + [Guid("56FDF344-FD6D-11d0-958A-006097C9A090")] + [ClassInterface(ClassInterfaceType.None)] + [ComImport] + private class TaskbarInstance + { + } + + private static ITaskbarList3 taskbarInstance = (ITaskbarList3)new TaskbarInstance(); + private static bool taskbarSupported = Environment.OSVersion.Version >= new Version(6, 1); + + internal static void SetState(IntPtr windowHandle, TaskbarStates taskbarState) + { + if (taskbarSupported) taskbarInstance.SetProgressState(windowHandle, taskbarState); + } + + internal static void SetValue(IntPtr windowHandle, double progressValue, double progressMax) + { + if (taskbarSupported) taskbarInstance.SetProgressValue(windowHandle, (ulong)progressValue, (ulong)progressMax); + } + } +} diff --git a/Discord Media Loader/Helper/VersionHelper.cs b/Discord Media Loader/Helper/VersionHelper.cs new file mode 100644 index 0000000..f66f66c --- /dev/null +++ b/Discord Media Loader/Helper/VersionHelper.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace Discord_Media_Loader.Helper +{ + internal class VersionHelper + { + internal static Version CurrentVersion => Assembly.GetExecutingAssembly().GetName().Version; + + + } +} diff --git a/Discord Media Loader/Program.cs b/Discord Media Loader/Program.cs index aaffcca..7fcaca6 100644 --- a/Discord Media Loader/Program.cs +++ b/Discord Media Loader/Program.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Runtime; using System.Threading.Tasks; using System.Windows.Forms; @@ -16,7 +17,11 @@ namespace Discord_Media_Loader { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); - //Application.Run(new Form1()); + + ProfileOptimization.SetProfileRoot(Application.UserAppDataPath); + ProfileOptimization.StartProfile("profile.opt"); + + //Application.Run(new FrmDownload()); } } } diff --git a/Discord Media Loader/Properties/AssemblyInfo.cs b/Discord Media Loader/Properties/AssemblyInfo.cs index 526d158..05efb7d 100644 --- a/Discord Media Loader/Properties/AssemblyInfo.cs +++ b/Discord Media Loader/Properties/AssemblyInfo.cs @@ -8,7 +8,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyTitle("Discord Media Loader")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] +[assembly: AssemblyCompany("Serraniel")] [assembly: AssemblyProduct("Discord Media Loader")] [assembly: AssemblyCopyright("Copyright © 2017 by Serraniel")] [assembly: AssemblyTrademark("")] @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern // übernehmen, indem Sie "*" eingeben: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.1.0.0")] -[assembly: AssemblyFileVersion("0.1.0.0")] +[assembly: AssemblyVersion("0.1.2.0")] +[assembly: AssemblyFileVersion("0.1.2.0")] diff --git a/Discord Media Loader/Serraniel-64x64.ico b/Discord Media Loader/Serraniel-64x64.ico new file mode 100644 index 0000000..485aa3e Binary files /dev/null and b/Discord Media Loader/Serraniel-64x64.ico differ diff --git a/Discord Media Loader/packages.config b/Discord Media Loader/packages.config new file mode 100644 index 0000000..59c9621 --- /dev/null +++ b/Discord Media Loader/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file