mirror of
https://github.com/nostrlabs-io/zap-stream-flutter.git
synced 2025-06-16 11:58:50 +00:00
chore: add snort relay
This commit is contained in:
@ -27,13 +27,14 @@ class NoVerify extends EventVerifier {
|
||||
|
||||
final ndkCache = DbObjectBox();
|
||||
final eventVerifier = kDebugMode ? NoVerify() : RustEventVerifier();
|
||||
var ndk = Ndk(NdkConfig(eventVerifier: eventVerifier, cache: ndkCache));
|
||||
var ndk = Ndk(NdkConfig(eventVerifier: eventVerifier, cache: ndkCache, bootstrapRelays: defaultRelays));
|
||||
|
||||
const userAgent = "zap.stream/1.0";
|
||||
const defaultRelays = [
|
||||
"wss://nos.lol",
|
||||
"wss://relay.damus.io",
|
||||
"wss://relay.primal.net",
|
||||
"wss://relay.snort.social"
|
||||
];
|
||||
const searchRelays = ["wss://relay.nostr.band", "wss://search.nos.today"];
|
||||
|
||||
|
@ -54,20 +54,24 @@ class _RxFilter<T> extends State<RxFilter<T>> {
|
||||
developer.log("RX:ERROR $e");
|
||||
})
|
||||
.listen((events) {
|
||||
setState(() {
|
||||
_events ??= HashMap();
|
||||
developer.log("RX:GOT ${events.length} events for ${widget.filters}");
|
||||
events.forEach(_replaceInto);
|
||||
});
|
||||
});
|
||||
setState(() {
|
||||
_events ??= HashMap();
|
||||
developer.log(
|
||||
"RX:GOT ${events.length} events for ${widget.filters}",
|
||||
);
|
||||
events.forEach(_replaceInto);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
void _replaceInto(Nip01Event ev) {
|
||||
final evKey = _eventKey(ev);
|
||||
final existing = _events?[evKey];
|
||||
if (existing == null || existing.$1 < ev.createdAt) {
|
||||
_events?[evKey] =
|
||||
(ev.createdAt, widget.mapper != null ? widget.mapper!(ev) : ev as T);
|
||||
_events?[evKey] = (
|
||||
ev.createdAt,
|
||||
widget.mapper != null ? widget.mapper!(ev) : ev as T,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -91,8 +95,7 @@ class _RxFilter<T> extends State<RxFilter<T>> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return widget.builder(context,
|
||||
_events?.values.map((v) => v.$2).toList());
|
||||
return widget.builder(context, _events?.values.map((v) => v.$2).toList());
|
||||
}
|
||||
}
|
||||
|
||||
@ -120,11 +123,14 @@ class RxFutureFilter<T> extends StatelessWidget {
|
||||
builder: (ctx, data) {
|
||||
if (data.hasData) {
|
||||
return RxFilter<T>(
|
||||
filters: data.data!, mapper: mapper, builder: builder);
|
||||
filters: data.data!,
|
||||
mapper: mapper,
|
||||
builder: builder,
|
||||
);
|
||||
} else {
|
||||
return loadingWidget ?? SizedBox.shrink();
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user