From 2085d71eb15acfb038f1b2cd22e05891d785909e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20T=C3=B3th?= <tothmiklostibor@gmail.com> Date: Fri, 10 Jun 2022 15:03:40 +0200 Subject: [PATCH] Edit comment instead of adding a new one --- src/jsMain/kotlin/pekstuff/PekNote.kt | 23 +++++++++++++++++------ src/jsMain/kotlin/processing/Process.kt | 2 +- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/jsMain/kotlin/pekstuff/PekNote.kt b/src/jsMain/kotlin/pekstuff/PekNote.kt index 86da658..f45e64e 100644 --- a/src/jsMain/kotlin/pekstuff/PekNote.kt +++ b/src/jsMain/kotlin/pekstuff/PekNote.kt @@ -2,6 +2,7 @@ package pekstuff import kotlinx.browser.document import kotlinx.coroutines.delay +import org.w3c.dom.HTMLAnchorElement import org.w3c.dom.HTMLInputElement import org.w3c.dom.HTMLTextAreaElement @@ -9,14 +10,24 @@ object PekNote { val noteNameCnt get() = document.querySelector("#comment-container > div.uk-padding.uk-text-center") val noteName get() = noteNameCnt?.textContent + val editBtn get() = + document.querySelectorAll("#comment-container > article.uk-comment > header.uk-comment-header > div.uk-comment-meta > a") + .toList().lastOrNull() as? HTMLAnchorElement val noteCnt get() = document.getElementById("comment-textarea") as? HTMLTextAreaElement - val btn get() = document.querySelector("#new_point_detail_comment > article > div.uk-clearfix > div.uk-float-right > input.uk-button") as? HTMLInputElement - var note - get() = noteCnt!!.value - set(value) { - noteCnt!!.value = value - btn!!.click() + val btn get() = document.querySelector("#comment-container > div > form.edit_point_detail_comment > article.uk-comment > div.uk-clearfix > div.uk-float-right > input.uk-button") as? HTMLInputElement + fun getNote() = noteCnt!!.value + suspend fun setNote(value: String) { + val edit = editBtn + if (edit != null) { + edit.click() + delay(1000) } + if (noteCnt!!.value == value) { + return + } + noteCnt!!.value = value + btn!!.click() + } suspend fun waitUntilLoaded(person: String, principle: String) { val expected = "$person - $principle" diff --git a/src/jsMain/kotlin/processing/Process.kt b/src/jsMain/kotlin/processing/Process.kt index 616f344..6313085 100644 --- a/src/jsMain/kotlin/processing/Process.kt +++ b/src/jsMain/kotlin/processing/Process.kt @@ -42,7 +42,7 @@ suspend fun DataSource.process( PekDelay() if (this is NoteDataSource) { PekNote.waitUntilLoaded(pekPerson, pekPrinciple) - PekNote.note = getNote(person, principle) + PekNote.setNote(getNote(person, principle)) } progress(calcProgress(i, j, people.size, principles.size)) -- GitLab