Compare commits

..

No commits in common. "master" and "dependabot/add-v2-config-file" have entirely different histories.

21 changed files with 234 additions and 281 deletions

View file

@ -1,14 +0,0 @@
name: auto-merge
on:
pull_request:
jobs:
auto-merge:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- uses: ahmadnassri/action-dependabot-auto-merge@v2.1.2
with:
target: minor
github-token: ${{ secrets.PR_AUTO_MERGE }}

View file

@ -1,70 +0,0 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
schedule:
- cron: '43 14 * * 4'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'csharp' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://git.io/codeql-language-support
steps:
- name: Checkout repository
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

View file

@ -2,9 +2,6 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework> <TargetFramework>netstandard2.0</TargetFramework>
<AssemblyVersion>1.1.0.0</AssemblyVersion>
<FileVersion>1.1.0.0</FileVersion>
<Version>1.1.0</Version>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View file

@ -6,6 +6,7 @@ using Discord;
using Discord.WebSocket; using Discord.WebSocket;
using DML.Application.Classes; using DML.Application.Classes;
using DML.Client; using DML.Client;
using SweetLib.Utils;
using SweetLib.Utils.Extensions; using SweetLib.Utils.Extensions;
using static SweetLib.Utils.Logger.Logger; using static SweetLib.Utils.Logger.Logger;
@ -17,7 +18,7 @@ namespace DML.AppCore.Classes
public ulong GuildId { get; set; } public ulong GuildId { get; set; }
public ulong ChannelId { get; set; } public ulong ChannelId { get; set; }
public double KnownTimestamp { get; set; } = 0; public double KnownTimestamp { get; set; } = 0;
private double StopTimestamp { get; set; } private double StopTimestamp { get; set; } = 0;
private bool IsValid { get; set; } = true; private bool IsValid { get; set; } = true;
internal void Store() internal void Store()
@ -29,9 +30,13 @@ namespace DML.AppCore.Classes
Trace("Adding new value..."); Trace("Adding new value...");
if (jobDb.Find(x => x.ChannelId == ChannelId && x.GuildId == GuildId).Any()) if (jobDb.Find(x => x.ChannelId == ChannelId && x.GuildId == GuildId).Any())
{
jobDb.Update(this); jobDb.Update(this);
}
else else
{
jobDb.Insert(this); jobDb.Insert(this);
}
} }
public void Delete() public void Delete()
@ -93,20 +98,27 @@ namespace DML.AppCore.Classes
var realMessages = await channel.GetMessagesAsync(limit).ToArrayAsync(); var realMessages = await channel.GetMessagesAsync(limit).ToArrayAsync();
foreach (var realMessageArray in realMessages) foreach (var realMessageArray in realMessages)
foreach (var realMessage in realMessageArray) {
messages.Add(realMessage); foreach (var realMessage in realMessageArray)
{
messages.Add(realMessage);
}
}
} }
else else
{ {
var realMessages = await channel.GetMessagesAsync(lastId, Direction.Before, limit).ToArrayAsync(); var realMessages = await channel.GetMessagesAsync(lastId, Direction.Before, limit).ToArrayAsync();
foreach (var realMessageArray in realMessages) foreach (var realMessageArray in realMessages)
foreach (var realMessage in realMessageArray) {
messages.Add(realMessage); foreach (var realMessage in realMessageArray)
{
messages.Add(realMessage);
}
}
//messages = await channel.GetMessagesAsync(lastId, Direction.Before, limit).ToArray() as SocketMessage[]; //messages = await channel.GetMessagesAsync(lastId, Direction.Before, limit).ToArray() as SocketMessage[];
} }
Trace($"Downloaded {messages.Count} messages."); Trace($"Downloaded {messages.Count} messages.");
isFirst = false; isFirst = false;
@ -136,16 +148,14 @@ namespace DML.AppCore.Classes
if (m.Attachments.Count > 0) if (m.Attachments.Count > 0)
{ {
result.Add(m); result.Add(m);
Core.Scheduler.TotalAttachments += (ulong) m.Attachments.Count; Core.Scheduler.TotalAttachments += (ulong)m.Attachments.Count;
Trace($"Added message {m.Id}"); Trace($"Added message {m.Id}");
} }
Debug($"Finished message {m.Id}"); Debug($"Finished message {m.Id}");
} }
finished = finished || messages.Count < limit; finished = finished || messages.Count < limit;
} }
Trace($"Downloaded all messages for guild {GuildId} channel {ChannelId}."); Trace($"Downloaded all messages for guild {GuildId} channel {ChannelId}.");
Trace("Sorting messages..."); Trace("Sorting messages...");

View file

