spektacles/src/main/kotlin/moe/kageru/spektacles/Spektacles.kt
2019-11-26 10:50:38 +01:00

33 lines
798 B
Kotlin

package moe.kageru.spektacles
import kotlin.system.measureTimeMillis
fun main() {
val res = measureTimeMillis {
IoHandler.readFile("test.log")
.map { ParsedLine.parse(it) }
.filterNotNull()
.filter { line -> line.user.exists { it == "kageru_" } }
.flatMap { it.message.split(' ').asSequence() }
//.flatMap { it.message.split(' ').k() }
//.toCounter()
//.counts["selphyDango"]
}
println(res)
}
class Counter<T>(source: Iterable<T>) : Iterable<T> {
val counts = mutableMapOf<T, Int>().apply {
for (element in source) {
this[element] = this.getOrDefault(element, 0) + 1
}
}
override fun iterator(): Iterator<T> {
return counts.keys.iterator()
}
}
fun <T> Iterable<T>.toCounter(): Counter<T> = Counter(this)