Improve importer
This commit is contained in:
@ -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();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user