@ -7,6 +7,7 @@ using System.Threading.Tasks;
using Discord; using Discord;
using Discord.WebSocket; using Discord.WebSocket;
using DML.Application.Classes; using DML.Application.Classes;
using SweetLib.Utils;
using SweetLib.Utils.Extensions; using SweetLib.Utils.Extensions;
using SweetLib.Utils.Logger; using SweetLib.Utils.Logger;
@ -14,14 +15,14 @@ namespace DML.AppCore.Classes
{ {
public class JobScheduler public class JobScheduler
{ {
private ulong attachmentsDownloaded; private ulong messageScanned = 0;
private ulong messageScanned; private ulong totalAttachments = 0;
public Dictionary<int, Queue<IMessage>> RunningJobs = new Dictionary<int, Queue<IMessage>>(); private ulong attachmentsDownloaded = 0;
private ulong totalAttachments;
private bool Run { get; set; } private bool Run { get; set; } = false;
public List<Job> JobList { get; set; } = new List<Job>(); public List<Job> JobList { get; set; } = new List<Job>();
internal int RunningThreads { get; set; } public Dictionary<int, Queue<IMessage>> RunningJobs = new Dictionary<int, Queue<IMessage>>();
internal int RunningThreads { get; set; } = 0;
internal ulong MessagesScanned internal ulong MessagesScanned
{ {
@ -90,6 +91,7 @@ namespace DML.AppCore.Classes
{ {
Logger.Info("Started JobScheduler..."); Logger.Info("Started JobScheduler...");
while (Run) while (Run)
{
try try
{ {
Logger.Debug("Entering job list handler loop..."); Logger.Debug("Entering job list handler loop...");
@ -106,7 +108,6 @@ namespace DML.AppCore.Classes
Logger.Trace("Checking if job is already performed..."); Logger.Trace("Checking if job is already performed...");
hasJob = RunningJobs.ContainsKey(job.Id); hasJob = RunningJobs.ContainsKey(job.Id);
} }
Logger.Trace("Unlocked scheduler."); Logger.Trace("Unlocked scheduler.");
if (!hasJob) if (!hasJob)
@ -120,7 +121,6 @@ namespace DML.AppCore.Classes
Logger.Trace("Adding job to running jobs."); Logger.Trace("Adding job to running jobs.");
RunningJobs.Add(job.Id, queue); RunningJobs.Add(job.Id, queue);
} }
Logger.Trace("Unlocked scheduler."); Logger.Trace("Unlocked scheduler.");
Logger.Trace("Issuing job message scan..."); Logger.Trace("Issuing job message scan...");
@ -130,7 +130,10 @@ namespace DML.AppCore.Classes
continue; continue;
Logger.Trace($"Adding {messages.Count} messages to queue..."); Logger.Trace($"Adding {messages.Count} messages to queue...");
foreach (var msg in messages) queue.Enqueue(msg); foreach (var msg in messages)
{
queue.Enqueue(msg);
}
Logger.Trace($"Added {queue.Count} messages to queue."); Logger.Trace($"Added {queue.Count} messages to queue.");
if (messages.Count != queue.Count) if (messages.Count != queue.Count)
@ -152,7 +155,6 @@ namespace DML.AppCore.Classes
RunningThreads++; RunningThreads++;
startedDownload = true; startedDownload = true;
} }
Logger.Trace("Unlocked scheduler."); Logger.Trace("Unlocked scheduler.");
} }
@ -165,6 +167,7 @@ namespace DML.AppCore.Classes
{ {
Logger.Error(ex.Message); Logger.Error(ex.Message);
} }
}
}); });
} }
@ -181,7 +184,6 @@ namespace DML.AppCore.Classes
Logger.Warn($"Associating job not found! JobId: {jobId}"); Logger.Warn($"Associating job not found! JobId: {jobId}");
return; return;
} }
Logger.Trace("Found job."); Logger.Trace("Found job.");
Queue<IMessage> queue; Queue<IMessage> queue;
@ -194,10 +196,8 @@ namespace DML.AppCore.Classes
Logger.Warn($"Queue for job {jobId} not found!"); Logger.Warn($"Queue for job {jobId} not found!");
return; return;
} }
Logger.Trace("Queue found."); Logger.Trace("Queue found.");
} }
Logger.Trace("Unlocked scheduler."); Logger.Trace("Unlocked scheduler.");
Logger.Debug($"Messages to process for job {jobId}: {queue.Count}"); Logger.Debug($"Messages to process for job {jobId}: {queue.Count}");
@ -212,10 +212,8 @@ namespace DML.AppCore.Classes
Logger.Warn($"Queue for job {jobId} not found!"); Logger.Warn($"Queue for job {jobId} not found!");
return; return;
} }
Logger.Trace("Continue working..."); Logger.Trace("Continue working...");
} }
Logger.Trace("Unlocked scheduler."); Logger.Trace("Unlocked scheduler.");
Logger.Trace("Dequeueing message..."); Logger.Trace("Dequeueing message...");
@ -223,6 +221,7 @@ namespace DML.AppCore.Classes
Logger.Debug($"Attachments for message {message.Id}: {message.Attachments.Count}"); Logger.Debug($"Attachments for message {message.Id}: {message.Attachments.Count}");
foreach (var a in message.Attachments) foreach (var a in message.Attachments)
{
try try
{ {
var fileName = Path.Combine(Core.Settings.OperatingFolder, Core.Settings.FileNameScheme); var fileName = Path.Combine(Core.Settings.OperatingFolder, Core.Settings.FileNameScheme);
@ -232,46 +231,16 @@ namespace DML.AppCore.Classes
var extensionRequired = !fileName.EndsWith("%name%"); var extensionRequired = !fileName.EndsWith("%name%");
var serverName = "unknown"; var serverName = "unknown";
string nickname = null;
if (fileName.Contains("%guild%") || fileName.Contains("%nickname%")) var socketTextChannel = message.Channel as SocketTextChannel;
if (socketTextChannel != null)
{ {
var socketTextChannel = message.Channel as SocketTextChannel; serverName = socketTextChannel.Guild.Name;
if (socketTextChannel != null) serverName = Path.GetInvalidFileNameChars().Aggregate(serverName, (current, c) => current.Replace(c, ' '));
{
// fetch servername
serverName = socketTextChannel.Guild.Name;
serverName = Path.GetInvalidFileNameChars()
.Aggregate(serverName, (current, c) => current.Replace(c, ' '));
// fetch nickname
if (fileName.Contains("%nickname%"))
{
var serverUser =
socketTextChannel.GetUser(message.Author
.Id); // can be null if user left the server
if (serverUser != null)
{
nickname = serverUser.Nickname;
if (!string.IsNullOrEmpty(nickname))
nickname = Path.GetInvalidFileNameChars()
.Aggregate(nickname, (current, c) => current.Replace(c, ' '));
}
}
}
} }
// fetch channelname
var channelName = message.Channel.Name; var channelName = message.Channel.Name;
channelName = Path.GetInvalidFileNameChars() channelName = Path.GetInvalidFileNameChars().Aggregate(channelName, (current, c) => current.Replace(c, ' '));
.Aggregate(channelName, (current, c) => current.Replace(c, ' '));
// fetch username
var username = message.Author.Username;
username = Path.GetInvalidFileNameChars()
.Aggregate(username, (current, c) => current.Replace(c, ' '));
fileName = fileName =
fileName.Replace("%guild%", serverName) fileName.Replace("%guild%", serverName)
@ -280,9 +249,7 @@ namespace DML.AppCore.Classes
.Replace("%name%", a.Filename) .Replace("%name%", a.Filename)
.Replace("%id%", a.Id.ToString()) .Replace("%id%", a.Id.ToString())
.Replace("%userid%", message.Author.Id.ToString()) .Replace("%userid%", message.Author.Id.ToString())
.Replace("%username%", username) .Replace("%username%", message.Author.Username);
.Replace("%nickname%",
!string.IsNullOrEmpty(nickname) ? nickname : username);
if (extensionRequired) if (extensionRequired)
fileName += Path.GetExtension(a.Filename); fileName += Path.GetExtension(a.Filename);
@ -320,6 +287,7 @@ namespace DML.AppCore.Classes
{ {
AttachmentsDownloaded++; AttachmentsDownloaded++;
} }
}
} }
} }
finally finally
@ -332,7 +300,6 @@ namespace DML.AppCore.Classes
Logger.Trace("Decreasing thread count..."); Logger.Trace("Decreasing thread count...");
RunningThreads--; RunningThreads--;
} }
Logger.Trace("Unlocked scheduler."); Logger.Trace("Unlocked scheduler.");
} }
} }

