Improve importer

This commit is contained in:
Kieran 2024-01-10 11:48:04 +00:00
parent 55223c3bb7
commit 94edb41973
No known key found for this signature in database
GPG Key ID: DE71CEB3925BE941

View File

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