Improve importer

This commit is contained in:
2024-01-10 11:48:04 +00:00
parent 55223c3bb7
commit 94edb41973

View File

@ -9,11 +9,13 @@ namespace NostrServices.Controllers;
[Route("/api/v1/import")] [Route("/api/v1/import")]
public class ImportController : Controller public class ImportController : Controller
{ {
private readonly ILogger<ImportController> _logger;
private readonly RedisStore _redisStore; private readonly RedisStore _redisStore;
public ImportController(RedisStore redisStore) public ImportController(RedisStore redisStore, ILogger<ImportController> logger)
{ {
_redisStore = redisStore; _redisStore = redisStore;
_logger = logger;
} }
/// <summary> /// <summary>
@ -28,13 +30,27 @@ public class ImportController : Controller
using var sr = new StreamReader(Request.Body); using var sr = new StreamReader(Request.Body);
while (await sr.ReadLineAsync(cts) is { } line) while (await sr.ReadLineAsync(cts) is { } line)
{
try
{ {
var ev = JsonConvert.DeserializeObject<NostrEvent>(line, NostrSerializer.Settings); var ev = JsonConvert.DeserializeObject<NostrEvent>(line, NostrSerializer.Settings);
if (ev != default) if (ev != default && ev.IsSignatureValid())
{
if (ev.Kind is NostrKind.Metadata)
{
await _redisStore.StoreProfile(CompactProfile.FromNostrEvent(ev)!);
}
else
{ {
await _redisStore.StoreEvent(CompactEvent.FromNostrEvent(ev)); await _redisStore.StoreEvent(CompactEvent.FromNostrEvent(ev));
} }
} }
}
catch (Exception ex)
{
_logger.LogWarning("Failed to import {json} {msg}", line, ex.Message);
}
}
return Ok(); return Ok();
} }