View file

@ -38,8 +38,8 @@
<Reference Include="LiteDB, Version=4.1.4.0, Culture=neutral, PublicKeyToken=4ee40123013c9f27, processorArchitecture=MSIL"> <Reference Include="LiteDB, Version=4.1.4.0, Culture=neutral, PublicKeyToken=4ee40123013c9f27, processorArchitecture=MSIL">
<HintPath>..\packages\LiteDB.4.1.4\lib\net40\LiteDB.dll</HintPath> <HintPath>..\packages\LiteDB.4.1.4\lib\net40\LiteDB.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> <Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath> <HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Extensions.DependencyInjection, Version=3.1.6.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL"> <Reference Include="Microsoft.Extensions.DependencyInjection, Version=3.1.6.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.DependencyInjection.3.1.6\lib\net461\Microsoft.Extensions.DependencyInjection.dll</HintPath> <HintPath>..\packages\Microsoft.Extensions.DependencyInjection.3.1.6\lib\net461\Microsoft.Extensions.DependencyInjection.dll</HintPath>

View file

@ -1,19 +1,22 @@
namespace DML.Application.Helper using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DML.Application.Helper
{ {
internal class IdentifiedString<T> internal class IdentifiedString<T>
{ {
internal T Id { get; set; }
internal string Caption { get; set; }
internal IdentifiedString(T id, string caption) internal IdentifiedString(T id, string caption)
{ {
Id = id; Id = id;
Caption = caption; Caption = caption;
} }
internal T Id { get; set; } public override string ToString() => Caption;
internal string Caption { get; set; }
public override string ToString()
{
return Caption;
}
} }
} }

View file

