mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2025-09-26 19:36:21 +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 collection: HashSet<Note> = hashSetOf()
|
||||
var collection: MutableSet<Note> = mutableSetOf()
|
||||
val mapper = jacksonObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
|
||||
var json = mapper.readValue(eventContent, Array::class.java)
|
||||
for (element in json) {
|
||||
// var test = mapper.readValue(element.toString(), Array::class.java)
|
||||
// TODO. This is ugly. how to Kotlin?
|
||||
var id = element.toString().trimStart('[').trimStart('e').trimStart(',').trimEnd(']').trimStart().trimEnd()
|
||||
var note = LocalCache.checkGetOrCreateNote(id)
|
||||
var etags = mapper.readValue(eventContent, List::class.java)
|
||||
for (element in etags) {
|
||||
var tag = mapper.readValue(mapper.writeValueAsString(element), Array::class.java)
|
||||
val note = LocalCache.checkGetOrCreateNote(tag[1].toString())
|
||||
if (note != null) {
|
||||
collection.add(note)
|
||||
}
|
||||
@@ -78,7 +76,7 @@ open class NIP90ContentDiscoveryFilter(
|
||||
|
||||
return collection.toList()
|
||||
} else {
|
||||
return sort(notes)
|
||||
return listOf()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -110,24 +108,21 @@ open class NIP90ContentDiscoveryFilter(
|
||||
var note = sorted.first()
|
||||
|
||||
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)
|
||||
var json = mapper.readValue(eventContent, Array::class.java)
|
||||
for (element in json) {
|
||||
// var test = mapper.readValue(element.toString(), Array::class.java)
|
||||
// TODO. This is ugly. how to Kotlin?
|
||||
var id = element.toString().trimStart('[').trimStart('e').trimStart(',').trimEnd(']').trimStart().trimEnd()
|
||||
|
||||
val note = LocalCache.checkGetOrCreateNote(id)
|
||||
var etags = mapper.readValue(eventContent, Array::class.java)
|
||||
for (element in etags) {
|
||||
var tag = mapper.readValue(mapper.writeValueAsString(element), Array::class.java)
|
||||
val note = LocalCache.checkGetOrCreateNote(tag[1].toString())
|
||||
if (note != null) {
|
||||
collection.add(note)
|
||||
}
|
||||
}
|
||||
return collection
|
||||
} else {
|
||||
return notes
|
||||
return hashSetOf()
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -122,26 +122,27 @@ fun RenderNostrNIP90ContentDiscoveryScreen(
|
||||
thread.join()
|
||||
}
|
||||
|
||||
// TODO 2 Get the latest event from the statusFeedViewModel
|
||||
// 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
|
||||
// TODO this shows the status but there might be a better way
|
||||
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()) {
|
||||
statusFeedViewModel.localFilter.feed()[0].event?.let { Text(text = it.content()) }
|
||||
} else {
|
||||
Text(text = "Nah")
|
||||
}
|
||||
|
||||
DVMStatusView(
|
||||
statusFeedViewModel,
|
||||
null,
|
||||
enablePullRefresh = false,
|
||||
accountViewModel = accountViewModel,
|
||||
nav = nav,
|
||||
)*/
|
||||
|
||||
// Text(text = dvminfo)
|
||||
thread.start()
|
||||
thread.join()
|
||||
|
||||
HorizontalPager(state = pagerState) {
|
||||
RefresheableBox(resultFeedViewModel, false) {
|
||||
|
Reference in New Issue
Block a user