Massive refactoring of Quartz to:
- Define each tag in their own class. - Allow extension functions to additional responsibilities to other classes - Migrate from hardcoded tag filters in events to the Tag's parser and assemble functions. - Migrate hardcoded event.create to builders that use extension functions - Restructures threading infrastructure for NIP-10 - Decouple the event signing from the Event building functions via event templates - Create classes to represent Tags and TagArrays and use extension functions to add domain-related methods to the tag array of each nip. - Uses external functions on event template builders to better point to which functions and which tags can be used in which event kinds. - Separates Event kinds in packages inside each nip. - Improves support for NIP-89 - Correctly establishes which imeta params can be used in each nip (video, picture, files) - Decouples the iMeta builder from any nip. - Fixes mute list word and user removal when inserted from a different client. - Migrates the Account class to avoiding having to build each Event inside of it
This commit is contained in:
@@ -23,8 +23,8 @@ package com.vitorpamplona.ammolite.relays
|
||||
import android.util.Log
|
||||
import com.vitorpamplona.ammolite.service.checkNotInMainThread
|
||||
import com.vitorpamplona.quartz.nip01Core.core.Event
|
||||
import com.vitorpamplona.quartz.nip01Core.relays.RelayState
|
||||
import com.vitorpamplona.quartz.nip01Core.relays.sockets.WebsocketBuilderFactory
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.RelayState
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.sockets.WebsocketBuilderFactory
|
||||
import kotlinx.coroutines.DelicateCoroutinesApi
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.GlobalScope
|
||||
|
||||
@@ -23,7 +23,7 @@ package com.vitorpamplona.ammolite.relays
|
||||
import android.util.Log
|
||||
import com.vitorpamplona.ammolite.service.checkNotInMainThread
|
||||
import com.vitorpamplona.quartz.nip01Core.core.Event
|
||||
import com.vitorpamplona.quartz.nip01Core.relays.RelayState
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.RelayState
|
||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.DelicateCoroutinesApi
|
||||
|
||||
@@ -21,11 +21,11 @@
|
||||
package com.vitorpamplona.ammolite.relays
|
||||
|
||||
import com.vitorpamplona.quartz.nip01Core.core.Event
|
||||
import com.vitorpamplona.quartz.nip01Core.relays.RelayState
|
||||
import com.vitorpamplona.quartz.nip01Core.relays.SimpleClientRelay
|
||||
import com.vitorpamplona.quartz.nip01Core.relays.SubscriptionCollection
|
||||
import com.vitorpamplona.quartz.nip01Core.relays.filters.Filter
|
||||
import com.vitorpamplona.quartz.nip01Core.relays.sockets.WebsocketBuilderFactory
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.RelayState
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.SimpleClientRelay
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.SubscriptionCollection
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.sockets.WebsocketBuilderFactory
|
||||
import com.vitorpamplona.quartz.nip42RelayAuth.RelayAuthEvent
|
||||
|
||||
enum class FeedType {
|
||||
@@ -62,11 +62,11 @@ class RelaySubFilter(
|
||||
|
||||
override fun getFilters(subscriptionId: String) = filter(subs.getSubscriptionFilters(subscriptionId))
|
||||
|
||||
override fun allSubscriptions(): List<com.vitorpamplona.quartz.nip01Core.relays.Subscription> =
|
||||
override fun allSubscriptions(): List<com.vitorpamplona.quartz.nip01Core.relay.Subscription> =
|
||||
subs.allSubscriptions().mapNotNull { filter ->
|
||||
val filters = filter(filter.value)
|
||||
if (filters.isNotEmpty()) {
|
||||
com.vitorpamplona.quartz.nip01Core.relays
|
||||
com.vitorpamplona.quartz.nip01Core.relay
|
||||
.Subscription(filter.key, filters)
|
||||
} else {
|
||||
null
|
||||
|
||||
@@ -23,7 +23,7 @@ package com.vitorpamplona.ammolite.relays
|
||||
import androidx.compose.runtime.Immutable
|
||||
import com.vitorpamplona.ammolite.service.checkNotInMainThread
|
||||
import com.vitorpamplona.quartz.nip01Core.core.Event
|
||||
import com.vitorpamplona.quartz.nip01Core.relays.RelayState
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.RelayState
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.GlobalScope
|
||||
import kotlinx.coroutines.channels.BufferOverflow
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
*/
|
||||
package com.vitorpamplona.ammolite.relays
|
||||
|
||||
import com.vitorpamplona.quartz.nip01Core.relays.RelayStat
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.RelayStat
|
||||
|
||||
object RelayStats {
|
||||
private val innerCache = mutableMapOf<String, RelayStat>()
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
package com.vitorpamplona.ammolite.relays.filters
|
||||
|
||||
import com.vitorpamplona.quartz.nip01Core.core.Event
|
||||
import com.vitorpamplona.quartz.nip01Core.relays.filters.Filter
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter
|
||||
|
||||
interface IPerRelayFilter {
|
||||
fun toRelay(forRelay: String): Filter
|
||||
|
||||
+3
-3
@@ -24,9 +24,9 @@ import com.fasterxml.jackson.databind.node.JsonNodeFactory
|
||||
import com.vitorpamplona.quartz.nip01Core.HexKey
|
||||
import com.vitorpamplona.quartz.nip01Core.core.Event
|
||||
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper
|
||||
import com.vitorpamplona.quartz.nip01Core.relays.filters.Filter
|
||||
import com.vitorpamplona.quartz.nip01Core.relays.filters.FilterMatcher
|
||||
import com.vitorpamplona.quartz.nip01Core.relays.filters.FilterSerializer
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.filters.FilterMatcher
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.filters.FilterSerializer
|
||||
|
||||
/**
|
||||
* This is a nostr filter with per-relay authors list and since parameters
|
||||
|
||||
+3
-3
@@ -23,9 +23,9 @@ package com.vitorpamplona.ammolite.relays.filters
|
||||
import com.fasterxml.jackson.databind.node.JsonNodeFactory
|
||||
import com.vitorpamplona.quartz.nip01Core.core.Event
|
||||
import com.vitorpamplona.quartz.nip01Core.jackson.EventMapper
|
||||
import com.vitorpamplona.quartz.nip01Core.relays.filters.Filter
|
||||
import com.vitorpamplona.quartz.nip01Core.relays.filters.FilterMatcher
|
||||
import com.vitorpamplona.quartz.nip01Core.relays.filters.FilterSerializer
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.filters.FilterMatcher
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.filters.FilterSerializer
|
||||
|
||||
/**
|
||||
* This is a nostr filter with per-relay authors list and since parameters
|
||||
|
||||
Reference in New Issue
Block a user