@ -1,37 +1,37 @@
using System; using System;
using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using Discord; using Discord;
using Discord.WebSocket; using Discord.WebSocket;
using DML.AppCore.Classes; using DML.AppCore.Classes;
using DML.Application.Classes; using DML.Application.Classes;
using DML.Application.Helper; using DML.Application.Helper;
using DML.Application.Properties;
using DML.Client; using DML.Client;
using static DML.Client.DMLClient;
using static SweetLib.Utils.Logger.Logger; using static SweetLib.Utils.Logger.Logger;
namespace DML.Application namespace DML.Application
{ {
internal enum OnlineState enum OnlineState
{ {
Online, Online,
Idle, Idle,
DoNotDisturb, DoNotDisturb,
Invisible Invisible
} }
public partial class MainForm : Form public partial class MainForm : Form
{ {
private bool IsInitialized { get; set; } = false;
public MainForm() public MainForm()
{ {
InitializeComponent(); InitializeComponent();
} }
private bool IsInitialized { get; set; } private void MainForm_Shown(object sender, System.EventArgs e)
private void MainForm_Shown(object sender, EventArgs e)
{ {
Trace("MainForm shown executed."); Trace("MainForm shown executed.");
RefreshComponents(); RefreshComponents();
@ -61,8 +61,7 @@ namespace DML.Application
{ {
Trace("Adding guilds to component..."); Trace("Adding guilds to component...");
cbGuild.Items.AddRange(DMLClient.Client.Guilds.Where(g => g.Name != null).OrderBy(g => g.Name) cbGuild.Items.AddRange(DMLClient.Client.Guilds.Where(g => g.Name != null).OrderBy(g => g.Name).Select(g => new IdentifiedString<ulong>(g.Id, g.Name)).ToArray());
.Select(g => new IdentifiedString<ulong>(g.Id, g.Name)).ToArray());
cbGuild.SelectedIndex = 0; cbGuild.SelectedIndex = 0;
Trace("Guild component initialized."); Trace("Guild component initialized.");
@ -72,14 +71,15 @@ namespace DML.Application
var oldIndex = lbxJobs.SelectedIndex; var oldIndex = lbxJobs.SelectedIndex;
lbxJobs.Items.Clear(); lbxJobs.Items.Clear();
foreach (var job in Core.Scheduler.JobList) foreach (var job in Core.Scheduler.JobList)
lbxJobs.Items.Add(new IdentifiedString<int>(job.Id, {
$"{FindServerById(job.GuildId)?.Name}:{FindChannelById(FindServerById(job.GuildId), job.ChannelId)?.Name}")); lbxJobs.Items.Add(new IdentifiedString<int>(job.Id, $"{FindServerById(job.GuildId)?.Name}:{FindChannelById(FindServerById(job.GuildId), job.ChannelId)?.Name}"));
}
lbxJobs.SelectedIndex = oldIndex; lbxJobs.SelectedIndex = oldIndex;
lbStatus.Text = DMLClient.Client.CurrentUser.Status.ToString(); lbStatus.Text = DMLClient.Client.CurrentUser.Status.ToString();
} }
private void DoSomethingChanged(object sender, EventArgs e) private void DoSomethingChanged(object sender, System.EventArgs e)
{ {
Debug($"DoSomethingChanged excuted by {sender}."); Debug($"DoSomethingChanged excuted by {sender}.");
if (!IsInitialized) if (!IsInitialized)
@ -98,7 +98,7 @@ namespace DML.Application
Core.Settings.SkipExistingFiles = cbSkipExisting.Checked; Core.Settings.SkipExistingFiles = cbSkipExisting.Checked;
Trace("Updating thread limit..."); Trace("Updating thread limit...");
Core.Settings.ThreadLimit = (int) edThreadLimit.Value; Core.Settings.ThreadLimit = (int)edThreadLimit.Value;
Trace("Storing new settings..."); Trace("Storing new settings...");
Core.Settings.Store(); Core.Settings.Store();
@ -106,7 +106,7 @@ namespace DML.Application
Info("New settings have been saved."); Info("New settings have been saved.");
} }
private void btnSearchFolders_Click(object sender, EventArgs e) private void btnSearchFolders_Click(object sender, System.EventArgs e)
{ {
Trace("Operating folder button pressed."); Trace("Operating folder button pressed.");
using (var browserDialog = new FolderBrowserDialog()) using (var browserDialog = new FolderBrowserDialog())
@ -149,7 +149,7 @@ namespace DML.Application
return (from c in server.TextChannels where c.Id == id select c).FirstOrDefault(); return (from c in server.TextChannels where c.Id == id select c).FirstOrDefault();
} }
private void cbGuild_SelectedIndexChanged(object sender, EventArgs e) private void cbGuild_SelectedIndexChanged(object sender, System.EventArgs e)
{ {
Trace("Guild index changed."); Trace("Guild index changed.");
Debug("Updating channel dropdown component..."); Debug("Updating channel dropdown component...");
@ -157,7 +157,7 @@ namespace DML.Application
UseWaitCursor = true; UseWaitCursor = true;
try try
{ {
var guild = FindServerById(((IdentifiedString<ulong>) cbGuild.SelectedItem).Id); var guild = FindServerById(((IdentifiedString<ulong>)cbGuild.SelectedItem).Id);
if (guild != null) if (guild != null)
{ {
@ -166,8 +166,7 @@ namespace DML.Application
Trace("Adding new channels..."); Trace("Adding new channels...");
cbChannel.Items.AddRange(guild.TextChannels.OrderBy(c => c.Position) cbChannel.Items.AddRange(guild.TextChannels.OrderBy(c => c.Position).Select(c => new IdentifiedString<ulong>(c.Id, c.Name)).ToArray());
.Select(c => new IdentifiedString<ulong>(c.Id, c.Name)).ToArray());
Trace($"Added {cbChannel.Items.Count} channels."); Trace($"Added {cbChannel.Items.Count} channels.");
@ -186,17 +185,17 @@ namespace DML.Application
Debug("Finished updating channel dropdown component."); Debug("Finished updating channel dropdown component.");
} }
private void btnAddJob_Click(object sender, EventArgs e) private void btnAddJob_Click(object sender, System.EventArgs e)
{ {
var job = new Job var job = new Job
{ {
GuildId = ((IdentifiedString<ulong>) cbGuild.SelectedItem).Id, GuildId = ((IdentifiedString<ulong>)cbGuild.SelectedItem).Id,
ChannelId = ((IdentifiedString<ulong>) cbChannel.SelectedItem).Id ChannelId = ((IdentifiedString<ulong>)cbChannel.SelectedItem).Id
}; };
if (!(from j in Core.Scheduler.JobList if (!(from j in Core.Scheduler.JobList
where j.GuildId == job.GuildId && j.ChannelId == job.ChannelId where j.GuildId == job.GuildId && j.ChannelId == job.ChannelId
select j).Any()) select j).Any())
{ {
job.Store(); job.Store();
Core.Scheduler.JobList.Add(job); Core.Scheduler.JobList.Add(job);
@ -205,7 +204,7 @@ namespace DML.Application
RefreshComponents(); RefreshComponents();
} }
private void btnDelete_Click(object sender, EventArgs e) private void btnDelete_Click(object sender, System.EventArgs e)
{ {
Trace("Deleting job pressed."); Trace("Deleting job pressed.");
@ -215,7 +214,7 @@ namespace DML.Application
MessageBox.Show("No job has been seleted.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); MessageBox.Show("No job has been seleted.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
} }
var jobId = ((IdentifiedString<int>) lbxJobs.SelectedItem).Id; var jobId = ((IdentifiedString<int>)lbxJobs.SelectedItem).Id;
var job = Core.Scheduler.JobList.FirstOrDefault(j => j.Id == jobId); var job = Core.Scheduler.JobList.FirstOrDefault(j => j.Id == jobId);
if (job != null) if (job != null)
@ -230,13 +229,13 @@ namespace DML.Application
RefreshComponents(); RefreshComponents();
} }
private void tmrRefreshProgress_Tick(object sender, EventArgs e) private void tmrRefreshProgress_Tick(object sender, System.EventArgs e)
{ {
var scanned = Core.Scheduler.MessagesScanned; var scanned = Core.Scheduler.MessagesScanned;
var totalAttachments = Core.Scheduler.TotalAttachments; var totalAttachments = Core.Scheduler.TotalAttachments;
var done = Core.Scheduler.AttachmentsDownloaded; var done = Core.Scheduler.AttachmentsDownloaded;
var progress = totalAttachments > 0 ? (int) (100 * done / totalAttachments) : 0; var progress = totalAttachments > 0 ? (int)(100 * done / totalAttachments) : 0;
progress = Math.Min(Math.Max(0, progress), 100); progress = Math.Min(Math.Max(0, progress), 100);
pgbProgress.Maximum = 100; pgbProgress.Maximum = 100;
pgbProgress.Value = progress; pgbProgress.Value = progress;
@ -244,19 +243,19 @@ namespace DML.Application
lbProgress.Text = $"Scanned: {scanned} Downloaded: {done} Open: {totalAttachments - done}"; lbProgress.Text = $"Scanned: {scanned} Downloaded: {done} Open: {totalAttachments - done}";
} }
private void aboutToolStripMenuItem_Click(object sender, EventArgs e) private void aboutToolStripMenuItem_Click(object sender, System.EventArgs e)
{ {
MessageBox.Show(Resources.AboutString); MessageBox.Show(Properties.Resources.AboutString);
} }
private void visitGithubToolStripMenuItem_Click(object sender, EventArgs e) private void visitGithubToolStripMenuItem_Click(object sender, System.EventArgs e)
{ {
Process.Start("https://github.com/Serraniel/DiscordMediaLoader/"); Process.Start("https://github.com/Serraniel/DiscordMediaLoader/");
} }
private async void toolStripDropDownButton1_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e) private async void toolStripDropDownButton1_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e)
{ {
var state = (OnlineState) Convert.ToInt32(e.ClickedItem.Tag); OnlineState state = (OnlineState)Convert.ToInt32(e.ClickedItem.Tag);
lbStatus.Text = state.ToString(); lbStatus.Text = state.ToString();
tmrTriggerRefresh.Start(); tmrTriggerRefresh.Start();
@ -293,7 +292,7 @@ namespace DML.Application
private void btnFileNameHelp_Click(object sender, EventArgs e) private void btnFileNameHelp_Click(object sender, EventArgs e)
{ {
MessageBox.Show(Resources.FileNameInfo); MessageBox.Show(Properties.Resources.FileNameInfo);
} }
} }
} }

View file

@ -1,4 +1,5 @@
using System.Reflection; using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
// Allgemeine Informationen über eine Assembly werden über die folgenden // Allgemeine Informationen über eine Assembly werden über die folgenden
@ -31,5 +32,5 @@ using System.Runtime.InteropServices;
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern // Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
// übernehmen, indem Sie "*" eingeben: // übernehmen, indem Sie "*" eingeben:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.5.3.0")] [assembly: AssemblyVersion("1.4.0.0")]
[assembly: AssemblyFileVersion("1.5.3.0")] [assembly: AssemblyFileVersion("1.4.0.0")]

View file

@ -86,8 +86,7 @@ namespace DML.Application.Properties {
///%channel% -&gt; channel name ///%channel% -&gt; channel name
///%timestamp% -&gt; message timestamp (Unix timestamp) ///%timestamp% -&gt; message timestamp (Unix timestamp)
///%name% -&gt; attachment filename ///%name% -&gt; attachment filename
///%username% -&gt; author username ///%username% -&gt; author name
///%nickname% -&gt; author nickname (if unassigned, username will be used)
///%id% -&gt; attachment id (given by Discord) ///%id% -&gt; attachment id (given by Discord)
///%userid% -&gt; author id (given by discord) ähnelt. ///%userid% -&gt; author id (given by discord) ähnelt.
/// </summary> /// </summary>

View file

@ -139,8 +139,7 @@ Flaticons (Roundicons Circle Flat) - Flaticon Basic License</value>
%channel% -&gt; channel name %channel% -&gt; channel name
%timestamp% -&gt; message timestamp (Unix timestamp) %timestamp% -&gt; message timestamp (Unix timestamp)
%name% -&gt; attachment filename %name% -&gt; attachment filename
%username% -&gt; author username %username% -&gt; author name
%nickname% -&gt; author nickname (if unassigned, username will be used)
%id% -&gt; attachment id (given by Discord) %id% -&gt; attachment id (given by Discord)
%userid% -&gt; author id (given by discord)</value> %userid% -&gt; author id (given by discord)</value>
</data> </data>

View file

@ -62,10 +62,6 @@
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" /> <bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
</dependentAssembly> </dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding> </assemblyBinding>
</runtime> </runtime>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /></startup></configuration> <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /></startup></configuration>

View file

@ -1,28 +1,84 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="LiteDB" version="5.0.9" targetFramework="net461" /> <package id="LiteDB" version="4.1.4" targetFramework="net461" />
<package id="Microsoft.Bcl.AsyncInterfaces" version="6.0.0" targetFramework="net461" /> <package id="Microsoft.Bcl.AsyncInterfaces" version="1.1.1" targetFramework="net461" />
<package id="Microsoft.NETCore.Platforms" version="5.0.1" targetFramework="net461" /> <package id="Microsoft.Extensions.DependencyInjection" version="3.1.6" targetFramework="net461" />
<package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="3.1.6" targetFramework="net461" />
<package id="Microsoft.NETCore.Platforms" version="3.1.1" targetFramework="net461" />
<package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net461" /> <package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net461" />
<package id="Microsoft.Win32.Registry" version="5.0.0" targetFramework="net461" /> <package id="Microsoft.Win32.Registry" version="4.7.0" targetFramework="net461" />
<package id="NETStandard.Library" version="2.0.3" targetFramework="net461" /> <package id="NETStandard.Library" version="2.0.3" targetFramework="net461" />
<package id="Newtonsoft.Json" version="12.0.2" targetFramework="net461" /> <package id="Newtonsoft.Json" version="12.0.2" targetFramework="net461" />
<package id="Nito.AsyncEx" version="5.0.0" targetFramework="net461" />
<package id="Nito.AsyncEx.Context" version="5.0.0" targetFramework="net461" />
<package id="Nito.AsyncEx.Coordination" version="5.0.0" targetFramework="net461" />
<package id="Nito.AsyncEx.Interop.WaitHandles" version="5.0.0" targetFramework="net461" />
<package id="Nito.AsyncEx.Oop" version="5.0.0" targetFramework="net461" />
<package id="Nito.AsyncEx.Tasks" version="5.0.0" targetFramework="net461" />
<package id="Nito.Cancellation" version="1.0.5" targetFramework="net461" />
<package id="Nito.Collections.Deque" version="1.0.4" targetFramework="net461" />
<package id="Nito.Disposables" version="2.1.0" targetFramework="net461" />
<package id="Octokit" version="0.48.0" targetFramework="net461" />
<package id="RestSharp" version="106.11.4" targetFramework="net461" />
<package id="SharpRaven" version="2.4.0" targetFramework="net461" /> <package id="SharpRaven" version="2.4.0" targetFramework="net461" />
<package id="SuperSocket.ClientEngine.Core" version="0.10.0" targetFramework="net461" />
<package id="SweetLib" version="0.2.1-alpha" targetFramework="net461" /> <package id="SweetLib" version="0.2.1-alpha" targetFramework="net461" />
<package id="System.AppContext" version="4.3.0" targetFramework="net461" requireReinstallation="true" />
<package id="System.Buffers" version="4.5.1" targetFramework="net461" /> <package id="System.Buffers" version="4.5.1" targetFramework="net461" />
<package id="System.Collections.Immutable" version="5.0.0" targetFramework="net461" /> <package id="System.Collections" version="4.3.0" targetFramework="net461" />
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net461" />
<package id="System.Collections.Immutable" version="1.7.1" targetFramework="net461" />
<package id="System.Collections.Specialized" version="4.3.0" targetFramework="net461" />
<package id="System.ComponentModel" version="4.3.0" targetFramework="net461" />
<package id="System.Console" version="4.3.1" targetFramework="net461" />
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net461" />
<package id="System.Diagnostics.DiagnosticSource" version="4.7.1" targetFramework="net461" />
<package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="net461" />
<package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="net461" requireReinstallation="true" />
<package id="System.Globalization" version="4.3.0" targetFramework="net461" />
<package id="System.Globalization.Calendars" version="4.3.0" targetFramework="net461" />
<package id="System.Interactive.Async" version="4.0.0" targetFramework="net461" />
<package id="System.IO" version="4.3.0" targetFramework="net461" requireReinstallation="true" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net461" />
<package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="net461" />
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="net461" />
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="net461" />
<package id="System.Linq" version="4.3.0" targetFramework="net461" requireReinstallation="true" /> <package id="System.Linq" version="4.3.0" targetFramework="net461" requireReinstallation="true" />
<package id="System.Linq.Async" version="4.1.1" targetFramework="net461" /> <package id="System.Linq.Async" version="4.1.1" targetFramework="net461" />
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="net461" requireReinstallation="true" />
<package id="System.Memory" version="4.5.4" targetFramework="net461" /> <package id="System.Memory" version="4.5.4" targetFramework="net461" />
<package id="System.Net.Http" version="4.3.4" targetFramework="net461" />
<package id="System.Net.NameResolution" version="4.3.0" targetFramework="net461" />
<package id="System.Net.Primitives" version="4.3.1" targetFramework="net461" />
<package id="System.Net.Security" version="4.3.2" targetFramework="net461" /> <package id="System.Net.Security" version="4.3.2" targetFramework="net461" />
<package id="System.Net.Sockets" version="4.3.0" targetFramework="net461" />
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net461" /> <package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net461" />
<package id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" targetFramework="net461" /> <package id="System.ObjectModel" version="4.3.0" targetFramework="net461" />
<package id="System.Reflection" version="4.3.0" targetFramework="net461" requireReinstallation="true" />
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="net461" />
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="net461" />
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime" version="4.3.1" targetFramework="net461" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.7.1" targetFramework="net461" />
<package id="System.Runtime.Extensions" version="4.3.1" targetFramework="net461" />
<package id="System.Runtime.Handles" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net461" requireReinstallation="true" />
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net461" /> <package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net461" />
<package id="System.Security.AccessControl" version="5.0.0" targetFramework="net461" /> <package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net461" />
<package id="System.Security.AccessControl" version="4.7.0" targetFramework="net461" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.1" targetFramework="net461" /> <package id="System.Security.Cryptography.Algorithms" version="4.3.1" targetFramework="net461" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net461" /> <package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net461" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net461" /> <package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net461" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.2" targetFramework="net461" /> <package id="System.Security.Cryptography.X509Certificates" version="4.3.2" targetFramework="net461" />
<package id="System.Security.Principal.Windows" version="5.0.0" targetFramework="net461" /> <package id="System.Security.Principal.Windows" version="4.7.0" targetFramework="net461" />
<package id="System.Text.Encoding" version="4.3.0" targetFramework="net461" />
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net461" />
<package id="System.Text.RegularExpressions" version="4.3.1" targetFramework="net461" />
<package id="System.Threading" version="4.3.0" targetFramework="net461" />
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="net461" />
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net461" /> <package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net461" />
<package id="System.Threading.Timer" version="4.3.0" targetFramework="net461" />
<package id="System.Xml.ReaderWriter" version="4.3.1" targetFramework="net461" />
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="net461" />
<package id="WebSocket4Net" version="0.15.2" targetFramework="net461" />
</packages> </packages>

View file

@ -65,10 +65,6 @@
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" /> <bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
</dependentAssembly> </dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding> </assemblyBinding>
</runtime> </runtime>
</configuration> </configuration>

View file

@ -42,8 +42,8 @@
<StartupObject /> <StartupObject />
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> <Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath> <HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Extensions.DependencyInjection, Version=3.1.6.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL"> <Reference Include="Microsoft.Extensions.DependencyInjection, Version=3.1.6.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.DependencyInjection.3.1.6\lib\net461\Microsoft.Extensions.DependencyInjection.dll</HintPath> <HintPath>..\packages\Microsoft.Extensions.DependencyInjection.3.1.6\lib\net461\Microsoft.Extensions.DependencyInjection.dll</HintPath>

View file

@ -5,19 +5,23 @@ using Nito.AsyncEx;
namespace Discord_Media_Loader namespace Discord_Media_Loader
{ {
internal static class Program static class Program
{ {
[STAThread] [STAThread]
private static void Main(string[] paramStrings) static void Main(string[] paramStrings)
{ {
Application.EnableVisualStyles(); Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false); Application.SetCompatibleTextRenderingDefault(false);
var splashScreen = new FrmSplash(); var splashScreen = new FrmSplash();
if (splashScreen.ShowDialog() == DialogResult.OK) if (splashScreen.ShowDialog() == DialogResult.OK)
DoLaunch(paramStrings); {
DoLaunch(paramStrings);
}
else else
{
Application.Restart(); Application.Restart();
}
} }
private static void DoLaunch(string[] paramStrings) private static void DoLaunch(string[] paramStrings)

View file

@ -1,4 +1,5 @@
using System.Reflection; using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
// Allgemeine Informationen über eine Assembly werden über die folgenden // Allgemeine Informationen über eine Assembly werden über die folgenden
@ -31,5 +32,5 @@ using System.Runtime.InteropServices;
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern // Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
// übernehmen, indem Sie "*" eingeben: // übernehmen, indem Sie "*" eingeben:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.1.0.0")] [assembly: AssemblyVersion("1.0.3.0")]
[assembly: AssemblyFileVersion("1.1.0.0")] [assembly: AssemblyFileVersion("1.0.3.0")]

View file

@ -1,30 +1,72 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="Microsoft.Bcl.AsyncInterfaces" version="6.0.0" targetFramework="net461" /> <package id="Microsoft.Bcl.AsyncInterfaces" version="1.1.1" targetFramework="net461" />
<package id="Microsoft.NETCore.Platforms" version="5.0.1" targetFramework="net461" /> <package id="Microsoft.Extensions.DependencyInjection" version="3.1.6" targetFramework="net461" />
<package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="3.1.6" targetFramework="net461" />
<package id="Microsoft.NETCore.Platforms" version="3.1.1" targetFramework="net461" />
<package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net461" /> <package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net461" />
<package id="NETStandard.Library" version="2.0.3" targetFramework="net461" /> <package id="NETStandard.Library" version="2.0.3" targetFramework="net461" />
<package id="Newtonsoft.Json" version="12.0.2" targetFramework="net461" /> <package id="Newtonsoft.Json" version="12.0.2" targetFramework="net461" />
<package id="Nito.AsyncEx" version="5.1.2" targetFramework="net461" /> <package id="Nito.AsyncEx" version="5.0.0" targetFramework="net461" />
<package id="Nito.AsyncEx.Context" version="5.1.2" targetFramework="net461" /> <package id="Nito.AsyncEx.Context" version="5.0.0" targetFramework="net461" />
<package id="Nito.AsyncEx.Coordination" version="5.1.2" targetFramework="net461" /> <package id="Nito.AsyncEx.Coordination" version="5.0.0" targetFramework="net461" />
<package id="Nito.AsyncEx.Interop.WaitHandles" version="5.1.2" targetFramework="net461" /> <package id="Nito.AsyncEx.Interop.WaitHandles" version="5.0.0" targetFramework="net461" />
<package id="Nito.AsyncEx.Oop" version="5.1.2" targetFramework="net461" /> <package id="Nito.AsyncEx.Oop" version="5.0.0" targetFramework="net461" />
<package id="Nito.AsyncEx.Tasks" version="5.1.2" targetFramework="net461" /> <package id="Nito.AsyncEx.Tasks" version="5.0.0" targetFramework="net461" />
<package id="Nito.Cancellation" version="1.1.2" targetFramework="net461" /> <package id="Nito.Cancellation" version="1.0.5" targetFramework="net461" />
<package id="Nito.Collections.Deque" version="1.1.1" targetFramework="net461" /> <package id="Nito.Collections.Deque" version="1.0.4" targetFramework="net461" />
<package id="Nito.Disposables" version="2.2.1" targetFramework="net461" /> <package id="Nito.Disposables" version="2.1.0" targetFramework="net461" />
<package id="Octokit" version="0.50.0" targetFramework="net461" /> <package id="Octokit" version="0.48.0" targetFramework="net461" />
<package id="System.AppContext" version="4.3.0" targetFramework="net461" />
<package id="System.Buffers" version="4.5.1" targetFramework="net461" /> <package id="System.Buffers" version="4.5.1" targetFramework="net461" />
<package id="System.Collections.Immutable" version="5.0.0" targetFramework="net461" /> <package id="System.Collections" version="4.3.0" targetFramework="net461" />
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net461" />
<package id="System.Collections.Immutable" version="1.7.1" targetFramework="net461" />
<package id="System.ComponentModel" version="4.3.0" targetFramework="net461" />
<package id="System.Console" version="4.3.1" targetFramework="net461" />
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net461" />
<package id="System.Diagnostics.DiagnosticSource" version="4.7.1" targetFramework="net461" />
<package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="net461" />
<package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="net461" />
<package id="System.Globalization" version="4.3.0" targetFramework="net461" />
<package id="System.Globalization.Calendars" version="4.3.0" targetFramework="net461" />
<package id="System.Interactive.Async" version="4.0.0" targetFramework="net461" />
<package id="System.IO" version="4.3.0" targetFramework="net461" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net461" />
<package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="net461" />
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="net461" />
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="net461" />
<package id="System.Linq" version="4.3.0" targetFramework="net461" /> <package id="System.Linq" version="4.3.0" targetFramework="net461" />
<package id="System.Linq.Async" version="4.1.1" targetFramework="net461" />
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="net461" />
<package id="System.Memory" version="4.5.4" targetFramework="net461" /> <package id="System.Memory" version="4.5.4" targetFramework="net461" />
<package id="System.Net.Http" version="4.3.4" targetFramework="net461" />
<package id="System.Net.Primitives" version="4.3.1" targetFramework="net461" />
<package id="System.Net.Sockets" version="4.3.0" targetFramework="net461" />
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net461" /> <package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net461" />
<package id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" targetFramework="net461" /> <package id="System.ObjectModel" version="4.3.0" targetFramework="net461" />
<package id="System.Reflection" version="4.3.0" targetFramework="net461" />
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="net461" />
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="net461" />
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime" version="4.3.1" targetFramework="net461" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.7.1" targetFramework="net461" />
<package id="System.Runtime.Extensions" version="4.3.1" targetFramework="net461" />
<package id="System.Runtime.Handles" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net461" /> <package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net461" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.1" targetFramework="net461" /> <package id="System.Security.Cryptography.Algorithms" version="4.3.1" targetFramework="net461" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net461" /> <package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net461" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net461" /> <package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net461" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.2" targetFramework="net461" /> <package id="System.Security.Cryptography.X509Certificates" version="4.3.2" targetFramework="net461" />
<package id="System.Text.Encoding" version="4.3.0" targetFramework="net461" />
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net461" />
<package id="System.Text.RegularExpressions" version="4.3.1" targetFramework="net461" />
<package id="System.Threading" version="4.3.0" targetFramework="net461" />
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="net461" />
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net461" /> <package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net461" />
<package id="System.Threading.Timer" version="4.3.0" targetFramework="net461" />
<package id="System.Xml.ReaderWriter" version="4.3.1" targetFramework="net461" />
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="net461" />
</packages> </packages>

View file

@ -4,7 +4,7 @@
*Discord Media Loader* is a small tool for downloading all attachments of *Discord* servers. *Discord Media Loader* is a small tool for downloading all attachments of *Discord* servers.
**[Downloadlatest release](https://github.com/Serraniel/DiscordMediaLoader/releases)** or install with *winget*: `winget install -e --id Serraniel.DiscordMediaLoader`. **[Downloadlatest release](https://github.com/Serraniel/DiscordMediaLoader/releases)** or install with *winget*: `winget install Serraniel.DiscordMediaLoder -e`.
**Build:** [![build status badge](https://ci.serraniel.com/app/rest/builds/buildType:(DiscordMediaLoader_BuildMaster)/statusIcon)](https://ci.serraniel.com/viewType.html?buildTypeId=DiscordMediaLoader_BuildMaster) **Build:** [![build status badge](https://ci.serraniel.com/app/rest/builds/buildType:(DiscordMediaLoader_BuildMaster)/statusIcon)](https://ci.serraniel.com/viewType.html?buildTypeId=DiscordMediaLoader_BuildMaster)

View file

@ -2,7 +2,7 @@
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "Discord Media Loader" #define MyAppName "Discord Media Loader"
#define MyAppVersion "1.5.3.0" #define MyAppVersion "1.4.0.0"
#define MyAppPublisher "Serraniel" #define MyAppPublisher "Serraniel"
#define MyAppURL "https://github.com/Serraniel/DiscordMediaLoader" #define MyAppURL "https://github.com/Serraniel/DiscordMediaLoader"
#define MyAppExeName "Discord Media Loader.exe" #define MyAppExeName "Discord Media Loader.exe"
@ -39,66 +39,36 @@ Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 6.1; Check: not IsAdminInstallMode Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 6.1; Check: not IsAdminInstallMode
[Files] [Files]
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Discord Media Loader.Application.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Discord Media Loader.Application.dll.config"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Discord Media Loader.Application.pdb"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Discord Media Loader.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Discord Media Loader.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Discord Media Loader.exe.config"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Discord Media Loader.Application.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Discord Media Loader.pdb"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Discord.Net.Core.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Discord.Net.Core.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Discord.Net.Core.pdb"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Discord.Net.Core.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Discord.Net.Rest.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Discord.Net.Rest.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Discord.Net.Rest.pdb"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Discord.Net.Rest.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Discord.Net.WebSocket.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Discord.Net.WebSocket.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Discord.Net.WebSocket.pdb"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Discord.Net.WebSocket.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\DML.Client.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\DML.Client.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\DML.Client.pdb"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\LiteDB.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\LiteDB.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\LiteDB.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Microsoft.Bcl.AsyncInterfaces.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Microsoft.Bcl.AsyncInterfaces.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Microsoft.Bcl.AsyncInterfaces.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Microsoft.Extensions.DependencyInjection.Abstractions.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Microsoft.Extensions.DependencyInjection.Abstractions.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Microsoft.Extensions.DependencyInjection.Abstractions.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Microsoft.Extensions.DependencyInjection.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Microsoft.Extensions.DependencyInjection.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Microsoft.Extensions.DependencyInjection.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Microsoft.Win32.Primitives.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Microsoft.Win32.Primitives.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Microsoft.Win32.Registry.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Microsoft.Win32.Registry.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Microsoft.Win32.Registry.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\netstandard.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\netstandard.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Newtonsoft.Json.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Newtonsoft.Json.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Newtonsoft.Json.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.AsyncEx.Context.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.AsyncEx.Context.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.AsyncEx.Context.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.AsyncEx.Coordination.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.AsyncEx.Coordination.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.AsyncEx.Coordination.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.AsyncEx.Interop.WaitHandles.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.AsyncEx.Interop.WaitHandles.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.AsyncEx.Interop.WaitHandles.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.AsyncEx.Oop.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.AsyncEx.Oop.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.AsyncEx.Oop.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.AsyncEx.Tasks.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.AsyncEx.Tasks.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.AsyncEx.Tasks.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.Cancellation.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.Cancellation.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.Cancellation.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.Collections.Deque.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.Collections.Deque.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.Collections.Deque.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.Disposables.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.Disposables.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Nito.Disposables.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Octokit.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Octokit.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Octokit.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\SharpRaven.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\SharpRaven.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\SweetLib.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\SweetLib.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\SweetLib.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.AppContext.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.AppContext.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Buffers.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Buffers.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Buffers.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Collections.Concurrent.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Collections.Concurrent.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Collections.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Collections.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Collections.Immutable.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Collections.Immutable.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Collections.Immutable.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Collections.NonGeneric.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Collections.NonGeneric.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Collections.Specialized.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Collections.Specialized.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.ComponentModel.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.ComponentModel.dll"; DestDir: "{app}"; Flags: ignoreversion
@ -110,7 +80,6 @@ Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media L
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Diagnostics.Contracts.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Diagnostics.Contracts.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Diagnostics.Debug.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Diagnostics.Debug.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Diagnostics.DiagnosticSource.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Diagnostics.DiagnosticSource.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Diagnostics.DiagnosticSource.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Diagnostics.FileVersionInfo.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Diagnostics.FileVersionInfo.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Diagnostics.Process.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Diagnostics.Process.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Diagnostics.StackTrace.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Diagnostics.StackTrace.dll"; DestDir: "{app}"; Flags: ignoreversion
@ -123,6 +92,7 @@ Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media L
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Globalization.Calendars.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Globalization.Calendars.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Globalization.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Globalization.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Globalization.Extensions.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Globalization.Extensions.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Interactive.Async.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.IO.Compression.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.IO.Compression.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.IO.Compression.ZipFile.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.IO.Compression.ZipFile.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.IO.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.IO.dll"; DestDir: "{app}"; Flags: ignoreversion
@ -135,13 +105,11 @@ Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media L
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.IO.Pipes.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.IO.Pipes.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.IO.UnmanagedMemoryStream.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.IO.UnmanagedMemoryStream.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Linq.Async.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Linq.Async.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Linq.Async.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Linq.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Linq.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Linq.Expressions.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Linq.Expressions.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Linq.Parallel.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Linq.Parallel.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Linq.Queryable.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Linq.Queryable.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Memory.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Memory.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Memory.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Net.Http.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Net.Http.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Net.NameResolution.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Net.NameResolution.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Net.NetworkInformation.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Net.NetworkInformation.dll"; DestDir: "{app}"; Flags: ignoreversion
@ -154,7 +122,6 @@ Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media L
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Net.WebSockets.Client.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Net.WebSockets.Client.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Net.WebSockets.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Net.WebSockets.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Numerics.Vectors.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Numerics.Vectors.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Numerics.Vectors.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.ObjectModel.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.ObjectModel.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Reflection.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Reflection.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Reflection.Extensions.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Reflection.Extensions.dll"; DestDir: "{app}"; Flags: ignoreversion
@ -163,7 +130,6 @@ Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media L
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Resources.ResourceManager.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Resources.ResourceManager.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Resources.Writer.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Resources.Writer.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Runtime.CompilerServices.Unsafe.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Runtime.CompilerServices.Unsafe.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Runtime.CompilerServices.Unsafe.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Runtime.CompilerServices.VisualC.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Runtime.CompilerServices.VisualC.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Runtime.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Runtime.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Runtime.Extensions.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Runtime.Extensions.dll"; DestDir: "{app}"; Flags: ignoreversion
@ -190,7 +156,6 @@ Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media L
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Threading.Overlapped.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Threading.Overlapped.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Threading.Tasks.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Threading.Tasks.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Threading.Tasks.Extensions.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Threading.Tasks.Extensions.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Threading.Tasks.Extensions.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Threading.Tasks.Parallel.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Threading.Tasks.Parallel.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Threading.Thread.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Threading.Thread.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Threading.ThreadPool.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Threading.ThreadPool.dll"; DestDir: "{app}"; Flags: ignoreversion
@ -202,6 +167,10 @@ Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media L
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Xml.XmlSerializer.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Xml.XmlSerializer.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Xml.XPath.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Xml.XPath.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Xml.XPath.XDocument.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\System.Xml.XPath.XDocument.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Discord Media Loader.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Discord Media Loader.Application.dll.config"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\Daniel\Documents\Projects\Discord Media Loader\Discord Media Loader\bin\Release\Discord Media Loader.exe.config"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
; NOTE: Don't use "Flags: ignoreversion" on any shared system files ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons] [Icons]
@ -212,5 +181,3 @@ Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Fil
[Run] [Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

@ -1 +1 @@
Subproject commit 373318d3eae295f789c11a24948d86690db91a0f Subproject commit 06155e03a23e9fca0c865f65d0675d3dd79c90a8