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