43 lines
1.2 KiB
C#
43 lines
1.2 KiB
C#
using NostrRelay;
|
|
using NostrServices.Client;
|
|
using PayForReactions;
|
|
|
|
var builder = WebApplication.CreateBuilder(args);
|
|
|
|
var config = builder.Configuration.GetSection("Config").Get<Config>()!;
|
|
builder.Services.AddSingleton(config);
|
|
|
|
builder.Services.AddMemoryCache();
|
|
builder.Services.AddHttpClient();
|
|
builder.Services.AddTransient<Lnurl>();
|
|
builder.Services.AddTransient<AlbyApi>();
|
|
builder.Services.AddTransient<ZapperRelay>();
|
|
builder.Services.AddTransient<NostrServicesClient>();
|
|
builder.Services.AddSingleton<NostrStore>(svc =>
|
|
{
|
|
var logger = svc.GetRequiredService<ILogger<NostrStore>>();
|
|
return new NostrStore("./data", logger);
|
|
});
|
|
|
|
builder.Services.AddSingleton<ReactionQueue>();
|
|
builder.Services.AddHostedService<ReactionQueueWorker>();
|
|
|
|
var host = builder.Build();
|
|
|
|
host.UseWebSockets();
|
|
host.MapRelay<ZapperRelay>("/", new RelayDocument()
|
|
{
|
|
Name = "wss://reactions.v0l.io",
|
|
Description = "Zapping server for Kieran's paid reactions",
|
|
SupportedNips = [1],
|
|
Software = "PayForReactions (https://git.v0l.io/Kieran/NostrServices)",
|
|
Limitation = new()
|
|
{
|
|
RestrictedWrites = true,
|
|
AuthRequired = false,
|
|
PaymentRequired = false
|
|
}
|
|
});
|
|
|
|
host.Run();
|