Downloads Statuses from Relays
This commit is contained in:
@@ -7,6 +7,7 @@ import com.vitorpamplona.amethyst.service.relays.JsonFilter
|
|||||||
import com.vitorpamplona.amethyst.service.relays.TypedFilter
|
import com.vitorpamplona.amethyst.service.relays.TypedFilter
|
||||||
import com.vitorpamplona.quartz.events.MetadataEvent
|
import com.vitorpamplona.quartz.events.MetadataEvent
|
||||||
import com.vitorpamplona.quartz.events.ReportEvent
|
import com.vitorpamplona.quartz.events.ReportEvent
|
||||||
|
import com.vitorpamplona.quartz.events.StatusEvent
|
||||||
|
|
||||||
object NostrSingleUserDataSource : NostrDataSource("SingleUserFeed") {
|
object NostrSingleUserDataSource : NostrDataSource("SingleUserFeed") {
|
||||||
var usersToWatch = setOf<User>()
|
var usersToWatch = setOf<User>()
|
||||||
@@ -26,6 +27,21 @@ object NostrSingleUserDataSource : NostrDataSource("SingleUserFeed") {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun createUserStatusFilter(): List<TypedFilter>? {
|
||||||
|
if (usersToWatch.isEmpty()) return null
|
||||||
|
|
||||||
|
return usersToWatch.map {
|
||||||
|
TypedFilter(
|
||||||
|
types = COMMON_FEED_TYPES,
|
||||||
|
filter = JsonFilter(
|
||||||
|
kinds = listOf(StatusEvent.kind),
|
||||||
|
authors = listOf(it.pubkeyHex),
|
||||||
|
since = it.latestEOSEs
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun createUserReportFilter(): List<TypedFilter>? {
|
fun createUserReportFilter(): List<TypedFilter>? {
|
||||||
if (usersToWatch.isEmpty()) return null
|
if (usersToWatch.isEmpty()) return null
|
||||||
|
|
||||||
@@ -59,8 +75,8 @@ object NostrSingleUserDataSource : NostrDataSource("SingleUserFeed") {
|
|||||||
val userChannelOnce = requestNewChannel()
|
val userChannelOnce = requestNewChannel()
|
||||||
|
|
||||||
override fun updateChannelFilters() {
|
override fun updateChannelFilters() {
|
||||||
userChannel.typedFilters = listOfNotNull(createUserFilter()).flatten().ifEmpty { null }
|
userChannel.typedFilters = listOfNotNull(createUserReportFilter(), createUserStatusFilter()).flatten().ifEmpty { null }
|
||||||
userChannelOnce.typedFilters = listOfNotNull(createUserReportFilter()).flatten().ifEmpty { null }
|
userChannelOnce.typedFilters = listOfNotNull(createUserFilter()).flatten().ifEmpty { null }
|
||||||
}
|
}
|
||||||
|
|
||||||
fun add(user: User) {
|
fun add(user: User) {
|
||||||
|
|||||||
Reference in New Issue
Block a user