mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2025-09-28 17:57:39 +02:00
Merge pull request #860 from believethehype/NIP90-ContentDiscovery
Fix order of events, use proper event content parsing
This commit is contained in:
@@ -63,14 +63,12 @@ open class NIP90ContentDiscoveryFilter(
|
|||||||
|
|
||||||
var eventContent = note.event?.content()
|
var eventContent = note.event?.content()
|
||||||
|
|
||||||
var collection: HashSet<Note> = hashSetOf()
|
var collection: MutableSet<Note> = mutableSetOf()
|
||||||
val mapper = jacksonObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
|
val mapper = jacksonObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
|
||||||
var json = mapper.readValue(eventContent, Array::class.java)
|
var etags = mapper.readValue(eventContent, List::class.java)
|
||||||
for (element in json) {
|
for (element in etags) {
|
||||||
// var test = mapper.readValue(element.toString(), Array::class.java)
|
var tag = mapper.readValue(mapper.writeValueAsString(element), Array::class.java)
|
||||||
// TODO. This is ugly. how to Kotlin?
|
val note = LocalCache.checkGetOrCreateNote(tag[1].toString())
|
||||||
var id = element.toString().trimStart('[').trimStart('e').trimStart(',').trimEnd(']').trimStart().trimEnd()
|
|
||||||
var note = LocalCache.checkGetOrCreateNote(id)
|
|
||||||
if (note != null) {
|
if (note != null) {
|
||||||
collection.add(note)
|
collection.add(note)
|
||||||
}
|
}
|
||||||
@@ -78,7 +76,7 @@ open class NIP90ContentDiscoveryFilter(
|
|||||||
|
|
||||||
return collection.toList()
|
return collection.toList()
|
||||||
} else {
|
} else {
|
||||||
return sort(notes)
|
return listOf()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -110,24 +108,21 @@ open class NIP90ContentDiscoveryFilter(
|
|||||||
var note = sorted.first()
|
var note = sorted.first()
|
||||||
|
|
||||||
var eventContent = note.event?.content()
|
var eventContent = note.event?.content()
|
||||||
println(eventContent)
|
// println(eventContent)
|
||||||
|
|
||||||
val collection: HashSet<Note> = hashSetOf()
|
val collection: MutableSet<Note> = mutableSetOf()
|
||||||
val mapper = jacksonObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
|
val mapper = jacksonObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
|
||||||
var json = mapper.readValue(eventContent, Array::class.java)
|
var etags = mapper.readValue(eventContent, Array::class.java)
|
||||||
for (element in json) {
|
for (element in etags) {
|
||||||
// var test = mapper.readValue(element.toString(), Array::class.java)
|
var tag = mapper.readValue(mapper.writeValueAsString(element), Array::class.java)
|
||||||
// TODO. This is ugly. how to Kotlin?
|
val note = LocalCache.checkGetOrCreateNote(tag[1].toString())
|
||||||
var id = element.toString().trimStart('[').trimStart('e').trimStart(',').trimEnd(']').trimStart().trimEnd()
|
|
||||||
|
|
||||||
val note = LocalCache.checkGetOrCreateNote(id)
|
|
||||||
if (note != null) {
|
if (note != null) {
|
||||||
collection.add(note)
|
collection.add(note)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return collection
|
return collection
|
||||||
} else {
|
} else {
|
||||||
return notes
|
return hashSetOf()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -122,26 +122,27 @@ fun RenderNostrNIP90ContentDiscoveryScreen(
|
|||||||
thread.join()
|
thread.join()
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO 2 Get the latest event from the statusFeedViewModel
|
// TODO this shows the status but there might be a better way
|
||||||
// TODO How do we extract the latest event.content (or event.status) from statusFeedViewModel
|
|
||||||
// TODO We want to update dvmStatus with the content of the latest Status event
|
|
||||||
var dvmStatus = "DVM is processing..."
|
var dvmStatus = "DVM is processing..."
|
||||||
|
val thread =
|
||||||
|
Thread {
|
||||||
|
println(dvmStatus)
|
||||||
|
while (resultFeedViewModel.localFilter.feed().isEmpty()) {
|
||||||
|
try {
|
||||||
|
if (statusFeedViewModel.localFilter.feed().isNotEmpty()) {
|
||||||
|
statusFeedViewModel.localFilter.feed()[0].event?.let { dvmStatus = it.content() }
|
||||||
|
println(dvmStatus)
|
||||||
|
break
|
||||||
|
} else {
|
||||||
|
}
|
||||||
|
} catch (e: Exception) {
|
||||||
|
e.printStackTrace()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* if (statusFeedViewModel.localFilter.feed().isNotEmpty()) {
|
thread.start()
|
||||||
statusFeedViewModel.localFilter.feed()[0].event?.let { Text(text = it.content()) }
|
thread.join()
|
||||||
} else {
|
|
||||||
Text(text = "Nah")
|
|
||||||
}
|
|
||||||
|
|
||||||
DVMStatusView(
|
|
||||||
statusFeedViewModel,
|
|
||||||
null,
|
|
||||||
enablePullRefresh = false,
|
|
||||||
accountViewModel = accountViewModel,
|
|
||||||
nav = nav,
|
|
||||||
)*/
|
|
||||||
|
|
||||||
// Text(text = dvminfo)
|
|
||||||
|
|
||||||
HorizontalPager(state = pagerState) {
|
HorizontalPager(state = pagerState) {
|
||||||
RefresheableBox(resultFeedViewModel, false) {
|
RefresheableBox(resultFeedViewModel, false) {
|
||||||
|
Reference in New Issue
Block a user