Skip to content

Commit b12ea7b

Browse files
committed
Fix seek issue
1 parent 0a472ab commit b12ea7b

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

Api/v0/Controllers/EmojiController.cs

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
namespace devanewbot.Api.v0.Controllers;
22

3+
using System;
34
using System.IO;
45
using System.IO.Compression;
56
using System.Linq;
67
using System.Net.Http;
7-
using System.Net.Mime;
88
using System.Threading.Tasks;
99
using Microsoft.AspNetCore.Mvc;
1010
using SlackNet;
@@ -28,16 +28,21 @@ public async Task<IActionResult> Export()
2828
{
2929
var emojis = await Client.Emoji.List();
3030
using var memoryStream = new MemoryStream();
31-
using var archive = new ZipArchive(memoryStream);
32-
using var httpClient = HttpClientFactory.CreateClient();
33-
foreach (var emoji in emojis.Where(e => !e.Value.StartsWith("alias:")))
31+
using (var archive = new ZipArchive(memoryStream, ZipArchiveMode.Create, true))
3432
{
35-
var response = await httpClient.GetStreamAsync(emoji.Value);
36-
var entry = archive.CreateEntry($"{emoji.Key}.png");
37-
var entryStream = entry.Open();
38-
await response.CopyToAsync(entryStream);
33+
using var httpClient = HttpClientFactory.CreateClient();
34+
foreach (var emoji in emojis.Where(e => !e.Value.StartsWith("alias:")))
35+
{
36+
var response = await httpClient.GetStreamAsync(emoji.Value);
37+
var uri = new Uri(emoji.Value);
38+
var fileExtension = Path.GetExtension(uri.AbsolutePath);
39+
var entry = archive.CreateEntry($"{emoji.Key}{fileExtension}");
40+
using var entryStream = entry.Open();
41+
await response.CopyToAsync(entryStream);
42+
}
3943
}
4044

41-
return File(memoryStream, "application/zip", "emoji.zip");
45+
memoryStream.Seek(0, SeekOrigin.Begin);
46+
return File(memoryStream.ToArray(), "application/zip", "emoji.zip");
4247
}
4348
}

0 commit comments

Comments
 (0)