nostr_event_scheduler 0.3.0 copy "nostr_event_scheduler: ^0.3.0" to clipboard
nostr_event_scheduler: ^0.3.0 copied to clipboard

Local-first Dart package for scheduling Nostr events via Scheduler DVMs.

example/nostr_event_scheduler_example.dart

import 'package:broadcast_queue_shim_for_ndk/broadcast_queue_shim_for_ndk.dart';
import 'package:ndk/ndk.dart';
import 'package:nostr_event_scheduler/nostr_event_scheduler.dart';
import 'package:sembast/sembast_io.dart';

Future<void> main() async {
  final db = await databaseFactoryIo.openDatabase('scheduler.db');

  // The cache must be persistent: it holds the raw events the scheduler
  // recomputes its projections from.
  final ndk = Ndk(
    NdkConfig(
      eventVerifier: Bip340EventVerifier(),
      cache: SembastCacheManager(db),
      fetchedRangesEnabled: true,
    ),
  );

  final broadcast = OfflineBroadcast.withNdk(ndk, db: db);
  broadcast.start();

  final scheduler = EventScheduler(ndk: ndk, broadcast: broadcast, db: db);

  final pubkey = ndk.accounts.getPublicKey()!;
  await scheduler.startListening(pubkey: pubkey);

  // Listen to status updates
  scheduler.statusUpdates.listen((update) {
    print('Job ${update.jobId} of ${update.pubkey}: ${update.status}');
  });

  // List existing jobs
  final jobs = await scheduler.listJobs(pubkey: pubkey);
  print('Existing jobs: ${jobs.length}');

  // Dispose when done
  await scheduler.dispose();
  await broadcast.dispose();
  await db.close();
}
0
likes
160
points
169
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Local-first Dart package for scheduling Nostr events via Scheduler DVMs.

Repository (GitHub)
View/report issues

Topics

#nostr #scheduler #dvm #local-first #offline-first

License

MIT (license)

Dependencies

broadcast_queue_shim_for_ndk, ndk, sembast

More

Packages that depend on nostr_event_scheduler