Skip to content

Commit

Permalink
Added support for subcategories specified via subfolders
Browse files Browse the repository at this point in the history
  • Loading branch information
openbullet authored Oct 1, 2019
1 parent be62fd3 commit 47576fc
Showing 1 changed file with 20 additions and 9 deletions.
29 changes: 20 additions & 9 deletions OpenBulletAPI/Services/ConfigService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,22 +30,33 @@ public MemoryStream Get(string[] groups)
foreach (var group in groups.Where(g => g.Trim() != ""))
{
var dir = Path.Combine(_configFolder, group);
if (Directory.Exists(dir))
{
foreach(var file in Directory.EnumerateFiles(dir).Where(file => file.EndsWith(".loli")))
{
var zipArchiveEntry = archive.CreateEntry(Path.GetFileName(file), CompressionLevel.Fastest);
var fileContent = File.ReadAllBytes(file);
using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(fileContent, 0, fileContent.Length);
}
}

ZipFolderRecursively(archive, dir, _configFolder);
}
}

return ms;
}
}

private void ZipFolderRecursively(ZipArchive archive, string currentDir, string baseDir)
{
// Add all the files
foreach (var file in Directory.EnumerateFiles(currentDir).Where(file => file.EndsWith(".loli")))
{
// Create the file entry and write the file content
var zipArchiveEntry = archive.CreateEntry($"{file.Substring(baseDir.Length + 1)}", CompressionLevel.Fastest);
var fileContent = File.ReadAllBytes(file);
using (var zipStream = zipArchiveEntry.Open()) zipStream.Write(fileContent, 0, fileContent.Length);
}

// Add subfolders recursively
foreach (var dir in Directory.EnumerateDirectories(currentDir))
{
ZipFolderRecursively(archive, dir, baseDir);
}
}

public async Task<bool> Upload(Stream file, string group, string name)
{
if (group != "" && name.EndsWith(".loli"))
Expand Down

0 comments on commit 47576fc

Please sign in to comment.