From 20f413b986eb050447418ed81dbbc03592b9c3ff Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 24 Sep 2023 20:08:37 -0700 Subject: [PATCH 01/63] Minor cleanup --- build.gradle.kts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 5bd9fb7..92bfddd 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -150,6 +150,7 @@ tasks { } dokkaHtml { + dependsOn("kaptKotlin") outputDirectory.set(file("$projectDir/docs")) dokkaSourceSets { @@ -214,7 +215,7 @@ tasks { register("release") { description = "Publishes version ${project.version} to local repository." group = PublishingPlugin.PUBLISH_TASK_GROUP - dependsOn(dokkaHtml, "deploy", gitTag, publishToMavenLocal) + dependsOn("deploy", dokkaHtml, gitTag, publishToMavenLocal) } } From 7ef1c441e6e3f596a89f533e20581121ea601ff4 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 24 Sep 2023 21:11:36 -0700 Subject: [PATCH 02/63] Updated copyright --- LICENSE.txt | 2 +- build.gradle.kts | 4 ++-- src/main/kotlin/net/thauvin/erik/akismet/Akismet.kt | 2 +- src/main/kotlin/net/thauvin/erik/akismet/AkismetComment.kt | 2 +- src/test/kotlin/net/thauvin/erik/akismet/AkismetTest.kt | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/LICENSE.txt b/LICENSE.txt index f2b9abe..c27baae 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,4 +1,4 @@ -Copyright (c) 2019-2022, Erik C. Thauvin (erik@thauvin.net) +Copyright (c) 2019-2023, Erik C. Thauvin (erik@thauvin.net) All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/build.gradle.kts b/build.gradle.kts index 92bfddd..144ac06 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -169,7 +169,7 @@ tasks { } dokkaJavadoc { - dependsOn("kaptKotlin") + dependsOn(dokkaHtml) dokkaSourceSets { configureEach { includes.from("config/dokka/packages.md") @@ -215,7 +215,7 @@ tasks { register("release") { description = "Publishes version ${project.version} to local repository." group = PublishingPlugin.PUBLISH_TASK_GROUP - dependsOn("deploy", dokkaHtml, gitTag, publishToMavenLocal) + dependsOn("deploy", gitTag, publishToMavenLocal) } } diff --git a/src/main/kotlin/net/thauvin/erik/akismet/Akismet.kt b/src/main/kotlin/net/thauvin/erik/akismet/Akismet.kt index c359415..285c835 100644 --- a/src/main/kotlin/net/thauvin/erik/akismet/Akismet.kt +++ b/src/main/kotlin/net/thauvin/erik/akismet/Akismet.kt @@ -1,7 +1,7 @@ /* * Akismet.kt * - * Copyright (c) 2019-2022, Erik C. Thauvin (erik@thauvin.net) + * Copyright (c) 2019-2023, Erik C. Thauvin (erik@thauvin.net) * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/src/main/kotlin/net/thauvin/erik/akismet/AkismetComment.kt b/src/main/kotlin/net/thauvin/erik/akismet/AkismetComment.kt index 245108d..5365898 100644 --- a/src/main/kotlin/net/thauvin/erik/akismet/AkismetComment.kt +++ b/src/main/kotlin/net/thauvin/erik/akismet/AkismetComment.kt @@ -1,7 +1,7 @@ /* * AkismetComment.kt * - * Copyright (c) 2019-2022, Erik C. Thauvin (erik@thauvin.net) + * Copyright (c) 2019-2023, Erik C. Thauvin (erik@thauvin.net) * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/src/test/kotlin/net/thauvin/erik/akismet/AkismetTest.kt b/src/test/kotlin/net/thauvin/erik/akismet/AkismetTest.kt index 5195339..1db1803 100644 --- a/src/test/kotlin/net/thauvin/erik/akismet/AkismetTest.kt +++ b/src/test/kotlin/net/thauvin/erik/akismet/AkismetTest.kt @@ -1,7 +1,7 @@ /* * AkismetTest.kt * - * Copyright (c) 2019-2022, Erik C. Thauvin (erik@thauvin.net) + * Copyright (c) 2019-2023, Erik C. Thauvin (erik@thauvin.net) * All rights reserved. * * Redistribution and use in source and binary forms, with or without From d5e21dd3a1b232c8fb113328a78ae4c4ec827978 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 12 Nov 2023 15:12:11 -0800 Subject: [PATCH 03/63] Moved from Gradle to bld --- .circleci/config.yml | 49 ++-- .github/workflows/bld.yml | 52 ++++ .github/workflows/gradle.yml | 52 ---- .gitignore | 139 ++++----- .gitlab-ci.yml | 30 +- .idea/app.iml | 30 ++ .idea/bld.iml | 14 + .idea/codeStyles/Project.xml | 15 - .idea/codeStyles/codeStyleConfig.xml | 5 - .idea/compiler.xml | 6 - .idea/copyright/BSD_3.xml | 6 + .idea/copyright/Erik_s_Copyright_Notice.xml | 6 - .idea/copyright/profiles_settings.xml | 2 +- .idea/inspectionProfiles/Project_Default.xml | 49 +--- .idea/jarRepositories.xml | 50 ---- .idea/kotlinc.xml | 4 +- .idea/libraries/bld.xml | 18 ++ .idea/libraries/compile.xml | 13 + .idea/libraries/runtime.xml | 14 + .idea/libraries/test.xml | 14 + .idea/misc.xml | 21 +- .idea/modules.xml | 9 + .idea/runConfigurations/Run Tests.xml | 9 + .vscode/launch.json | 11 + .vscode/settings.json | 15 + README.md | 22 +- bitbucket-pipelines.yml | 9 +- bld | 2 + bld.bat | 4 + build.gradle.kts | 273 ------------------ config/dokka/packages.md | 2 +- .../-akismet-comment/-akismet-comment.html | 12 +- .../-companion/-a-d-m-i-n_-r-o-l-e.html | 12 +- .../-t-y-p-e_-b-l-o-g_-p-o-s-t.html | 12 +- .../-companion/-t-y-p-e_-c-o-m-m-e-n-t.html | 12 +- .../-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html | 12 +- .../-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html | 12 +- .../-companion/-t-y-p-e_-m-e-s-s-a-g-e.html | 12 +- .../-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html | 12 +- .../-companion/-t-y-p-e_-r-e-p-l-y.html | 12 +- .../-companion/-t-y-p-e_-s-i-g-n-u-p.html | 12 +- .../-t-y-p-e_-t-r-a-c-k-b-a-c-k.html | 12 +- .../-companion/-t-y-p-e_-t-w-e-e-t.html | 12 +- .../-akismet-comment/-companion/index.html | 100 +++---- .../-akismet-comment/author-email.html | 12 +- .../-akismet-comment/author-url.html | 12 +- .../-akismet-comment/author.html | 12 +- .../-akismet-comment/blog-charset.html | 12 +- .../-akismet-comment/blog-lang.html | 12 +- .../-akismet-comment/content.html | 12 +- .../-akismet-comment/date-gmt.html | 12 +- .../-akismet-comment/equals.html | 12 +- .../-akismet-comment/hash-code.html | 12 +- .../-akismet-comment/index.html | 196 ++++++------- .../-akismet-comment/is-test.html | 12 +- .../-akismet-comment/permalink.html | 12 +- .../-akismet-comment/post-modified-gmt.html | 12 +- .../-akismet-comment/recheck-reason.html | 12 +- .../-akismet-comment/referrer.html | 12 +- .../-akismet-comment/server-env.html | 12 +- .../-akismet-comment/to-json.html | 12 +- .../-akismet-comment/to-string.html | 12 +- .../-akismet-comment/type.html | 12 +- .../-akismet-comment/user-agent.html | 12 +- .../-akismet-comment/user-ip.html | 12 +- .../-akismet-comment/user-role.html | 12 +- .../-akismet/-akismet.html | 12 +- .../-akismet/-companion/date-to-gmt.html | 12 +- .../-akismet/-companion/index.html | 28 +- .../-akismet/-companion/json-comment.html | 12 +- .../-akismet/app-user-agent.html | 12 +- .../-akismet/blog.html | 12 +- .../-akismet/check-comment.html | 12 +- .../-akismet/debug-help.html} | 16 +- .../-akismet/error-message.html | 12 +- .../-akismet/execute-method.html | 12 +- .../-akismet/http-status-code.html | 12 +- .../-akismet/index.html | 156 +++++----- .../-akismet/is-discard.html | 12 +- .../-akismet/is-verified-key.html | 12 +- .../-akismet/logger.html | 12 +- .../-akismet/pro-tip.html} | 16 +- .../-akismet/reset.html | 12 +- .../-akismet/response.html | 12 +- .../-akismet/submit-ham.html | 12 +- .../-akismet/submit-spam.html | 12 +- .../-akismet/verify-key.html | 12 +- .../net.thauvin.erik.akismet/index.html | 27 +- docs/-akismet -kotlin/package-list | 64 ++++ docs/akismet-kotlin/package-list | 64 ---- docs/images/anchor-copy-button.svg | 6 +- docs/images/arrow_down.svg | 6 +- docs/images/burger.svg | 6 +- docs/images/copy-icon.svg | 6 +- docs/images/copy-successful-icon.svg | 6 +- docs/images/footer-go-to-link.svg | 6 +- docs/images/go-to-top-icon.svg | 6 +- docs/images/logo-icon.svg | 6 +- .../nav-icons/abstract-class-kotlin.svg | 4 + docs/images/nav-icons/annotation-kotlin.svg | 4 + docs/images/nav-icons/class-kotlin.svg | 4 + docs/images/nav-icons/enum-kotlin.svg | 4 + docs/images/nav-icons/field-value.svg | 4 + docs/images/nav-icons/field-variable.svg | 4 + docs/images/nav-icons/interface-kotlin.svg | 4 + docs/images/nav-icons/object.svg | 4 + docs/images/nav-icons/typealias-kotlin.svg | 4 + docs/images/theme-toggle.svg | 6 +- docs/index.html | 27 +- docs/navigation.html | 24 +- docs/scripts/clipboard.js | 4 + docs/scripts/navigation-loader.js | 4 + docs/scripts/pages.json | 2 +- docs/scripts/platform-content-handler.js | 4 + docs/scripts/sourceset_dependencies.js | 2 +- .../symbol-parameters-wrapper_deferred.js | 123 ++++---- docs/styles/font-jb-sans-auto.css | 4 + docs/styles/jetbrains-mono.css | 17 -- docs/styles/logo-styles.css | 4 + docs/styles/main.css | 10 +- docs/styles/prism.css | 4 + docs/styles/style.css | 6 +- examples/.idea/.name | 1 - examples/.idea/checkstyle-idea.xml | 16 - examples/.idea/encodings.xml | 6 - examples/bld/.gitignore | 55 ++++ examples/bld/.idea/.gitignore | 3 + examples/bld/.idea/.name | 1 + examples/bld/.idea/app.iml | 30 ++ examples/bld/.idea/bld.iml | 14 + .../inspectionProfiles/Project_Default.xml | 8 + examples/bld/.idea/libraries/bld.xml | 18 ++ examples/bld/.idea/libraries/compile.xml | 13 + examples/bld/.idea/libraries/runtime.xml | 14 + examples/bld/.idea/libraries/test.xml | 14 + examples/bld/.idea/misc.xml | 9 + examples/bld/.idea/modules.xml | 9 + .../bld/.idea/runConfigurations/Run Tests.xml | 9 + examples/bld/.idea/vcs.xml | 6 + examples/bld/.vscode/launch.json | 11 + examples/bld/.vscode/settings.json | 15 + examples/bld/README.md | 18 ++ examples/bld/bld | 2 + examples/bld/bld.bat | 4 + examples/bld/lib/bld/bld-wrapper.jar | Bin 0 -> 27321 bytes examples/bld/lib/bld/bld-wrapper.properties | 7 + .../bld/java/com/example/ExampleBuild.java | 58 ++++ .../main/java/com/example/AkismetSample.java | 0 .../main/kotlin/com/example/AkismetExample.kt | 0 .../main/kotlin/com/example/AkismetServlet.kt | 0 examples/{ => gradle}/.editorconfig | 0 examples/{ => gradle}/.gitattributes | 0 examples/{ => gradle}/.gitignore | 0 examples/gradle/.idea/.gitignore | 3 + examples/gradle/.idea/.name | 1 + .../gradle/.idea}/checkstyle-idea.xml | 0 .../.idea/codeStyles/codeStyleConfig.xml | 0 examples/{ => gradle}/.idea/compiler.xml | 2 +- .../gradle/.idea}/encodings.xml | 0 examples/gradle/.idea/gradle.xml | 17 ++ .../inspectionProfiles/Project_Default.xml | 0 examples/gradle/.idea/jarRepositories.xml | 25 ++ examples/gradle/.idea/kotlinc.xml | 6 + examples/{ => gradle}/.idea/misc.xml | 5 +- examples/{ => gradle}/.idea/vcs.xml | 1 + examples/gradle/README.md | 14 + examples/{ => gradle}/build.gradle.kts | 9 +- .../{ => gradle}/wrapper/gradle-wrapper.jar | Bin .../wrapper/gradle-wrapper.properties | 2 +- gradlew => examples/gradle/gradlew | 14 +- examples/{ => gradle}/gradlew.bat | 0 examples/{ => gradle}/settings.gradle.kts | 0 .../main/java/com/example/AkismetSample.java | 64 ++++ .../main/kotlin/com/example/AkismetExample.kt | 66 +++++ .../main/kotlin/com/example/AkismetServlet.kt | 60 ++++ examples/gradlew | 249 ---------------- gradle.properties | 0 gradle/wrapper/gradle-wrapper.jar | Bin 63721 -> 0 bytes gradle/wrapper/gradle-wrapper.properties | 7 - gradlew.bat | 92 ------ lib/bld/bld-wrapper.jar | Bin 0 -> 27321 bytes lib/bld/bld-wrapper.properties | 9 + pom.xml | 97 +++---- settings.gradle.kts | 18 -- sonar-project.properties | 7 + .../java/net/thauvin/erik/AkismetBuild.java | 196 +++++++++++++ .../net/thauvin/erik/akismet/Akismet.kt | 11 +- .../thauvin/erik/akismet/AkismetComment.kt | 4 +- .../thauvin/erik/akismet/GeneratedVersion.kt | 14 + .../java/net/thauvin/erik/AkismetTest.java | 46 +++ .../net/thauvin/erik/akismet/AkismetTest.kt | 210 +++++++------- version.mustache | 18 -- version.properties | 9 - version.txt | 14 + 194 files changed, 2185 insertions(+), 1983 deletions(-) create mode 100644 .github/workflows/bld.yml delete mode 100644 .github/workflows/gradle.yml create mode 100644 .idea/app.iml create mode 100644 .idea/bld.iml delete mode 100644 .idea/codeStyles/Project.xml delete mode 100644 .idea/codeStyles/codeStyleConfig.xml delete mode 100644 .idea/compiler.xml create mode 100644 .idea/copyright/BSD_3.xml delete mode 100644 .idea/copyright/Erik_s_Copyright_Notice.xml delete mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/libraries/bld.xml create mode 100644 .idea/libraries/compile.xml create mode 100644 .idea/libraries/runtime.xml create mode 100644 .idea/libraries/test.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/runConfigurations/Run Tests.xml create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100755 bld create mode 100644 bld.bat delete mode 100644 build.gradle.kts rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html (52%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html (80%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-b-l-o-g_-p-o-s-t.html (80%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-m-m-e-n-t.html (80%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html (80%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html (80%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-m-e-s-s-a-g-e.html (80%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html (80%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-r-e-p-l-y.html (80%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-s-i-g-n-u-p.html (80%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-r-a-c-k-b-a-c-k.html (80%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-w-e-e-t.html (80%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html (60%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/author-email.html (79%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/author-url.html (80%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/author.html (80%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html (79%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html (77%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/content.html (80%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html (72%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/equals.html (74%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/hash-code.html (78%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/index.html (50%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/is-test.html (79%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/permalink.html (79%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html (73%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html (75%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/referrer.html (79%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/server-env.html (70%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/to-json.html (72%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/to-string.html (71%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/type.html (63%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/user-agent.html (74%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/user-ip.html (75%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet-comment/user-role.html (77%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet/-akismet.html (66%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html (52%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet/-companion/index.html (58%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html (67%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet/app-user-agent.html (71%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet/blog.html (81%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet/check-comment.html (56%) rename docs/{akismet-kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html => -akismet -kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html} (72%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet/error-message.html (73%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet/execute-method.html (55%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet/http-status-code.html (79%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet/index.html (50%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet/is-discard.html (71%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet/is-verified-key.html (74%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet/logger.html (80%) rename docs/{akismet-kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html => -akismet -kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html} (67%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet/reset.html (76%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet/response.html (77%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet/submit-ham.html (63%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet/submit-spam.html (64%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/-akismet/verify-key.html (64%) rename docs/{akismet-kotlin => -akismet -kotlin}/net.thauvin.erik.akismet/index.html (67%) create mode 100644 docs/-akismet -kotlin/package-list delete mode 100644 docs/akismet-kotlin/package-list delete mode 100644 docs/styles/jetbrains-mono.css delete mode 100644 examples/.idea/.name delete mode 100644 examples/.idea/checkstyle-idea.xml delete mode 100644 examples/.idea/encodings.xml create mode 100644 examples/bld/.gitignore create mode 100644 examples/bld/.idea/.gitignore create mode 100644 examples/bld/.idea/.name create mode 100644 examples/bld/.idea/app.iml create mode 100644 examples/bld/.idea/bld.iml create mode 100644 examples/bld/.idea/inspectionProfiles/Project_Default.xml create mode 100644 examples/bld/.idea/libraries/bld.xml create mode 100644 examples/bld/.idea/libraries/compile.xml create mode 100644 examples/bld/.idea/libraries/runtime.xml create mode 100644 examples/bld/.idea/libraries/test.xml create mode 100644 examples/bld/.idea/misc.xml create mode 100644 examples/bld/.idea/modules.xml create mode 100644 examples/bld/.idea/runConfigurations/Run Tests.xml create mode 100644 examples/bld/.idea/vcs.xml create mode 100644 examples/bld/.vscode/launch.json create mode 100644 examples/bld/.vscode/settings.json create mode 100644 examples/bld/README.md create mode 100755 examples/bld/bld create mode 100644 examples/bld/bld.bat create mode 100644 examples/bld/lib/bld/bld-wrapper.jar create mode 100644 examples/bld/lib/bld/bld-wrapper.properties create mode 100644 examples/bld/src/bld/java/com/example/ExampleBuild.java rename examples/{ => bld}/src/main/java/com/example/AkismetSample.java (100%) rename examples/{ => bld}/src/main/kotlin/com/example/AkismetExample.kt (100%) rename examples/{ => bld}/src/main/kotlin/com/example/AkismetServlet.kt (100%) rename examples/{ => gradle}/.editorconfig (100%) rename examples/{ => gradle}/.gitattributes (100%) rename examples/{ => gradle}/.gitignore (100%) create mode 100644 examples/gradle/.idea/.gitignore create mode 100644 examples/gradle/.idea/.name rename {.idea => examples/gradle/.idea}/checkstyle-idea.xml (100%) rename examples/{ => gradle}/.idea/codeStyles/codeStyleConfig.xml (100%) rename examples/{ => gradle}/.idea/compiler.xml (87%) rename {.idea => examples/gradle/.idea}/encodings.xml (100%) create mode 100644 examples/gradle/.idea/gradle.xml rename examples/{ => gradle}/.idea/inspectionProfiles/Project_Default.xml (100%) create mode 100644 examples/gradle/.idea/jarRepositories.xml create mode 100644 examples/gradle/.idea/kotlinc.xml rename examples/{ => gradle}/.idea/misc.xml (75%) rename examples/{ => gradle}/.idea/vcs.xml (75%) create mode 100644 examples/gradle/README.md rename examples/{ => gradle}/build.gradle.kts (78%) rename examples/gradle/{ => gradle}/wrapper/gradle-wrapper.jar (100%) rename examples/gradle/{ => gradle}/wrapper/gradle-wrapper.properties (94%) rename gradlew => examples/gradle/gradlew (94%) rename examples/{ => gradle}/gradlew.bat (100%) rename examples/{ => gradle}/settings.gradle.kts (100%) create mode 100644 examples/gradle/src/main/java/com/example/AkismetSample.java create mode 100644 examples/gradle/src/main/kotlin/com/example/AkismetExample.kt create mode 100644 examples/gradle/src/main/kotlin/com/example/AkismetServlet.kt delete mode 100755 examples/gradlew delete mode 100644 gradle.properties delete mode 100644 gradle/wrapper/gradle-wrapper.jar delete mode 100644 gradle/wrapper/gradle-wrapper.properties delete mode 100644 gradlew.bat create mode 100644 lib/bld/bld-wrapper.jar create mode 100644 lib/bld/bld-wrapper.properties delete mode 100644 settings.gradle.kts create mode 100644 sonar-project.properties create mode 100644 src/bld/java/net/thauvin/erik/AkismetBuild.java create mode 100644 src/main/kotlin/net/thauvin/erik/akismet/GeneratedVersion.kt create mode 100644 src/test/java/net/thauvin/erik/AkismetTest.java delete mode 100644 version.mustache delete mode 100644 version.properties create mode 100644 version.txt diff --git a/.circleci/config.yml b/.circleci/config.yml index e6c4f38..77889be 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -4,52 +4,41 @@ defaults: &defaults environment: JVM_OPTS: -Xmx3200m TERM: dumb - CI: true + CI_NAME: "CircleCI" -defaults_gradle: &defaults_gradle +defaults_gradle: &defaults_bld steps: - checkout - - restore_cache: - keys: - - gradle-dependencies-{{ checksum "build.gradle.kts" }} - # fallback to using the latest cache if no exact match is found - - gradle-dependencies- - run: - name: Gradle Dependencies - command: ./gradlew dependencies - - save_cache: - paths: ~/.m2 - key: gradle-dependencies-{{ checksum "build.gradle.kts" }} + name: Download the bld dependencies + command: ./bld download - run: - name: Run All Checks - command: ./gradlew check - - store_artifacts: - path: build/reports/ - destination: reports - - store_test_results: - path: build/reports/ + name: Compile source with bld + command: ./bld compile + - run: + name: Run tests with bld + command: ./bld test jobs: - build_gradle_jdk18: + bld_jdk17: <<: *defaults docker: - - image: cimg/openjdk:18.0 + - image: cimg/openjdk:17.0 - <<: *defaults_gradle + <<: *defaults_bld - build_gradle_jdk11: + bld_jdk20: <<: *defaults docker: - - image: cimg/openjdk:11.0 + - image: cimg/openjdk:20.0 - <<: *defaults_gradle + <<: *defaults_bld workflows: version: 2 - gradle: - jobs: - - build_gradle_jdk11 - - build_gradle_jdk18 - + bld: + jobs: + - bld_jdk17 + - bld_jdk20 diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml new file mode 100644 index 0000000..98772a8 --- /dev/null +++ b/.github/workflows/bld.yml @@ -0,0 +1,52 @@ +name: bld-ci + +on: [ push, pull_request, workflow_dispatch ] + +jobs: + build-bld-project: + runs-on: ubuntu-latest + + env: + COVERAGE_SDK: "17" + + strategy: + matrix: + java-version: [ 17, 20 ] + + steps: + - name: Checkout source repository + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up JDK ${{ matrix.java-version }} + uses: actions/setup-java@v3 + with: + distribution: 'zulu' + java-version: ${{ matrix.java-version }} + + - name: Grant bld execute permission + run: chmod +x bld + + - name: Download the bld dependencies + run: ./bld download + + - name: Compile source with bld + run: ./bld compile + + - name: Run tests with bld + env: + AKISMET_BLOG: ${{ secrets.AKISMET_BLOG }} + AKISMET_API_KEY: ${{ secrets.AKISMET_API_KEY }} + run: ./bld jacoco + + - name: Remove pom.xml + if: success() && matrix.java-version == env.COVERAGE_SDK + run: rm -rf pom.xml + + - name: SonarCloud Scan + uses: sonarsource/sonarcloud-github-action@master + if: success() && matrix.java-version == env.COVERAGE_SDK + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml deleted file mode 100644 index 193e95b..0000000 --- a/.github/workflows/gradle.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: gradle-ci - -on: [ push, pull_request, workflow_dispatch ] - -jobs: - build: - runs-on: ubuntu-latest - - env: - GRADLE_OPTS: "-Dorg.gradle.jvmargs=-XX:MaxMetaspaceSize=512m" - SONAR_JDK: "17" - - strategy: - matrix: - java-version: [ 11, 17, 20 ] - - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Set up JDK ${{ matrix.java-version }} - uses: actions/setup-java@v3 - with: - distribution: 'zulu' - java-version: ${{ matrix.java-version }} - - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - - name: Cache SonarCloud packages - if: matrix.java-version == env.SONAR_JDK - uses: actions/cache@v3 - with: - path: ~/.sonar/cache - key: ${{ runner.os }}-sonar - restore-keys: ${{ runner.os }}-sonar - - - name: Test with Gradle - uses: gradle/gradle-build-action@v2 - env: - AKISMET_BLOG: ${{ secrets.AKISMET_BLOG }} - AKISMET_API_KEY: ${{ secrets.AKISMET_API_KEY }} - with: - arguments: build check --stacktrace - - - name: SonarCloud - if: success() && matrix.java-version == env.SONAR_JDK - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - run: ./gradlew sonar --info diff --git a/.gitignore b/.gitignore index ac52a18..1808834 100644 --- a/.gitignore +++ b/.gitignore @@ -1,84 +1,61 @@ -!.vscode/extensions.json -!.vscode/launch.json -!.vscode/settings.json -!.vscode/tasks.json -*.class -*.code-workspace -*.ctxt -*.iws -*.log -*.nar -*.rar -*.sublime-* -*.tar.gz -*.zip -.DS_Store -.classpath .gradle -.history -.kobalt -.mtj.tmp/ -.mvn/timing.properties -.mvn/wrapper/maven-wrapper.jar -.nb-gradle -.project -.scannerwork -.settings -.vscode/* -/**/.idea/$CACHE_FILE$ -/**/.idea/$PRODUCT_WORKSPACE_FILE$ -/**/.idea/**/caches/build_file_checksums.ser -/**/.idea/**/contentModel.xml -/**/.idea/**/dataSources.ids -/**/.idea/**/dataSources.local.xml -/**/.idea/**/dataSources/ -/**/.idea/**/dbnavigator.xml -/**/.idea/**/dictionaries -/**/.idea/**/dynamic.xml -/**/.idea/**/gradle.xml -/**/.idea/**/httpRequests -/**/.idea/**/libraries -/**/.idea/**/mongoSettings.xml -/**/.idea/**/replstate.xml -/**/.idea/**/shelf -/**/.idea/**/shelf/ -/**/.idea/**/sonarlint* -/**/.idea/**/sqlDataSources.xml -/**/.idea/**/tasks.xml -/**/.idea/**/uiDesigner.xml -/**/.idea/**/usage.statistics.xml -/**/.idea/**/workspace.xml -/**/.idea_modules/ -Thumbs.db -__pycache__ +.DS_Store +build +lib/bld/** +!lib/bld/bld-wrapper.jar +!lib/bld/bld-wrapper.properties +lib/compile/ +lib/runtime/ +lib/standalone/ +lib/test/ + +# IDEA ignores + +# User-specific +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# AWS User-specific +.idea/**/aws.xml + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin atlassian-ide-plugin.xml -bin/ -build/ -cmake-build-*/ -com_crashlytics_export_strings.xml -crashlytics-build.properties -crashlytics.properties -dependency-reduced-pom.xml -deploy/ -dist/ -ehthumbs.db -fabric.properties -gen/ -hs_err_pid* -kobaltBuild -kobaltw*-test -lib/kotlin* -libs/ + +# Cursive Clojure plugin +.idea/replstate.xml + +# SonarLint plugin +.idea/sonarlint/ + +# Editor-based Rest Client +.idea/httpRequests + +bin +deploy +target local.properties -out/ -pom.xml.asc -pom.xml.next -pom.xml.releaseBackup -pom.xml.tag -pom.xml.versionsBackup -proguard-project.txt -project.properties -release.properties -target/ -test-output -venv + diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1601b0b..052df48 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,31 +1,11 @@ -image: gradle:8-jdk11 - -variables: - GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dorg.gradle.jvmargs=-XX:MaxMetaspaceSize=512m" - -before_script: - - export GRADLE_USER_HOME=`pwd`/.gradle +image: openjdk:17 stages: - - build - test -build: - stage: build - script: gradle --build-cache assemble - cache: - key: "$CI_COMMIT_REF_NAME" - policy: push - paths: - - build - - .gradle - test: stage: test - script: gradle check - cache: - key: "$CI_COMMIT_REF_NAME" - policy: pull - paths: - - build - - .gradle + script: + - ./bld download + - ./bld compile + - ./bld test diff --git a/.idea/app.iml b/.idea/app.iml new file mode 100644 index 0000000..2c1fe21 --- /dev/null +++ b/.idea/app.iml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/bld.iml b/.idea/bld.iml new file mode 100644 index 0000000..e63e11e --- /dev/null +++ b/.idea/bld.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml deleted file mode 100644 index 3ad4dc5..0000000 --- a/.idea/codeStyles/Project.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml deleted file mode 100644 index 79ee123..0000000 --- a/.idea/codeStyles/codeStyleConfig.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml deleted file mode 100644 index fb7f4a8..0000000 --- a/.idea/compiler.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/copyright/BSD_3.xml b/.idea/copyright/BSD_3.xml new file mode 100644 index 0000000..ee0e59a --- /dev/null +++ b/.idea/copyright/BSD_3.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/copyright/Erik_s_Copyright_Notice.xml b/.idea/copyright/Erik_s_Copyright_Notice.xml deleted file mode 100644 index 9accf79..0000000 --- a/.idea/copyright/Erik_s_Copyright_Notice.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml index 1419e40..3203074 100644 --- a/.idea/copyright/profiles_settings.xml +++ b/.idea/copyright/profiles_settings.xml @@ -1,3 +1,3 @@ - + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index 8ff795e..1e01b48 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -1,53 +1,8 @@ \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml deleted file mode 100644 index dd5077a..0000000 --- a/.idea/jarRepositories.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml index f8467b4..0dd4b35 100644 --- a/.idea/kotlinc.xml +++ b/.idea/kotlinc.xml @@ -1,6 +1,6 @@ - - \ No newline at end of file diff --git a/.idea/libraries/bld.xml b/.idea/libraries/bld.xml new file mode 100644 index 0000000..ca84ff0 --- /dev/null +++ b/.idea/libraries/bld.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/.idea/libraries/compile.xml b/.idea/libraries/compile.xml new file mode 100644 index 0000000..9bd86aa --- /dev/null +++ b/.idea/libraries/compile.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/runtime.xml b/.idea/libraries/runtime.xml new file mode 100644 index 0000000..2ae5c4b --- /dev/null +++ b/.idea/libraries/runtime.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/test.xml b/.idea/libraries/test.xml new file mode 100644 index 0000000..b80486a --- /dev/null +++ b/.idea/libraries/test.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 1e1e260..6933af7 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,21 +1,14 @@ + - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..55adcb9 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations/Run Tests.xml b/.idea/runConfigurations/Run Tests.xml new file mode 100644 index 0000000..a0f7cf6 --- /dev/null +++ b/.idea/runConfigurations/Run Tests.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..d32cf05 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,11 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "type": "java", + "name": "Run Tests", + "request": "launch", + "mainClass": "net.thauvin.erik.AkismetTest" + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..133aa45 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,15 @@ +{ + "java.project.sourcePaths": [ + "src/main/java", + "src/main/resources", + "src/test/java", + "src/bld/java" + ], + "java.configuration.updateBuildConfiguration": "automatic", + "java.project.referencedLibraries": [ + "${HOME}/.bld/dist/bld-1.7.5.jar", + "lib/compile/*.jar", + "lib/runtime/*.jar", + "lib/test/*.jar" + ] +} diff --git a/README.md b/README.md index fb401bc..f968ac8 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ [![License (3-Clause BSD)](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg?style=flat-square)](https://opensource.org/licenses/BSD-3-Clause) -[![Kotlin](https://img.shields.io/badge/kotlin-1.9.10-7f52ff)](https://kotlinlang.org/) +[![Kotlin](https://img.shields.io/badge/kotlin-1.9.20-7f52ff)](https://kotlinlang.org/) [![Release](https://img.shields.io/github/release/ethauvin/akismet-kotlin.svg)](https://github.com/ethauvin/akismet-kotlin/releases/latest) [![Nexus Snapshot](https://img.shields.io/nexus/s/net.thauvin.erik/akismet-kotlin?label=snapshot&server=https%3A%2F%2Foss.sonatype.org%2F)](https://oss.sonatype.org/content/repositories/snapshots/net/thauvin/erik/akismet-kotlin/) [![Maven Central](https://img.shields.io/maven-central/v/net.thauvin.erik/akismet-kotlin.svg?color=blue)](https://central.sonatype.com/artifact/net.thauvin.erik/akismet-kotlin) @@ -37,7 +37,7 @@ if (isSpam) { } ``` -[View Full Example](https://github.com/ethauvin/akismet-kotlin/blob/master/examples/src/main/kotlin/com/example/AkismetExample.kt) +[View Full Examples](https://github.com/ethauvin/akismet-kotlin/blob/master/examples) #### Java @@ -60,11 +60,22 @@ if (isSpam) { } ``` -[View Full Example](https://github.com/ethauvin/akismet-kotlin/blob/master/examples/src/main/java/com/example/AkismetSample.java) +[View Full Examples](https://github.com/ethauvin/akismet-kotlin/blob/master/examples) + +### bld + +To use with [bld](https://rife2.com/bld), include the following dependency in your [build](https://github.com/ethauvin/akismet-kotlin/blob/master/examples/bld/src/bld/java/com/example/ExampleBuild.java) file: + +```java +repositories = List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS_LEGACY); + +scope(compile) + .include(dependency("net.thauvin.erik:akismet-kotlin:1.0.0")); +``` ### Gradle -To use with [Gradle](https://gradle.org/), include the following dependency in your [build](https://github.com/ethauvin/akismet-kotlin/blob/master/examples/build.gradle.kts) file: +To use with [Gradle](https://gradle.org/), include the following dependency in your [build](https://github.com/ethauvin/akismet-kotlin/blob/master/examples/gradle/build.gradle.kts) file: ```gradle repositories { @@ -104,5 +115,6 @@ At a latter time, the comment can then be submitted: akismet.submitSpam(Akismet.jsonComment(json)) ``` -### More... +### More… + If all else fails, there's always more [Documentation](https://ethauvin.github.io/akismet-kotlin/). diff --git a/bitbucket-pipelines.yml b/bitbucket-pipelines.yml index a9514a0..7c85194 100644 --- a/bitbucket-pipelines.yml +++ b/bitbucket-pipelines.yml @@ -1,9 +1,10 @@ -image: maven:3-openjdk-18 +image: openjdk:17 pipelines: default: - step: - caches: - - gradle + name: Test with bld script: - - bash ./gradlew check + - ./bld download + - ./bld compile + - ./bld test diff --git a/bld b/bld new file mode 100755 index 0000000..f9906e9 --- /dev/null +++ b/bld @@ -0,0 +1,2 @@ +#!/usr/bin/env sh +java -jar "$(dirname "$0")/lib/bld/bld-wrapper.jar" "$0" --build net.thauvin.erik.AkismetBuild "$@" \ No newline at end of file diff --git a/bld.bat b/bld.bat new file mode 100644 index 0000000..5a0f2a2 --- /dev/null +++ b/bld.bat @@ -0,0 +1,4 @@ +@echo off +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +java -jar "%DIRNAME%/lib/bld/bld-wrapper.jar" "%0" --build net.thauvin.erik.AkismetBuild %* \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts deleted file mode 100644 index 144ac06..0000000 --- a/build.gradle.kts +++ /dev/null @@ -1,273 +0,0 @@ -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile -import java.net.URL -import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask -import org.gradle.api.tasks.testing.logging.TestExceptionFormat -import org.gradle.api.tasks.testing.logging.TestLogEvent - -plugins { - id("com.github.ben-manes.versions") version "0.48.0" - id("io.gitlab.arturbosch.detekt") version "1.23.1" - id("java-library") - id("java") - id("maven-publish") - id("net.thauvin.erik.gradle.semver") version "1.0.4" - id("org.jetbrains.dokka") version "1.9.0" - id("org.jetbrains.kotlinx.kover") version "0.7.3" - id("org.sonarqube") version "4.3.1.3277" - id("signing") - kotlin("jvm") version "1.9.10" - kotlin("kapt") version "1.9.10" - kotlin("plugin.serialization") version "1.9.10" -} - -group = "net.thauvin.erik" -description = "A client library for accessing the Automattic Kismet (Akismet) spam comments filtering service." - -val gitHub = "ethauvin/$name" -val mavenUrl = "https://github.com/$gitHub" -val deployDir = "deploy" -var isRelease = "release" in gradle.startParameter.taskNames - -var semverProcessor = "net.thauvin.erik:semver:1.2.0" - -val publicationName = "mavenJava" - -object Versions { - const val OKHTTP = "4.11.0" -} - -fun isNonStable(version: String): Boolean { - val stableKeyword = listOf("RELEASE", "FINAL", "GA").any { version.uppercase().contains(it) } - val regex = "^[0-9,.v-]+(-r)?$".toRegex() - val isStable = stableKeyword || regex.matches(version) - return isStable.not() -} - -repositories { - mavenCentral() - maven { url = uri("https://oss.sonatype.org/content/repositories/snapshots") } -} - -dependencies { - kapt(semverProcessor) - compileOnly(semverProcessor) - - implementation(platform("org.jetbrains.kotlin:kotlin-bom")) - -// implementation("javax.servlet:javax.servlet-api:4.0.1") - implementation("jakarta.servlet:jakarta.servlet-api:6.0.0") - - - implementation("com.squareup.okhttp3:okhttp:${Versions.OKHTTP}") - implementation("com.squareup.okio:okio:3.5.0") - implementation("com.squareup.okhttp3:logging-interceptor:${Versions.OKHTTP}") - - implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0") - - testImplementation("org.mockito:mockito-core:5.5.0") - testImplementation("org.testng:testng:7.8.0") - testImplementation("com.willowtreeapps.assertk:assertk-jvm:0.27.0") -} - -kapt { - arguments { - arg("semver.project.dir", projectDir) - } -} - -detekt { - //toolVersion = "main-SNAPSHOT" - baseline = project.rootDir.resolve("config/detekt/baseline.xml") -} - -java { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - withSourcesJar() -} - -koverReport { - defaults { - xml { - onCheck = true - } - html { - onCheck = true - } - } -} - -sonarqube { - properties { - property("sonar.projectKey", "ethauvin_$name") - property("sonar.organization", "ethauvin-github") - property("sonar.host.url", "https://sonarcloud.io") - property("sonar.sourceEncoding", "UTF-8") - property("sonar.coverage.jacoco.xmlReportPaths", "${layout.buildDirectory.get()}/reports/kover/report.xml") - } -} - -val javadocJar by tasks.creating(Jar::class) { - dependsOn(tasks.dokkaJavadoc) - from(tasks.dokkaJavadoc) - archiveClassifier.set("javadoc") - description = "Assembles a JAR of the generated Javadoc." - group = JavaBasePlugin.DOCUMENTATION_GROUP -} - -tasks { - withType { - testLogging { - exceptionFormat = TestExceptionFormat.FULL - events = setOf(TestLogEvent.PASSED, TestLogEvent.SKIPPED, TestLogEvent.FAILED) - } - - useTestNG() - } - - withType().configureEach { - kotlinOptions.jvmTarget = java.targetCompatibility.toString() - } - - withType { - destination = file("$projectDir/pom.xml") - } - - withType { - rejectVersionIf { - isNonStable(candidate.version) - } - } - - assemble { - dependsOn(javadocJar) - } - - clean { - doLast { - project.delete(fileTree(deployDir)) - } - } - - dokkaHtml { - dependsOn("kaptKotlin") - outputDirectory.set(file("$projectDir/docs")) - - dokkaSourceSets { - configureEach { - includes.from("config/dokka/packages.md") - sourceLink { - localDirectory.set(file("src/main/kotlin/")) - remoteUrl.set(URL("https://github.com/ethauvin/${project.name}/tree/master/src/main/kotlin/")) - remoteLineSuffix.set("#L") - } - externalDocumentationLink { - url.set(URL("https://jakarta.ee/specifications/platform/9/apidocs/")) - } - } - } - } - - dokkaJavadoc { - dependsOn(dokkaHtml) - dokkaSourceSets { - configureEach { - includes.from("config/dokka/packages.md") - externalDocumentationLink { - url.set(URL("https://jakarta.ee/specifications/platform/9/apidocs/")) - } - } - } - } - - val copyToDeploy by registering(Copy::class) { - from(configurations.runtimeClasspath) { - exclude("annotations-*.jar", "jakarta.servlet-*.jar") - } - from(jar) - into(deployDir) - } - - register("deploy") { - description = "Copies all needed files to the $deployDir directory." - group = PublishingPlugin.PUBLISH_TASK_GROUP - dependsOn(clean, build, jar) - outputs.dir(deployDir) - inputs.files(copyToDeploy) - mustRunAfter(clean) - } - - val gitIsDirty by registering(Exec::class) { - description = "Fails if git has uncommitted changes." - group = "verification" - commandLine("git", "diff", "--quiet", "--exit-code") - } - - val gitTag by registering(Exec::class) { - description = "Tags the local repository with version ${project.version}" - group = PublishingPlugin.PUBLISH_TASK_GROUP - dependsOn(gitIsDirty) - if (isRelease) { - commandLine("git", "tag", "-a", project.version, "-m", "Version ${project.version}") - } - } - - register("release") { - description = "Publishes version ${project.version} to local repository." - group = PublishingPlugin.PUBLISH_TASK_GROUP - dependsOn("deploy", gitTag, publishToMavenLocal) - } -} - -publishing { - publications { - create(publicationName) { - from(components["java"]) - artifact(javadocJar) - pom { - name.set(project.name) - description.set(project.description) - url.set(mavenUrl) - licenses { - license { - name.set("BSD 3-Clause") - url.set("https://opensource.org/licenses/BSD-3-Clause") - } - } - developers { - developer { - id.set("ethauvin") - name.set("Erik C. Thauvin") - email.set("erik@thauvin.net") - url.set("https://erik.thauvin.net/") - } - } - scm { - connection.set("scm:git:https://github.com/$gitHub.git") - developerConnection.set("scm:git:git@github.com:$gitHub.git") - url.set(mavenUrl) - } - issueManagement { - system.set("GitHub") - url.set("$mavenUrl/issues") - } - } - } - } - repositories { - maven { - name = "ossrh" - project.afterEvaluate { - url = if (project.version.toString().contains("SNAPSHOT")) - uri("https://oss.sonatype.org/content/repositories/snapshots/") else - uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/") - } - credentials(PasswordCredentials::class) - } - } -} - -signing { - useGpgCmd() - sign(publishing.publications[publicationName]) -} diff --git a/config/dokka/packages.md b/config/dokka/packages.md index 138c3a1..0183a6f 100644 --- a/config/dokka/packages.md +++ b/config/dokka/packages.md @@ -2,7 +2,7 @@ [Akismet for Kotlin/Java](https://github.com/ethauvin/akismet-kotlin), a client library for accessing the [Automattic Kismet](https://www.akismet.com/) (Akismet) spam comments filtering service. -# package net.thauvin.erik.akismet +# Package net.thauvin.erik.akismet A Kotlin/Java library for accessing the Akismet service. diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html similarity index 52% rename from docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html rename to docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html index af49898..3013bd1 100644 --- a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html @@ -41,14 +41,14 @@
-1.0.0
+1.0.1-SNAPSHOT
- +
-
- +
+

AkismetComment

-
constructor(request: HttpServletRequest)(source)

Creates a new instance extracting the userIp, userAgent, referrer and serverEnv environment variables from a Servlet request.

See the Akismet API for more details.

See also


constructor(userIp: String, userAgent: String)(source)

Creates a new instance.

See the Akismet API for more details.

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

+
constructor(request: <Error class: unknown class>)(source)

Creates a new instance extracting the userIp, userAgent, referrer and serverEnv environment variables from a Servlet request.

See the Akismet API for more details.

See also


constructor(userIp: String, userAgent: String)(source)

Creates a new instance.

See the Akismet API for more details.

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

- +
-
- +
+

ADMIN_ROLE

-

Administrator role. If used, Akismet will always return false.

+

Administrator role. If used, Akismet will always return false.

- +
-
- +
+

TYPE_BLOG_POST

-

A blog post.

+

A blog post.

- +
-
- +
+

TYPE_COMMENT

-

A blog comment.

+

A blog comment.

- +
-
- +
+

TYPE_CONTACT_FORM

-

A contact form or feedback form submission.

+

A contact form or feedback form submission.

- +
-
- +
+

TYPE_FORUM_POST

-

A top-level forum post.

+

A top-level forum post.

- +
-
- +
+

TYPE_MESSAGE

-

A message sent between just a few users.

+

A message sent between just a few users.

- +
-
- +
+

TYPE_PINGBACK

-

A pingback.

+

A pingback.

- +
-
- +
+

TYPE_REPLY

-

A reply to a top-level forum post.

+

A reply to a top-level forum post.

- +
-
- +
+

TYPE_SIGNUP

-

A new user account.

+

A new user account.

- +
-
- +
+

TYPE_TRACKBACK

-

A trackback.

+

A trackback.

- +
-
- +
+

TYPE_TWEET

-

A Twitter message.

+

A Twitter message.

- +
-
- +
+

Companion

- +

Properties

-
-
+
+
- +
Link copied to clipboard
-
const val ADMIN_ROLE: String

Administrator role. If used, Akismet will always return false.

+
const val ADMIN_ROLE: String

Administrator role. If used, Akismet will always return false.

- -
+ +
- +
Link copied to clipboard
-

A blog post.

+

A blog post.

- -
+ +
- +
Link copied to clipboard
-
const val TYPE_COMMENT: String

A blog comment.

+
const val TYPE_COMMENT: String

A blog comment.

- -
+ +
- +
Link copied to clipboard
-

A contact form or feedback form submission.

+

A contact form or feedback form submission.

- -
+ +
- +
Link copied to clipboard
-

A top-level forum post.

+

A top-level forum post.

- -
+ +
- +
Link copied to clipboard
-
const val TYPE_MESSAGE: String

A message sent between just a few users.

+
const val TYPE_MESSAGE: String

A message sent between just a few users.

- -
+ +
- +
Link copied to clipboard
-

A pingback.

+

A pingback.

- -
+ +
- +
Link copied to clipboard
-
const val TYPE_REPLY: String

A reply to a top-level forum post.

+
const val TYPE_REPLY: String

A reply to a top-level forum post.

- -
+ +
- +
Link copied to clipboard
-
const val TYPE_SIGNUP: String

A new user account.

+
const val TYPE_SIGNUP: String

A new user account.

- -
+ +
- +
Link copied to clipboard
-

A trackback.

+

A trackback.

- -
+ +
- +
Link copied to clipboard
-
const val TYPE_TWEET: String

A Twitter message.

+
const val TYPE_TWEET: String

A Twitter message.

diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html similarity index 79% rename from docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html rename to docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html index 1caea15..32b3e8e 100644 --- a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html @@ -41,14 +41,14 @@
-1.0.0
+1.0.1-SNAPSHOT
- +
-
- +
+

authorEmail

-

Email address submitted with the comment.

+

Email address submitted with the comment.

- +
-
- +
+

authorUrl

-

URL submitted with comment.

+

URL submitted with comment.

- +
-
- +
+

author

-

Name submitted with the comment.

+

Name submitted with the comment.

- +
-
- +
+

blogCharset

-

The character encoding for the form values included in comment parameters, such as UTF-8 or ISO-8859-1

+

The character encoding for the form values included in comment parameters, such as UTF-8 or ISO-8859-1

- +
-
- +
+

blogLang

-

Indicates the language(s) in use on the blog or site, in ISO 639-1 format, comma-separated.

A site with articles in English and French might use: en, fr_ca

+

Indicates the language(s) in use on the blog or site, in ISO 639-1 format, comma-separated.

A site with articles in English and French might use: en, fr_ca

- +
-
- +
+

content

-

The content that was submitted.

+

The content that was submitted.

- +
-
- +
+

dateGmt

-

The UTC timestamp of the creation of the comment, in ISO 8601 format.

May be omitted if the comment is sent to the API at the time it is created.

See also

+

The UTC timestamp of the creation of the comment, in ISO 8601 format.

May be omitted if the comment is sent to the API at the time it is created.

See also

- +
-
- +
+

equals

-
open operator override fun equals(other: Any?): Boolean(source)

Indicates whether some other object is equal to this one.

+
open operator override fun equals(other: Any?): Boolean(source)

Indicates whether some other object is equal to this one.

- +
-
- +
+

hashCode

-
open override fun hashCode(): Int(source)

Returns a hash code value for the object.

+
open override fun hashCode(): Int(source)

Returns a hash code value for the object.

- +
-
- +
+

AkismetComment

-
@Serializable
open class AkismetComment(val userIp: String, val userAgent: String)(source)

A comment to send to Akismet.

Most everything is optional. Performance can drop dramatically if you choose to exclude data points. The more data you send Akismet about each comment, the greater the accuracy. They recommend erring on the side of including too much data.

See the Akismet API for more details.

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

+
open class AkismetComment(val userIp: String, val userAgent: String)(source)

A comment to send to Akismet.

Most everything is optional. Performance can drop dramatically if you choose to exclude data points. The more data you send Akismet about each comment, the greater the accuracy. They recommend erring on the side of including too much data.

See the Akismet API for more details.

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

Constructors

-
-
+
+
- +
Link copied to clipboard
-
constructor(request: HttpServletRequest)

Creates a new instance extracting the userIp, userAgent, referrer and serverEnv environment variables from a Servlet request.

constructor(userIp: String, userAgent: String)

Creates a new instance.

+
constructor(request: <Error class: unknown class>)

Creates a new instance extracting the userIp, userAgent, referrer and serverEnv environment variables from a Servlet request.

constructor(userIp: String, userAgent: String)

Creates a new instance.

@@ -91,17 +91,17 @@

Types

-
-
+
+
- +
Link copied to clipboard
-
object Companion
+
object Companion
@@ -110,257 +110,257 @@

Properties

-
-
+
+
- +
Link copied to clipboard
-

Name submitted with the comment.

+

Name submitted with the comment.

- -
+ +
- +
Link copied to clipboard
-

Email address submitted with the comment.

+

Email address submitted with the comment.

- -
+ +
- +
Link copied to clipboard
-

URL submitted with comment.

+

URL submitted with comment.

- -
+ +
- +
Link copied to clipboard
-

The character encoding for the form values included in comment parameters, such as UTF-8 or ISO-8859-1

+

The character encoding for the form values included in comment parameters, such as UTF-8 or ISO-8859-1

- -
+ +
- +
Link copied to clipboard
-

Indicates the language(s) in use on the blog or site, in ISO 639-1 format, comma-separated.

+

Indicates the language(s) in use on the blog or site, in ISO 639-1 format, comma-separated.

- -
+ +
- +
Link copied to clipboard
-

The content that was submitted.

+

The content that was submitted.

- -
+ +
- +
Link copied to clipboard
-

The UTC timestamp of the creation of the comment, in ISO 8601 format.

+

The UTC timestamp of the creation of the comment, in ISO 8601 format.

- -
+ +
- +
Link copied to clipboard
-

This is an optional parameter. You can use it when submitting test queries to Akismet.

+

This is an optional parameter. You can use it when submitting test queries to Akismet.

- -
+ +
- +
Link copied to clipboard
-

The full permanent URL of the entry the comment was submitted to.

+

The full permanent URL of the entry the comment was submitted to.

- -
+ +
- +
Link copied to clipboard
-

The UTC timestamp of the publication time for the post, page or thread on which the comment was posted.

+

The UTC timestamp of the publication time for the post, page or thread on which the comment was posted.

- -
+ +
- +
Link copied to clipboard
-

If you are sending content to Akismet to be rechecked, such as a post that has been edited or old pending comments that you'd like to recheck, include this parameter with a string describing why the content is being rechecked.

+

If you are sending content to Akismet to be rechecked, such as a post that has been edited or old pending comments that you'd like to recheck, include this parameter with a string describing why the content is being rechecked.

- -
+ +
- +
Link copied to clipboard
-

The content of the referer header should be set here.

+

The content of the referer header should be set here.

- -
+ +
- +
Link copied to clipboard
-

In PHP, there is an array of environmental variables called $_SERVER that contains information about the Web server itself as well as a key/value for every HTTP header sent with the request. This data is highly useful to Akismet.

+

In PHP, there is an array of environmental variables called $_SERVER that contains information about the Web server itself as well as a key/value for every HTTP header sent with the request. This data is highly useful to Akismet.

- -
+ +
- +
Link copied to clipboard
-
var type: String?

A string that describes the type of content being sent, such as:

+
var type: String?

A string that describes the type of content being sent, such as:

- -
+ +
- +
Link copied to clipboard
- -
+ +
- +
Link copied to clipboard
- +
- -
+ +
- +
Link copied to clipboard
-

The user role of the user who submitted the comment. This is an optional parameter.

+

The user role of the user who submitted the comment. This is an optional parameter.

@@ -369,62 +369,62 @@

Functions

-
-
+
+
- +
Link copied to clipboard
-
open operator override fun equals(other: Any?): Boolean

Indicates whether some other object is equal to this one.

+
open operator override fun equals(other: Any?): Boolean

Indicates whether some other object is equal to this one.

- -
+ +
- +
Link copied to clipboard
-
open override fun hashCode(): Int

Returns a hash code value for the object.

+
open override fun hashCode(): Int

Returns a hash code value for the object.

- -
+ +
- +
Link copied to clipboard
-
fun toJson(): String

Returns a JSON representation of the comment.

+
fun toJson(): String

Returns a JSON representation of the comment.

- -
+ +
- +
Link copied to clipboard
-
open override fun toString(): String

Returns a JSON representation of the comment.

+
open override fun toString(): String

Returns a JSON representation of the comment.

diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html similarity index 79% rename from docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html rename to docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html index d67c2e9..58cc1e9 100644 --- a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html @@ -41,14 +41,14 @@
-1.0.0
+1.0.1-SNAPSHOT
- +
-
- +
+

isTest

-

This is an optional parameter. You can use it when submitting test queries to Akismet.

+

This is an optional parameter. You can use it when submitting test queries to Akismet.

- +
-
- +
+

permalink

-

The full permanent URL of the entry the comment was submitted to.

+

The full permanent URL of the entry the comment was submitted to.

- +
-
- +
+

postModifiedGmt

-

The UTC timestamp of the publication time for the post, page or thread on which the comment was posted.

See also

+

The UTC timestamp of the publication time for the post, page or thread on which the comment was posted.

See also

- +
-
- +
+

recheckReason

-

If you are sending content to Akismet to be rechecked, such as a post that has been edited or old pending comments that you'd like to recheck, include this parameter with a string describing why the content is being rechecked.

For example: edit

+

If you are sending content to Akismet to be rechecked, such as a post that has been edited or old pending comments that you'd like to recheck, include this parameter with a string describing why the content is being rechecked.

For example: edit

- +
-
- +
+

referrer

-

The content of the referer header should be set here.

+

The content of the referer header should be set here.

- +
-
- +
+

serverEnv

-

In PHP, there is an array of environmental variables called $_SERVER that contains information about the Web server itself as well as a key/value for every HTTP header sent with the request. This data is highly useful to Akismet.

How the submitted content interacts with the server can be very telling, so please include as much of it as possible.

+

In PHP, there is an array of environmental variables called $_SERVER that contains information about the Web server itself as well as a key/value for every HTTP header sent with the request. This data is highly useful to Akismet.

How the submitted content interacts with the server can be very telling, so please include as much of it as possible.

- +
-
- +
+

toJson

-

Returns a JSON representation of the comment.

See also

+

Returns a JSON representation of the comment.

See also

- +
-
- +
+

toString

-
open override fun toString(): String(source)

Returns a JSON representation of the comment.

See also

+
open override fun toString(): String(source)

Returns a JSON representation of the comment.

See also

- +
-
- +
+

type

-

A string that describes the type of content being sent, such as:

You may send a value not listed above if none of them accurately describe your content.

This is further explained here.

+

A string that describes the type of content being sent, such as:

You may send a value not listed above if none of them accurately describe your content.

This is further explained here.

- +
-
- +
+

userAgent

-

Parameters

userAgent

User agent string of the web browser submitting the comment.

+

Parameters

userAgent

User agent string of the web browser submitting the comment.

- +
-
- +
+

userIp

-

Parameters

userIp

IP address of the comment submitter.

+

Parameters

userIp

IP address of the comment submitter.

- +
-
- +
+

userRole

-

The user role of the user who submitted the comment. This is an optional parameter.

If you set it to ADMIN_ROLE, Akismet will always return false.

+

The user role of the user who submitted the comment. This is an optional parameter.

If you set it to ADMIN_ROLE, Akismet will always return false.

- +
-
- +
+

Akismet

-
constructor(apiKey: String, blog: String)(source)

Creates a new instance using an Akismet API key and URL registered with Akismet.


constructor(apiKey: String)(source)

Creates a new instance using the provided Akismet API key.

+
constructor(apiKey: String, blog: String)(source)

Creates a new instance using an Akismet API key and URL registered with Akismet.


constructor(apiKey: String)(source)

Creates a new instance using the provided Akismet API key.

- +
-
- +
+

dateToGmt

-

Converts a date to a UTC timestamp. (ISO 8601)

See also


Converts a locale date/time to a UTC timestamp. (ISO 8601)

See also

+

Converts a date to a UTC timestamp. (ISO 8601)

See also


Converts a locale date/time to a UTC timestamp. (ISO 8601)

See also

- +
-
- +
+

Companion

- +

Functions

-
-
+
+
- +
Link copied to clipboard
-

Converts a locale date/time to a UTC timestamp. (ISO 8601)

Converts a date to a UTC timestamp. (ISO 8601)

+

Converts a locale date/time to a UTC timestamp. (ISO 8601)

fun dateToGmt(date: Date): String

Converts a date to a UTC timestamp. (ISO 8601)

- -
+ +
- +
Link copied to clipboard
-

(Re)Creates a comment from a JSON string.

+

(Re)Creates a comment from a JSON string.

diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html similarity index 67% rename from docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html rename to docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html index a01d046..eeb9e5d 100644 --- a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html @@ -41,14 +41,14 @@
-1.0.0
+1.0.1-SNAPSHOT
- +
-
- +
+

jsonComment

-

(Re)Creates a comment from a JSON string.

See also

+

(Re)Creates a comment from a JSON string.

See also

- +
-
- +
+

appUserAgent

-

The application user agent to be sent to Akismet.

If possible, the application user agent string should always use the following format:

    Application Name/Version

The library's own user agent string will automatically be appended.

See the Akismet API for more details.

+

The application user agent to be sent to Akismet.

If possible, the application user agent string should always use the following format:

    Application Name/Version

The library's own user agent string will automatically be appended.

See the Akismet API for more details.

- +
-
- +
+

blog

-

The URL registered with Akismet.

+

The URL registered with Akismet.

- +
-
- +
+

checkComment

-
fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean(source)

Comment Check.

This is the call you will make the most. It takes a number of arguments and characteristics about the submitted content and then returns a thumbs up or thumbs down. Performance can drop dramatically if you choose to exclude data points. The more data you send Akismet about each comment, the greater the accuracy. They recommend erring on the side of including too much data

By default, if an error (IO, empty response from Akismet, etc.) occurs the function will return false and log the error, use the trueOnError parameter to change this behavior.

See the Akismet API for more details.

Return

true if the comment is spam, false if the comment is not.

Parameters

trueOnError

Set to return true on error.

+
fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean(source)

Comment Check.

This is the call you will make the most. It takes a number of arguments and characteristics about the submitted content and then returns a thumbs up or thumbs down. Performance can drop dramatically if you choose to exclude data points. The more data you send Akismet about each comment, the greater the accuracy. They recommend erring on the side of including too much data

By default, if an error (IO, empty response from Akismet, etc.) occurs the function will return false and log the error, use the trueOnError parameter to change this behavior.

See the Akismet API for more details.

Return

true if the comment is spam, false if the comment is not.

Parameters

trueOnError

Set to return true on error.

- +
-
- +
+
-

proTip

+

debugHelp

-

The x-akismet-pro-tip header from the last operation, if any.

If the x-akismet-pro-tip header is set to discard, then Akismet has determined that the comment is blatant spam, and you can safely discard it without saving it in any spam queue.

See the Akismet API for more details.

See also

+

The x-akismet-debug-help header from the last operation, if any.

If the call returns neither true nor false, the x-akismet-debug-help header will provide context for any error that has occurred.

Note that the x-akismet-debug-help header will not always be sent if a response does not return false or true.

See the Akismet API for more details.

- +
-
- +
+

errorMessage

-

The error message.

The error (IO, empty response from Akismet, etc.) message is also logged as a warning.

See also

+

The error message.

The error (IO, empty response from Akismet, etc.) message is also logged as a warning.

See also

- +
-
- +
+

executeMethod

-
fun executeMethod(apiUrl: HttpUrl, formBody: FormBody, trueOnError: Boolean = false): Boolean(source)

Executes a call to an Akismet REST API method.

Parameters

apiUrl

The Akismet API URL endpoint. (e.g. https://rest.akismet.com/1.1/verify-key)

formBody

The HTTP POST form body containing the request parameters to be submitted.

trueOnError

Set to return true on error (IO, empty response, etc.)

+
fun executeMethod(apiUrl: <Error class: unknown class>, formBody: <Error class: unknown class>, trueOnError: Boolean = false): Boolean(source)

Executes a call to an Akismet REST API method.

Parameters

apiUrl

The Akismet API URL endpoint. (e.g. https://rest.akismet.com/1.1/verify-key)

formBody

The HTTP POST form body containing the request parameters to be submitted.

trueOnError

Set to return true on error (IO, empty response, etc.)

- +
-
- +
+

httpStatusCode

-

The HTTP status code of the last operation.

+

The HTTP status code of the last operation.

- +
-
- +
+

Akismet

-
open class Akismet(apiKey: String)(source)

Provides access to the Akismet API.

+
open class Akismet(apiKey: String)(source)

Provides access to the Akismet API.

Constructors

-
-
+
+
- +
Link copied to clipboard
-
constructor(apiKey: String, blog: String)

Creates a new instance using an Akismet API key and URL registered with Akismet.

constructor(apiKey: String)

Creates a new instance using the provided Akismet API key.

+
constructor(apiKey: String, blog: String)

Creates a new instance using an Akismet API key and URL registered with Akismet.

constructor(apiKey: String)

Creates a new instance using the provided Akismet API key.

@@ -91,17 +91,17 @@

Types

-
-
+
+
- +
Link copied to clipboard
-
object Companion
+
object Companion
@@ -110,152 +110,152 @@

Properties

-
-
+
+
- +
Link copied to clipboard
-

The application user agent to be sent to Akismet.

+

The application user agent to be sent to Akismet.

- -
+ +
- +
Link copied to clipboard
-

The URL registered with Akismet.

+

The URL registered with Akismet.

- -
+ +
- +
Link copied to clipboard
-

The x-akismet-debug-help header from the last operation, if any.

+

The x-akismet-debug-help header from the last operation, if any.

- -
+ +
- +
Link copied to clipboard
-

The error message.

+

The error message.

- -
+ +
- +
Link copied to clipboard
-

The HTTP status code of the last operation.

+

The HTTP status code of the last operation.

- -
+ +
- +
Link copied to clipboard
-

Set to true if Akismet has determined that the last checked comment is blatant spam, and you can safely discard it without saving it in any spam queue.

+

Set to true if Akismet has determined that the last checked comment is blatant spam, and you can safely discard it without saving it in any spam queue.

- -
+ +
- +
Link copied to clipboard
-

Set to true if the API Key has been verified.

+

Set to true if the API Key has been verified.

- -
+ +
- +
Link copied to clipboard
-

The logger instance.

+

The logger instance.

- -
+ +
- +
Link copied to clipboard
-

The x-akismet-pro-tip header from the last operation, if any.

+

The x-akismet-pro-tip header from the last operation, if any.

- -
+ +
- +
Link copied to clipboard
-

The actual response sent by Akismet from the last operation.

+

The actual response sent by Akismet from the last operation.

@@ -264,92 +264,92 @@

Functions

-
-
+
+
- +
Link copied to clipboard
-
fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean

Comment Check.

+
fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean

Comment Check.

- -
+ +
- +
Link copied to clipboard
-
fun executeMethod(apiUrl: HttpUrl, formBody: FormBody, trueOnError: Boolean = false): Boolean

Executes a call to an Akismet REST API method.

+
fun executeMethod(apiUrl: <Error class: unknown class>, formBody: <Error class: unknown class>, trueOnError: Boolean = false): Boolean

Executes a call to an Akismet REST API method.

- -
+ +
- +
Link copied to clipboard
- -
+ +
- +
Link copied to clipboard
-

Submit Ham. (False Positives)

+

Submit Ham. (False Positives)

- -
+ +
- +
Link copied to clipboard
-

Submit Spam. (Missed Spam)

+

Submit Spam. (Missed Spam)

- -
+ +
- +
Link copied to clipboard
-

Key Verification.

+

Key Verification.

diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html similarity index 71% rename from docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html rename to docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html index 54ea4e6..ae2d654 100644 --- a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html @@ -41,14 +41,14 @@
-1.0.0
+1.0.1-SNAPSHOT
- +
-
- +
+

isDiscard

-

Set to true if Akismet has determined that the last checked comment is blatant spam, and you can safely discard it without saving it in any spam queue.

See the Akismet API for more details.

See also

+

Set to true if Akismet has determined that the last checked comment is blatant spam, and you can safely discard it without saving it in any spam queue.

See the Akismet API for more details.

See also

- +
-
- +
+

isVerifiedKey

-

Set to true if the API Key has been verified.

See also

+

Set to true if the API Key has been verified.

See also

- +
-
- +
+

logger

-

The logger instance.

+

The logger instance.

- +
-
- +
+
-

debugHelp

+

proTip

-

The x-akismet-debug-help header from the last operation, if any.

If the call returns neither true nor false, the x-akismet-debug-help header will provide context for any error that has occurred.

Note that the x-akismet-debug-help header will not always be sent if a response does not return false or true.

See the Akismet API for more details.

+

The x-akismet-pro-tip header from the last operation, if any.

If the x-akismet-pro-tip header is set to discard, then Akismet has determined that the comment is blatant spam, and you can safely discard it without saving it in any spam queue.

See the Akismet API for more details.

See also

- +
-
- +
+

reset

- +
- +
-
- +
+

response

-

The actual response sent by Akismet from the last operation.

For example: true, false, valid, invalid, etc.

+

The actual response sent by Akismet from the last operation.

For example: true, false, valid, invalid, etc.

- +
-
- +
+

submitHam

-

Submit Ham. (False Positives)

This call is intended for the submission of false positives - items that were incorrectly classified as spam by Akismet. It takes identical arguments as comment check and submit spam.

It is very important that the values you submit with this call match those of your comment check calls as closely as possible. In order to learn from its mistakes, Akismet needs to match your missed spam and false positive reports to the original comment-check API calls made when the content was first posted. While it is normal for less information to be available for submit-spam and submit-ham calls (most comment systems and forums will not store all metadata), you should ensure that the values that you do send match those of the original content.

See the Akismet API for more details.

Return

true if the comment was submitted, false otherwise.

+

Submit Ham. (False Positives)

This call is intended for the submission of false positives - items that were incorrectly classified as spam by Akismet. It takes identical arguments as comment check and submit spam.

It is very important that the values you submit with this call match those of your comment check calls as closely as possible. In order to learn from its mistakes, Akismet needs to match your missed spam and false positive reports to the original comment-check API calls made when the content was first posted. While it is normal for less information to be available for submit-spam and submit-ham calls (most comment systems and forums will not store all metadata), you should ensure that the values that you do send match those of the original content.

See the Akismet API for more details.

Return

true if the comment was submitted, false otherwise.

- +
-
- +
+

submitSpam

-

Submit Spam. (Missed Spam)

This call is for submitting comments that weren't marked as spam but should have been.

It is very important that the values you submit with this call match those of your comment check calls as closely as possible. In order to learn from its mistakes, Akismet needs to match your missed spam and false positive reports to the original comment-check API calls made when the content was first posted. While it is normal for less information to be available for submit-spam and submit-ham calls (most comment systems and forums will not store all metadata), you should ensure that the values that you do send match those of the original content.

See the Akismet API for more details.

Return

true if the comment was submitted, false otherwise.

+

Submit Spam. (Missed Spam)

This call is for submitting comments that weren't marked as spam but should have been.

It is very important that the values you submit with this call match those of your comment check calls as closely as possible. In order to learn from its mistakes, Akismet needs to match your missed spam and false positive reports to the original comment-check API calls made when the content was first posted. While it is normal for less information to be available for submit-spam and submit-ham calls (most comment systems and forums will not store all metadata), you should ensure that the values that you do send match those of the original content.

See the Akismet API for more details.

Return

true if the comment was submitted, false otherwise.

- +
-
- +
+

verifyKey

-

Key Verification.

Key verification authenticates your key before calling the comment check, submit spam, or submit ham methods. This is the first call that you should make to Akismet and is especially useful if you will have multiple users with their own Akismet subscriptions using your application.

See the Akismet API for more details.

Return

true if the key is valid, false otherwise.

See also

+

Key Verification.

Key verification authenticates your key before calling the comment check, submit spam, or submit ham methods. This is the first call that you should make to Akismet and is especially useful if you will have multiple users with their own Akismet subscriptions using your application.

See the Akismet API for more details.

Return

true if the key is valid, false otherwise.

See also

- +
-
- +
+

Package-level declarations

+

A Kotlin/Java library for accessing the Akismet service.

Types

-
-
+
+
- +
Link copied to clipboard
-
open class Akismet(apiKey: String)

Provides access to the Akismet API.

+
open class Akismet(apiKey: String)

Provides access to the Akismet API.

- -
+ +
- +
Link copied to clipboard
-
@Serializable
open class AkismetComment(val userIp: String, val userAgent: String)

A comment to send to Akismet.

+
open class AkismetComment(val userIp: String, val userAgent: String)

A comment to send to Akismet.

diff --git a/docs/-akismet -kotlin/package-list b/docs/-akismet -kotlin/package-list new file mode 100644 index 0000000..e7dce2a --- /dev/null +++ b/docs/-akismet -kotlin/package-list @@ -0,0 +1,64 @@ +$dokka.format:html-v1 +$dokka.linkExtension:html +$dokka.location:net.thauvin.erik.akismet////PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/index.html +$dokka.location:net.thauvin.erik.akismet/Akismet.Companion///PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/index.html +$dokka.location:net.thauvin.erik.akismet/Akismet.Companion/dateToGmt/#java.time.LocalDateTime/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html +$dokka.location:net.thauvin.erik.akismet/Akismet.Companion/dateToGmt/#java.util.Date/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html +$dokka.location:net.thauvin.erik.akismet/Akismet.Companion/jsonComment/#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html +$dokka.location:net.thauvin.erik.akismet/Akismet///PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/index.html +$dokka.location:net.thauvin.erik.akismet/Akismet/Akismet/#kotlin.String#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html +$dokka.location:net.thauvin.erik.akismet/Akismet/Akismet/#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html +$dokka.location:net.thauvin.erik.akismet/Akismet/appUserAgent/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/app-user-agent.html +$dokka.location:net.thauvin.erik.akismet/Akismet/blog/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/blog.html +$dokka.location:net.thauvin.erik.akismet/Akismet/checkComment/#net.thauvin.erik.akismet.AkismetComment#kotlin.Boolean/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html +$dokka.location:net.thauvin.erik.akismet/Akismet/debugHelp/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html +$dokka.location:net.thauvin.erik.akismet/Akismet/errorMessage/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/error-message.html +$dokka.location:net.thauvin.erik.akismet/Akismet/executeMethod/#[Error type: Unresolved type for HttpUrl]#[Error type: Unresolved type for FormBody]#kotlin.Boolean/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html +$dokka.location:net.thauvin.erik.akismet/Akismet/httpStatusCode/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html +$dokka.location:net.thauvin.erik.akismet/Akismet/isDiscard/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html +$dokka.location:net.thauvin.erik.akismet/Akismet/isVerifiedKey/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html +$dokka.location:net.thauvin.erik.akismet/Akismet/logger/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/logger.html +$dokka.location:net.thauvin.erik.akismet/Akismet/proTip/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html +$dokka.location:net.thauvin.erik.akismet/Akismet/reset/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/reset.html +$dokka.location:net.thauvin.erik.akismet/Akismet/response/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/response.html +$dokka.location:net.thauvin.erik.akismet/Akismet/submitHam/#net.thauvin.erik.akismet.AkismetComment/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-ham.html +$dokka.location:net.thauvin.erik.akismet/Akismet/submitSpam/#net.thauvin.erik.akismet.AkismetComment/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-spam.html +$dokka.location:net.thauvin.erik.akismet/Akismet/verifyKey/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion///PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/ADMIN_ROLE/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_BLOG_POST/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-b-l-o-g_-p-o-s-t.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_COMMENT/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-m-m-e-n-t.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_CONTACT_FORM/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_FORUM_POST/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_MESSAGE/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-m-e-s-s-a-g-e.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_PINGBACK/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_REPLY/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-r-e-p-l-y.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_SIGNUP/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-s-i-g-n-u-p.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_TRACKBACK/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-r-a-c-k-b-a-c-k.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_TWEET/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-w-e-e-t.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment///PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/AkismetComment/#[Error type: Unresolved type for HttpServletRequest]/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/AkismetComment/#kotlin.String#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/author/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/authorEmail/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/authorUrl/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/blogCharset/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/blogLang/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/content/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/content.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/dateGmt/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/equals/#kotlin.Any?/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/equals.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/hashCode/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/hash-code.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/isTest/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/permalink/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/permalink.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/postModifiedGmt/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/recheckReason/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/referrer/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/referrer.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/serverEnv/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/server-env.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/toJson/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-json.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/toString/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-string.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/type/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/type.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/userAgent/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/userIp/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/userRole/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html +net.thauvin.erik.akismet + diff --git a/docs/akismet-kotlin/package-list b/docs/akismet-kotlin/package-list deleted file mode 100644 index 8f4b479..0000000 --- a/docs/akismet-kotlin/package-list +++ /dev/null @@ -1,64 +0,0 @@ -$dokka.format:html-v1 -$dokka.linkExtension:html -$dokka.location:net.thauvin.erik.akismet////PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/index.html -$dokka.location:net.thauvin.erik.akismet/Akismet.Companion///PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/index.html -$dokka.location:net.thauvin.erik.akismet/Akismet.Companion/dateToGmt/#java.time.LocalDateTime/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html -$dokka.location:net.thauvin.erik.akismet/Akismet.Companion/dateToGmt/#java.util.Date/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html -$dokka.location:net.thauvin.erik.akismet/Akismet.Companion/jsonComment/#kotlin.String/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html -$dokka.location:net.thauvin.erik.akismet/Akismet///PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/index.html -$dokka.location:net.thauvin.erik.akismet/Akismet/Akismet/#kotlin.String#kotlin.String/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html -$dokka.location:net.thauvin.erik.akismet/Akismet/Akismet/#kotlin.String/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html -$dokka.location:net.thauvin.erik.akismet/Akismet/appUserAgent/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/app-user-agent.html -$dokka.location:net.thauvin.erik.akismet/Akismet/blog/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/blog.html -$dokka.location:net.thauvin.erik.akismet/Akismet/checkComment/#net.thauvin.erik.akismet.AkismetComment#kotlin.Boolean/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html -$dokka.location:net.thauvin.erik.akismet/Akismet/debugHelp/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html -$dokka.location:net.thauvin.erik.akismet/Akismet/errorMessage/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/error-message.html -$dokka.location:net.thauvin.erik.akismet/Akismet/executeMethod/#okhttp3.HttpUrl#okhttp3.FormBody#kotlin.Boolean/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html -$dokka.location:net.thauvin.erik.akismet/Akismet/httpStatusCode/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html -$dokka.location:net.thauvin.erik.akismet/Akismet/isDiscard/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html -$dokka.location:net.thauvin.erik.akismet/Akismet/isVerifiedKey/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html -$dokka.location:net.thauvin.erik.akismet/Akismet/logger/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/logger.html -$dokka.location:net.thauvin.erik.akismet/Akismet/proTip/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html -$dokka.location:net.thauvin.erik.akismet/Akismet/reset/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/reset.html -$dokka.location:net.thauvin.erik.akismet/Akismet/response/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/response.html -$dokka.location:net.thauvin.erik.akismet/Akismet/submitHam/#net.thauvin.erik.akismet.AkismetComment/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/submit-ham.html -$dokka.location:net.thauvin.erik.akismet/Akismet/submitSpam/#net.thauvin.erik.akismet.AkismetComment/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/submit-spam.html -$dokka.location:net.thauvin.erik.akismet/Akismet/verifyKey/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion///PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/ADMIN_ROLE/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_BLOG_POST/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-b-l-o-g_-p-o-s-t.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_COMMENT/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-m-m-e-n-t.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_CONTACT_FORM/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_FORUM_POST/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_MESSAGE/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-m-e-s-s-a-g-e.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_PINGBACK/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_REPLY/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-r-e-p-l-y.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_SIGNUP/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-s-i-g-n-u-p.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_TRACKBACK/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-r-a-c-k-b-a-c-k.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_TWEET/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-w-e-e-t.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment///PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/AkismetComment/#jakarta.servlet.http.HttpServletRequest/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/AkismetComment/#kotlin.String#kotlin.String/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/author/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/authorEmail/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/authorUrl/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/blogCharset/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/blogLang/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/content/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/content.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/dateGmt/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/equals/#kotlin.Any?/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/equals.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/hashCode/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/hash-code.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/isTest/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/permalink/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/permalink.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/postModifiedGmt/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/recheckReason/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/referrer/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/referrer.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/serverEnv/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/server-env.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/toJson/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/to-json.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/toString/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/to-string.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/type/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/type.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/userAgent/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/userIp/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/userRole/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html -net.thauvin.erik.akismet - diff --git a/docs/images/anchor-copy-button.svg b/docs/images/anchor-copy-button.svg index bab9d74..19c1fa3 100644 --- a/docs/images/anchor-copy-button.svg +++ b/docs/images/anchor-copy-button.svg @@ -1,4 +1,8 @@ + + - \ No newline at end of file + diff --git a/docs/images/arrow_down.svg b/docs/images/arrow_down.svg index c0388de..639aaf1 100644 --- a/docs/images/arrow_down.svg +++ b/docs/images/arrow_down.svg @@ -1,3 +1,7 @@ + + - \ No newline at end of file + diff --git a/docs/images/burger.svg b/docs/images/burger.svg index d6dcefc..fcca732 100644 --- a/docs/images/burger.svg +++ b/docs/images/burger.svg @@ -1,5 +1,9 @@ + + - \ No newline at end of file + diff --git a/docs/images/copy-icon.svg b/docs/images/copy-icon.svg index 61440f0..2cb02ec 100644 --- a/docs/images/copy-icon.svg +++ b/docs/images/copy-icon.svg @@ -1,3 +1,7 @@ + + - \ No newline at end of file + diff --git a/docs/images/copy-successful-icon.svg b/docs/images/copy-successful-icon.svg index 1865f73..c4b9538 100644 --- a/docs/images/copy-successful-icon.svg +++ b/docs/images/copy-successful-icon.svg @@ -1,3 +1,7 @@ + + - \ No newline at end of file + diff --git a/docs/images/footer-go-to-link.svg b/docs/images/footer-go-to-link.svg index 0137e22..a87add7 100644 --- a/docs/images/footer-go-to-link.svg +++ b/docs/images/footer-go-to-link.svg @@ -1,3 +1,7 @@ + + - \ No newline at end of file + diff --git a/docs/images/go-to-top-icon.svg b/docs/images/go-to-top-icon.svg index d987f3e..abc3d1c 100644 --- a/docs/images/go-to-top-icon.svg +++ b/docs/images/go-to-top-icon.svg @@ -1,4 +1,8 @@ + + - \ No newline at end of file + diff --git a/docs/images/logo-icon.svg b/docs/images/logo-icon.svg index 1fea087..e42f957 100644 --- a/docs/images/logo-icon.svg +++ b/docs/images/logo-icon.svg @@ -1,3 +1,7 @@ + + @@ -7,4 +11,4 @@ - \ No newline at end of file + diff --git a/docs/images/nav-icons/abstract-class-kotlin.svg b/docs/images/nav-icons/abstract-class-kotlin.svg index a2069b8..19d6148 100644 --- a/docs/images/nav-icons/abstract-class-kotlin.svg +++ b/docs/images/nav-icons/abstract-class-kotlin.svg @@ -1,3 +1,7 @@ + + diff --git a/docs/images/nav-icons/annotation-kotlin.svg b/docs/images/nav-icons/annotation-kotlin.svg index 932f1d3..b90f508 100644 --- a/docs/images/nav-icons/annotation-kotlin.svg +++ b/docs/images/nav-icons/annotation-kotlin.svg @@ -1,3 +1,7 @@ + + diff --git a/docs/images/nav-icons/class-kotlin.svg b/docs/images/nav-icons/class-kotlin.svg index 46a21f6..797a242 100644 --- a/docs/images/nav-icons/class-kotlin.svg +++ b/docs/images/nav-icons/class-kotlin.svg @@ -1,3 +1,7 @@ + + diff --git a/docs/images/nav-icons/enum-kotlin.svg b/docs/images/nav-icons/enum-kotlin.svg index 4a85459..775a7cc 100644 --- a/docs/images/nav-icons/enum-kotlin.svg +++ b/docs/images/nav-icons/enum-kotlin.svg @@ -1,3 +1,7 @@ + + diff --git a/docs/images/nav-icons/field-value.svg b/docs/images/nav-icons/field-value.svg index 20449c9..2771ee5 100644 --- a/docs/images/nav-icons/field-value.svg +++ b/docs/images/nav-icons/field-value.svg @@ -1,3 +1,7 @@ + + diff --git a/docs/images/nav-icons/field-variable.svg b/docs/images/nav-icons/field-variable.svg index 3b07450..e2d2bbd 100644 --- a/docs/images/nav-icons/field-variable.svg +++ b/docs/images/nav-icons/field-variable.svg @@ -1,3 +1,7 @@ + + diff --git a/docs/images/nav-icons/interface-kotlin.svg b/docs/images/nav-icons/interface-kotlin.svg index bf07a14..5e16326 100644 --- a/docs/images/nav-icons/interface-kotlin.svg +++ b/docs/images/nav-icons/interface-kotlin.svg @@ -1,3 +1,7 @@ + + diff --git a/docs/images/nav-icons/object.svg b/docs/images/nav-icons/object.svg index 9f427de..31f0ee3 100644 --- a/docs/images/nav-icons/object.svg +++ b/docs/images/nav-icons/object.svg @@ -1,3 +1,7 @@ + + diff --git a/docs/images/nav-icons/typealias-kotlin.svg b/docs/images/nav-icons/typealias-kotlin.svg index 4795069..f4bb238 100644 --- a/docs/images/nav-icons/typealias-kotlin.svg +++ b/docs/images/nav-icons/typealias-kotlin.svg @@ -1,3 +1,7 @@ + + diff --git a/docs/images/theme-toggle.svg b/docs/images/theme-toggle.svg index dad3ff2..df86202 100644 --- a/docs/images/theme-toggle.svg +++ b/docs/images/theme-toggle.svg @@ -1,3 +1,7 @@ + + - \ No newline at end of file + diff --git a/docs/index.html b/docs/index.html index 5de1b65..c16d667 100644 --- a/docs/index.html +++ b/docs/index.html @@ -2,7 +2,7 @@ - akismet-kotlin + Akismet Kotlin @@ -41,14 +41,14 @@
-1.0.0
+1.0.1-SNAPSHOT
- +
-
+
-

akismet-kotlin

-

Akismet for Kotlin/Java, a client library for accessing the Automattic Kismet (Akismet) spam comments filtering service.

package net.thauvin.erik.akismet

A Kotlin/Java library for accessing the Akismet service.

+

Akismet Kotlin

Packages

-
-
+
+
- - + +
Link copied to clipboard
- +
-
+
+

A Kotlin/Java library for accessing the Akismet service.

+
diff --git a/docs/navigation.html b/docs/navigation.html index a83bc16..aff718a 100644 --- a/docs/navigation.html +++ b/docs/navigation.html @@ -1,17 +1,17 @@ -
- -
- -
- -
- +
+ +
+ + -
- - diff --git a/docs/scripts/clipboard.js b/docs/scripts/clipboard.js index b00ce24..7a4f33c 100644 --- a/docs/scripts/clipboard.js +++ b/docs/scripts/clipboard.js @@ -1,3 +1,7 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + window.addEventListener('load', () => { document.querySelectorAll('span.copy-icon').forEach(element => { element.addEventListener('click', (el) => copyElementsContentToClipboard(element)); diff --git a/docs/scripts/navigation-loader.js b/docs/scripts/navigation-loader.js index 9246491..3df7ac8 100644 --- a/docs/scripts/navigation-loader.js +++ b/docs/scripts/navigation-loader.js @@ -1,3 +1,7 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + navigationPageText = fetch(pathToRoot + "navigation.html").then(response => response.text()) displayNavigationFromPage = () => { diff --git a/docs/scripts/pages.json b/docs/scripts/pages.json index 1b911f5..bdcd091 100644 --- a/docs/scripts/pages.json +++ b/docs/scripts/pages.json @@ -1 +1 @@ -[{"name":"const val ADMIN_ROLE: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.ADMIN_ROLE","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html","searchKeys":["ADMIN_ROLE","const val ADMIN_ROLE: String","net.thauvin.erik.akismet.AkismetComment.Companion.ADMIN_ROLE"]},{"name":"const val TYPE_BLOG_POST: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_BLOG_POST","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-b-l-o-g_-p-o-s-t.html","searchKeys":["TYPE_BLOG_POST","const val TYPE_BLOG_POST: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_BLOG_POST"]},{"name":"const val TYPE_COMMENT: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_COMMENT","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-m-m-e-n-t.html","searchKeys":["TYPE_COMMENT","const val TYPE_COMMENT: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_COMMENT"]},{"name":"const val TYPE_CONTACT_FORM: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_CONTACT_FORM","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html","searchKeys":["TYPE_CONTACT_FORM","const val TYPE_CONTACT_FORM: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_CONTACT_FORM"]},{"name":"const val TYPE_FORUM_POST: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_FORUM_POST","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html","searchKeys":["TYPE_FORUM_POST","const val TYPE_FORUM_POST: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_FORUM_POST"]},{"name":"const val TYPE_MESSAGE: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_MESSAGE","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-m-e-s-s-a-g-e.html","searchKeys":["TYPE_MESSAGE","const val TYPE_MESSAGE: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_MESSAGE"]},{"name":"const val TYPE_PINGBACK: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_PINGBACK","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html","searchKeys":["TYPE_PINGBACK","const val TYPE_PINGBACK: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_PINGBACK"]},{"name":"const val TYPE_REPLY: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_REPLY","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-r-e-p-l-y.html","searchKeys":["TYPE_REPLY","const val TYPE_REPLY: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_REPLY"]},{"name":"const val TYPE_SIGNUP: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_SIGNUP","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-s-i-g-n-u-p.html","searchKeys":["TYPE_SIGNUP","const val TYPE_SIGNUP: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_SIGNUP"]},{"name":"const val TYPE_TRACKBACK: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_TRACKBACK","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-r-a-c-k-b-a-c-k.html","searchKeys":["TYPE_TRACKBACK","const val TYPE_TRACKBACK: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_TRACKBACK"]},{"name":"const val TYPE_TWEET: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_TWEET","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-w-e-e-t.html","searchKeys":["TYPE_TWEET","const val TYPE_TWEET: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_TWEET"]},{"name":"constructor(apiKey: String)","description":"net.thauvin.erik.akismet.Akismet.Akismet","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html","searchKeys":["Akismet","constructor(apiKey: String)","net.thauvin.erik.akismet.Akismet.Akismet"]},{"name":"constructor(apiKey: String, blog: String)","description":"net.thauvin.erik.akismet.Akismet.Akismet","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html","searchKeys":["Akismet","constructor(apiKey: String, blog: String)","net.thauvin.erik.akismet.Akismet.Akismet"]},{"name":"constructor(request: HttpServletRequest)","description":"net.thauvin.erik.akismet.AkismetComment.AkismetComment","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html","searchKeys":["AkismetComment","constructor(request: HttpServletRequest)","net.thauvin.erik.akismet.AkismetComment.AkismetComment"]},{"name":"constructor(userIp: String, userAgent: String)","description":"net.thauvin.erik.akismet.AkismetComment.AkismetComment","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html","searchKeys":["AkismetComment","constructor(userIp: String, userAgent: String)","net.thauvin.erik.akismet.AkismetComment.AkismetComment"]},{"name":"fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean","description":"net.thauvin.erik.akismet.Akismet.checkComment","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html","searchKeys":["checkComment","fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean","net.thauvin.erik.akismet.Akismet.checkComment"]},{"name":"fun dateToGmt(date: Date): String","description":"net.thauvin.erik.akismet.Akismet.Companion.dateToGmt","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html","searchKeys":["dateToGmt","fun dateToGmt(date: Date): String","net.thauvin.erik.akismet.Akismet.Companion.dateToGmt"]},{"name":"fun dateToGmt(date: LocalDateTime): String","description":"net.thauvin.erik.akismet.Akismet.Companion.dateToGmt","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html","searchKeys":["dateToGmt","fun dateToGmt(date: LocalDateTime): String","net.thauvin.erik.akismet.Akismet.Companion.dateToGmt"]},{"name":"fun executeMethod(apiUrl: HttpUrl, formBody: FormBody, trueOnError: Boolean = false): Boolean","description":"net.thauvin.erik.akismet.Akismet.executeMethod","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html","searchKeys":["executeMethod","fun executeMethod(apiUrl: HttpUrl, formBody: FormBody, trueOnError: Boolean = false): Boolean","net.thauvin.erik.akismet.Akismet.executeMethod"]},{"name":"fun jsonComment(json: String): AkismetComment","description":"net.thauvin.erik.akismet.Akismet.Companion.jsonComment","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html","searchKeys":["jsonComment","fun jsonComment(json: String): AkismetComment","net.thauvin.erik.akismet.Akismet.Companion.jsonComment"]},{"name":"fun reset()","description":"net.thauvin.erik.akismet.Akismet.reset","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet/reset.html","searchKeys":["reset","fun reset()","net.thauvin.erik.akismet.Akismet.reset"]},{"name":"fun submitHam(comment: AkismetComment): Boolean","description":"net.thauvin.erik.akismet.Akismet.submitHam","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet/submit-ham.html","searchKeys":["submitHam","fun submitHam(comment: AkismetComment): Boolean","net.thauvin.erik.akismet.Akismet.submitHam"]},{"name":"fun submitSpam(comment: AkismetComment): Boolean","description":"net.thauvin.erik.akismet.Akismet.submitSpam","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet/submit-spam.html","searchKeys":["submitSpam","fun submitSpam(comment: AkismetComment): Boolean","net.thauvin.erik.akismet.Akismet.submitSpam"]},{"name":"fun toJson(): String","description":"net.thauvin.erik.akismet.AkismetComment.toJson","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/to-json.html","searchKeys":["toJson","fun toJson(): String","net.thauvin.erik.akismet.AkismetComment.toJson"]},{"name":"fun verifyKey(): Boolean","description":"net.thauvin.erik.akismet.Akismet.verifyKey","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html","searchKeys":["verifyKey","fun verifyKey(): Boolean","net.thauvin.erik.akismet.Akismet.verifyKey"]},{"name":"object Companion","description":"net.thauvin.erik.akismet.Akismet.Companion","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/index.html","searchKeys":["Companion","object Companion","net.thauvin.erik.akismet.Akismet.Companion"]},{"name":"object Companion","description":"net.thauvin.erik.akismet.AkismetComment.Companion","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html","searchKeys":["Companion","object Companion","net.thauvin.erik.akismet.AkismetComment.Companion"]},{"name":"open class Akismet(apiKey: String)","description":"net.thauvin.erik.akismet.Akismet","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet/index.html","searchKeys":["Akismet","open class Akismet(apiKey: String)","net.thauvin.erik.akismet.Akismet"]},{"name":"open class AkismetComment(val userIp: String, val userAgent: String)","description":"net.thauvin.erik.akismet.AkismetComment","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html","searchKeys":["AkismetComment","open class AkismetComment(val userIp: String, val userAgent: String)","net.thauvin.erik.akismet.AkismetComment"]},{"name":"open operator override fun equals(other: Any?): Boolean","description":"net.thauvin.erik.akismet.AkismetComment.equals","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/equals.html","searchKeys":["equals","open operator override fun equals(other: Any?): Boolean","net.thauvin.erik.akismet.AkismetComment.equals"]},{"name":"open override fun hashCode(): Int","description":"net.thauvin.erik.akismet.AkismetComment.hashCode","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/hash-code.html","searchKeys":["hashCode","open override fun hashCode(): Int","net.thauvin.erik.akismet.AkismetComment.hashCode"]},{"name":"open override fun toString(): String","description":"net.thauvin.erik.akismet.AkismetComment.toString","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/to-string.html","searchKeys":["toString","open override fun toString(): String","net.thauvin.erik.akismet.AkismetComment.toString"]},{"name":"val logger: Logger","description":"net.thauvin.erik.akismet.Akismet.logger","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet/logger.html","searchKeys":["logger","val logger: Logger","net.thauvin.erik.akismet.Akismet.logger"]},{"name":"val userAgent: String","description":"net.thauvin.erik.akismet.AkismetComment.userAgent","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html","searchKeys":["userAgent","val userAgent: String","net.thauvin.erik.akismet.AkismetComment.userAgent"]},{"name":"val userIp: String","description":"net.thauvin.erik.akismet.AkismetComment.userIp","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html","searchKeys":["userIp","val userIp: String","net.thauvin.erik.akismet.AkismetComment.userIp"]},{"name":"var appUserAgent: String","description":"net.thauvin.erik.akismet.Akismet.appUserAgent","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet/app-user-agent.html","searchKeys":["appUserAgent","var appUserAgent: String","net.thauvin.erik.akismet.Akismet.appUserAgent"]},{"name":"var author: String?","description":"net.thauvin.erik.akismet.AkismetComment.author","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html","searchKeys":["author","var author: String?","net.thauvin.erik.akismet.AkismetComment.author"]},{"name":"var authorEmail: String?","description":"net.thauvin.erik.akismet.AkismetComment.authorEmail","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html","searchKeys":["authorEmail","var authorEmail: String?","net.thauvin.erik.akismet.AkismetComment.authorEmail"]},{"name":"var authorUrl: String?","description":"net.thauvin.erik.akismet.AkismetComment.authorUrl","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html","searchKeys":["authorUrl","var authorUrl: String?","net.thauvin.erik.akismet.AkismetComment.authorUrl"]},{"name":"var blog: String","description":"net.thauvin.erik.akismet.Akismet.blog","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet/blog.html","searchKeys":["blog","var blog: String","net.thauvin.erik.akismet.Akismet.blog"]},{"name":"var blogCharset: String?","description":"net.thauvin.erik.akismet.AkismetComment.blogCharset","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html","searchKeys":["blogCharset","var blogCharset: String?","net.thauvin.erik.akismet.AkismetComment.blogCharset"]},{"name":"var blogLang: String?","description":"net.thauvin.erik.akismet.AkismetComment.blogLang","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html","searchKeys":["blogLang","var blogLang: String?","net.thauvin.erik.akismet.AkismetComment.blogLang"]},{"name":"var content: String?","description":"net.thauvin.erik.akismet.AkismetComment.content","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/content.html","searchKeys":["content","var content: String?","net.thauvin.erik.akismet.AkismetComment.content"]},{"name":"var dateGmt: String?","description":"net.thauvin.erik.akismet.AkismetComment.dateGmt","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html","searchKeys":["dateGmt","var dateGmt: String?","net.thauvin.erik.akismet.AkismetComment.dateGmt"]},{"name":"var debugHelp: String","description":"net.thauvin.erik.akismet.Akismet.debugHelp","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html","searchKeys":["debugHelp","var debugHelp: String","net.thauvin.erik.akismet.Akismet.debugHelp"]},{"name":"var errorMessage: String","description":"net.thauvin.erik.akismet.Akismet.errorMessage","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet/error-message.html","searchKeys":["errorMessage","var errorMessage: String","net.thauvin.erik.akismet.Akismet.errorMessage"]},{"name":"var httpStatusCode: Int","description":"net.thauvin.erik.akismet.Akismet.httpStatusCode","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html","searchKeys":["httpStatusCode","var httpStatusCode: Int","net.thauvin.erik.akismet.Akismet.httpStatusCode"]},{"name":"var isDiscard: Boolean","description":"net.thauvin.erik.akismet.Akismet.isDiscard","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html","searchKeys":["isDiscard","var isDiscard: Boolean","net.thauvin.erik.akismet.Akismet.isDiscard"]},{"name":"var isTest: Boolean","description":"net.thauvin.erik.akismet.AkismetComment.isTest","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html","searchKeys":["isTest","var isTest: Boolean","net.thauvin.erik.akismet.AkismetComment.isTest"]},{"name":"var isVerifiedKey: Boolean","description":"net.thauvin.erik.akismet.Akismet.isVerifiedKey","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html","searchKeys":["isVerifiedKey","var isVerifiedKey: Boolean","net.thauvin.erik.akismet.Akismet.isVerifiedKey"]},{"name":"var permalink: String?","description":"net.thauvin.erik.akismet.AkismetComment.permalink","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/permalink.html","searchKeys":["permalink","var permalink: String?","net.thauvin.erik.akismet.AkismetComment.permalink"]},{"name":"var postModifiedGmt: String?","description":"net.thauvin.erik.akismet.AkismetComment.postModifiedGmt","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html","searchKeys":["postModifiedGmt","var postModifiedGmt: String?","net.thauvin.erik.akismet.AkismetComment.postModifiedGmt"]},{"name":"var proTip: String","description":"net.thauvin.erik.akismet.Akismet.proTip","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html","searchKeys":["proTip","var proTip: String","net.thauvin.erik.akismet.Akismet.proTip"]},{"name":"var recheckReason: String?","description":"net.thauvin.erik.akismet.AkismetComment.recheckReason","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html","searchKeys":["recheckReason","var recheckReason: String?","net.thauvin.erik.akismet.AkismetComment.recheckReason"]},{"name":"var referrer: String?","description":"net.thauvin.erik.akismet.AkismetComment.referrer","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/referrer.html","searchKeys":["referrer","var referrer: String?","net.thauvin.erik.akismet.AkismetComment.referrer"]},{"name":"var response: String","description":"net.thauvin.erik.akismet.Akismet.response","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet/response.html","searchKeys":["response","var response: String","net.thauvin.erik.akismet.Akismet.response"]},{"name":"var serverEnv: Map","description":"net.thauvin.erik.akismet.AkismetComment.serverEnv","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/server-env.html","searchKeys":["serverEnv","var serverEnv: Map","net.thauvin.erik.akismet.AkismetComment.serverEnv"]},{"name":"var type: String?","description":"net.thauvin.erik.akismet.AkismetComment.type","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/type.html","searchKeys":["type","var type: String?","net.thauvin.erik.akismet.AkismetComment.type"]},{"name":"var userRole: String?","description":"net.thauvin.erik.akismet.AkismetComment.userRole","location":"akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html","searchKeys":["userRole","var userRole: String?","net.thauvin.erik.akismet.AkismetComment.userRole"]}] +[{"name":"const val ADMIN_ROLE: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.ADMIN_ROLE","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html","searchKeys":["ADMIN_ROLE","const val ADMIN_ROLE: String","net.thauvin.erik.akismet.AkismetComment.Companion.ADMIN_ROLE"]},{"name":"const val TYPE_BLOG_POST: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_BLOG_POST","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-b-l-o-g_-p-o-s-t.html","searchKeys":["TYPE_BLOG_POST","const val TYPE_BLOG_POST: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_BLOG_POST"]},{"name":"const val TYPE_COMMENT: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_COMMENT","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-m-m-e-n-t.html","searchKeys":["TYPE_COMMENT","const val TYPE_COMMENT: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_COMMENT"]},{"name":"const val TYPE_CONTACT_FORM: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_CONTACT_FORM","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html","searchKeys":["TYPE_CONTACT_FORM","const val TYPE_CONTACT_FORM: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_CONTACT_FORM"]},{"name":"const val TYPE_FORUM_POST: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_FORUM_POST","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html","searchKeys":["TYPE_FORUM_POST","const val TYPE_FORUM_POST: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_FORUM_POST"]},{"name":"const val TYPE_MESSAGE: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_MESSAGE","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-m-e-s-s-a-g-e.html","searchKeys":["TYPE_MESSAGE","const val TYPE_MESSAGE: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_MESSAGE"]},{"name":"const val TYPE_PINGBACK: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_PINGBACK","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html","searchKeys":["TYPE_PINGBACK","const val TYPE_PINGBACK: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_PINGBACK"]},{"name":"const val TYPE_REPLY: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_REPLY","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-r-e-p-l-y.html","searchKeys":["TYPE_REPLY","const val TYPE_REPLY: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_REPLY"]},{"name":"const val TYPE_SIGNUP: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_SIGNUP","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-s-i-g-n-u-p.html","searchKeys":["TYPE_SIGNUP","const val TYPE_SIGNUP: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_SIGNUP"]},{"name":"const val TYPE_TRACKBACK: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_TRACKBACK","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-r-a-c-k-b-a-c-k.html","searchKeys":["TYPE_TRACKBACK","const val TYPE_TRACKBACK: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_TRACKBACK"]},{"name":"const val TYPE_TWEET: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_TWEET","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-w-e-e-t.html","searchKeys":["TYPE_TWEET","const val TYPE_TWEET: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_TWEET"]},{"name":"constructor(apiKey: String)","description":"net.thauvin.erik.akismet.Akismet.Akismet","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html","searchKeys":["Akismet","constructor(apiKey: String)","net.thauvin.erik.akismet.Akismet.Akismet"]},{"name":"constructor(apiKey: String, blog: String)","description":"net.thauvin.erik.akismet.Akismet.Akismet","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html","searchKeys":["Akismet","constructor(apiKey: String, blog: String)","net.thauvin.erik.akismet.Akismet.Akismet"]},{"name":"constructor(request: )","description":"net.thauvin.erik.akismet.AkismetComment.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html","searchKeys":["AkismetComment","constructor(request: )","net.thauvin.erik.akismet.AkismetComment.AkismetComment"]},{"name":"constructor(userIp: String, userAgent: String)","description":"net.thauvin.erik.akismet.AkismetComment.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html","searchKeys":["AkismetComment","constructor(userIp: String, userAgent: String)","net.thauvin.erik.akismet.AkismetComment.AkismetComment"]},{"name":"fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean","description":"net.thauvin.erik.akismet.Akismet.checkComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html","searchKeys":["checkComment","fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean","net.thauvin.erik.akismet.Akismet.checkComment"]},{"name":"fun dateToGmt(date: Date): String","description":"net.thauvin.erik.akismet.Akismet.Companion.dateToGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html","searchKeys":["dateToGmt","fun dateToGmt(date: Date): String","net.thauvin.erik.akismet.Akismet.Companion.dateToGmt"]},{"name":"fun dateToGmt(date: LocalDateTime): String","description":"net.thauvin.erik.akismet.Akismet.Companion.dateToGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html","searchKeys":["dateToGmt","fun dateToGmt(date: LocalDateTime): String","net.thauvin.erik.akismet.Akismet.Companion.dateToGmt"]},{"name":"fun executeMethod(apiUrl: , formBody: , trueOnError: Boolean = false): Boolean","description":"net.thauvin.erik.akismet.Akismet.executeMethod","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html","searchKeys":["executeMethod","fun executeMethod(apiUrl: , formBody: , trueOnError: Boolean = false): Boolean","net.thauvin.erik.akismet.Akismet.executeMethod"]},{"name":"fun jsonComment(json: String): AkismetComment","description":"net.thauvin.erik.akismet.Akismet.Companion.jsonComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html","searchKeys":["jsonComment","fun jsonComment(json: String): AkismetComment","net.thauvin.erik.akismet.Akismet.Companion.jsonComment"]},{"name":"fun reset()","description":"net.thauvin.erik.akismet.Akismet.reset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/reset.html","searchKeys":["reset","fun reset()","net.thauvin.erik.akismet.Akismet.reset"]},{"name":"fun submitHam(comment: AkismetComment): Boolean","description":"net.thauvin.erik.akismet.Akismet.submitHam","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-ham.html","searchKeys":["submitHam","fun submitHam(comment: AkismetComment): Boolean","net.thauvin.erik.akismet.Akismet.submitHam"]},{"name":"fun submitSpam(comment: AkismetComment): Boolean","description":"net.thauvin.erik.akismet.Akismet.submitSpam","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-spam.html","searchKeys":["submitSpam","fun submitSpam(comment: AkismetComment): Boolean","net.thauvin.erik.akismet.Akismet.submitSpam"]},{"name":"fun toJson(): String","description":"net.thauvin.erik.akismet.AkismetComment.toJson","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-json.html","searchKeys":["toJson","fun toJson(): String","net.thauvin.erik.akismet.AkismetComment.toJson"]},{"name":"fun verifyKey(): Boolean","description":"net.thauvin.erik.akismet.Akismet.verifyKey","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html","searchKeys":["verifyKey","fun verifyKey(): Boolean","net.thauvin.erik.akismet.Akismet.verifyKey"]},{"name":"object Companion","description":"net.thauvin.erik.akismet.Akismet.Companion","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/index.html","searchKeys":["Companion","object Companion","net.thauvin.erik.akismet.Akismet.Companion"]},{"name":"object Companion","description":"net.thauvin.erik.akismet.AkismetComment.Companion","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html","searchKeys":["Companion","object Companion","net.thauvin.erik.akismet.AkismetComment.Companion"]},{"name":"open class Akismet(apiKey: String)","description":"net.thauvin.erik.akismet.Akismet","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/index.html","searchKeys":["Akismet","open class Akismet(apiKey: String)","net.thauvin.erik.akismet.Akismet"]},{"name":"open class AkismetComment(val userIp: String, val userAgent: String)","description":"net.thauvin.erik.akismet.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html","searchKeys":["AkismetComment","open class AkismetComment(val userIp: String, val userAgent: String)","net.thauvin.erik.akismet.AkismetComment"]},{"name":"open operator override fun equals(other: Any?): Boolean","description":"net.thauvin.erik.akismet.AkismetComment.equals","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/equals.html","searchKeys":["equals","open operator override fun equals(other: Any?): Boolean","net.thauvin.erik.akismet.AkismetComment.equals"]},{"name":"open override fun hashCode(): Int","description":"net.thauvin.erik.akismet.AkismetComment.hashCode","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/hash-code.html","searchKeys":["hashCode","open override fun hashCode(): Int","net.thauvin.erik.akismet.AkismetComment.hashCode"]},{"name":"open override fun toString(): String","description":"net.thauvin.erik.akismet.AkismetComment.toString","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-string.html","searchKeys":["toString","open override fun toString(): String","net.thauvin.erik.akismet.AkismetComment.toString"]},{"name":"val logger: Logger","description":"net.thauvin.erik.akismet.Akismet.logger","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/logger.html","searchKeys":["logger","val logger: Logger","net.thauvin.erik.akismet.Akismet.logger"]},{"name":"val userAgent: String","description":"net.thauvin.erik.akismet.AkismetComment.userAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html","searchKeys":["userAgent","val userAgent: String","net.thauvin.erik.akismet.AkismetComment.userAgent"]},{"name":"val userIp: String","description":"net.thauvin.erik.akismet.AkismetComment.userIp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html","searchKeys":["userIp","val userIp: String","net.thauvin.erik.akismet.AkismetComment.userIp"]},{"name":"var appUserAgent: String","description":"net.thauvin.erik.akismet.Akismet.appUserAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/app-user-agent.html","searchKeys":["appUserAgent","var appUserAgent: String","net.thauvin.erik.akismet.Akismet.appUserAgent"]},{"name":"var author: String?","description":"net.thauvin.erik.akismet.AkismetComment.author","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html","searchKeys":["author","var author: String?","net.thauvin.erik.akismet.AkismetComment.author"]},{"name":"var authorEmail: String?","description":"net.thauvin.erik.akismet.AkismetComment.authorEmail","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html","searchKeys":["authorEmail","var authorEmail: String?","net.thauvin.erik.akismet.AkismetComment.authorEmail"]},{"name":"var authorUrl: String?","description":"net.thauvin.erik.akismet.AkismetComment.authorUrl","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html","searchKeys":["authorUrl","var authorUrl: String?","net.thauvin.erik.akismet.AkismetComment.authorUrl"]},{"name":"var blog: String","description":"net.thauvin.erik.akismet.Akismet.blog","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/blog.html","searchKeys":["blog","var blog: String","net.thauvin.erik.akismet.Akismet.blog"]},{"name":"var blogCharset: String?","description":"net.thauvin.erik.akismet.AkismetComment.blogCharset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html","searchKeys":["blogCharset","var blogCharset: String?","net.thauvin.erik.akismet.AkismetComment.blogCharset"]},{"name":"var blogLang: String?","description":"net.thauvin.erik.akismet.AkismetComment.blogLang","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html","searchKeys":["blogLang","var blogLang: String?","net.thauvin.erik.akismet.AkismetComment.blogLang"]},{"name":"var content: String?","description":"net.thauvin.erik.akismet.AkismetComment.content","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/content.html","searchKeys":["content","var content: String?","net.thauvin.erik.akismet.AkismetComment.content"]},{"name":"var dateGmt: String?","description":"net.thauvin.erik.akismet.AkismetComment.dateGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html","searchKeys":["dateGmt","var dateGmt: String?","net.thauvin.erik.akismet.AkismetComment.dateGmt"]},{"name":"var debugHelp: String","description":"net.thauvin.erik.akismet.Akismet.debugHelp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html","searchKeys":["debugHelp","var debugHelp: String","net.thauvin.erik.akismet.Akismet.debugHelp"]},{"name":"var errorMessage: String","description":"net.thauvin.erik.akismet.Akismet.errorMessage","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/error-message.html","searchKeys":["errorMessage","var errorMessage: String","net.thauvin.erik.akismet.Akismet.errorMessage"]},{"name":"var httpStatusCode: Int","description":"net.thauvin.erik.akismet.Akismet.httpStatusCode","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html","searchKeys":["httpStatusCode","var httpStatusCode: Int","net.thauvin.erik.akismet.Akismet.httpStatusCode"]},{"name":"var isDiscard: Boolean","description":"net.thauvin.erik.akismet.Akismet.isDiscard","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html","searchKeys":["isDiscard","var isDiscard: Boolean","net.thauvin.erik.akismet.Akismet.isDiscard"]},{"name":"var isTest: Boolean","description":"net.thauvin.erik.akismet.AkismetComment.isTest","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html","searchKeys":["isTest","var isTest: Boolean","net.thauvin.erik.akismet.AkismetComment.isTest"]},{"name":"var isVerifiedKey: Boolean","description":"net.thauvin.erik.akismet.Akismet.isVerifiedKey","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html","searchKeys":["isVerifiedKey","var isVerifiedKey: Boolean","net.thauvin.erik.akismet.Akismet.isVerifiedKey"]},{"name":"var permalink: String?","description":"net.thauvin.erik.akismet.AkismetComment.permalink","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/permalink.html","searchKeys":["permalink","var permalink: String?","net.thauvin.erik.akismet.AkismetComment.permalink"]},{"name":"var postModifiedGmt: String?","description":"net.thauvin.erik.akismet.AkismetComment.postModifiedGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html","searchKeys":["postModifiedGmt","var postModifiedGmt: String?","net.thauvin.erik.akismet.AkismetComment.postModifiedGmt"]},{"name":"var proTip: String","description":"net.thauvin.erik.akismet.Akismet.proTip","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html","searchKeys":["proTip","var proTip: String","net.thauvin.erik.akismet.Akismet.proTip"]},{"name":"var recheckReason: String?","description":"net.thauvin.erik.akismet.AkismetComment.recheckReason","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html","searchKeys":["recheckReason","var recheckReason: String?","net.thauvin.erik.akismet.AkismetComment.recheckReason"]},{"name":"var referrer: String?","description":"net.thauvin.erik.akismet.AkismetComment.referrer","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/referrer.html","searchKeys":["referrer","var referrer: String?","net.thauvin.erik.akismet.AkismetComment.referrer"]},{"name":"var response: String","description":"net.thauvin.erik.akismet.Akismet.response","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/response.html","searchKeys":["response","var response: String","net.thauvin.erik.akismet.Akismet.response"]},{"name":"var serverEnv: Map","description":"net.thauvin.erik.akismet.AkismetComment.serverEnv","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/server-env.html","searchKeys":["serverEnv","var serverEnv: Map","net.thauvin.erik.akismet.AkismetComment.serverEnv"]},{"name":"var type: String?","description":"net.thauvin.erik.akismet.AkismetComment.type","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/type.html","searchKeys":["type","var type: String?","net.thauvin.erik.akismet.AkismetComment.type"]},{"name":"var userRole: String?","description":"net.thauvin.erik.akismet.AkismetComment.userRole","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html","searchKeys":["userRole","var userRole: String?","net.thauvin.erik.akismet.AkismetComment.userRole"]}] diff --git a/docs/scripts/platform-content-handler.js b/docs/scripts/platform-content-handler.js index 7c5e8af..8c4ca53 100644 --- a/docs/scripts/platform-content-handler.js +++ b/docs/scripts/platform-content-handler.js @@ -1,3 +1,7 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + filteringContext = { dependencies: {}, restrictedDependencies: [], diff --git a/docs/scripts/sourceset_dependencies.js b/docs/scripts/sourceset_dependencies.js index b3aa738..9d52f63 100644 --- a/docs/scripts/sourceset_dependencies.js +++ b/docs/scripts/sourceset_dependencies.js @@ -1 +1 @@ -sourceset_dependencies='{":dokkaHtml/main":[]}' +sourceset_dependencies='{"root/main":[]}' diff --git a/docs/scripts/symbol-parameters-wrapper_deferred.js b/docs/scripts/symbol-parameters-wrapper_deferred.js index 248d0ab..7ecae7a 100644 --- a/docs/scripts/symbol-parameters-wrapper_deferred.js +++ b/docs/scripts/symbol-parameters-wrapper_deferred.js @@ -1,83 +1,64 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + // helps with some corner cases where starts working already, // but the signature is not yet long enough to be wrapped -const leftPaddingPx = 60 +(function() { + const leftPaddingPx = 60; -const symbolResizeObserver = new ResizeObserver(entries => { - entries.forEach(entry => { - const symbolElement = entry.target - symbolResizeObserver.unobserve(symbolElement) // only need it once, otherwise will be executed multiple times - wrapSymbolParameters(symbolElement); - }) -}); - -const wrapAllSymbolParameters = () => { - document.querySelectorAll("div.symbol").forEach(symbol => wrapSymbolParameters(symbol)) -} - -const wrapSymbolParameters = (symbol) => { - let parametersBlock = symbol.querySelector("span.parameters") - if (parametersBlock == null) { - return // nothing to wrap + function createNbspIndent() { + let indent = document.createElement("span"); + indent.append(document.createTextNode("\u00A0\u00A0\u00A0\u00A0")); + indent.classList.add("nbsp-indent"); + return indent; } - let symbolBlockWidth = symbol.clientWidth + function wrapSymbolParameters(entry) { + const symbol = entry.target; + const symbolBlockWidth = entry.borderBoxSize && entry.borderBoxSize[0] && entry.borderBoxSize[0].inlineSize; - // Even though the script is marked as `defer` and we wait for `DOMContentLoaded` event, - // it can happen that `symbolBlockWidth` is 0, indicating that something hasn't been loaded. - // In this case, just retry once all styles have been applied and it has been resized correctly. - if (symbolBlockWidth === 0) { - symbolResizeObserver.observe(symbol) - return + // Even though the script is marked as `defer` and we wait for `DOMContentLoaded` event, + // or if this block is a part of hidden tab, it can happen that `symbolBlockWidth` is 0, + // indicating that something hasn't been loaded. + // In this case, observer will be triggered onсe again when it will be ready. + if (symbolBlockWidth > 0) { + const node = symbol.querySelector(".parameters"); + + if (node) { + // if window resize happened and observer was triggered, reset previously wrapped + // parameters as they might not need wrapping anymore, and check again + node.classList.remove("wrapped"); + node.querySelectorAll(".parameter .nbsp-indent") + .forEach(indent => indent.remove()); + + const innerTextWidth = Array.from(symbol.children) + .filter(it => !it.classList.contains("block")) // blocks are usually on their own (like annotations), so ignore it + .map(it => it.getBoundingClientRect().width) + .reduce((a, b) => a + b, 0); + + // if signature text takes up more than a single line, wrap params for readability + if (innerTextWidth > (symbolBlockWidth - leftPaddingPx)) { + node.classList.add("wrapped"); + node.querySelectorAll(".parameter").forEach(param => { + // has to be a physical indent so that it can be copied. styles like + // paddings and `::before { content: " " }` do not work for that + param.prepend(createNbspIndent()); + }); + } + } + } } - let innerTextWidth = Array.from(symbol.children) - .filter(it => !it.classList.contains("block")) // blocks are usually on their own (like annotations), so ignore it - .map(it => it.getBoundingClientRect().width).reduce((a, b) => a + b, 0) + const symbolsObserver = new ResizeObserver(entries => entries.forEach(wrapSymbolParameters)); - // if signature text takes up more than a single line, wrap params for readability - let shouldWrapParams = innerTextWidth > (symbolBlockWidth - leftPaddingPx) - if (shouldWrapParams) { - parametersBlock.classList.add("wrapped") - parametersBlock.querySelectorAll("span.parameter").forEach(param => { - // has to be a physical indent so that it can be copied. styles like - // paddings and `::before { content: " " }` do not work for that - param.prepend(createNbspIndent()) - }) + function initHandlers() { + document.querySelectorAll("div.symbol").forEach(symbol => symbolsObserver.observe(symbol)); } -} -const createNbspIndent = () => { - let indent = document.createElement("span") - indent.append(document.createTextNode("\u00A0\u00A0\u00A0\u00A0")) - indent.classList.add("nbsp-indent") - return indent -} + if (document.readyState === 'loading') window.addEventListener('DOMContentLoaded', initHandlers); + else initHandlers(); -const resetAllSymbolParametersWrapping = () => { - document.querySelectorAll("div.symbol").forEach(symbol => resetSymbolParametersWrapping(symbol)) -} - -const resetSymbolParametersWrapping = (symbol) => { - let parameters = symbol.querySelector("span.parameters") - if (parameters != null) { - parameters.classList.remove("wrapped") - parameters.querySelectorAll("span.parameter").forEach(param => { - let indent = param.querySelector("span.nbsp-indent") - if (indent != null) indent.remove() - }) - } -} - -if (document.readyState === 'loading') { - window.addEventListener('DOMContentLoaded', () => { - wrapAllSymbolParameters() - }) -} else { - wrapAllSymbolParameters() -} - -window.onresize = event => { - // need to re-calculate if params need to be wrapped after resize - resetAllSymbolParametersWrapping() - wrapAllSymbolParameters() -} + // ToDo: Add `unobserve` if dokka will be SPA-like: + // https://github.com/w3c/csswg-drafts/issues/5155 +})(); diff --git a/docs/styles/font-jb-sans-auto.css b/docs/styles/font-jb-sans-auto.css index 95d8ef8..bdc6872 100644 --- a/docs/styles/font-jb-sans-auto.css +++ b/docs/styles/font-jb-sans-auto.css @@ -1,3 +1,7 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + /* Light weight */ @font-face { font-family: 'JetBrains Sans'; diff --git a/docs/styles/jetbrains-mono.css b/docs/styles/jetbrains-mono.css deleted file mode 100644 index 9a0f06f..0000000 --- a/docs/styles/jetbrains-mono.css +++ /dev/null @@ -1,17 +0,0 @@ -@font-face{ - font-family: 'JetBrains Mono'; - src: url('https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/fonts/web/JetBrainsMono-Regular.eot') format('embedded-opentype'), - url('https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/fonts/webfonts/JetBrainsMono-Regular.woff2') format('woff2'), - url('https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/fonts/ttf/JetBrainsMono-Regular.ttf') format('truetype'); - font-weight: normal; - font-style: normal; -} - -@font-face{ - font-family: 'JetBrains Mono'; - src: url('https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/fonts/web/JetBrainsMono-Bold.eot') format('embedded-opentype'), - url('https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/fonts/webfonts/JetBrainsMono-Bold.woff2') format('woff2'), - url('https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/fonts/ttf/JetBrainsMono-Bold.ttf') format('truetype'); - font-weight: bold; - font-style: bold; -} \ No newline at end of file diff --git a/docs/styles/logo-styles.css b/docs/styles/logo-styles.css index f3846e8..69804e4 100644 --- a/docs/styles/logo-styles.css +++ b/docs/styles/logo-styles.css @@ -1,3 +1,7 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + :root { --dokka-logo-image-url: url('../images/logo-icon.svg'); --dokka-logo-height: 50px; diff --git a/docs/styles/main.css b/docs/styles/main.css index 5aa04a4..ebe1ce1 100644 --- a/docs/styles/main.css +++ b/docs/styles/main.css @@ -1,4 +1,6 @@ -#pages-search{cursor:pointer;border:none;border-radius:50%;background:transparent;fill:#fff;fill:var(--dark-mode-and-search-icon-color)}#pages-search:focus{outline:none}#pages-search:hover{background:var(--white-10)}.search,.search [data-test=ring-select],.search [data-test=ring-tooltip],.search [data-test=ring-select_focus],.search #pages-search{display:inline-block;padding:0;margin:0;font-size:0;line-height:0}.search-hotkey-popup{background-color:var(--background-color) !important;padding:4px}.popup-wrapper{min-width:calc(100% - 322px) !important;border:1px solid rgba(255,255,255,.2) !important;background-color:#27282c !important}.popup-wrapper [class^=filterWrapper]{border-bottom:1px solid rgba(255,255,255,.2)}.popup-wrapper input{color:rgba(255,255,255,.8) !important;font-weight:normal !important}.popup-wrapper span[data-test-custom=ring-select-popup-filter-icon]{color:#fff}.popup-wrapper button[data-test=ring-input-clear]{color:#fff !important}@media screen and (max-width: 759px){.popup-wrapper{min-width:100% !important}}.template-wrapper{display:grid;height:32px;grid-template-columns:auto auto}.template-wrapper strong{color:rgba(255,255,255,.8)}.template-wrapper span{color:rgba(255,255,255,.8);line-height:32px}.template-wrapper span.template-description{color:rgba(255,255,255,.6);justify-self:end}@media screen and (max-width: 759px){.template-wrapper{display:flex;flex-direction:column;height:auto}.template-wrapper span{line-height:unset}}.template-name{justify-self:start}[class^=fade]{display:none}[class*=hover]{background-color:rgba(255,255,255,.1) !important} +/*! + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */#pages-search{cursor:pointer;border:none;border-radius:50%;background:transparent;fill:#fff;fill:var(--dark-mode-and-search-icon-color)}#pages-search:focus{outline:none}#pages-search:hover{background:var(--white-10)}.search,.search [data-test=ring-select],.search [data-test=ring-tooltip],.search [data-test=ring-select_focus],.search #pages-search{display:inline-block;padding:0;margin:0;font-size:0;line-height:0}.search-hotkey-popup{background-color:var(--background-color) !important;padding:4px}.popup-wrapper{min-width:calc(100% - 322px) !important;border:1px solid rgba(255,255,255,.2) !important;background-color:#27282c !important}.popup-wrapper [class^=filterWrapper]{border-bottom:1px solid rgba(255,255,255,.2)}.popup-wrapper input{color:rgba(255,255,255,.8) !important;font-weight:normal !important}.popup-wrapper span[data-test-custom=ring-select-popup-filter-icon]{color:#fff}.popup-wrapper button[data-test=ring-input-clear]{color:#fff !important}@media screen and (max-width: 759px){.popup-wrapper{min-width:100% !important}}.template-wrapper{display:grid;height:32px;grid-template-columns:auto auto}.template-wrapper strong{color:rgba(255,255,255,.8)}.template-wrapper span{color:rgba(255,255,255,.8);line-height:32px}.template-wrapper span.template-description{color:rgba(255,255,255,.6);justify-self:end}@media screen and (max-width: 759px){.template-wrapper{display:flex;flex-direction:column;height:auto}.template-wrapper span{line-height:unset}}.template-name{justify-self:start}[class^=fade]{display:none}[class*=hover]{background-color:rgba(255,255,255,.1) !important} /* stylelint-disable color-no-hex */ :root { @@ -113,6 +115,10 @@ --ring-alert-z-index: 6; } -html,.app-root{height:100%}.search-root{margin:0;padding:0;background:var(--ring-content-background-color);font-family:var(--ring-font-family);font-size:var(--ring-font-size);line-height:var(--ring-line-height)}.search-content{z-index:8} +/*! + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + *//*! + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */html,.app-root{height:100%}.search-root{margin:0;padding:0;background:var(--ring-content-background-color);font-family:var(--ring-font-family);font-size:var(--ring-font-size);line-height:var(--ring-line-height)}.search-content{z-index:8} /*# sourceMappingURL=main.css.map*/ \ No newline at end of file diff --git a/docs/styles/prism.css b/docs/styles/prism.css index 4287f6d..2d3a091 100644 --- a/docs/styles/prism.css +++ b/docs/styles/prism.css @@ -1,3 +1,7 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + /* * Custom Dokka styles */ diff --git a/docs/styles/style.css b/docs/styles/style.css index 7f6e4b0..67a899a 100644 --- a/docs/styles/style.css +++ b/docs/styles/style.css @@ -1,3 +1,7 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + @import url('./font-jb-sans-auto.css'); @import url('https://fonts.googleapis.com/css?family=JetBrains+Mono'); @@ -1476,4 +1480,4 @@ has only one header, and the header text is the same as the tab name, so no poin */ .main-content[data-page-type="package"] .tabs-section-body h2 { display: none; -} \ No newline at end of file +} diff --git a/examples/.idea/.name b/examples/.idea/.name deleted file mode 100644 index bdb1d33..0000000 --- a/examples/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -akismet-examples \ No newline at end of file diff --git a/examples/.idea/checkstyle-idea.xml b/examples/.idea/checkstyle-idea.xml deleted file mode 100644 index ead1d8a..0000000 --- a/examples/.idea/checkstyle-idea.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/examples/.idea/encodings.xml b/examples/.idea/encodings.xml deleted file mode 100644 index 97626ba..0000000 --- a/examples/.idea/encodings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/examples/bld/.gitignore b/examples/bld/.gitignore new file mode 100644 index 0000000..a2805aa --- /dev/null +++ b/examples/bld/.gitignore @@ -0,0 +1,55 @@ +.gradle +.DS_Store +build +lib/bld/** +!lib/bld/bld-wrapper.jar +!lib/bld/bld-wrapper.properties +lib/compile/ +lib/runtime/ +lib/standalone/ +lib/test/ + +# IDEA ignores + +# User-specific +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# AWS User-specific +.idea/**/aws.xml + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# SonarLint plugin +.idea/sonarlint/ + +# Editor-based Rest Client +.idea/httpRequests \ No newline at end of file diff --git a/examples/bld/.idea/.gitignore b/examples/bld/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/examples/bld/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/examples/bld/.idea/.name b/examples/bld/.idea/.name new file mode 100644 index 0000000..2ee9f40 --- /dev/null +++ b/examples/bld/.idea/.name @@ -0,0 +1 @@ +akismet-kotlin-examples-bld \ No newline at end of file diff --git a/examples/bld/.idea/app.iml b/examples/bld/.idea/app.iml new file mode 100644 index 0000000..2c1fe21 --- /dev/null +++ b/examples/bld/.idea/app.iml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/bld/.idea/bld.iml b/examples/bld/.idea/bld.iml new file mode 100644 index 0000000..e63e11e --- /dev/null +++ b/examples/bld/.idea/bld.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/bld/.idea/inspectionProfiles/Project_Default.xml b/examples/bld/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..1e01b48 --- /dev/null +++ b/examples/bld/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/examples/bld/.idea/libraries/bld.xml b/examples/bld/.idea/libraries/bld.xml new file mode 100644 index 0000000..ca84ff0 --- /dev/null +++ b/examples/bld/.idea/libraries/bld.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/examples/bld/.idea/libraries/compile.xml b/examples/bld/.idea/libraries/compile.xml new file mode 100644 index 0000000..9bd86aa --- /dev/null +++ b/examples/bld/.idea/libraries/compile.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/bld/.idea/libraries/runtime.xml b/examples/bld/.idea/libraries/runtime.xml new file mode 100644 index 0000000..2ae5c4b --- /dev/null +++ b/examples/bld/.idea/libraries/runtime.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/bld/.idea/libraries/test.xml b/examples/bld/.idea/libraries/test.xml new file mode 100644 index 0000000..b80486a --- /dev/null +++ b/examples/bld/.idea/libraries/test.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/bld/.idea/misc.xml b/examples/bld/.idea/misc.xml new file mode 100644 index 0000000..542659b --- /dev/null +++ b/examples/bld/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/examples/bld/.idea/modules.xml b/examples/bld/.idea/modules.xml new file mode 100644 index 0000000..55adcb9 --- /dev/null +++ b/examples/bld/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/examples/bld/.idea/runConfigurations/Run Tests.xml b/examples/bld/.idea/runConfigurations/Run Tests.xml new file mode 100644 index 0000000..2b503e5 --- /dev/null +++ b/examples/bld/.idea/runConfigurations/Run Tests.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/examples/bld/.idea/vcs.xml b/examples/bld/.idea/vcs.xml new file mode 100644 index 0000000..b2bdec2 --- /dev/null +++ b/examples/bld/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/examples/bld/.vscode/launch.json b/examples/bld/.vscode/launch.json new file mode 100644 index 0000000..30a8889 --- /dev/null +++ b/examples/bld/.vscode/launch.json @@ -0,0 +1,11 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "type": "java", + "name": "Run Tests", + "request": "launch", + "mainClass": "com.example.ExampleTest" + } + ] +} diff --git a/examples/bld/.vscode/settings.json b/examples/bld/.vscode/settings.json new file mode 100644 index 0000000..133aa45 --- /dev/null +++ b/examples/bld/.vscode/settings.json @@ -0,0 +1,15 @@ +{ + "java.project.sourcePaths": [ + "src/main/java", + "src/main/resources", + "src/test/java", + "src/bld/java" + ], + "java.configuration.updateBuildConfiguration": "automatic", + "java.project.referencedLibraries": [ + "${HOME}/.bld/dist/bld-1.7.5.jar", + "lib/compile/*.jar", + "lib/runtime/*.jar", + "lib/test/*.jar" + ] +} diff --git a/examples/bld/README.md b/examples/bld/README.md new file mode 100644 index 0000000..4cec4ce --- /dev/null +++ b/examples/bld/README.md @@ -0,0 +1,18 @@ +## Kotlin Example +To compile & run the Kotlin example: + +```text +./bld compile + +./bld run --args=API_KEY +``` + +## Java Example +cd +To compile & run the Java example: + +```text +./bld compile + +./bld run-java --args=API_KEY +``` diff --git a/examples/bld/bld b/examples/bld/bld new file mode 100755 index 0000000..80d2986 --- /dev/null +++ b/examples/bld/bld @@ -0,0 +1,2 @@ +#!/usr/bin/env sh +java -jar "$(dirname "$0")/lib/bld/bld-wrapper.jar" "$0" --build com.example.ExampleBuild "$@" \ No newline at end of file diff --git a/examples/bld/bld.bat b/examples/bld/bld.bat new file mode 100644 index 0000000..084bb72 --- /dev/null +++ b/examples/bld/bld.bat @@ -0,0 +1,4 @@ +@echo off +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +java -jar "%DIRNAME%/lib/bld/bld-wrapper.jar" "%0" --build com.example.ExampleBuild %* \ No newline at end of file diff --git a/examples/bld/lib/bld/bld-wrapper.jar b/examples/bld/lib/bld/bld-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..b18510303dcf16f9602f86653166df309ea05ef3 GIT binary patch literal 27321 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 Kus>-qu>S(NqJ2XE literal 0 HcmV?d00001 diff --git a/examples/bld/lib/bld/bld-wrapper.properties b/examples/bld/lib/bld/bld-wrapper.properties new file mode 100644 index 0000000..095b48c --- /dev/null +++ b/examples/bld/lib/bld/bld-wrapper.properties @@ -0,0 +1,7 @@ +bld.downloadExtensionJavadoc=false +bld.downloadExtensionSources=true +bld.extensions=com.uwyn.rife2:bld-kotlin:0.9.0-SNAPSHOT +bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES +bld.downloadLocation= +bld.sourceDirectories= +bld.version=1.7.5 diff --git a/examples/bld/src/bld/java/com/example/ExampleBuild.java b/examples/bld/src/bld/java/com/example/ExampleBuild.java new file mode 100644 index 0000000..33f0638 --- /dev/null +++ b/examples/bld/src/bld/java/com/example/ExampleBuild.java @@ -0,0 +1,58 @@ +package com.example; + +import rife.bld.BaseProject; +import rife.bld.BuildCommand; +import rife.bld.extension.CompileKotlinOperation; +import rife.bld.extension.CompileKotlinOptions; +import rife.bld.operations.RunOperation; + +import java.util.List; + +import static rife.bld.dependencies.Repository.*; +import static rife.bld.dependencies.Scope.compile; + +public class ExampleBuild extends BaseProject { + public ExampleBuild() { + pkg = "com.example"; + name = "Example"; + version = version(0, 1, 0); + + mainClass = "com.example.AkismetExampleKt"; + + javaRelease = 11; + downloadSources = true; + autoDownloadPurge = true; + repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL, SONATYPE_SNAPSHOTS_LEGACY); + + scope(compile) + .include(dependency("net.thauvin.erik:akismet-kotlin:1.0.0")) + .include(dependency("jakarta.servlet:jakarta.servlet-api:6.0.0")); + } + + public static void main(String[] args) { + new ExampleBuild().start(args); + } + + @Override + public void compile() throws Exception { + new CompileKotlinOperation() + .fromProject(this) + .compileOptions( + new CompileKotlinOptions() + .jdkRelease(javaRelease) + .verbose(true) + ) + .execute(); + + // Also compile the Java source code + super.compile(); + } + + @BuildCommand(value = "run-java", summary = "Runs the Java example") + public void runJava() throws Exception { + new RunOperation() + .fromProject(this) + .mainClass("com.example.AkismetSample") + .execute(); + } +} diff --git a/examples/src/main/java/com/example/AkismetSample.java b/examples/bld/src/main/java/com/example/AkismetSample.java similarity index 100% rename from examples/src/main/java/com/example/AkismetSample.java rename to examples/bld/src/main/java/com/example/AkismetSample.java diff --git a/examples/src/main/kotlin/com/example/AkismetExample.kt b/examples/bld/src/main/kotlin/com/example/AkismetExample.kt similarity index 100% rename from examples/src/main/kotlin/com/example/AkismetExample.kt rename to examples/bld/src/main/kotlin/com/example/AkismetExample.kt diff --git a/examples/src/main/kotlin/com/example/AkismetServlet.kt b/examples/bld/src/main/kotlin/com/example/AkismetServlet.kt similarity index 100% rename from examples/src/main/kotlin/com/example/AkismetServlet.kt rename to examples/bld/src/main/kotlin/com/example/AkismetServlet.kt diff --git a/examples/.editorconfig b/examples/gradle/.editorconfig similarity index 100% rename from examples/.editorconfig rename to examples/gradle/.editorconfig diff --git a/examples/.gitattributes b/examples/gradle/.gitattributes similarity index 100% rename from examples/.gitattributes rename to examples/gradle/.gitattributes diff --git a/examples/.gitignore b/examples/gradle/.gitignore similarity index 100% rename from examples/.gitignore rename to examples/gradle/.gitignore diff --git a/examples/gradle/.idea/.gitignore b/examples/gradle/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/examples/gradle/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/examples/gradle/.idea/.name b/examples/gradle/.idea/.name new file mode 100644 index 0000000..ac5e64e --- /dev/null +++ b/examples/gradle/.idea/.name @@ -0,0 +1 @@ +akismet-examples-gradle \ No newline at end of file diff --git a/.idea/checkstyle-idea.xml b/examples/gradle/.idea/checkstyle-idea.xml similarity index 100% rename from .idea/checkstyle-idea.xml rename to examples/gradle/.idea/checkstyle-idea.xml diff --git a/examples/.idea/codeStyles/codeStyleConfig.xml b/examples/gradle/.idea/codeStyles/codeStyleConfig.xml similarity index 100% rename from examples/.idea/codeStyles/codeStyleConfig.xml rename to examples/gradle/.idea/codeStyles/codeStyleConfig.xml diff --git a/examples/.idea/compiler.xml b/examples/gradle/.idea/compiler.xml similarity index 87% rename from examples/.idea/compiler.xml rename to examples/gradle/.idea/compiler.xml index 907f7b6..61ad941 100644 --- a/examples/.idea/compiler.xml +++ b/examples/gradle/.idea/compiler.xml @@ -1,7 +1,7 @@ - + diff --git a/.idea/encodings.xml b/examples/gradle/.idea/encodings.xml similarity index 100% rename from .idea/encodings.xml rename to examples/gradle/.idea/encodings.xml diff --git a/examples/gradle/.idea/gradle.xml b/examples/gradle/.idea/gradle.xml new file mode 100644 index 0000000..7d3b3e8 --- /dev/null +++ b/examples/gradle/.idea/gradle.xml @@ -0,0 +1,17 @@ + + + + + + + \ No newline at end of file diff --git a/examples/.idea/inspectionProfiles/Project_Default.xml b/examples/gradle/.idea/inspectionProfiles/Project_Default.xml similarity index 100% rename from examples/.idea/inspectionProfiles/Project_Default.xml rename to examples/gradle/.idea/inspectionProfiles/Project_Default.xml diff --git a/examples/gradle/.idea/jarRepositories.xml b/examples/gradle/.idea/jarRepositories.xml new file mode 100644 index 0000000..a529ef2 --- /dev/null +++ b/examples/gradle/.idea/jarRepositories.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/gradle/.idea/kotlinc.xml b/examples/gradle/.idea/kotlinc.xml new file mode 100644 index 0000000..e805548 --- /dev/null +++ b/examples/gradle/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/examples/.idea/misc.xml b/examples/gradle/.idea/misc.xml similarity index 75% rename from examples/.idea/misc.xml rename to examples/gradle/.idea/misc.xml index f09e92a..7940811 100644 --- a/examples/.idea/misc.xml +++ b/examples/gradle/.idea/misc.xml @@ -6,7 +6,10 @@ - + + + diff --git a/examples/.idea/vcs.xml b/examples/gradle/.idea/vcs.xml similarity index 75% rename from examples/.idea/vcs.xml rename to examples/gradle/.idea/vcs.xml index 6c0b863..64713b8 100644 --- a/examples/.idea/vcs.xml +++ b/examples/gradle/.idea/vcs.xml @@ -1,6 +1,7 @@ + \ No newline at end of file diff --git a/examples/gradle/README.md b/examples/gradle/README.md new file mode 100644 index 0000000..445ae5a --- /dev/null +++ b/examples/gradle/README.md @@ -0,0 +1,14 @@ +## Kotlin Example +To compile & run the Kotlin example: + +```text +./gradlew run --args=API_KEY +``` + +## Java Example + +To compile & run the Java example: + +```text +./gradlew runJava --args=API_KEY +``` diff --git a/examples/build.gradle.kts b/examples/gradle/build.gradle.kts similarity index 78% rename from examples/build.gradle.kts rename to examples/gradle/build.gradle.kts index 0bfbac2..55b665a 100644 --- a/examples/build.gradle.kts +++ b/examples/gradle/build.gradle.kts @@ -2,13 +2,10 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { id("application") - id("com.github.ben-manes.versions") version "0.48.0" - kotlin("jvm") version "1.9.10" + id("com.github.ben-manes.versions") version "0.49.0" + kotlin("jvm") version "1.9.20" } -// ./gradlew run --args=API_KEY -// ./gradlew runJava --args=API_KEY - defaultTasks(ApplicationPlugin.TASK_RUN_NAME) repositories { @@ -17,9 +14,7 @@ repositories { } dependencies { -// implementation("javax.servlet:javax.servlet-api:4.0.1") implementation("jakarta.servlet:jakarta.servlet-api:6.0.0") - implementation("net.thauvin.erik:akismet-kotlin:1.0.0") } diff --git a/examples/gradle/wrapper/gradle-wrapper.jar b/examples/gradle/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from examples/gradle/wrapper/gradle-wrapper.jar rename to examples/gradle/gradle/wrapper/gradle-wrapper.jar diff --git a/examples/gradle/wrapper/gradle-wrapper.properties b/examples/gradle/gradle/wrapper/gradle-wrapper.properties similarity index 94% rename from examples/gradle/wrapper/gradle-wrapper.properties rename to examples/gradle/gradle/wrapper/gradle-wrapper.properties index ac72c34..3fa8f86 100644 --- a/examples/gradle/wrapper/gradle-wrapper.properties +++ b/examples/gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/examples/gradle/gradlew similarity index 94% rename from gradlew rename to examples/gradle/gradlew index 0adc8e1..1aa94a4 100755 --- a/gradlew +++ b/examples/gradle/gradlew @@ -145,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -153,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -202,11 +202,11 @@ fi # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ diff --git a/examples/gradlew.bat b/examples/gradle/gradlew.bat similarity index 100% rename from examples/gradlew.bat rename to examples/gradle/gradlew.bat diff --git a/examples/settings.gradle.kts b/examples/gradle/settings.gradle.kts similarity index 100% rename from examples/settings.gradle.kts rename to examples/gradle/settings.gradle.kts diff --git a/examples/gradle/src/main/java/com/example/AkismetSample.java b/examples/gradle/src/main/java/com/example/AkismetSample.java new file mode 100644 index 0000000..f70698f --- /dev/null +++ b/examples/gradle/src/main/java/com/example/AkismetSample.java @@ -0,0 +1,64 @@ +package com.example; + +import net.thauvin.erik.akismet.Akismet; +import net.thauvin.erik.akismet.AkismetComment; + +import java.util.Date; + +public class AkismetSample { + public static void main(String... args) { + if (args.length == 1 && !args[0].isBlank()) { + final Akismet akismet = new Akismet(args[0], "https://yourblogdomainname.com/blog/"); + final AkismetComment comment = new AkismetComment("127.0.0.1", "curl/7.29.0"); + + comment.setTest(true); + + comment.setReferrer("https://www.google.com"); + comment.setPermalink(akismet.getBlog() + "post=1"); + comment.setType(AkismetComment.TYPE_COMMENT); + comment.setAuthor("admin"); + comment.setAuthorEmail("test@test.com"); + comment.setAuthorUrl("http://www.CheckOutMyCoolSite.com"); + comment.setDateGmt(Akismet.dateToGmt(new Date())); + // comment.setUserRole(AkismetComment.ADMIN_ROLE); + comment.setContent("It means a lot that you would take the time to review our software. Thanks again."); + + // final ConsoleHandler consoleHandler = new ConsoleHandler(); + // consoleHandler.setLevel(Level.FINE); + // final Logger logger = akismet.getLogger(); + // logger.addHandler(consoleHandler); + // logger.setLevel(Level.FINE); + + if (akismet.verifyKey()) { + final boolean isSpam = akismet.checkComment(comment); + if (isSpam) { + System.out.println("The comment is SPAM according to Akismet."); + + final boolean hasBeenSubmitted = akismet.submitSpam(comment); + if (hasBeenSubmitted) { + System.out.println("The comment has been submitted as SPAM to Akismet"); + } else { + System.err.println(akismet.getErrorMessage()); + } + } else { + System.out.println("The comment is not SPAM according to Akismet."); + + final boolean hasBeenSubmitted = akismet.submitHam(comment); + if (hasBeenSubmitted) { + System.out.println("The comment has been submitted as HAM to Akismet"); + } else { + System.err.println(akismet.getErrorMessage()); + } + } + } else { + System.err.println("Invalid API Key."); + System.exit(1); + } + + System.exit(0); + } else { + System.err.println("Please specify an API key."); + System.exit(1); + } + } +} diff --git a/examples/gradle/src/main/kotlin/com/example/AkismetExample.kt b/examples/gradle/src/main/kotlin/com/example/AkismetExample.kt new file mode 100644 index 0000000..149555f --- /dev/null +++ b/examples/gradle/src/main/kotlin/com/example/AkismetExample.kt @@ -0,0 +1,66 @@ +package com.example + +import net.thauvin.erik.akismet.Akismet +import net.thauvin.erik.akismet.AkismetComment +import java.util.Date +import kotlin.system.exitProcess + +fun main(args: Array) { + + if (args.size == 1 && args[0].isNotEmpty()) { + val akismet = Akismet(apiKey = args[0], blog = "https://yourblogdomainname.com/blog/") + val comment = AkismetComment(userIp = "127.0.0.1", userAgent = "curl/7.29.0") + + with(comment) { + isTest = true + + referrer = "https://www.google.com" + permalink = "${akismet.blog}post=1" + type = AkismetComment.TYPE_COMMENT + author = "admin" + authorEmail = "test@test.com" + authorUrl = "https://www.CheckOutMyCoolSite.com" + dateGmt = Akismet.dateToGmt(Date()) +// userRole = AkismetComment.ADMIN_ROLE + content = "It means a lot that you would take the time to review our software. Thanks again." + } + +// with(akismet.logger) { +// addHandler(ConsoleHandler().apply { level = Level.FINE }) +// level = Level.FINE +// } + + if (akismet.verifyKey()) { + val isSpam = akismet.checkComment(comment) + if (isSpam) { + println("The comment is SPAM according to Akismet.") + + val hasBeenSubmitted = akismet.submitSpam(comment) + + if (hasBeenSubmitted) { + println("The comment was successfully submitted as SPAM to Akismet.") + } else { + System.err.println(akismet.errorMessage) + } + } else { + println("The comment is not SPAM according to Akismet.") + + val hasBeenSubmitted = akismet.submitHam(comment) + + if (hasBeenSubmitted) { + println("The comment was successfully submitted as HAM to Akismet.") + } else { + System.err.println(akismet.errorMessage) + } + } + } else { + System.err.println("Invalid API Key.") + exitProcess(1) + } + + exitProcess(0) + } else { + System.err.println("Please specify an API key.") + exitProcess(1) + } +} diff --git a/examples/gradle/src/main/kotlin/com/example/AkismetServlet.kt b/examples/gradle/src/main/kotlin/com/example/AkismetServlet.kt new file mode 100644 index 0000000..4b245c8 --- /dev/null +++ b/examples/gradle/src/main/kotlin/com/example/AkismetServlet.kt @@ -0,0 +1,60 @@ +package com.example + +import jakarta.servlet.ServletException +import jakarta.servlet.annotation.WebServlet +import jakarta.servlet.http.HttpServlet +import jakarta.servlet.http.HttpServletRequest +import jakarta.servlet.http.HttpServletResponse +import net.thauvin.erik.akismet.Akismet +import net.thauvin.erik.akismet.AkismetComment +import java.io.IOException +import java.util.Date + +@WebServlet(description = "Akismet Servlet", displayName = "Akismet", urlPatterns = ["/comment/*"]) +class AkismetServlet : HttpServlet() { + private val akismet = Akismet("YOUR_API_KEY", "http://yourblogdomainname.com/blog/") + + @Throws(ServletException::class, IOException::class) + public override fun service(request: HttpServletRequest, response: HttpServletResponse) { + val id = request.getParameter("id") + + akismet.appUserAgent = request.servletContext.serverInfo + + val comment = AkismetComment(request) + with(comment) { + permalink = "${akismet.blog}/comment/$id" + type = AkismetComment.TYPE_COMMENT + author = request.getParameter("name") + authorEmail = request.getParameter("email") + dateGmt = Akismet.dateToGmt(Date()) + content = request.getParameter("comment") + } + + val isSpam = akismet.checkComment(comment) + + saveComment( + id = id, + name = comment.author, + email = comment.authorEmail, + date = comment.dateGmt, + comment = comment.content, + json = comment.toJson(), + isSpam = isSpam + ) + + // ... + } + + @Suppress("UNUSED_PARAMETER") + private fun saveComment( + id: String, + name: String?, + email: String?, + date: String?, + comment: String?, + json: String, + isSpam: Boolean + ) { + // ... + } +} diff --git a/examples/gradlew b/examples/gradlew deleted file mode 100755 index 0adc8e1..0000000 --- a/examples/gradlew +++ /dev/null @@ -1,249 +0,0 @@ -#!/bin/sh - -# -# Copyright Ā© 2015-2021 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions Ā«$varĀ», Ā«${var}Ā», Ā«${var:-default}Ā», Ā«${var+SET}Ā», -# Ā«${var#prefix}Ā», Ā«${var%suffix}Ā», and Ā«$( cmd )Ā»; -# * compound commands having a testable exit status, especially Ā«caseĀ»; -# * various built-in commands including Ā«commandĀ», Ā«setĀ», and Ā«ulimitĀ». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -# This is normally unused -# shellcheck disable=SC2034 -APP_BASE_NAME=${0##*/} -# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - if ! command -v java >/dev/null 2>&1 - then - die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Stop when "xargs" is not available. -if ! command -v xargs >/dev/null 2>&1 -then - die "xargs is not available" -fi - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/gradle.properties b/gradle.properties deleted file mode 100644 index e69de29..0000000 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 7f93135c49b765f8051ef9d0a6055ff8e46073d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63721 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鯊%1Et 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⁢ zv5o9#E7!G0XmdzfsS{efPNi`1b44~SZ4Z8fuX!I}#8g+(wxzQwUT#Xb2(tbY1+EUhGKoT@KEU9Ktl>_0 z%bjDJg;#*gtJZv!-Zs`?^}v5eKmnbjqlvnSzE@_SP|LG_PJ6CYU+6zY6>92%E+ z=j@TZf-iW4(%U{lnYxQA;7Q!b;^brF8n0D>)`q5>|WDDXLrqYU_tKN2>=#@~OE7grMnNh?UOz-O~6 z6%rHy{#h9K0AT+lDC7q4{hw^|q6*Ry;;L%Q@)Ga}$60_q%D)rv(CtS$CQbpq9|y1e zRSrN4;$Jyl{m5bZw`$8TGvb}(LpY{-cQ)fcyJv7l3S52TLXVDsphtv&aPuDk1OzCA z4A^QtC(!11`IsNx_HnSy?>EKpHJWT^wmS~hc^p^zIIh@9f6U@I2 zC=Mve{j2^)mS#U$e{@Q?SO6%LDsXz@SY+=cK_QMmXBIU)j!$ajc-zLx3V60EXJ!qC zi<%2x8Q24YN+&8U@CIlN zrZkcT9yh%LrlGS9`G)KdP(@9Eo-AQz@8GEFWcb7U=a0H^ZVbLmz{+&M7W(nXJ4sN8 zJLR7eeK(K8`2-}j(T7JsO`L!+CvbueT%izanm-^A1Dn{`1Nw`9P?cq;7no+XfC`K(GO9?O^5zNIt4M+M8LM0=7Gz8UA@Z0N+lg+cX)NfazRu z5D)~HA^(u%w^cz+@2@_#S|u>GpB+j4KzQ^&Wcl9f z&hG#bCA(Yk0D&t&aJE^xME^&E-&xGHhXn%}psEIj641H+Nl-}boj;)Zt*t(4wZ5DN z@GXF$bL=&pBq-#vkTkh>7hl%K5|3 z{`Vn9b$iR-SoGENp}bn4;fR3>9sA%X2@1L3aE9yTra;Wb#_`xWwLSLdfu+PAu+o3| zGVnpzPr=ch{uuoHjtw7+_!L_2;knQ!DuDl0R`|%jr+}jFzXtrHIKc323?JO{l&;VF z*L1+}JU7%QJOg|5|Tc|D8fN zJORAg=_vsy{ak|o);@)Yh8Lkcg@$FG3k@ep36BRa^>~UmnRPziS>Z=`Jb2x*Q#`%A zU*i3&Vg?TluO@X0O;r2Jl6LKLUOVhSqg1*qOt^|8*c7 zo(298@+r$k_wQNGHv{|$tW(T8L+4_`FQ{kEW5Jgg{yf7ey4ss_(SNKfz(N9lx&a;< je(UuV8hP?p&}TPdm1I$XmG#(RzlD&B2izSj9sl%y5~4qc diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index ac72c34..0000000 --- a/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,7 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip -networkTimeout=10000 -validateDistributionUrl=true -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/gradlew.bat b/gradlew.bat deleted file mode 100644 index 93e3f59..0000000 --- a/gradlew.bat +++ /dev/null @@ -1,92 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -@rem This is normally unused -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/lib/bld/bld-wrapper.jar b/lib/bld/bld-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..0f569272503c6b73051a7fb0d906d8833b88a397 GIT binary patch literal 27321 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 Kus>-qu>S&Czkrzl literal 0 HcmV?d00001 diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties new file mode 100644 index 0000000..37e3035 --- /dev/null +++ b/lib/bld/bld-wrapper.properties @@ -0,0 +1,9 @@ +bld.downloadExtensionJavadoc=false +bld.downloadExtensionSources=true +bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.1 +bld.extensions-kotlin=com.uwyn.rife2:bld-kotlin:0.9.0-SNAPSHOT +bld.extensions=com.uwyn.rife2:bld-generated-version:0.9.3-SNAPSHOT +bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES +bld.downloadLocation= +bld.sourceDirectories= +bld.version=1.7.5 diff --git a/pom.xml b/pom.xml index ff49ef0..fecf267 100644 --- a/pom.xml +++ b/pom.xml @@ -1,14 +1,10 @@ - - - - - - + 4.0.0 net.thauvin.erik akismet-kotlin - 1.0.0 + 1.0.1-SNAPSHOT akismet-kotlin A client library for accessing the Automattic Kismet (Akismet) spam comments filtering service. https://github.com/ethauvin/akismet-kotlin @@ -18,6 +14,38 @@ https://opensource.org/licenses/BSD-3-Clause + + + org.jetbrains.kotlin + kotlin-stdlib + 1.9.20 + compile + + + com.squareup.okhttp3 + okhttp + 4.12.0 + compile + + + com.squareup.okhttp3 + logging-interceptor + 4.12.0 + compile + + + jakarta.servlet + jakarta.servlet-api + 6.0.0 + compile + + + org.jetbrains.kotlinx + kotlinx-serialization-json-jvm + 1.6.0 + compile + + ethauvin @@ -27,61 +55,8 @@ - scm:git:https://github.com/ethauvin/akismet-kotlin.git + scm:git:https://github.com/ethauvin/akismet-kotlin scm:git:git@github.com:ethauvin/akismet-kotlin.git https://github.com/ethauvin/akismet-kotlin - - GitHub - https://github.com/ethauvin/akismet-kotlin/issues - - - - - org.jetbrains.kotlin - kotlin-bom - 1.9.10 - pom - import - - - - - - org.jetbrains.kotlin - kotlin-stdlib-jdk8 - 1.9.10 - compile - - - jakarta.servlet - jakarta.servlet-api - 6.0.0 - runtime - - - com.squareup.okhttp3 - okhttp - 4.11.0 - runtime - - - com.squareup.okio - okio-jvm - 3.5.0 - runtime - - - com.squareup.okhttp3 - logging-interceptor - 4.11.0 - runtime - - - org.jetbrains.kotlinx - kotlinx-serialization-json-jvm - 1.6.0 - runtime - - diff --git a/settings.gradle.kts b/settings.gradle.kts deleted file mode 100644 index f93566a..0000000 --- a/settings.gradle.kts +++ /dev/null @@ -1,18 +0,0 @@ -plugins { - id("com.gradle.enterprise").version("3.6.3") -} - -gradleEnterprise { - buildScan { - link("GitHub", "https://github.com/ethauvin/akismet-kotlin/tree/master") - if (!System.getenv("CI").isNullOrEmpty()) { - isUploadInBackground = false - publishOnFailure() - tag("CI") - } - termsOfServiceUrl = "https://gradle.com/terms-of-service" - termsOfServiceAgree = "yes" - } -} - -rootProject.name = "akismet-kotlin" diff --git a/sonar-project.properties b/sonar-project.properties new file mode 100644 index 0000000..82098a0 --- /dev/null +++ b/sonar-project.properties @@ -0,0 +1,7 @@ +sonar.organization=ethauvin-github +sonar.projectKey=ethauvin_akismet-kotlin +sonar.coverage.jacoco.xmlReportPaths=build/reports/jacoco/test/jacocoTestReport.xml +sonar.sources=src/main/kotlin/ +sonar.tests=src/test/kotlin/ +sonar.java.binaries=build/main,build/test +sonar.java.libraries=lib/compile/*.jar diff --git a/src/bld/java/net/thauvin/erik/AkismetBuild.java b/src/bld/java/net/thauvin/erik/AkismetBuild.java new file mode 100644 index 0000000..9a593c4 --- /dev/null +++ b/src/bld/java/net/thauvin/erik/AkismetBuild.java @@ -0,0 +1,196 @@ +/* + * AkismetBuild.java + * + * Copyright 2019-2023 Erik C. Thauvin (erik@thauvin.net) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * Neither the name of this project nor the names of its contributors may be + * used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package net.thauvin.erik; + +import rife.bld.BuildCommand; +import rife.bld.Project; +import rife.bld.extension.CompileKotlinOperation; +import rife.bld.extension.CompileKotlinOptions; +import rife.bld.extension.GeneratedVersionOperation; +import rife.bld.extension.JacocoReportOperation; +import rife.bld.extension.dokka.DokkaOperation; +import rife.bld.extension.dokka.LoggingLevel; +import rife.bld.extension.dokka.OutputFormat; +import rife.bld.extension.dokka.SourceSet; +import rife.bld.operations.exceptions.ExitStatusException; +import rife.bld.publish.PomBuilder; +import rife.bld.publish.PublishDeveloper; +import rife.bld.publish.PublishLicense; +import rife.bld.publish.PublishScm; +import rife.tools.exceptions.FileUtilsErrorException; + +import java.io.File; +import java.io.IOException; +import java.util.List; + +import static rife.bld.dependencies.Repository.*; +import static rife.bld.dependencies.Scope.*; + +public class AkismetBuild extends Project { + public AkismetBuild() { + pkg = "net.thauvin.erik"; + name = "akismet-kotlin"; + version = version(1, 0, 1, "SNAPSHOT"); + + javaRelease = 11; + downloadSources = true; + autoDownloadPurge = true; + repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL); + + var okHttp = version(4, 12, 0); + scope(compile) + .include(dependency("org.jetbrains.kotlin", "kotlin-stdlib", version(1, 9, 20))) + .include(dependency("com.squareup.okhttp3", "okhttp", okHttp)) + .include(dependency("com.squareup.okhttp3", "logging-interceptor", okHttp)) + .include(dependency("jakarta.servlet", "jakarta.servlet-api", version(6, 0, 0))) + .include(dependency("org.jetbrains.kotlinx", "kotlinx-serialization-json-jvm", version(1, 6, 0))); + scope(provided) + .include(dependency("org.jetbrains.kotlin:kotlin-serialization-compiler-plugin:1.9.20")); + scope(test) + .include(dependency("org.mockito", "mockito-core", version(5, 6, 0))) + .include(dependency("org.jetbrains.kotlin", "kotlin-test-junit5", version(1, 9, 20))) + .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 1))) + .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 1))) + .include(dependency("com.willowtreeapps.assertk", "assertk-jvm", version(0, 27, 0))); + + publishOperation() + .repository(version.isSnapshot() ? repository(SONATYPE_SNAPSHOTS_LEGACY.location()) + .withCredentials(property("sonatype.user"), property("sonatype.password")) + : repository(SONATYPE_RELEASES_LEGACY.location()) + .withCredentials(property("sonatype.user"), property("sonatype.password"))) + .info() + .groupId(pkg) + .artifactId(name) + .description("A client library for accessing the Automattic Kismet (Akismet) spam comments filtering service.") + .url("https://github.com/ethauvin/" + name) + .developer(new PublishDeveloper() + .id("ethauvin") + .name("Erik C. Thauvin") + .email("erik@thauvin.net") + .url("https://erik.thauvin.net/")) + .license(new PublishLicense() + .name("BSD 3-Clause") + .url("https://opensource.org/licenses/BSD-3-Clause")) + .scm(new PublishScm() + .connection("scm:git:https://github.com/ethauvin/" + name) + .developerConnection("scm:git:git@github.com:ethauvin/" + name + ".git") + .url("https://github.com/ethauvin/" + name)) + .signKey(property("sign.key")) + .signPassphrase(property("sign.passphrase")); + + jarSourcesOperation().sourceDirectories(new File(srcMainDirectory(), "kotlin")); + } + + public static void main(String[] args) { + new AkismetBuild().start(args); + } + + @BuildCommand(summary = "Compiles the Kotlin project") + @Override + public void compile() throws IOException { + genver(); + new CompileKotlinOperation() + .fromProject(this) + .plugins(CompileKotlinOperation.getJarList(libCompileDirectory(), + "^.*kotlin-serialization-compiler-plugin-.*$")) + .compileOptions( + new CompileKotlinOptions() + .jdkRelease(javaRelease) + .verbose(true) + ) + .execute(); + } + + @BuildCommand(summary = "Generates documentation in HTML format") + public void docs() throws ExitStatusException, IOException, InterruptedException { + var kotlin = new File(srcMainDirectory(), "kotlin").getAbsolutePath(); + new DokkaOperation() + .fromProject(this) + .loggingLevel(LoggingLevel.INFO) + .moduleName("Akismet Kotlin") + .moduleVersion(version.toString()) + .outputDir("docs") + .outputFormat(OutputFormat.HTML) + .sourceSet( + new SourceSet() + .src(kotlin) + .srcLink(kotlin, "https://github.com/ethauvin/" + name + + "/tree/master/src/main/kotlin/", "#L") + .includes("config/dokka/packages.md") + .jdkVersion(javaRelease) + ) + .execute(); + } + + @BuildCommand(summary = "Generates version class") + public void genver() { + new GeneratedVersionOperation() + .fromProject(this) + .projectName("Akismet Kotlin") + .packageName(pkg + ".akismet") + .classTemplate(new File(workDirectory(), "version.txt")) + .directory(new File(srcMainDirectory(), "kotlin")) + .extension(".kt") + .execute(); + } + + @BuildCommand(summary = "Generates JaCoCo Reports") + public void jacoco() throws IOException { + new JacocoReportOperation() + .fromProject(this) + .execute(); + } + + @Override + public void javadoc() throws ExitStatusException, IOException, InterruptedException { + new DokkaOperation() + .fromProject(this) + .loggingLevel(LoggingLevel.INFO) + .moduleName("Bitly Shorten") + .moduleVersion(version.toString()) + .outputDir(new File(buildDirectory(), "javadoc")) + .outputFormat(OutputFormat.JAVADOC) + .execute(); + } + + @Override + public void publish() throws Exception { + super.publish(); + pomRoot(); + } + + @BuildCommand(value = "pom-root", summary = "Generates the POM file in the root directory") + public void pomRoot() throws FileUtilsErrorException { + PomBuilder.generateInto(publishOperation().fromProject(this).info(), dependencies(), + new File(workDirectory, "pom.xml")); + } +} diff --git a/src/main/kotlin/net/thauvin/erik/akismet/Akismet.kt b/src/main/kotlin/net/thauvin/erik/akismet/Akismet.kt index 285c835..8311f88 100644 --- a/src/main/kotlin/net/thauvin/erik/akismet/Akismet.kt +++ b/src/main/kotlin/net/thauvin/erik/akismet/Akismet.kt @@ -1,8 +1,7 @@ /* * Akismet.kt * - * Copyright (c) 2019-2023, Erik C. Thauvin (erik@thauvin.net) - * All rights reserved. + * Copyright 2019-2023 Erik C. Thauvin (erik@thauvin.net) * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -32,7 +31,6 @@ package net.thauvin.erik.akismet import kotlinx.serialization.json.Json -import net.thauvin.erik.semver.Version import okhttp3.FormBody import okhttp3.HttpUrl import okhttp3.HttpUrl.Companion.toHttpUrl @@ -45,7 +43,7 @@ import java.time.OffsetDateTime import java.time.ZoneId import java.time.format.DateTimeFormatter import java.time.temporal.ChronoUnit -import java.util.Date +import java.util.* import java.util.logging.Level import java.util.logging.Logger @@ -54,7 +52,6 @@ import java.util.logging.Logger * * @constructor Creates a new instance using the provided [Akismet](https://www.askimet.com/) API key. */ -@Version(properties = "version.properties", type = "kt") open class Akismet(apiKey: String) { companion object { /** @@ -135,7 +132,6 @@ open class Akismet(apiKey: String) { /** * The [HTTP status code](https://www.restapitutorial.com/httpstatuscodes.html) of the last operation. */ - @Suppress("MemberVisibilityCanBePrivate") var httpStatusCode: Int = 0 private set @@ -144,7 +140,6 @@ open class Akismet(apiKey: String) { * * For example: `true`, `false`, `valid`, `invalid`, etc. */ - @Suppress("MemberVisibilityCanBePrivate") var response: String = "" private set @@ -168,7 +163,6 @@ open class Akismet(apiKey: String) { * * @see [Akismet.isDiscard] */ - @Suppress("MemberVisibilityCanBePrivate") var proTip: String = "" private set @@ -180,7 +174,6 @@ open class Akismet(apiKey: String) { * * @see [Akismet.proTip] */ - @Suppress("MemberVisibilityCanBePrivate") var isDiscard: Boolean = false private set diff --git a/src/main/kotlin/net/thauvin/erik/akismet/AkismetComment.kt b/src/main/kotlin/net/thauvin/erik/akismet/AkismetComment.kt index 5365898..c7ae7af 100644 --- a/src/main/kotlin/net/thauvin/erik/akismet/AkismetComment.kt +++ b/src/main/kotlin/net/thauvin/erik/akismet/AkismetComment.kt @@ -1,8 +1,7 @@ /* * AkismetComment.kt * - * Copyright (c) 2019-2023, Erik C. Thauvin (erik@thauvin.net) - * All rights reserved. + * Copyright 2019-2023 Erik C. Thauvin (erik@thauvin.net) * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -58,7 +57,6 @@ private fun String?.ifNull() = this ?: "" */ @Serializable open class AkismetComment(val userIp: String, val userAgent: String) { - @Suppress("unused") companion object { /** A blog comment. */ const val TYPE_COMMENT = "comment" diff --git a/src/main/kotlin/net/thauvin/erik/akismet/GeneratedVersion.kt b/src/main/kotlin/net/thauvin/erik/akismet/GeneratedVersion.kt new file mode 100644 index 0000000..8f63ec2 --- /dev/null +++ b/src/main/kotlin/net/thauvin/erik/akismet/GeneratedVersion.kt @@ -0,0 +1,14 @@ +/* +* This file is automatically generated. +* Do not modify! -- ALL CHANGES WILL BE ERASED! +*/ + +package net.thauvin.erik.akismet + +/** +* Provides semantic version information. +*/ +internal object GeneratedVersion { + const val PROJECT = "Akismet Kotlin" + const val VERSION = "1.0.1-SNAPSHOT" +} diff --git a/src/test/java/net/thauvin/erik/AkismetTest.java b/src/test/java/net/thauvin/erik/AkismetTest.java new file mode 100644 index 0000000..ea4fecc --- /dev/null +++ b/src/test/java/net/thauvin/erik/AkismetTest.java @@ -0,0 +1,46 @@ +/* + * AkismetTest.java + * + * Copyright 2019-2023 Erik C. Thauvin (erik@thauvin.net) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * Neither the name of this project nor the names of its contributors may be + * used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package net.thauvin.erik; + +public class AkismetTest { + public static void main(String[] args) { + new AkismetTest().verifyHello(); + } + + void verifyHello() { + if (!"Hello World!".equals(new AkismetLib().getMessage())) { + throw new AssertionError(); + } else { + System.out.println("Succeeded"); + } + } +} diff --git a/src/test/kotlin/net/thauvin/erik/akismet/AkismetTest.kt b/src/test/kotlin/net/thauvin/erik/akismet/AkismetTest.kt index 1db1803..2d9cb80 100644 --- a/src/test/kotlin/net/thauvin/erik/akismet/AkismetTest.kt +++ b/src/test/kotlin/net/thauvin/erik/akismet/AkismetTest.kt @@ -1,8 +1,7 @@ /* * AkismetTest.kt * - * Copyright (c) 2019-2023, Erik C. Thauvin (erik@thauvin.net) - * All rights reserved. + * Copyright 2019-2023 Erik C. Thauvin (erik@thauvin.net) * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -34,36 +33,27 @@ package net.thauvin.erik.akismet import assertk.all import assertk.assertThat -import assertk.assertions.contains -import assertk.assertions.isEmpty -import assertk.assertions.isEqualTo -import assertk.assertions.isFalse -import assertk.assertions.isNotEmpty -import assertk.assertions.isTrue -import assertk.assertions.key -import assertk.assertions.prop -import assertk.assertions.size +import assertk.assertions.* import jakarta.servlet.http.HttpServletRequest import okhttp3.FormBody import okhttp3.HttpUrl.Companion.toHttpUrl +import org.junit.Assert.assertThrows +import org.junit.BeforeClass +import org.junit.jupiter.api.Test import org.mockito.Mockito import org.mockito.Mockito.`when` -import org.testng.Assert.assertEquals -import org.testng.Assert.assertFalse -import org.testng.Assert.assertNotEquals -import org.testng.Assert.assertTrue -import org.testng.Assert.expectThrows -import org.testng.annotations.BeforeClass -import org.testng.annotations.Test import java.io.File import java.io.FileInputStream import java.time.LocalDateTime import java.time.ZoneId -import java.util.Collections -import java.util.Date -import java.util.Properties +import java.util.* import java.util.logging.ConsoleHandler import java.util.logging.Level +import kotlin.test.assertEquals +import kotlin.test.assertFalse +import kotlin.test.assertNotEquals +import kotlin.test.assertTrue + fun getKey(key: String): String { var value = System.getenv(key) ?: "" @@ -88,84 +78,40 @@ fun getKey(key: String): String { * AKISMET_API_KEY and AKISMET_BLOG should be in env vars or local.properties */ class AkismetTest { - private val apiKey = getKey("AKISMET_API_KEY") - private val blog = getKey("AKISMET_BLOG") - private val referer = "http://www.google.com" - private val date = Date() - private val comment = AkismetComment( - userIp = "127.0.0.1", - userAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6" - ) - private val akismet = Akismet(apiKey, blog) - private val mockComment: AkismetComment = AkismetComment(request = getMockRequest()) private val emptyFormBody = FormBody.Builder().build() - @BeforeClass - fun beforeClass() { - with(akismet.logger) { - addHandler(ConsoleHandler().apply { level = Level.FINE }) - level = Level.FINE - } - - with(comment) { - referrer = referer - permalink = "http://yourblogdomainname.com/blog/post=1" - type = AkismetComment.TYPE_COMMENT - author = "admin" - authorEmail = "test@test.com" - authorUrl = "http://www.CheckOutMyCoolSite.com" - content = "It means a lot that you would take the time to review our software. Thanks again." - dateGmt = Akismet.dateToGmt(date) - postModifiedGmt = dateGmt - blogLang = "en" - blogCharset = "UTF-8" - userRole = AkismetComment.ADMIN_ROLE - isTest = true - } - - akismet.logger.info(comment.toString()) - - with(mockComment) { - permalink = comment.permalink - type = comment.type - authorEmail = comment.authorEmail - author = comment.author - authorUrl = comment.authorUrl - content = comment.content - dateGmt = comment.dateGmt - postModifiedGmt = comment.dateGmt - blogLang = comment.blogLang - blogCharset = comment.blogCharset - userRole = comment.userRole - recheckReason = "edit" - isTest = true - } - - akismet.logger.info(mockComment.toJson()) - } - @Test fun constructorsTest() { - expectThrows(IllegalArgumentException::class.java) { + assertThrows( + IllegalArgumentException::class.java + ) { Akismet("") } - expectThrows(IllegalArgumentException::class.java) { + assertThrows( + IllegalArgumentException::class.java + ) { Akismet("1234") } - expectThrows(IllegalArgumentException::class.java) { + assertThrows( + IllegalArgumentException::class.java + ) { Akismet("123456789 12") } - expectThrows(IllegalArgumentException::class.java) { + assertThrows( + IllegalArgumentException::class.java + ) { Akismet("123456789012", "") } - expectThrows(IllegalArgumentException::class.java) { + assertThrows( + IllegalArgumentException::class.java + ) { Akismet("1234", "foo") } } @Test fun blogPropertyTest() { - expectThrows(IllegalArgumentException::class.java) { + assertThrows(IllegalArgumentException::class.java) { akismet.blog = "" } @@ -208,9 +154,10 @@ class AkismetTest { @Test fun emptyCommentTest() { - expectThrows(IllegalArgumentException::class.java) { - akismet.checkComment(AkismetComment("", "")) - } + assertThrows( + java.lang.IllegalArgumentException::class.java + ) { akismet.checkComment(AkismetComment("", "")) } + val empty = AkismetComment("", "") assertThat(empty, "AkismetComment(empty)").all { @@ -308,6 +255,7 @@ class AkismetTest { emptyFormBody ) ) + assertThat(akismet, "executeMethod(pro-tip)").all { prop(Akismet::proTip).isEqualTo("discard") prop(Akismet::isDiscard).isTrue() @@ -358,9 +306,12 @@ class AkismetTest { } } - @Test(expectedExceptions = [IllegalArgumentException::class]) + @Test fun invalidApiTest() { - akismet.executeMethod("https://.com".toHttpUrl(), emptyFormBody) + assertThrows( + java.lang.IllegalArgumentException::class.java + ) { akismet.executeMethod("https://.com".toHttpUrl(), emptyFormBody) } + } @Test @@ -395,7 +346,7 @@ class AkismetTest { jsonComment.recheckReason = "" assertNotEquals(jsonComment, mockComment, "jsonComment != jsonComment") - assertNotEquals(this, comment, "this != comment") + assertThat(this, "this != comment").isNotEqualTo(comment) } @Test @@ -415,19 +366,78 @@ class AkismetTest { assertThat(comment::dateGmt).isEqualTo(utcDate) } - private fun getMockRequest(): HttpServletRequest { - val request = Mockito.mock(HttpServletRequest::class.java) - with(request) { - `when`(remoteAddr).thenReturn(comment.userIp) - `when`(requestURI).thenReturn("/blog/post=1") - `when`(getHeader("referer")).thenReturn(referer) - `when`(getHeader("Cookie")).thenReturn("name=value; name2=value2; name3=value3") - `when`(getHeader("User-Agent")).thenReturn(comment.userAgent) - `when`(getHeader("Accept-Encoding")).thenReturn("gzip") - `when`(headerNames).thenReturn( - Collections.enumeration(listOf("User-Agent", "referer", "Cookie", "Accept-Encoding", "Null")) - ) + companion object { + private val apiKey = getKey("AKISMET_API_KEY") + private val blog = getKey("AKISMET_BLOG") + private val akismet = Akismet(apiKey, blog) + private val comment = AkismetComment( + userIp = "127.0.0.1", + userAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6" + ) + private val date = Date() + private val mockComment: AkismetComment = AkismetComment(request = getMockRequest()) + private const val REFERER = "http://www.google.com" + + init { + with(comment) { + referrer = REFERER + permalink = "http://yourblogdomainname.com/blog/post=1" + type = AkismetComment.TYPE_COMMENT + author = "admin" + authorEmail = "test@test.com" + authorUrl = "http://www.CheckOutMyCoolSite.com" + content = "It means a lot that you would take the time to review our software. Thanks again." + dateGmt = Akismet.dateToGmt(date) + postModifiedGmt = dateGmt + blogLang = "en" + blogCharset = "UTF-8" + userRole = AkismetComment.ADMIN_ROLE + isTest = true + } + + with(mockComment) { + permalink = comment.permalink + type = comment.type + authorEmail = comment.authorEmail + author = comment.author + authorUrl = comment.authorUrl + content = comment.content + dateGmt = comment.dateGmt + postModifiedGmt = comment.dateGmt + blogLang = comment.blogLang + blogCharset = comment.blogCharset + userRole = comment.userRole + recheckReason = "edit" + isTest = true + } + } + + @JvmStatic + @BeforeClass + fun beforeClass() { + with(akismet.logger) { + addHandler(ConsoleHandler().apply { level = Level.FINE }) + level = Level.FINE + } + + akismet.logger.info(comment.toString()) + akismet.logger.info(mockComment.toJson()) + } + + private fun getMockRequest(): HttpServletRequest { + val request = Mockito.mock(HttpServletRequest::class.java) + with(request) { + `when`(remoteAddr).thenReturn(comment.userIp) + `when`(requestURI).thenReturn("/blog/post=1") + `when`(getHeader("referer")).thenReturn(REFERER) + `when`(getHeader("Cookie")).thenReturn("name=value; name2=value2; name3=value3") + `when`(getHeader("User-Agent")).thenReturn(comment.userAgent) + `when`(getHeader("Accept-Encoding")).thenReturn("gzip") + `when`(headerNames).thenReturn( + Collections.enumeration(listOf("User-Agent", "referer", "Cookie", "Accept-Encoding", "Null")) + ) + } + return request } - return request } } diff --git a/version.mustache b/version.mustache deleted file mode 100644 index 34a4442..0000000 --- a/version.mustache +++ /dev/null @@ -1,18 +0,0 @@ -/* -* This file is automatically generated. -* Do not modify! -- ALL CHANGES WILL BE ERASED! -*/ - -package {{packageName}} - -/** -* Provides semantic version information. -* -* @author Semantic Version Annotation Processor -*/ -internal object {{className}} { - @JvmField - val PROJECT = "{{project}}" - @JvmField - val VERSION = "{{version}}" -} diff --git a/version.properties b/version.properties deleted file mode 100644 index 056f575..0000000 --- a/version.properties +++ /dev/null @@ -1,9 +0,0 @@ -#Generated by the Semver Plugin for Gradle -#Sun May 02 22:00:05 PDT 2021 -version.buildmeta= -version.major=1 -version.minor=0 -version.patch=0 -version.prerelease= -version.project=Akismet Kotlin -version.semver=1.0.0 diff --git a/version.txt b/version.txt new file mode 100644 index 0000000..2686ea8 --- /dev/null +++ b/version.txt @@ -0,0 +1,14 @@ +/* +* This file is automatically generated. +* Do not modify! -- ALL CHANGES WILL BE ERASED! +*/ + +package {{v packageName/}} + +/** +* Provides semantic version information. +*/ +internal object {{v className/}} { + const val PROJECT = "{{v project/}}" + const val VERSION = "{{v version/}}" +} From a950274d35e4a21bf81838b781eabc7eb994a5fe Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 12 Nov 2023 15:51:14 -0800 Subject: [PATCH 04/63] Fixed bld-ci badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f968ac8..d0d25b3 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![Maven Central](https://img.shields.io/maven-central/v/net.thauvin.erik/akismet-kotlin.svg?color=blue)](https://central.sonatype.com/artifact/net.thauvin.erik/akismet-kotlin) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=ethauvin_akismet-kotlin&metric=alert_status)](https://sonarcloud.io/dashboard?id=ethauvin_akismet-kotlin) -[![GitHub CI](https://github.com/ethauvin/akismet-kotlin/actions/workflows/gradle.yml/badge.svg)](https://github.com/ethauvin/akismet-kotlin/actions/workflows/gradle.yml) +[![GitHub CI](https://github.com/ethauvin/akismet-kotlin/actions/workflows/bld.yml/badge.svg)](https://github.com/ethauvin/akismet-kotlin/actions/workflows/gradle.yml) [![CircleCI](https://circleci.com/gh/ethauvin/akismet-kotlin/tree/master.svg?style=shield)](https://circleci.com/gh/ethauvin/akismet-kotlin/tree/master) # [Akismet](https://www.akismet.com) for Kotlin, Java and Android From f850dbb51c8982a9d91abb57d762e56e1b546dd8 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Mon, 13 Nov 2023 12:42:58 -0800 Subject: [PATCH 05/63] Minor cleanup --- .idea/misc.xml | 11 +++++++++++ README.md | 2 +- src/bld/java/net/thauvin/erik/AkismetBuild.java | 8 ++------ 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 6933af7..7a6aa48 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -6,6 +6,17 @@ + diff --git a/README.md b/README.md index d0d25b3..dcf5937 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![Maven Central](https://img.shields.io/maven-central/v/net.thauvin.erik/akismet-kotlin.svg?color=blue)](https://central.sonatype.com/artifact/net.thauvin.erik/akismet-kotlin) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=ethauvin_akismet-kotlin&metric=alert_status)](https://sonarcloud.io/dashboard?id=ethauvin_akismet-kotlin) -[![GitHub CI](https://github.com/ethauvin/akismet-kotlin/actions/workflows/bld.yml/badge.svg)](https://github.com/ethauvin/akismet-kotlin/actions/workflows/gradle.yml) +[![GitHub CI](https://github.com/ethauvin/akismet-kotlin/actions/workflows/bld.yml/badge.svg)](https://github.com/ethauvin/akismet-kotlin/actions/workflows/bld.yml) [![CircleCI](https://circleci.com/gh/ethauvin/akismet-kotlin/tree/master.svg?style=shield)](https://circleci.com/gh/ethauvin/akismet-kotlin/tree/master) # [Akismet](https://www.akismet.com) for Kotlin, Java and Android diff --git a/src/bld/java/net/thauvin/erik/AkismetBuild.java b/src/bld/java/net/thauvin/erik/AkismetBuild.java index 9a593c4..c8fa65f 100644 --- a/src/bld/java/net/thauvin/erik/AkismetBuild.java +++ b/src/bld/java/net/thauvin/erik/AkismetBuild.java @@ -33,10 +33,7 @@ package net.thauvin.erik; import rife.bld.BuildCommand; import rife.bld.Project; -import rife.bld.extension.CompileKotlinOperation; -import rife.bld.extension.CompileKotlinOptions; -import rife.bld.extension.GeneratedVersionOperation; -import rife.bld.extension.JacocoReportOperation; +import rife.bld.extension.*; import rife.bld.extension.dokka.DokkaOperation; import rife.bld.extension.dokka.LoggingLevel; import rife.bld.extension.dokka.OutputFormat; @@ -120,8 +117,7 @@ public class AkismetBuild extends Project { genver(); new CompileKotlinOperation() .fromProject(this) - .plugins(CompileKotlinOperation.getJarList(libCompileDirectory(), - "^.*kotlin-serialization-compiler-plugin-.*$")) + .plugins(libCompileDirectory(), CompileKotlinPlugin.KOTLIN_SERIALIZATION) .compileOptions( new CompileKotlinOptions() .jdkRelease(javaRelease) From b4194b765a6a18902f963cd8b82051d66c4d7acc Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 23 Nov 2023 17:56:29 -0800 Subject: [PATCH 06/63] Upgraded to Kotlin 1.9.21 --- README.md | 2 +- examples/bld/README.md | 4 +- .../bld/java/com/example/ExampleBuild.java | 9 +--- examples/gradle/.idea/.name | 2 +- examples/gradle/README.md | 4 +- examples/gradle/build.gradle.kts | 4 +- lib/bld/bld-wrapper.properties | 2 +- pom.xml | 6 +-- .../java/net/thauvin/erik/AkismetBuild.java | 45 +++++++++--------- .../java/net/thauvin/erik/AkismetTest.java | 46 ------------------- 10 files changed, 36 insertions(+), 88 deletions(-) delete mode 100644 src/test/java/net/thauvin/erik/AkismetTest.java diff --git a/README.md b/README.md index dcf5937..70ff51b 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ [![License (3-Clause BSD)](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg?style=flat-square)](https://opensource.org/licenses/BSD-3-Clause) -[![Kotlin](https://img.shields.io/badge/kotlin-1.9.20-7f52ff)](https://kotlinlang.org/) +[![Kotlin](https://img.shields.io/badge/kotlin-1.9.21-7f52ff)](https://kotlinlang.org/) [![Release](https://img.shields.io/github/release/ethauvin/akismet-kotlin.svg)](https://github.com/ethauvin/akismet-kotlin/releases/latest) [![Nexus Snapshot](https://img.shields.io/nexus/s/net.thauvin.erik/akismet-kotlin?label=snapshot&server=https%3A%2F%2Foss.sonatype.org%2F)](https://oss.sonatype.org/content/repositories/snapshots/net/thauvin/erik/akismet-kotlin/) [![Maven Central](https://img.shields.io/maven-central/v/net.thauvin.erik/akismet-kotlin.svg?color=blue)](https://central.sonatype.com/artifact/net.thauvin.erik/akismet-kotlin) diff --git a/examples/bld/README.md b/examples/bld/README.md index 4cec4ce..52ef7f3 100644 --- a/examples/bld/README.md +++ b/examples/bld/README.md @@ -1,7 +1,7 @@ ## Kotlin Example To compile & run the Kotlin example: -```text +```console ./bld compile ./bld run --args=API_KEY @@ -11,7 +11,7 @@ To compile & run the Kotlin example: cd To compile & run the Java example: -```text +```console ./bld compile ./bld run-java --args=API_KEY diff --git a/examples/bld/src/bld/java/com/example/ExampleBuild.java b/examples/bld/src/bld/java/com/example/ExampleBuild.java index 33f0638..7aac507 100644 --- a/examples/bld/src/bld/java/com/example/ExampleBuild.java +++ b/examples/bld/src/bld/java/com/example/ExampleBuild.java @@ -1,12 +1,10 @@ package com.example; -import rife.bld.BaseProject; import rife.bld.BuildCommand; import rife.bld.extension.CompileKotlinOperation; -import rife.bld.extension.CompileKotlinOptions; import rife.bld.operations.RunOperation; +import rife.bld.BaseProject; -import java.util.List; import static rife.bld.dependencies.Repository.*; import static rife.bld.dependencies.Scope.compile; @@ -37,11 +35,6 @@ public class ExampleBuild extends BaseProject { public void compile() throws Exception { new CompileKotlinOperation() .fromProject(this) - .compileOptions( - new CompileKotlinOptions() - .jdkRelease(javaRelease) - .verbose(true) - ) .execute(); // Also compile the Java source code diff --git a/examples/gradle/.idea/.name b/examples/gradle/.idea/.name index ac5e64e..bdb1d33 100644 --- a/examples/gradle/.idea/.name +++ b/examples/gradle/.idea/.name @@ -1 +1 @@ -akismet-examples-gradle \ No newline at end of file +akismet-examples \ No newline at end of file diff --git a/examples/gradle/README.md b/examples/gradle/README.md index 445ae5a..6258631 100644 --- a/examples/gradle/README.md +++ b/examples/gradle/README.md @@ -1,7 +1,7 @@ ## Kotlin Example To compile & run the Kotlin example: -```text +```console ./gradlew run --args=API_KEY ``` @@ -9,6 +9,6 @@ To compile & run the Kotlin example: To compile & run the Java example: -```text +```console ./gradlew runJava --args=API_KEY ``` diff --git a/examples/gradle/build.gradle.kts b/examples/gradle/build.gradle.kts index 55b665a..2aa991a 100644 --- a/examples/gradle/build.gradle.kts +++ b/examples/gradle/build.gradle.kts @@ -2,8 +2,8 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { id("application") - id("com.github.ben-manes.versions") version "0.49.0" - kotlin("jvm") version "1.9.20" + id("com.github.ben-manes.versions") version "0.50.0" + kotlin("jvm") version "1.9.21" } defaultTasks(ApplicationPlugin.TASK_RUN_NAME) diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 37e3035..74dfad6 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -2,7 +2,7 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.1 bld.extensions-kotlin=com.uwyn.rife2:bld-kotlin:0.9.0-SNAPSHOT -bld.extensions=com.uwyn.rife2:bld-generated-version:0.9.3-SNAPSHOT +bld.extensions=com.uwyn.rife2:bld-generated-version:0.9.3 bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= bld.sourceDirectories= diff --git a/pom.xml b/pom.xml index fecf267..5f65e61 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ org.jetbrains.kotlin kotlin-stdlib - 1.9.20 + 1.9.21 compile @@ -42,7 +42,7 @@ org.jetbrains.kotlinx kotlinx-serialization-json-jvm - 1.6.0 + 1.6.1 compile @@ -55,7 +55,7 @@ - scm:git:https://github.com/ethauvin/akismet-kotlin + scm:git:https://github.com/ethauvin/akismet-kotlin.git scm:git:git@github.com:ethauvin/akismet-kotlin.git https://github.com/ethauvin/akismet-kotlin diff --git a/src/bld/java/net/thauvin/erik/AkismetBuild.java b/src/bld/java/net/thauvin/erik/AkismetBuild.java index c8fa65f..f32d1e8 100644 --- a/src/bld/java/net/thauvin/erik/AkismetBuild.java +++ b/src/bld/java/net/thauvin/erik/AkismetBuild.java @@ -65,16 +65,16 @@ public class AkismetBuild extends Project { var okHttp = version(4, 12, 0); scope(compile) - .include(dependency("org.jetbrains.kotlin", "kotlin-stdlib", version(1, 9, 20))) + .include(dependency("org.jetbrains.kotlin", "kotlin-stdlib", version(1, 9, 21))) .include(dependency("com.squareup.okhttp3", "okhttp", okHttp)) .include(dependency("com.squareup.okhttp3", "logging-interceptor", okHttp)) .include(dependency("jakarta.servlet", "jakarta.servlet-api", version(6, 0, 0))) - .include(dependency("org.jetbrains.kotlinx", "kotlinx-serialization-json-jvm", version(1, 6, 0))); + .include(dependency("org.jetbrains.kotlinx", "kotlinx-serialization-json-jvm", version(1, 6, 1))); scope(provided) - .include(dependency("org.jetbrains.kotlin:kotlin-serialization-compiler-plugin:1.9.20")); + .include(dependency("org.jetbrains.kotlin", "kotlin-serialization-compiler-plugin", version(1, 9, 21))); scope(test) - .include(dependency("org.mockito", "mockito-core", version(5, 6, 0))) - .include(dependency("org.jetbrains.kotlin", "kotlin-test-junit5", version(1, 9, 20))) + .include(dependency("org.mockito", "mockito-core", version(5, 7, 0))) + .include(dependency("org.jetbrains.kotlin", "kotlin-test-junit5", version(1, 9, 21))) .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 1))) .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 1))) .include(dependency("com.willowtreeapps.assertk", "assertk-jvm", version(0, 27, 0))); @@ -89,18 +89,24 @@ public class AkismetBuild extends Project { .artifactId(name) .description("A client library for accessing the Automattic Kismet (Akismet) spam comments filtering service.") .url("https://github.com/ethauvin/" + name) - .developer(new PublishDeveloper() - .id("ethauvin") - .name("Erik C. Thauvin") - .email("erik@thauvin.net") - .url("https://erik.thauvin.net/")) - .license(new PublishLicense() - .name("BSD 3-Clause") - .url("https://opensource.org/licenses/BSD-3-Clause")) - .scm(new PublishScm() - .connection("scm:git:https://github.com/ethauvin/" + name) - .developerConnection("scm:git:git@github.com:ethauvin/" + name + ".git") - .url("https://github.com/ethauvin/" + name)) + .developer( + new PublishDeveloper() + .id("ethauvin") + .name("Erik C. Thauvin") + .email("erik@thauvin.net") + .url("https://erik.thauvin.net/") + ) + .license( + + new PublishLicense() + .name("BSD 3-Clause") + .url("https://opensource.org/licenses/BSD-3-Clause")) + .scm( + + new PublishScm() + .connection("scm:git:https://github.com/ethauvin/" + name + ".git") + .developerConnection("scm:git:git@github.com:ethauvin/" + name + ".git") + .url("https://github.com/ethauvin/" + name)) .signKey(property("sign.key")) .signPassphrase(property("sign.passphrase")); @@ -118,11 +124,6 @@ public class AkismetBuild extends Project { new CompileKotlinOperation() .fromProject(this) .plugins(libCompileDirectory(), CompileKotlinPlugin.KOTLIN_SERIALIZATION) - .compileOptions( - new CompileKotlinOptions() - .jdkRelease(javaRelease) - .verbose(true) - ) .execute(); } diff --git a/src/test/java/net/thauvin/erik/AkismetTest.java b/src/test/java/net/thauvin/erik/AkismetTest.java deleted file mode 100644 index ea4fecc..0000000 --- a/src/test/java/net/thauvin/erik/AkismetTest.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * AkismetTest.java - * - * Copyright 2019-2023 Erik C. Thauvin (erik@thauvin.net) - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * Neither the name of this project nor the names of its contributors may be - * used to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package net.thauvin.erik; - -public class AkismetTest { - public static void main(String[] args) { - new AkismetTest().verifyHello(); - } - - void verifyHello() { - if (!"Hello World!".equals(new AkismetLib().getMessage())) { - throw new AssertionError(); - } else { - System.out.println("Succeeded"); - } - } -} From ac5cb0ef07c5fabc354893d3fa12c66b85905b10 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sat, 25 Nov 2023 21:46:55 -0800 Subject: [PATCH 07/63] Added detekt extension --- .idea/misc.xml | 2 ++ config/detekt/baseline.xml | 1 + lib/bld/bld-wrapper.properties | 1 + pom.xml | 18 +++++++++++++++ .../java/net/thauvin/erik/AkismetBuild.java | 23 ++++++++++++++++++- 5 files changed, 44 insertions(+), 1 deletion(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 7a6aa48..c5a2e9b 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -4,6 +4,8 @@ + +
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html index 66a74d9..d034a3f 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html @@ -69,7 +69,7 @@

Administrator role. If used, Akismet will always return false.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-b-l-o-g_-p-o-s-t.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-b-l-o-g_-p-o-s-t.html index 5968791..7355fc7 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-b-l-o-g_-p-o-s-t.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-b-l-o-g_-p-o-s-t.html @@ -69,7 +69,7 @@

A blog post.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-m-m-e-n-t.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-m-m-e-n-t.html index 9df75a7..afe8804 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-m-m-e-n-t.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-m-m-e-n-t.html @@ -69,7 +69,7 @@

A blog comment.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html index c6d715d..8b621e3 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html @@ -69,7 +69,7 @@

A contact form or feedback form submission.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html index e7affbe..904d5ab 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html @@ -69,7 +69,7 @@

A top-level forum post.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-m-e-s-s-a-g-e.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-m-e-s-s-a-g-e.html index c9e30ef..6eebb27 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-m-e-s-s-a-g-e.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-m-e-s-s-a-g-e.html @@ -69,7 +69,7 @@

A message sent between just a few users.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html index 978e89b..88d4c32 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html @@ -69,7 +69,7 @@

A pingback.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-r-e-p-l-y.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-r-e-p-l-y.html index 546c9e7..27d019e 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-r-e-p-l-y.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-r-e-p-l-y.html @@ -69,7 +69,7 @@

A reply to a top-level forum post.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-s-i-g-n-u-p.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-s-i-g-n-u-p.html index 23556f1..ffbd0fe 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-s-i-g-n-u-p.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-s-i-g-n-u-p.html @@ -69,7 +69,7 @@

A new user account.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-r-a-c-k-b-a-c-k.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-r-a-c-k-b-a-c-k.html index 0eed509..5cf4269 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-r-a-c-k-b-a-c-k.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-r-a-c-k-b-a-c-k.html @@ -69,7 +69,7 @@

A trackback.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-w-e-e-t.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-w-e-e-t.html index 3c1f811..6d6a965 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-w-e-e-t.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-w-e-e-t.html @@ -69,7 +69,7 @@

A Twitter message.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html index 66d5f6f..fa7d536 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html @@ -243,7 +243,7 @@
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html index 32b3e8e..7a99041 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html @@ -66,10 +66,10 @@

authorEmail

-

Email address submitted with the comment.

+

Email address submitted with the comment.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html index b4eaa89..3c7bb0b 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html @@ -66,10 +66,10 @@

authorUrl

-

URL submitted with comment.

+

URL submitted with comment.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html index b483d03..fbf6f8b 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html @@ -66,10 +66,10 @@

author

-

Name submitted with the comment.

+

Name submitted with the comment.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html index 5bf0ffc..e41952e 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html @@ -66,10 +66,10 @@

blogCharset

-

The character encoding for the form values included in comment parameters, such as UTF-8 or ISO-8859-1

+

The character encoding for the form values included in comment parameters, such as UTF-8 or ISO-8859-1

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html index 23a222b..408401c 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html @@ -66,10 +66,10 @@

blogLang

-

Indicates the language(s) in use on the blog or site, in ISO 639-1 format, comma-separated.

A site with articles in English and French might use: en, fr_ca

+

Indicates the language(s) in use on the blog or site, in ISO 639-1 format, comma-separated.

A site with articles in English and French might use: en, fr_ca

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/content.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/content.html index b0a64a8..f61a684 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/content.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/content.html @@ -66,10 +66,10 @@

content

-

The content that was submitted.

+

The content that was submitted.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html index 9a963db..332a620 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html @@ -66,10 +66,10 @@

dateGmt

-

The UTC timestamp of the creation of the comment, in ISO 8601 format.

May be omitted if the comment is sent to the API at the time it is created.

See also

+

The UTC timestamp of the creation of the comment, in ISO 8601 format.

May be omitted if the comment is sent to the API at the time it is created.

See also

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/equals.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/equals.html index 7b22c2a..e4cde43 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/equals.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/equals.html @@ -66,10 +66,10 @@

equals

-
open operator override fun equals(other: Any?): Boolean(source)

Indicates whether some other object is equal to this one.

+
open operator override fun equals(other: Any?): Boolean(source)

Indicates whether some other object is equal to this one.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/hash-code.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/hash-code.html index 2fd48d0..590c660 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/hash-code.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/hash-code.html @@ -66,10 +66,10 @@

hashCode

-
open override fun hashCode(): Int(source)

Returns a hash code value for the object.

+
open override fun hashCode(): Int(source)

Returns a hash code value for the object.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html index bc05111..d7f79e9 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html @@ -72,17 +72,17 @@

Constructors

-
+
- +
Link copied to clipboard
-
constructor(request: <Error class: unknown class>)

Creates a new instance extracting the userIp, userAgent, referrer and serverEnv environment variables from a Servlet request.

constructor(userIp: String, userAgent: String)

Creates a new instance.

+
constructor(request: <Error class: unknown class>)

Creates a new instance extracting the userIp, userAgent, referrer and serverEnv environment variables from a Servlet request.

constructor(config: CommentConfig)
constructor(userIp: String, userAgent: String)

Creates a new instance.

@@ -120,7 +120,7 @@
-

Name submitted with the comment.

+

Name submitted with the comment.

@@ -135,7 +135,7 @@
-

Email address submitted with the comment.

+

Email address submitted with the comment.

@@ -150,7 +150,7 @@
-

URL submitted with comment.

+

URL submitted with comment.

@@ -165,7 +165,7 @@
-

The character encoding for the form values included in comment parameters, such as UTF-8 or ISO-8859-1

+

The character encoding for the form values included in comment parameters, such as UTF-8 or ISO-8859-1

@@ -180,7 +180,7 @@
-

Indicates the language(s) in use on the blog or site, in ISO 639-1 format, comma-separated.

+

Indicates the language(s) in use on the blog or site, in ISO 639-1 format, comma-separated.

@@ -195,7 +195,7 @@
-

The content that was submitted.

+

The content that was submitted.

@@ -210,7 +210,7 @@
-

The UTC timestamp of the creation of the comment, in ISO 8601 format.

+

The UTC timestamp of the creation of the comment, in ISO 8601 format.

@@ -225,7 +225,7 @@
-

This is an optional parameter. You can use it when submitting test queries to Akismet.

+

This is an optional parameter. You can use it when submitting test queries to Akismet.

@@ -240,7 +240,7 @@
-

The full permanent URL of the entry the comment was submitted to.

+

The full permanent URL of the entry the comment was submitted to.

@@ -255,7 +255,7 @@
-

The UTC timestamp of the publication time for the post, page or thread on which the comment was posted.

+

The UTC timestamp of the publication time for the post, page or thread on which the comment was posted.

@@ -270,7 +270,7 @@
-

If you are sending content to Akismet to be rechecked, such as a post that has been edited or old pending comments that you'd like to recheck, include this parameter with a string describing why the content is being rechecked.

+

If you are sending content to Akismet to be rechecked, such as a post that has been edited or old pending comments that you'd like to recheck, include this parameter with a string describing why the content is being rechecked.

@@ -285,7 +285,7 @@
-

The content of the referer header should be set here.

+

The content of the referer header should be set here.

@@ -300,7 +300,7 @@
-

In PHP, there is an array of environmental variables called $_SERVER that contains information about the Web server itself as well as a key/value for every HTTP header sent with the request. This data is highly useful to Akismet.

+

In PHP, there is an array of environmental variables called $_SERVER that contains information about the Web server itself as well as a key/value for every HTTP header sent with the request. This data is highly useful to Akismet.

@@ -315,7 +315,7 @@
-
var type: String?

A string that describes the type of content being sent, such as:

+
var type: String?

A string that describes the type of content being sent, such as:

@@ -330,7 +330,7 @@
@@ -345,7 +345,7 @@
- +
@@ -360,7 +360,7 @@
-

The user role of the user who submitted the comment. This is an optional parameter.

+

The user role of the user who submitted the comment. This is an optional parameter.

@@ -409,7 +409,7 @@
-
fun toJson(): String

Returns a JSON representation of the comment.

+
fun toJson(): String

Returns a JSON representation of the comment.

@@ -435,7 +435,7 @@
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html index 58cc1e9..ef61f6e 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html @@ -66,10 +66,10 @@

isTest

-

This is an optional parameter. You can use it when submitting test queries to Akismet.

+

This is an optional parameter. You can use it when submitting test queries to Akismet.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/permalink.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/permalink.html index ae5f2b4..b4d9093 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/permalink.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/permalink.html @@ -66,10 +66,10 @@

permalink

-

The full permanent URL of the entry the comment was submitted to.

+

The full permanent URL of the entry the comment was submitted to.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html index 2a322f3..d1bb3c7 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html @@ -66,10 +66,10 @@

postModifiedGmt

-

The UTC timestamp of the publication time for the post, page or thread on which the comment was posted.

See also

+

The UTC timestamp of the publication time for the post, page or thread on which the comment was posted.

See also

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html index 45a2265..77a4f0e 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html @@ -66,10 +66,10 @@

recheckReason

-

If you are sending content to Akismet to be rechecked, such as a post that has been edited or old pending comments that you'd like to recheck, include this parameter with a string describing why the content is being rechecked.

For example: edit

+

If you are sending content to Akismet to be rechecked, such as a post that has been edited or old pending comments that you'd like to recheck, include this parameter with a string describing why the content is being rechecked.

For example: edit

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/referrer.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/referrer.html index 426839f..2efc507 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/referrer.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/referrer.html @@ -66,10 +66,10 @@

referrer

-

The content of the referer header should be set here.

+

The content of the referer header should be set here.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/server-env.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/server-env.html index e850422..12d306d 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/server-env.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/server-env.html @@ -66,10 +66,10 @@

serverEnv

-

In PHP, there is an array of environmental variables called $_SERVER that contains information about the Web server itself as well as a key/value for every HTTP header sent with the request. This data is highly useful to Akismet.

How the submitted content interacts with the server can be very telling, so please include as much of it as possible.

+

In PHP, there is an array of environmental variables called $_SERVER that contains information about the Web server itself as well as a key/value for every HTTP header sent with the request. This data is highly useful to Akismet.

How the submitted content interacts with the server can be very telling, so please include as much of it as possible.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-json.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-json.html index 3345ebe..87190b6 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-json.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-json.html @@ -66,10 +66,10 @@

toJson

-

Returns a JSON representation of the comment.

See also

+

Returns a JSON representation of the comment.

See also

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-string.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-string.html index d2628b4..98e8082 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-string.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-string.html @@ -66,10 +66,10 @@

toString

-
open override fun toString(): String(source)

Returns a JSON representation of the comment.

See also

+
open override fun toString(): String(source)

Returns a JSON representation of the comment.

See also

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/type.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/type.html index a067ff5..fa164f7 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/type.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/type.html @@ -66,10 +66,10 @@

type

-

A string that describes the type of content being sent, such as:

You may send a value not listed above if none of them accurately describe your content.

This is further explained here.

+

A string that describes the type of content being sent, such as:

You may send a value not listed above if none of them accurately describe your content.

This is further explained here.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html index 1ce0772..425c8e0 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html @@ -66,10 +66,10 @@

userAgent

-

Parameters

userAgent

User agent string of the web browser submitting the comment.

+

Parameters

userAgent

User agent string of the web browser submitting the comment.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html index 2b9bfbc..382ca42 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html @@ -66,10 +66,10 @@

userIp

-

Parameters

userIp

IP address of the comment submitter.

+

Parameters

userIp

IP address of the comment submitter.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html index 8ae0f29..6fbc2a1 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html @@ -66,10 +66,10 @@

userRole

-

The user role of the user who submitted the comment. This is an optional parameter.

If you set it to ADMIN_ROLE, Akismet will always return false.

+

The user role of the user who submitted the comment. This is an optional parameter.

If you set it to ADMIN_ROLE, Akismet will always return false.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html index d65404f..6c96d10 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html @@ -69,7 +69,7 @@
constructor(apiKey: String, blog: String)(source)

Creates a new instance using an Akismet API key and URL registered with Akismet.


constructor(apiKey: String)(source)

Creates a new instance using the provided Akismet API key.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html index f7a9122..12ebc0b 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html @@ -66,10 +66,10 @@

dateToGmt

-

Converts a date to a UTC timestamp. (ISO 8601)

See also


Converts a locale date/time to a UTC timestamp. (ISO 8601)

See also

+

Converts a date to a UTC timestamp. (ISO 8601)

See also


Converts a locale date/time to a UTC timestamp. (ISO 8601)

See also

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/index.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/index.html index 03314eb..15cb77a 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/index.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/index.html @@ -82,7 +82,7 @@
-

Converts a locale date/time to a UTC timestamp. (ISO 8601)

fun dateToGmt(date: Date): String

Converts a date to a UTC timestamp. (ISO 8601)

+

Converts a locale date/time to a UTC timestamp. (ISO 8601)

fun dateToGmt(date: Date): String

Converts a date to a UTC timestamp. (ISO 8601)

@@ -97,7 +97,7 @@
-

(Re)Creates a comment from a JSON string.

+

(Re)Creates a comment from a JSON string.

@@ -108,7 +108,7 @@
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html index eeb9e5d..4899569 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html @@ -66,10 +66,10 @@

jsonComment

-

(Re)Creates a comment from a JSON string.

See also

+

(Re)Creates a comment from a JSON string.

See also

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/app-user-agent.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/app-user-agent.html index c88ec98..2af3726 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/app-user-agent.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/app-user-agent.html @@ -66,10 +66,10 @@

appUserAgent

-

The application user agent to be sent to Akismet.

If possible, the application user agent string should always use the following format:

    Application Name/Version

The library's own user agent string will automatically be appended.

See the Akismet API for more details.

+

The application user agent to be sent to Akismet.

If possible, the application user agent string should always use the following format:

    Application Name/Version

The library's own user agent string will automatically be appended.

See the Akismet API for more details.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/blog.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/blog.html index 0da56d6..16c3896 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/blog.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/blog.html @@ -66,10 +66,10 @@

blog

-

The URL registered with Akismet.

+

The URL registered with Akismet.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html index 12364f2..51c4b63 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html @@ -66,10 +66,10 @@

checkComment

-
fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean(source)

Comment Check.

This is the call you will make the most. It takes a number of arguments and characteristics about the submitted content and then returns a thumbs up or thumbs down. Performance can drop dramatically if you choose to exclude data points. The more data you send Akismet about each comment, the greater the accuracy. They recommend erring on the side of including too much data

By default, if an error (IO, empty response from Akismet, etc.) occurs the function will return false and log the error, use the trueOnError parameter to change this behavior.

See the Akismet API for more details.

Return

true if the comment is spam, false if the comment is not.

Parameters

trueOnError

Set to return true on error.

+
fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean(source)

Comment Check.

This is the call you will make the most. It takes a number of arguments and characteristics about the submitted content and then returns a thumbs up or thumbs down. Performance can drop dramatically if you choose to exclude data points. The more data you send Akismet about each comment, the greater the accuracy. They recommend erring on the side of including too much data

By default, if an error (IO, empty response from Akismet, etc.) occurs the function will return false and log the error, use the trueOnError parameter to change this behavior.

See the Akismet API for more details.

Return

true if the comment is spam, false if the comment is not.

Parameters

trueOnError

Set to return true on error.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html index b0d819a..662ecd8 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html @@ -66,10 +66,10 @@

debugHelp

-

The x-akismet-debug-help header from the last operation, if any.

If the call returns neither true nor false, the x-akismet-debug-help header will provide context for any error that has occurred.

Note that the x-akismet-debug-help header will not always be sent if a response does not return false or true.

See the Akismet API for more details.

+

The x-akismet-debug-help header from the last operation, if any.

If the call returns neither true nor false, the x-akismet-debug-help header will provide context for any error that has occurred.

Note that the x-akismet-debug-help header will not always be sent if a response does not return false or true.

See the Akismet API for more details.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/error-message.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/error-message.html index 072beab..7ebd106 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/error-message.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/error-message.html @@ -66,10 +66,10 @@

errorMessage

-

The error message.

The error (IO, empty response from Akismet, etc.) message is also logged as a warning.

See also

+

The error message.

The error (IO, empty response from Akismet, etc.) message is also logged as a warning.

See also

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html index 9917361..6864594 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html @@ -66,10 +66,10 @@

executeMethod

-
fun executeMethod(apiUrl: <Error class: unknown class>, formBody: <Error class: unknown class>, trueOnError: Boolean = false): Boolean(source)

Executes a call to an Akismet REST API method.

Parameters

apiUrl

The Akismet API URL endpoint. (e.g. https://rest.akismet.com/1.1/verify-key)

formBody

The HTTP POST form body containing the request parameters to be submitted.

trueOnError

Set to return true on error (IO, empty response, etc.)

+
fun executeMethod(apiUrl: <Error class: unknown class>, formBody: <Error class: unknown class>, trueOnError: Boolean = false): Boolean(source)

Executes a call to an Akismet REST API method.

Parameters

apiUrl

The Akismet API URL endpoint. (e.g. https://rest.akismet.com/1.1/verify-key)

formBody

The HTTP POST form body containing the request parameters to be submitted.

trueOnError

Set to return true on error (IO, empty response, etc.)

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html index 4f00cdf..ef6eb2d 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html @@ -66,10 +66,10 @@

httpStatusCode

-

The HTTP status code of the last operation.

+

The HTTP status code of the last operation.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/index.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/index.html index 2b797a4..ecd5030 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/index.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/index.html @@ -120,7 +120,7 @@
-

The application user agent to be sent to Akismet.

+

The application user agent to be sent to Akismet.

@@ -135,7 +135,7 @@
-

The URL registered with Akismet.

+

The URL registered with Akismet.

@@ -150,7 +150,7 @@
-

The x-akismet-debug-help header from the last operation, if any.

+

The x-akismet-debug-help header from the last operation, if any.

@@ -165,7 +165,7 @@
-

The error message.

+

The error message.

@@ -180,7 +180,7 @@
-

The HTTP status code of the last operation.

+

The HTTP status code of the last operation.

@@ -195,7 +195,7 @@
-

Set to true if Akismet has determined that the last checked comment is blatant spam, and you can safely discard it without saving it in any spam queue.

+

Set to true if Akismet has determined that the last checked comment is blatant spam, and you can safely discard it without saving it in any spam queue.

@@ -210,7 +210,7 @@
-

Set to true if the API Key has been verified.

+

Set to true if the API Key has been verified.

@@ -225,7 +225,7 @@
-

The logger instance.

+

The logger instance.

@@ -240,7 +240,7 @@
-

The x-akismet-pro-tip header from the last operation, if any.

+

The x-akismet-pro-tip header from the last operation, if any.

@@ -255,7 +255,7 @@
-

The actual response sent by Akismet from the last operation.

+

The actual response sent by Akismet from the last operation.

@@ -274,7 +274,7 @@
-
fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean

Comment Check.

+
fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean

Comment Check.

@@ -289,7 +289,7 @@
-
fun executeMethod(apiUrl: <Error class: unknown class>, formBody: <Error class: unknown class>, trueOnError: Boolean = false): Boolean

Executes a call to an Akismet REST API method.

+
fun executeMethod(apiUrl: <Error class: unknown class>, formBody: <Error class: unknown class>, trueOnError: Boolean = false): Boolean

Executes a call to an Akismet REST API method.

@@ -304,7 +304,7 @@
@@ -319,7 +319,7 @@
-

Submit Ham. (False Positives)

+

Submit Ham. (False Positives)

@@ -334,7 +334,7 @@
-

Submit Spam. (Missed Spam)

+

Submit Spam. (Missed Spam)

@@ -349,7 +349,7 @@
-

Key Verification.

+

Key Verification.

@@ -360,7 +360,7 @@ diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html index ae2d654..7432915 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html @@ -66,10 +66,10 @@

isDiscard

-

Set to true if Akismet has determined that the last checked comment is blatant spam, and you can safely discard it without saving it in any spam queue.

See the Akismet API for more details.

See also

+

Set to true if Akismet has determined that the last checked comment is blatant spam, and you can safely discard it without saving it in any spam queue.

See the Akismet API for more details.

See also

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html index 1030676..63bd9ed 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html @@ -66,10 +66,10 @@

isVerifiedKey

-

Set to true if the API Key has been verified.

See also

+

Set to true if the API Key has been verified.

See also

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/logger.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/logger.html index 1ab7294..4a22835 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/logger.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/logger.html @@ -66,10 +66,10 @@

logger

-

The logger instance.

+

The logger instance.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html index 04647a8..d84c664 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html @@ -66,10 +66,10 @@

proTip

-

The x-akismet-pro-tip header from the last operation, if any.

If the x-akismet-pro-tip header is set to discard, then Akismet has determined that the comment is blatant spam, and you can safely discard it without saving it in any spam queue.

See the Akismet API for more details.

See also

+

The x-akismet-pro-tip header from the last operation, if any.

If the x-akismet-pro-tip header is set to discard, then Akismet has determined that the comment is blatant spam, and you can safely discard it without saving it in any spam queue.

See the Akismet API for more details.

See also

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/reset.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/reset.html index aa0b1cc..89b0d83 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/reset.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/reset.html @@ -66,10 +66,10 @@

reset

- + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/response.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/response.html index 9c21ba0..441f1d3 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/response.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/response.html @@ -66,10 +66,10 @@

response

-

The actual response sent by Akismet from the last operation.

For example: true, false, valid, invalid, etc.

+

The actual response sent by Akismet from the last operation.

For example: true, false, valid, invalid, etc.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-ham.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-ham.html index 0c1b658..fd3d7a4 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-ham.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-ham.html @@ -66,10 +66,10 @@

submitHam

-

Submit Ham. (False Positives)

This call is intended for the submission of false positives - items that were incorrectly classified as spam by Akismet. It takes identical arguments as comment check and submit spam.

It is very important that the values you submit with this call match those of your comment check calls as closely as possible. In order to learn from its mistakes, Akismet needs to match your missed spam and false positive reports to the original comment-check API calls made when the content was first posted. While it is normal for less information to be available for submit-spam and submit-ham calls (most comment systems and forums will not store all metadata), you should ensure that the values that you do send match those of the original content.

See the Akismet API for more details.

Return

true if the comment was submitted, false otherwise.

+

Submit Ham. (False Positives)

This call is intended for the submission of false positives - items that were incorrectly classified as spam by Akismet. It takes identical arguments as comment check and submit spam.

It is very important that the values you submit with this call match those of your comment check calls as closely as possible. In order to learn from its mistakes, Akismet needs to match your missed spam and false positive reports to the original comment-check API calls made when the content was first posted. While it is normal for less information to be available for submit-spam and submit-ham calls (most comment systems and forums will not store all metadata), you should ensure that the values that you do send match those of the original content.

See the Akismet API for more details.

Return

true if the comment was submitted, false otherwise.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-spam.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-spam.html index 22d568e..0ee0cc5 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-spam.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-spam.html @@ -66,10 +66,10 @@

submitSpam

-

Submit Spam. (Missed Spam)

This call is for submitting comments that weren't marked as spam but should have been.

It is very important that the values you submit with this call match those of your comment check calls as closely as possible. In order to learn from its mistakes, Akismet needs to match your missed spam and false positive reports to the original comment-check API calls made when the content was first posted. While it is normal for less information to be available for submit-spam and submit-ham calls (most comment systems and forums will not store all metadata), you should ensure that the values that you do send match those of the original content.

See the Akismet API for more details.

Return

true if the comment was submitted, false otherwise.

+

Submit Spam. (Missed Spam)

This call is for submitting comments that weren't marked as spam but should have been.

It is very important that the values you submit with this call match those of your comment check calls as closely as possible. In order to learn from its mistakes, Akismet needs to match your missed spam and false positive reports to the original comment-check API calls made when the content was first posted. While it is normal for less information to be available for submit-spam and submit-ham calls (most comment systems and forums will not store all metadata), you should ensure that the values that you do send match those of the original content.

See the Akismet API for more details.

Return

true if the comment was submitted, false otherwise.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html index 9272ecd..b59bdb6 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html @@ -66,10 +66,10 @@

verifyKey

-

Key Verification.

Key verification authenticates your key before calling the comment check, submit spam, or submit ham methods. This is the first call that you should make to Akismet and is especially useful if you will have multiple users with their own Akismet subscriptions using your application.

See the Akismet API for more details.

Return

true if the key is valid, false otherwise.

See also

+

Key Verification.

Key verification authenticates your key before calling the comment check, submit spam, or submit ham methods. This is the first call that you should make to Akismet and is especially useful if you will have multiple users with their own Akismet subscriptions using your application.

See the Akismet API for more details.

Return

true if the key is valid, false otherwise.

See also

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/-builder.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/-builder.html new file mode 100644 index 0000000..fd78ecf --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/-builder.html @@ -0,0 +1,80 @@ + + + + + Builder + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

Builder

+
+
constructor(userIp: String, userAgent: String)(source)

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html new file mode 100644 index 0000000..37a811e --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html @@ -0,0 +1,80 @@ + + + + + authorEmail + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

authorEmail

+
+

Sets the email address submitted with the comment.


+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html new file mode 100644 index 0000000..39880c6 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html @@ -0,0 +1,80 @@ + + + + + authorUrl + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

authorUrl

+
+

Sets the URL submitted with comment.


+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author.html new file mode 100644 index 0000000..553d17b --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author.html @@ -0,0 +1,80 @@ + + + + + author + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

author

+
+

Sets the mame submitted with the comment.


+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html new file mode 100644 index 0000000..f6eba16 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html @@ -0,0 +1,80 @@ + + + + + blogCharset + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

blogCharset

+
+

Sets the character encoding for the form values included in comment parameters, such as UTF-8 or ISO-8859-1


+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html new file mode 100644 index 0000000..c9820b0 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html @@ -0,0 +1,80 @@ + + + + + blogLang + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

blogLang

+
+

Indicates the language(s) in use on the blog or site, in ISO 639-1 format, comma-separated.

A site with articles in English and French might use: en, fr_ca


+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/build.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/build.html new file mode 100644 index 0000000..4846b23 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/build.html @@ -0,0 +1,80 @@ + + + + + build + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

build

+
+

Builds a new comment configuration.

+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/content.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/content.html new file mode 100644 index 0000000..ab0641a --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/content.html @@ -0,0 +1,80 @@ + + + + + content + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

content

+
+

Sets the content that was submitted.


+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html new file mode 100644 index 0000000..50cb95f --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html @@ -0,0 +1,80 @@ + + + + + dateGmt + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

dateGmt

+
+

Sets the UTC timestamp of the creation of the comment, in ISO 8601 format.

May be omitted if the comment is sent to the API at the time it is created.

See also


+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/index.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/index.html new file mode 100644 index 0000000..6989807 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/index.html @@ -0,0 +1,637 @@ + + + + + Builder + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

Builder

+
data class Builder(var userIp: String, var userAgent: String)(source)

Provides a configuration builder.

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

+
+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
constructor(userIp: String, userAgent: String)
+
+
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the mame submitted with the comment.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the email address submitted with the comment.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the URL submitted with comment.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the character encoding for the form values included in comment parameters, such as UTF-8 or ISO-8859-1

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Indicates the language(s) in use on the blog or site, in ISO 639-1 format, comma-separated.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Builds a new comment configuration.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the content that was submitted.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the UTC timestamp of the creation of the comment, in ISO 8601 format.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

This is optional. You can set it when submitting test queries to Akismet.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the full permanent URL of the entry the comment was submitted to.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun postModifiedGmt(postModifiedGmt: String): <Error class: unknown class>

Sets the UTC timestamp of the publication time for the post, page or thread on which the comment was posted.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

If you are sending content to Akismet to be rechecked, such as a post that has been edited or old pending comments that you'd like to recheck, include this parameter with a string describing why the content is being rechecked.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the content of the referrer header.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

In PHP, there is an array of environmental variables called $_SERVER that contains information about the Web server itself as well as a key/value for every HTTP header sent with the request. This data is highly useful to Akismet.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets a string that describes the type of content being sent, such as:

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the user agent string of the web browser submitting the comment.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the IP address of the comment submitter.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Set the user role of the user who submitted the comment. This is an optional parameter.

+
+
+
+
+
+
+
+
+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html new file mode 100644 index 0000000..4cfd974 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html @@ -0,0 +1,80 @@ + + + + + isTest + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

isTest

+
+

This is optional. You can set it when submitting test queries to Akismet.


+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html new file mode 100644 index 0000000..7e5089b --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html @@ -0,0 +1,80 @@ + + + + + permalink + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

permalink

+
+

Sets the full permanent URL of the entry the comment was submitted to.


+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html new file mode 100644 index 0000000..d2103fa --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html @@ -0,0 +1,80 @@ + + + + + postModifiedGmt + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

postModifiedGmt

+
+
fun postModifiedGmt(postModifiedGmt: String): <Error class: unknown class>(source)

Sets the UTC timestamp of the publication time for the post, page or thread on which the comment was posted.

See also


+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html new file mode 100644 index 0000000..ed9266f --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html @@ -0,0 +1,80 @@ + + + + + recheckReason + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

recheckReason

+
+

If you are sending content to Akismet to be rechecked, such as a post that has been edited or old pending comments that you'd like to recheck, include this parameter with a string describing why the content is being rechecked.

For example: edit


+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html new file mode 100644 index 0000000..1687d92 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html @@ -0,0 +1,80 @@ + + + + + referrer + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

referrer

+
+

Sets the content of the referrer header.


+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html new file mode 100644 index 0000000..4fe2379 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html @@ -0,0 +1,80 @@ + + + + + serverEnv + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

serverEnv

+
+

In PHP, there is an array of environmental variables called $_SERVER that contains information about the Web server itself as well as a key/value for every HTTP header sent with the request. This data is highly useful to Akismet.

How the submitted content interacts with the server can be very telling, so please include as much of it as possible.


+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/type.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/type.html new file mode 100644 index 0000000..1223c05 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/type.html @@ -0,0 +1,80 @@ + + + + + type + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

type

+
+

Sets a string that describes the type of content being sent, such as:

You may send a value not listed above if none of them accurately describe your content.

This is further explained here.


+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html new file mode 100644 index 0000000..ebe0b60 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html @@ -0,0 +1,80 @@ + + + + + userAgent + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

userAgent

+
+

Sets the user agent string of the web browser submitting the comment.


Parameters

userAgent

User agent string of the web browser submitting the comment.

+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html new file mode 100644 index 0000000..f2b7151 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html @@ -0,0 +1,80 @@ + + + + + userIp + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

userIp

+
+

Sets the IP address of the comment submitter.


Parameters

userIp

IP address of the comment submitter.

+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html new file mode 100644 index 0000000..53891ca --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html @@ -0,0 +1,80 @@ + + + + + userRole + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

userRole

+
+

Set the user role of the user who submitted the comment. This is an optional parameter.

If you set it to ADMIN_ROLE, Akismet will always return false.


+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html new file mode 100644 index 0000000..d3106ab --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html @@ -0,0 +1,80 @@ + + + + + CommentConfig + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

CommentConfig

+
+
constructor(builder: CommentConfig.Builder)(source)


constructor(userIp: String, userAgent: String, referrer: String = "", permalink: String = "", type: String = "", author: String = "", authorEmail: String = "", authorUrl: String = "", content: String = "", dateGmt: String = "", postModifiedGmt: String = "", blogLang: String = "", blogCharset: String = "", userRole: String = "", isTest: Boolean = false, recheckReason: String = "", serverEnv: Map<String, String> = emptyMap())(source)

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-email.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-email.html new file mode 100644 index 0000000..f929016 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-email.html @@ -0,0 +1,80 @@ + + + + + authorEmail + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

authorEmail

+
+ +
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-url.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-url.html new file mode 100644 index 0000000..b68ae93 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-url.html @@ -0,0 +1,80 @@ + + + + + authorUrl + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

authorUrl

+
+ +
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author.html new file mode 100644 index 0000000..4dddd46 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author.html @@ -0,0 +1,80 @@ + + + + + author + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

author

+
+ +
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-charset.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-charset.html new file mode 100644 index 0000000..e461179 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-charset.html @@ -0,0 +1,80 @@ + + + + + blogCharset + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

blogCharset

+
+ +
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-lang.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-lang.html new file mode 100644 index 0000000..2cabbb2 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-lang.html @@ -0,0 +1,80 @@ + + + + + blogLang + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

blogLang

+
+ +
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/content.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/content.html new file mode 100644 index 0000000..47f76d7 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/content.html @@ -0,0 +1,80 @@ + + + + + content + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

content

+
+ +
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/date-gmt.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/date-gmt.html new file mode 100644 index 0000000..4fa14cb --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/date-gmt.html @@ -0,0 +1,80 @@ + + + + + dateGmt + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

dateGmt

+
+ +
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/index.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/index.html new file mode 100644 index 0000000..6a4ceaf --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/index.html @@ -0,0 +1,382 @@ + + + + + CommentConfig + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

CommentConfig

+
class CommentConfigĀ constructor(var userIp: String, var userAgent: String, var referrer: String = "", var permalink: String = "", var type: String = "", var author: String = "", var authorEmail: String = "", var authorUrl: String = "", var content: String = "", var dateGmt: String = "", var postModifiedGmt: String = "", var blogLang: String = "", var blogCharset: String = "", var userRole: String = "", var isTest: Boolean = false, var recheckReason: String = "", var serverEnv: Map<String, String> = emptyMap())(source)

Provides a comment configuration.

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

+
+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
constructor(builder: CommentConfig.Builder)
constructor(userIp: String, userAgent: String, referrer: String = "", permalink: String = "", type: String = "", author: String = "", authorEmail: String = "", authorUrl: String = "", content: String = "", dateGmt: String = "", postModifiedGmt: String = "", blogLang: String = "", blogCharset: String = "", userRole: String = "", isTest: Boolean = false, recheckReason: String = "", serverEnv: Map<String, String> = emptyMap())
+
+
+
+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
data class Builder(var userIp: String, var userAgent: String)

Provides a configuration builder.

+
+
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/is-test.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/is-test.html new file mode 100644 index 0000000..6268169 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/is-test.html @@ -0,0 +1,80 @@ + + + + + isTest + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

isTest

+
+ +
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/permalink.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/permalink.html new file mode 100644 index 0000000..71ced0d --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/permalink.html @@ -0,0 +1,80 @@ + + + + + permalink + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

permalink

+
+ +
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/post-modified-gmt.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/post-modified-gmt.html new file mode 100644 index 0000000..5c5b107 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/post-modified-gmt.html @@ -0,0 +1,80 @@ + + + + + postModifiedGmt + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

postModifiedGmt

+
+ +
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/recheck-reason.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/recheck-reason.html new file mode 100644 index 0000000..7c47420 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/recheck-reason.html @@ -0,0 +1,80 @@ + + + + + recheckReason + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

recheckReason

+
+ +
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/referrer.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/referrer.html new file mode 100644 index 0000000..4b72c35 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/referrer.html @@ -0,0 +1,80 @@ + + + + + referrer + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

referrer

+
+ +
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/server-env.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/server-env.html new file mode 100644 index 0000000..56a04ef --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/server-env.html @@ -0,0 +1,80 @@ + + + + + serverEnv + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

serverEnv

+
+ +
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/type.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/type.html new file mode 100644 index 0000000..f9e6853 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/type.html @@ -0,0 +1,80 @@ + + + + + type + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

type

+
+ +
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-agent.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-agent.html new file mode 100644 index 0000000..3fe2c97 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-agent.html @@ -0,0 +1,80 @@ + + + + + userAgent + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

userAgent

+
+

Parameters

userAgent

User agent string of the web browser submitting the comment.

+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-ip.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-ip.html new file mode 100644 index 0000000..6505d24 --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-ip.html @@ -0,0 +1,80 @@ + + + + + userIp + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

userIp

+
+

Parameters

userIp

IP address of the comment submitter.

+
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-role.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-role.html new file mode 100644 index 0000000..4f5faac --- /dev/null +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-role.html @@ -0,0 +1,80 @@ + + + + + userRole + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

userRole

+
+ +
+ +
+
+
+ + diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/index.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/index.html index bbb72b5..f2b4375 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/index.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/index.html @@ -102,13 +102,28 @@ + +
+
+
+ + +
Link copied to clipboard
+
+
+
+
class CommentConfigĀ constructor(var userIp: String, var userAgent: String, var referrer: String = "", var permalink: String = "", var type: String = "", var author: String = "", var authorEmail: String = "", var authorUrl: String = "", var content: String = "", var dateGmt: String = "", var postModifiedGmt: String = "", var blogLang: String = "", var blogCharset: String = "", var userRole: String = "", var isTest: Boolean = false, var recheckReason: String = "", var serverEnv: Map<String, String> = emptyMap())

Provides a comment configuration.

+
+
+
+
diff --git a/docs/-akismet -kotlin/package-list b/docs/-akismet -kotlin/package-list index e7dce2a..28d612c 100644 --- a/docs/-akismet -kotlin/package-list +++ b/docs/-akismet -kotlin/package-list @@ -39,6 +39,7 @@ $dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_TWEET/#/P $dokka.location:net.thauvin.erik.akismet/AkismetComment///PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html $dokka.location:net.thauvin.erik.akismet/AkismetComment/AkismetComment/#[Error type: Unresolved type for HttpServletRequest]/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html $dokka.location:net.thauvin.erik.akismet/AkismetComment/AkismetComment/#kotlin.String#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/AkismetComment/#net.thauvin.erik.akismet.CommentConfig/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html $dokka.location:net.thauvin.erik.akismet/AkismetComment/author/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html $dokka.location:net.thauvin.erik.akismet/AkismetComment/authorEmail/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html $dokka.location:net.thauvin.erik.akismet/AkismetComment/authorUrl/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html @@ -60,5 +61,62 @@ $dokka.location:net.thauvin.erik.akismet/AkismetComment/type/#/PointingToDeclara $dokka.location:net.thauvin.erik.akismet/AkismetComment/userAgent/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html $dokka.location:net.thauvin.erik.akismet/AkismetComment/userIp/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html $dokka.location:net.thauvin.erik.akismet/AkismetComment/userRole/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder///PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/index.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/Builder/#kotlin.String#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/-builder.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/author/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/author/#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/authorEmail/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/authorEmail/#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/authorUrl/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/authorUrl/#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/blogCharset/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/blogCharset/#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/blogLang/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/blogLang/#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/build/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/build.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/content/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/content.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/content/#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/content.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/dateGmt/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/dateGmt/#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/isTest/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/isTest/#kotlin.Boolean/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/permalink/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/permalink/#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/postModifiedGmt/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/postModifiedGmt/#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/recheckReason/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/recheckReason/#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/referrer/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/referrer/#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/serverEnv/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/serverEnv/#kotlin.collections.Map[kotlin.String,kotlin.String]/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/type/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/type.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/type/#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/type.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/userAgent/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/userAgent/#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/userIp/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/userIp/#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/userRole/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/userRole/#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig///PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/index.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/CommentConfig/#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.Boolean#kotlin.String#kotlin.collections.Map[kotlin.String,kotlin.String]/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/CommentConfig/#net.thauvin.erik.akismet.CommentConfig.Builder/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/author/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/authorEmail/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-email.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/authorUrl/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-url.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/blogCharset/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-charset.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/blogLang/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-lang.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/content/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/content.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/dateGmt/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/date-gmt.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/isTest/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/is-test.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/permalink/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/permalink.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/postModifiedGmt/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/post-modified-gmt.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/recheckReason/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/recheck-reason.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/referrer/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/referrer.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/serverEnv/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/server-env.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/type/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/type.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/userAgent/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-agent.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/userIp/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-ip.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/userRole/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-role.html net.thauvin.erik.akismet diff --git a/docs/images/homepage.svg b/docs/images/homepage.svg new file mode 100644 index 0000000..e3c83b1 --- /dev/null +++ b/docs/images/homepage.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/index.html b/docs/index.html index c16d667..4a4f063 100644 --- a/docs/index.html +++ b/docs/index.html @@ -90,7 +90,7 @@ diff --git a/docs/navigation.html b/docs/navigation.html index aff718a..08fa7f2 100644 --- a/docs/navigation.html +++ b/docs/navigation.html @@ -14,6 +14,12 @@ + diff --git a/docs/scripts/pages.json b/docs/scripts/pages.json index bdcd091..ed1cadd 100644 --- a/docs/scripts/pages.json +++ b/docs/scripts/pages.json @@ -1 +1 @@ -[{"name":"const val ADMIN_ROLE: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.ADMIN_ROLE","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html","searchKeys":["ADMIN_ROLE","const val ADMIN_ROLE: String","net.thauvin.erik.akismet.AkismetComment.Companion.ADMIN_ROLE"]},{"name":"const val TYPE_BLOG_POST: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_BLOG_POST","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-b-l-o-g_-p-o-s-t.html","searchKeys":["TYPE_BLOG_POST","const val TYPE_BLOG_POST: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_BLOG_POST"]},{"name":"const val TYPE_COMMENT: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_COMMENT","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-m-m-e-n-t.html","searchKeys":["TYPE_COMMENT","const val TYPE_COMMENT: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_COMMENT"]},{"name":"const val TYPE_CONTACT_FORM: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_CONTACT_FORM","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html","searchKeys":["TYPE_CONTACT_FORM","const val TYPE_CONTACT_FORM: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_CONTACT_FORM"]},{"name":"const val TYPE_FORUM_POST: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_FORUM_POST","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html","searchKeys":["TYPE_FORUM_POST","const val TYPE_FORUM_POST: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_FORUM_POST"]},{"name":"const val TYPE_MESSAGE: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_MESSAGE","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-m-e-s-s-a-g-e.html","searchKeys":["TYPE_MESSAGE","const val TYPE_MESSAGE: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_MESSAGE"]},{"name":"const val TYPE_PINGBACK: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_PINGBACK","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html","searchKeys":["TYPE_PINGBACK","const val TYPE_PINGBACK: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_PINGBACK"]},{"name":"const val TYPE_REPLY: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_REPLY","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-r-e-p-l-y.html","searchKeys":["TYPE_REPLY","const val TYPE_REPLY: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_REPLY"]},{"name":"const val TYPE_SIGNUP: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_SIGNUP","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-s-i-g-n-u-p.html","searchKeys":["TYPE_SIGNUP","const val TYPE_SIGNUP: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_SIGNUP"]},{"name":"const val TYPE_TRACKBACK: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_TRACKBACK","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-r-a-c-k-b-a-c-k.html","searchKeys":["TYPE_TRACKBACK","const val TYPE_TRACKBACK: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_TRACKBACK"]},{"name":"const val TYPE_TWEET: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_TWEET","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-w-e-e-t.html","searchKeys":["TYPE_TWEET","const val TYPE_TWEET: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_TWEET"]},{"name":"constructor(apiKey: String)","description":"net.thauvin.erik.akismet.Akismet.Akismet","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html","searchKeys":["Akismet","constructor(apiKey: String)","net.thauvin.erik.akismet.Akismet.Akismet"]},{"name":"constructor(apiKey: String, blog: String)","description":"net.thauvin.erik.akismet.Akismet.Akismet","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html","searchKeys":["Akismet","constructor(apiKey: String, blog: String)","net.thauvin.erik.akismet.Akismet.Akismet"]},{"name":"constructor(request: )","description":"net.thauvin.erik.akismet.AkismetComment.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html","searchKeys":["AkismetComment","constructor(request: )","net.thauvin.erik.akismet.AkismetComment.AkismetComment"]},{"name":"constructor(userIp: String, userAgent: String)","description":"net.thauvin.erik.akismet.AkismetComment.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html","searchKeys":["AkismetComment","constructor(userIp: String, userAgent: String)","net.thauvin.erik.akismet.AkismetComment.AkismetComment"]},{"name":"fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean","description":"net.thauvin.erik.akismet.Akismet.checkComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html","searchKeys":["checkComment","fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean","net.thauvin.erik.akismet.Akismet.checkComment"]},{"name":"fun dateToGmt(date: Date): String","description":"net.thauvin.erik.akismet.Akismet.Companion.dateToGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html","searchKeys":["dateToGmt","fun dateToGmt(date: Date): String","net.thauvin.erik.akismet.Akismet.Companion.dateToGmt"]},{"name":"fun dateToGmt(date: LocalDateTime): String","description":"net.thauvin.erik.akismet.Akismet.Companion.dateToGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html","searchKeys":["dateToGmt","fun dateToGmt(date: LocalDateTime): String","net.thauvin.erik.akismet.Akismet.Companion.dateToGmt"]},{"name":"fun executeMethod(apiUrl: , formBody: , trueOnError: Boolean = false): Boolean","description":"net.thauvin.erik.akismet.Akismet.executeMethod","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html","searchKeys":["executeMethod","fun executeMethod(apiUrl: , formBody: , trueOnError: Boolean = false): Boolean","net.thauvin.erik.akismet.Akismet.executeMethod"]},{"name":"fun jsonComment(json: String): AkismetComment","description":"net.thauvin.erik.akismet.Akismet.Companion.jsonComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html","searchKeys":["jsonComment","fun jsonComment(json: String): AkismetComment","net.thauvin.erik.akismet.Akismet.Companion.jsonComment"]},{"name":"fun reset()","description":"net.thauvin.erik.akismet.Akismet.reset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/reset.html","searchKeys":["reset","fun reset()","net.thauvin.erik.akismet.Akismet.reset"]},{"name":"fun submitHam(comment: AkismetComment): Boolean","description":"net.thauvin.erik.akismet.Akismet.submitHam","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-ham.html","searchKeys":["submitHam","fun submitHam(comment: AkismetComment): Boolean","net.thauvin.erik.akismet.Akismet.submitHam"]},{"name":"fun submitSpam(comment: AkismetComment): Boolean","description":"net.thauvin.erik.akismet.Akismet.submitSpam","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-spam.html","searchKeys":["submitSpam","fun submitSpam(comment: AkismetComment): Boolean","net.thauvin.erik.akismet.Akismet.submitSpam"]},{"name":"fun toJson(): String","description":"net.thauvin.erik.akismet.AkismetComment.toJson","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-json.html","searchKeys":["toJson","fun toJson(): String","net.thauvin.erik.akismet.AkismetComment.toJson"]},{"name":"fun verifyKey(): Boolean","description":"net.thauvin.erik.akismet.Akismet.verifyKey","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html","searchKeys":["verifyKey","fun verifyKey(): Boolean","net.thauvin.erik.akismet.Akismet.verifyKey"]},{"name":"object Companion","description":"net.thauvin.erik.akismet.Akismet.Companion","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/index.html","searchKeys":["Companion","object Companion","net.thauvin.erik.akismet.Akismet.Companion"]},{"name":"object Companion","description":"net.thauvin.erik.akismet.AkismetComment.Companion","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html","searchKeys":["Companion","object Companion","net.thauvin.erik.akismet.AkismetComment.Companion"]},{"name":"open class Akismet(apiKey: String)","description":"net.thauvin.erik.akismet.Akismet","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/index.html","searchKeys":["Akismet","open class Akismet(apiKey: String)","net.thauvin.erik.akismet.Akismet"]},{"name":"open class AkismetComment(val userIp: String, val userAgent: String)","description":"net.thauvin.erik.akismet.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html","searchKeys":["AkismetComment","open class AkismetComment(val userIp: String, val userAgent: String)","net.thauvin.erik.akismet.AkismetComment"]},{"name":"open operator override fun equals(other: Any?): Boolean","description":"net.thauvin.erik.akismet.AkismetComment.equals","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/equals.html","searchKeys":["equals","open operator override fun equals(other: Any?): Boolean","net.thauvin.erik.akismet.AkismetComment.equals"]},{"name":"open override fun hashCode(): Int","description":"net.thauvin.erik.akismet.AkismetComment.hashCode","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/hash-code.html","searchKeys":["hashCode","open override fun hashCode(): Int","net.thauvin.erik.akismet.AkismetComment.hashCode"]},{"name":"open override fun toString(): String","description":"net.thauvin.erik.akismet.AkismetComment.toString","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-string.html","searchKeys":["toString","open override fun toString(): String","net.thauvin.erik.akismet.AkismetComment.toString"]},{"name":"val logger: Logger","description":"net.thauvin.erik.akismet.Akismet.logger","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/logger.html","searchKeys":["logger","val logger: Logger","net.thauvin.erik.akismet.Akismet.logger"]},{"name":"val userAgent: String","description":"net.thauvin.erik.akismet.AkismetComment.userAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html","searchKeys":["userAgent","val userAgent: String","net.thauvin.erik.akismet.AkismetComment.userAgent"]},{"name":"val userIp: String","description":"net.thauvin.erik.akismet.AkismetComment.userIp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html","searchKeys":["userIp","val userIp: String","net.thauvin.erik.akismet.AkismetComment.userIp"]},{"name":"var appUserAgent: String","description":"net.thauvin.erik.akismet.Akismet.appUserAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/app-user-agent.html","searchKeys":["appUserAgent","var appUserAgent: String","net.thauvin.erik.akismet.Akismet.appUserAgent"]},{"name":"var author: String?","description":"net.thauvin.erik.akismet.AkismetComment.author","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html","searchKeys":["author","var author: String?","net.thauvin.erik.akismet.AkismetComment.author"]},{"name":"var authorEmail: String?","description":"net.thauvin.erik.akismet.AkismetComment.authorEmail","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html","searchKeys":["authorEmail","var authorEmail: String?","net.thauvin.erik.akismet.AkismetComment.authorEmail"]},{"name":"var authorUrl: String?","description":"net.thauvin.erik.akismet.AkismetComment.authorUrl","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html","searchKeys":["authorUrl","var authorUrl: String?","net.thauvin.erik.akismet.AkismetComment.authorUrl"]},{"name":"var blog: String","description":"net.thauvin.erik.akismet.Akismet.blog","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/blog.html","searchKeys":["blog","var blog: String","net.thauvin.erik.akismet.Akismet.blog"]},{"name":"var blogCharset: String?","description":"net.thauvin.erik.akismet.AkismetComment.blogCharset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html","searchKeys":["blogCharset","var blogCharset: String?","net.thauvin.erik.akismet.AkismetComment.blogCharset"]},{"name":"var blogLang: String?","description":"net.thauvin.erik.akismet.AkismetComment.blogLang","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html","searchKeys":["blogLang","var blogLang: String?","net.thauvin.erik.akismet.AkismetComment.blogLang"]},{"name":"var content: String?","description":"net.thauvin.erik.akismet.AkismetComment.content","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/content.html","searchKeys":["content","var content: String?","net.thauvin.erik.akismet.AkismetComment.content"]},{"name":"var dateGmt: String?","description":"net.thauvin.erik.akismet.AkismetComment.dateGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html","searchKeys":["dateGmt","var dateGmt: String?","net.thauvin.erik.akismet.AkismetComment.dateGmt"]},{"name":"var debugHelp: String","description":"net.thauvin.erik.akismet.Akismet.debugHelp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html","searchKeys":["debugHelp","var debugHelp: String","net.thauvin.erik.akismet.Akismet.debugHelp"]},{"name":"var errorMessage: String","description":"net.thauvin.erik.akismet.Akismet.errorMessage","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/error-message.html","searchKeys":["errorMessage","var errorMessage: String","net.thauvin.erik.akismet.Akismet.errorMessage"]},{"name":"var httpStatusCode: Int","description":"net.thauvin.erik.akismet.Akismet.httpStatusCode","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html","searchKeys":["httpStatusCode","var httpStatusCode: Int","net.thauvin.erik.akismet.Akismet.httpStatusCode"]},{"name":"var isDiscard: Boolean","description":"net.thauvin.erik.akismet.Akismet.isDiscard","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html","searchKeys":["isDiscard","var isDiscard: Boolean","net.thauvin.erik.akismet.Akismet.isDiscard"]},{"name":"var isTest: Boolean","description":"net.thauvin.erik.akismet.AkismetComment.isTest","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html","searchKeys":["isTest","var isTest: Boolean","net.thauvin.erik.akismet.AkismetComment.isTest"]},{"name":"var isVerifiedKey: Boolean","description":"net.thauvin.erik.akismet.Akismet.isVerifiedKey","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html","searchKeys":["isVerifiedKey","var isVerifiedKey: Boolean","net.thauvin.erik.akismet.Akismet.isVerifiedKey"]},{"name":"var permalink: String?","description":"net.thauvin.erik.akismet.AkismetComment.permalink","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/permalink.html","searchKeys":["permalink","var permalink: String?","net.thauvin.erik.akismet.AkismetComment.permalink"]},{"name":"var postModifiedGmt: String?","description":"net.thauvin.erik.akismet.AkismetComment.postModifiedGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html","searchKeys":["postModifiedGmt","var postModifiedGmt: String?","net.thauvin.erik.akismet.AkismetComment.postModifiedGmt"]},{"name":"var proTip: String","description":"net.thauvin.erik.akismet.Akismet.proTip","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html","searchKeys":["proTip","var proTip: String","net.thauvin.erik.akismet.Akismet.proTip"]},{"name":"var recheckReason: String?","description":"net.thauvin.erik.akismet.AkismetComment.recheckReason","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html","searchKeys":["recheckReason","var recheckReason: String?","net.thauvin.erik.akismet.AkismetComment.recheckReason"]},{"name":"var referrer: String?","description":"net.thauvin.erik.akismet.AkismetComment.referrer","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/referrer.html","searchKeys":["referrer","var referrer: String?","net.thauvin.erik.akismet.AkismetComment.referrer"]},{"name":"var response: String","description":"net.thauvin.erik.akismet.Akismet.response","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/response.html","searchKeys":["response","var response: String","net.thauvin.erik.akismet.Akismet.response"]},{"name":"var serverEnv: Map","description":"net.thauvin.erik.akismet.AkismetComment.serverEnv","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/server-env.html","searchKeys":["serverEnv","var serverEnv: Map","net.thauvin.erik.akismet.AkismetComment.serverEnv"]},{"name":"var type: String?","description":"net.thauvin.erik.akismet.AkismetComment.type","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/type.html","searchKeys":["type","var type: String?","net.thauvin.erik.akismet.AkismetComment.type"]},{"name":"var userRole: String?","description":"net.thauvin.erik.akismet.AkismetComment.userRole","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html","searchKeys":["userRole","var userRole: String?","net.thauvin.erik.akismet.AkismetComment.userRole"]}] +[{"name":"class CommentConfigĀ constructor(var userIp: String, var userAgent: String, var referrer: String = \"\", var permalink: String = \"\", var type: String = \"\", var author: String = \"\", var authorEmail: String = \"\", var authorUrl: String = \"\", var content: String = \"\", var dateGmt: String = \"\", var postModifiedGmt: String = \"\", var blogLang: String = \"\", var blogCharset: String = \"\", var userRole: String = \"\", var isTest: Boolean = false, var recheckReason: String = \"\", var serverEnv: Map = emptyMap())","description":"net.thauvin.erik.akismet.CommentConfig","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/index.html","searchKeys":["CommentConfig","class CommentConfigĀ constructor(var userIp: String, var userAgent: String, var referrer: String = \"\", var permalink: String = \"\", var type: String = \"\", var author: String = \"\", var authorEmail: String = \"\", var authorUrl: String = \"\", var content: String = \"\", var dateGmt: String = \"\", var postModifiedGmt: String = \"\", var blogLang: String = \"\", var blogCharset: String = \"\", var userRole: String = \"\", var isTest: Boolean = false, var recheckReason: String = \"\", var serverEnv: Map = emptyMap())","net.thauvin.erik.akismet.CommentConfig"]},{"name":"const val ADMIN_ROLE: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.ADMIN_ROLE","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html","searchKeys":["ADMIN_ROLE","const val ADMIN_ROLE: String","net.thauvin.erik.akismet.AkismetComment.Companion.ADMIN_ROLE"]},{"name":"const val TYPE_BLOG_POST: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_BLOG_POST","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-b-l-o-g_-p-o-s-t.html","searchKeys":["TYPE_BLOG_POST","const val TYPE_BLOG_POST: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_BLOG_POST"]},{"name":"const val TYPE_COMMENT: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_COMMENT","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-m-m-e-n-t.html","searchKeys":["TYPE_COMMENT","const val TYPE_COMMENT: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_COMMENT"]},{"name":"const val TYPE_CONTACT_FORM: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_CONTACT_FORM","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html","searchKeys":["TYPE_CONTACT_FORM","const val TYPE_CONTACT_FORM: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_CONTACT_FORM"]},{"name":"const val TYPE_FORUM_POST: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_FORUM_POST","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html","searchKeys":["TYPE_FORUM_POST","const val TYPE_FORUM_POST: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_FORUM_POST"]},{"name":"const val TYPE_MESSAGE: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_MESSAGE","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-m-e-s-s-a-g-e.html","searchKeys":["TYPE_MESSAGE","const val TYPE_MESSAGE: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_MESSAGE"]},{"name":"const val TYPE_PINGBACK: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_PINGBACK","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html","searchKeys":["TYPE_PINGBACK","const val TYPE_PINGBACK: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_PINGBACK"]},{"name":"const val TYPE_REPLY: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_REPLY","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-r-e-p-l-y.html","searchKeys":["TYPE_REPLY","const val TYPE_REPLY: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_REPLY"]},{"name":"const val TYPE_SIGNUP: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_SIGNUP","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-s-i-g-n-u-p.html","searchKeys":["TYPE_SIGNUP","const val TYPE_SIGNUP: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_SIGNUP"]},{"name":"const val TYPE_TRACKBACK: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_TRACKBACK","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-r-a-c-k-b-a-c-k.html","searchKeys":["TYPE_TRACKBACK","const val TYPE_TRACKBACK: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_TRACKBACK"]},{"name":"const val TYPE_TWEET: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_TWEET","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-w-e-e-t.html","searchKeys":["TYPE_TWEET","const val TYPE_TWEET: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_TWEET"]},{"name":"constructor(apiKey: String)","description":"net.thauvin.erik.akismet.Akismet.Akismet","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html","searchKeys":["Akismet","constructor(apiKey: String)","net.thauvin.erik.akismet.Akismet.Akismet"]},{"name":"constructor(apiKey: String, blog: String)","description":"net.thauvin.erik.akismet.Akismet.Akismet","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html","searchKeys":["Akismet","constructor(apiKey: String, blog: String)","net.thauvin.erik.akismet.Akismet.Akismet"]},{"name":"constructor(builder: CommentConfig.Builder)","description":"net.thauvin.erik.akismet.CommentConfig.CommentConfig","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html","searchKeys":["CommentConfig","constructor(builder: CommentConfig.Builder)","net.thauvin.erik.akismet.CommentConfig.CommentConfig"]},{"name":"constructor(config: CommentConfig)","description":"net.thauvin.erik.akismet.AkismetComment.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html","searchKeys":["AkismetComment","constructor(config: CommentConfig)","net.thauvin.erik.akismet.AkismetComment.AkismetComment"]},{"name":"constructor(request: )","description":"net.thauvin.erik.akismet.AkismetComment.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html","searchKeys":["AkismetComment","constructor(request: )","net.thauvin.erik.akismet.AkismetComment.AkismetComment"]},{"name":"constructor(userIp: String, userAgent: String)","description":"net.thauvin.erik.akismet.AkismetComment.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html","searchKeys":["AkismetComment","constructor(userIp: String, userAgent: String)","net.thauvin.erik.akismet.AkismetComment.AkismetComment"]},{"name":"constructor(userIp: String, userAgent: String)","description":"net.thauvin.erik.akismet.CommentConfig.Builder.Builder","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/-builder.html","searchKeys":["Builder","constructor(userIp: String, userAgent: String)","net.thauvin.erik.akismet.CommentConfig.Builder.Builder"]},{"name":"constructor(userIp: String, userAgent: String, referrer: String = \"\", permalink: String = \"\", type: String = \"\", author: String = \"\", authorEmail: String = \"\", authorUrl: String = \"\", content: String = \"\", dateGmt: String = \"\", postModifiedGmt: String = \"\", blogLang: String = \"\", blogCharset: String = \"\", userRole: String = \"\", isTest: Boolean = false, recheckReason: String = \"\", serverEnv: Map = emptyMap())","description":"net.thauvin.erik.akismet.CommentConfig.CommentConfig","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html","searchKeys":["CommentConfig","constructor(userIp: String, userAgent: String, referrer: String = \"\", permalink: String = \"\", type: String = \"\", author: String = \"\", authorEmail: String = \"\", authorUrl: String = \"\", content: String = \"\", dateGmt: String = \"\", postModifiedGmt: String = \"\", blogLang: String = \"\", blogCharset: String = \"\", userRole: String = \"\", isTest: Boolean = false, recheckReason: String = \"\", serverEnv: Map = emptyMap())","net.thauvin.erik.akismet.CommentConfig.CommentConfig"]},{"name":"data class Builder(var userIp: String, var userAgent: String)","description":"net.thauvin.erik.akismet.CommentConfig.Builder","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/index.html","searchKeys":["Builder","data class Builder(var userIp: String, var userAgent: String)","net.thauvin.erik.akismet.CommentConfig.Builder"]},{"name":"fun author(author: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.author","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author.html","searchKeys":["author","fun author(author: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.author"]},{"name":"fun authorEmail(authorEmail: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.authorEmail","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html","searchKeys":["authorEmail","fun authorEmail(authorEmail: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.authorEmail"]},{"name":"fun authorUrl(authorUrl: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.authorUrl","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html","searchKeys":["authorUrl","fun authorUrl(authorUrl: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.authorUrl"]},{"name":"fun blogCharset(blogCharset: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.blogCharset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html","searchKeys":["blogCharset","fun blogCharset(blogCharset: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.blogCharset"]},{"name":"fun blogLang(blogLang: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.blogLang","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html","searchKeys":["blogLang","fun blogLang(blogLang: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.blogLang"]},{"name":"fun build(): CommentConfig","description":"net.thauvin.erik.akismet.CommentConfig.Builder.build","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/build.html","searchKeys":["build","fun build(): CommentConfig","net.thauvin.erik.akismet.CommentConfig.Builder.build"]},{"name":"fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean","description":"net.thauvin.erik.akismet.Akismet.checkComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html","searchKeys":["checkComment","fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean","net.thauvin.erik.akismet.Akismet.checkComment"]},{"name":"fun content(content: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.content","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/content.html","searchKeys":["content","fun content(content: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.content"]},{"name":"fun dateGmt(dateGmt: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.dateGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html","searchKeys":["dateGmt","fun dateGmt(dateGmt: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.dateGmt"]},{"name":"fun dateToGmt(date: Date): String","description":"net.thauvin.erik.akismet.Akismet.Companion.dateToGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html","searchKeys":["dateToGmt","fun dateToGmt(date: Date): String","net.thauvin.erik.akismet.Akismet.Companion.dateToGmt"]},{"name":"fun dateToGmt(date: LocalDateTime): String","description":"net.thauvin.erik.akismet.Akismet.Companion.dateToGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html","searchKeys":["dateToGmt","fun dateToGmt(date: LocalDateTime): String","net.thauvin.erik.akismet.Akismet.Companion.dateToGmt"]},{"name":"fun executeMethod(apiUrl: , formBody: , trueOnError: Boolean = false): Boolean","description":"net.thauvin.erik.akismet.Akismet.executeMethod","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html","searchKeys":["executeMethod","fun executeMethod(apiUrl: , formBody: , trueOnError: Boolean = false): Boolean","net.thauvin.erik.akismet.Akismet.executeMethod"]},{"name":"fun isTest(isTest: Boolean): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.isTest","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html","searchKeys":["isTest","fun isTest(isTest: Boolean): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.isTest"]},{"name":"fun jsonComment(json: String): AkismetComment","description":"net.thauvin.erik.akismet.Akismet.Companion.jsonComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html","searchKeys":["jsonComment","fun jsonComment(json: String): AkismetComment","net.thauvin.erik.akismet.Akismet.Companion.jsonComment"]},{"name":"fun permalink(permalink: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.permalink","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html","searchKeys":["permalink","fun permalink(permalink: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.permalink"]},{"name":"fun postModifiedGmt(postModifiedGmt: String): ","description":"net.thauvin.erik.akismet.CommentConfig.Builder.postModifiedGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html","searchKeys":["postModifiedGmt","fun postModifiedGmt(postModifiedGmt: String): ","net.thauvin.erik.akismet.CommentConfig.Builder.postModifiedGmt"]},{"name":"fun recheckReason(checkReason: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.recheckReason","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html","searchKeys":["recheckReason","fun recheckReason(checkReason: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.recheckReason"]},{"name":"fun referrer(referrer: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.referrer","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html","searchKeys":["referrer","fun referrer(referrer: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.referrer"]},{"name":"fun reset()","description":"net.thauvin.erik.akismet.Akismet.reset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/reset.html","searchKeys":["reset","fun reset()","net.thauvin.erik.akismet.Akismet.reset"]},{"name":"fun serverEnv(serverEnv: Map): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.serverEnv","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html","searchKeys":["serverEnv","fun serverEnv(serverEnv: Map): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.serverEnv"]},{"name":"fun submitHam(comment: AkismetComment): Boolean","description":"net.thauvin.erik.akismet.Akismet.submitHam","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-ham.html","searchKeys":["submitHam","fun submitHam(comment: AkismetComment): Boolean","net.thauvin.erik.akismet.Akismet.submitHam"]},{"name":"fun submitSpam(comment: AkismetComment): Boolean","description":"net.thauvin.erik.akismet.Akismet.submitSpam","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-spam.html","searchKeys":["submitSpam","fun submitSpam(comment: AkismetComment): Boolean","net.thauvin.erik.akismet.Akismet.submitSpam"]},{"name":"fun toJson(): String","description":"net.thauvin.erik.akismet.AkismetComment.toJson","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-json.html","searchKeys":["toJson","fun toJson(): String","net.thauvin.erik.akismet.AkismetComment.toJson"]},{"name":"fun type(type: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.type","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/type.html","searchKeys":["type","fun type(type: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.type"]},{"name":"fun userAgent(userAgent: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html","searchKeys":["userAgent","fun userAgent(userAgent: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.userAgent"]},{"name":"fun userIp(userIp: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userIp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html","searchKeys":["userIp","fun userIp(userIp: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.userIp"]},{"name":"fun userRole(userRole: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userRole","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html","searchKeys":["userRole","fun userRole(userRole: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.userRole"]},{"name":"fun verifyKey(): Boolean","description":"net.thauvin.erik.akismet.Akismet.verifyKey","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html","searchKeys":["verifyKey","fun verifyKey(): Boolean","net.thauvin.erik.akismet.Akismet.verifyKey"]},{"name":"object Companion","description":"net.thauvin.erik.akismet.Akismet.Companion","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/index.html","searchKeys":["Companion","object Companion","net.thauvin.erik.akismet.Akismet.Companion"]},{"name":"object Companion","description":"net.thauvin.erik.akismet.AkismetComment.Companion","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html","searchKeys":["Companion","object Companion","net.thauvin.erik.akismet.AkismetComment.Companion"]},{"name":"open class Akismet(apiKey: String)","description":"net.thauvin.erik.akismet.Akismet","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/index.html","searchKeys":["Akismet","open class Akismet(apiKey: String)","net.thauvin.erik.akismet.Akismet"]},{"name":"open class AkismetComment(val userIp: String, val userAgent: String)","description":"net.thauvin.erik.akismet.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html","searchKeys":["AkismetComment","open class AkismetComment(val userIp: String, val userAgent: String)","net.thauvin.erik.akismet.AkismetComment"]},{"name":"open operator override fun equals(other: Any?): Boolean","description":"net.thauvin.erik.akismet.AkismetComment.equals","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/equals.html","searchKeys":["equals","open operator override fun equals(other: Any?): Boolean","net.thauvin.erik.akismet.AkismetComment.equals"]},{"name":"open override fun hashCode(): Int","description":"net.thauvin.erik.akismet.AkismetComment.hashCode","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/hash-code.html","searchKeys":["hashCode","open override fun hashCode(): Int","net.thauvin.erik.akismet.AkismetComment.hashCode"]},{"name":"open override fun toString(): String","description":"net.thauvin.erik.akismet.AkismetComment.toString","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-string.html","searchKeys":["toString","open override fun toString(): String","net.thauvin.erik.akismet.AkismetComment.toString"]},{"name":"val logger: Logger","description":"net.thauvin.erik.akismet.Akismet.logger","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/logger.html","searchKeys":["logger","val logger: Logger","net.thauvin.erik.akismet.Akismet.logger"]},{"name":"val userAgent: String","description":"net.thauvin.erik.akismet.AkismetComment.userAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html","searchKeys":["userAgent","val userAgent: String","net.thauvin.erik.akismet.AkismetComment.userAgent"]},{"name":"val userIp: String","description":"net.thauvin.erik.akismet.AkismetComment.userIp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html","searchKeys":["userIp","val userIp: String","net.thauvin.erik.akismet.AkismetComment.userIp"]},{"name":"var appUserAgent: String","description":"net.thauvin.erik.akismet.Akismet.appUserAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/app-user-agent.html","searchKeys":["appUserAgent","var appUserAgent: String","net.thauvin.erik.akismet.Akismet.appUserAgent"]},{"name":"var author: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.author","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author.html","searchKeys":["author","var author: String","net.thauvin.erik.akismet.CommentConfig.Builder.author"]},{"name":"var author: String","description":"net.thauvin.erik.akismet.CommentConfig.author","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author.html","searchKeys":["author","var author: String","net.thauvin.erik.akismet.CommentConfig.author"]},{"name":"var author: String?","description":"net.thauvin.erik.akismet.AkismetComment.author","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html","searchKeys":["author","var author: String?","net.thauvin.erik.akismet.AkismetComment.author"]},{"name":"var authorEmail: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.authorEmail","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html","searchKeys":["authorEmail","var authorEmail: String","net.thauvin.erik.akismet.CommentConfig.Builder.authorEmail"]},{"name":"var authorEmail: String","description":"net.thauvin.erik.akismet.CommentConfig.authorEmail","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-email.html","searchKeys":["authorEmail","var authorEmail: String","net.thauvin.erik.akismet.CommentConfig.authorEmail"]},{"name":"var authorEmail: String?","description":"net.thauvin.erik.akismet.AkismetComment.authorEmail","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html","searchKeys":["authorEmail","var authorEmail: String?","net.thauvin.erik.akismet.AkismetComment.authorEmail"]},{"name":"var authorUrl: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.authorUrl","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html","searchKeys":["authorUrl","var authorUrl: String","net.thauvin.erik.akismet.CommentConfig.Builder.authorUrl"]},{"name":"var authorUrl: String","description":"net.thauvin.erik.akismet.CommentConfig.authorUrl","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-url.html","searchKeys":["authorUrl","var authorUrl: String","net.thauvin.erik.akismet.CommentConfig.authorUrl"]},{"name":"var authorUrl: String?","description":"net.thauvin.erik.akismet.AkismetComment.authorUrl","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html","searchKeys":["authorUrl","var authorUrl: String?","net.thauvin.erik.akismet.AkismetComment.authorUrl"]},{"name":"var blog: String","description":"net.thauvin.erik.akismet.Akismet.blog","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/blog.html","searchKeys":["blog","var blog: String","net.thauvin.erik.akismet.Akismet.blog"]},{"name":"var blogCharset: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.blogCharset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html","searchKeys":["blogCharset","var blogCharset: String","net.thauvin.erik.akismet.CommentConfig.Builder.blogCharset"]},{"name":"var blogCharset: String","description":"net.thauvin.erik.akismet.CommentConfig.blogCharset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-charset.html","searchKeys":["blogCharset","var blogCharset: String","net.thauvin.erik.akismet.CommentConfig.blogCharset"]},{"name":"var blogCharset: String?","description":"net.thauvin.erik.akismet.AkismetComment.blogCharset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html","searchKeys":["blogCharset","var blogCharset: String?","net.thauvin.erik.akismet.AkismetComment.blogCharset"]},{"name":"var blogLang: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.blogLang","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html","searchKeys":["blogLang","var blogLang: String","net.thauvin.erik.akismet.CommentConfig.Builder.blogLang"]},{"name":"var blogLang: String","description":"net.thauvin.erik.akismet.CommentConfig.blogLang","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-lang.html","searchKeys":["blogLang","var blogLang: String","net.thauvin.erik.akismet.CommentConfig.blogLang"]},{"name":"var blogLang: String?","description":"net.thauvin.erik.akismet.AkismetComment.blogLang","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html","searchKeys":["blogLang","var blogLang: String?","net.thauvin.erik.akismet.AkismetComment.blogLang"]},{"name":"var content: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.content","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/content.html","searchKeys":["content","var content: String","net.thauvin.erik.akismet.CommentConfig.Builder.content"]},{"name":"var content: String","description":"net.thauvin.erik.akismet.CommentConfig.content","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/content.html","searchKeys":["content","var content: String","net.thauvin.erik.akismet.CommentConfig.content"]},{"name":"var content: String?","description":"net.thauvin.erik.akismet.AkismetComment.content","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/content.html","searchKeys":["content","var content: String?","net.thauvin.erik.akismet.AkismetComment.content"]},{"name":"var dateGmt: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.dateGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html","searchKeys":["dateGmt","var dateGmt: String","net.thauvin.erik.akismet.CommentConfig.Builder.dateGmt"]},{"name":"var dateGmt: String","description":"net.thauvin.erik.akismet.CommentConfig.dateGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/date-gmt.html","searchKeys":["dateGmt","var dateGmt: String","net.thauvin.erik.akismet.CommentConfig.dateGmt"]},{"name":"var dateGmt: String?","description":"net.thauvin.erik.akismet.AkismetComment.dateGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html","searchKeys":["dateGmt","var dateGmt: String?","net.thauvin.erik.akismet.AkismetComment.dateGmt"]},{"name":"var debugHelp: String","description":"net.thauvin.erik.akismet.Akismet.debugHelp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html","searchKeys":["debugHelp","var debugHelp: String","net.thauvin.erik.akismet.Akismet.debugHelp"]},{"name":"var errorMessage: String","description":"net.thauvin.erik.akismet.Akismet.errorMessage","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/error-message.html","searchKeys":["errorMessage","var errorMessage: String","net.thauvin.erik.akismet.Akismet.errorMessage"]},{"name":"var httpStatusCode: Int","description":"net.thauvin.erik.akismet.Akismet.httpStatusCode","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html","searchKeys":["httpStatusCode","var httpStatusCode: Int","net.thauvin.erik.akismet.Akismet.httpStatusCode"]},{"name":"var isDiscard: Boolean","description":"net.thauvin.erik.akismet.Akismet.isDiscard","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html","searchKeys":["isDiscard","var isDiscard: Boolean","net.thauvin.erik.akismet.Akismet.isDiscard"]},{"name":"var isTest: Boolean","description":"net.thauvin.erik.akismet.AkismetComment.isTest","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html","searchKeys":["isTest","var isTest: Boolean","net.thauvin.erik.akismet.AkismetComment.isTest"]},{"name":"var isTest: Boolean","description":"net.thauvin.erik.akismet.CommentConfig.Builder.isTest","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html","searchKeys":["isTest","var isTest: Boolean","net.thauvin.erik.akismet.CommentConfig.Builder.isTest"]},{"name":"var isTest: Boolean","description":"net.thauvin.erik.akismet.CommentConfig.isTest","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/is-test.html","searchKeys":["isTest","var isTest: Boolean","net.thauvin.erik.akismet.CommentConfig.isTest"]},{"name":"var isVerifiedKey: Boolean","description":"net.thauvin.erik.akismet.Akismet.isVerifiedKey","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html","searchKeys":["isVerifiedKey","var isVerifiedKey: Boolean","net.thauvin.erik.akismet.Akismet.isVerifiedKey"]},{"name":"var permalink: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.permalink","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html","searchKeys":["permalink","var permalink: String","net.thauvin.erik.akismet.CommentConfig.Builder.permalink"]},{"name":"var permalink: String","description":"net.thauvin.erik.akismet.CommentConfig.permalink","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/permalink.html","searchKeys":["permalink","var permalink: String","net.thauvin.erik.akismet.CommentConfig.permalink"]},{"name":"var permalink: String?","description":"net.thauvin.erik.akismet.AkismetComment.permalink","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/permalink.html","searchKeys":["permalink","var permalink: String?","net.thauvin.erik.akismet.AkismetComment.permalink"]},{"name":"var postModifiedGmt: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.postModifiedGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html","searchKeys":["postModifiedGmt","var postModifiedGmt: String","net.thauvin.erik.akismet.CommentConfig.Builder.postModifiedGmt"]},{"name":"var postModifiedGmt: String","description":"net.thauvin.erik.akismet.CommentConfig.postModifiedGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/post-modified-gmt.html","searchKeys":["postModifiedGmt","var postModifiedGmt: String","net.thauvin.erik.akismet.CommentConfig.postModifiedGmt"]},{"name":"var postModifiedGmt: String?","description":"net.thauvin.erik.akismet.AkismetComment.postModifiedGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html","searchKeys":["postModifiedGmt","var postModifiedGmt: String?","net.thauvin.erik.akismet.AkismetComment.postModifiedGmt"]},{"name":"var proTip: String","description":"net.thauvin.erik.akismet.Akismet.proTip","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html","searchKeys":["proTip","var proTip: String","net.thauvin.erik.akismet.Akismet.proTip"]},{"name":"var recheckReason: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.recheckReason","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html","searchKeys":["recheckReason","var recheckReason: String","net.thauvin.erik.akismet.CommentConfig.Builder.recheckReason"]},{"name":"var recheckReason: String","description":"net.thauvin.erik.akismet.CommentConfig.recheckReason","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/recheck-reason.html","searchKeys":["recheckReason","var recheckReason: String","net.thauvin.erik.akismet.CommentConfig.recheckReason"]},{"name":"var recheckReason: String?","description":"net.thauvin.erik.akismet.AkismetComment.recheckReason","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html","searchKeys":["recheckReason","var recheckReason: String?","net.thauvin.erik.akismet.AkismetComment.recheckReason"]},{"name":"var referrer: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.referrer","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html","searchKeys":["referrer","var referrer: String","net.thauvin.erik.akismet.CommentConfig.Builder.referrer"]},{"name":"var referrer: String","description":"net.thauvin.erik.akismet.CommentConfig.referrer","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/referrer.html","searchKeys":["referrer","var referrer: String","net.thauvin.erik.akismet.CommentConfig.referrer"]},{"name":"var referrer: String?","description":"net.thauvin.erik.akismet.AkismetComment.referrer","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/referrer.html","searchKeys":["referrer","var referrer: String?","net.thauvin.erik.akismet.AkismetComment.referrer"]},{"name":"var response: String","description":"net.thauvin.erik.akismet.Akismet.response","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/response.html","searchKeys":["response","var response: String","net.thauvin.erik.akismet.Akismet.response"]},{"name":"var serverEnv: Map","description":"net.thauvin.erik.akismet.AkismetComment.serverEnv","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/server-env.html","searchKeys":["serverEnv","var serverEnv: Map","net.thauvin.erik.akismet.AkismetComment.serverEnv"]},{"name":"var serverEnv: Map","description":"net.thauvin.erik.akismet.CommentConfig.Builder.serverEnv","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html","searchKeys":["serverEnv","var serverEnv: Map","net.thauvin.erik.akismet.CommentConfig.Builder.serverEnv"]},{"name":"var serverEnv: Map","description":"net.thauvin.erik.akismet.CommentConfig.serverEnv","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/server-env.html","searchKeys":["serverEnv","var serverEnv: Map","net.thauvin.erik.akismet.CommentConfig.serverEnv"]},{"name":"var type: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.type","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/type.html","searchKeys":["type","var type: String","net.thauvin.erik.akismet.CommentConfig.Builder.type"]},{"name":"var type: String","description":"net.thauvin.erik.akismet.CommentConfig.type","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/type.html","searchKeys":["type","var type: String","net.thauvin.erik.akismet.CommentConfig.type"]},{"name":"var type: String?","description":"net.thauvin.erik.akismet.AkismetComment.type","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/type.html","searchKeys":["type","var type: String?","net.thauvin.erik.akismet.AkismetComment.type"]},{"name":"var userAgent: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html","searchKeys":["userAgent","var userAgent: String","net.thauvin.erik.akismet.CommentConfig.Builder.userAgent"]},{"name":"var userAgent: String","description":"net.thauvin.erik.akismet.CommentConfig.userAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-agent.html","searchKeys":["userAgent","var userAgent: String","net.thauvin.erik.akismet.CommentConfig.userAgent"]},{"name":"var userIp: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userIp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html","searchKeys":["userIp","var userIp: String","net.thauvin.erik.akismet.CommentConfig.Builder.userIp"]},{"name":"var userIp: String","description":"net.thauvin.erik.akismet.CommentConfig.userIp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-ip.html","searchKeys":["userIp","var userIp: String","net.thauvin.erik.akismet.CommentConfig.userIp"]},{"name":"var userRole: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userRole","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html","searchKeys":["userRole","var userRole: String","net.thauvin.erik.akismet.CommentConfig.Builder.userRole"]},{"name":"var userRole: String","description":"net.thauvin.erik.akismet.CommentConfig.userRole","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-role.html","searchKeys":["userRole","var userRole: String","net.thauvin.erik.akismet.CommentConfig.userRole"]},{"name":"var userRole: String?","description":"net.thauvin.erik.akismet.AkismetComment.userRole","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html","searchKeys":["userRole","var userRole: String?","net.thauvin.erik.akismet.AkismetComment.userRole"]}] diff --git a/docs/scripts/platform-content-handler.js b/docs/scripts/platform-content-handler.js index 8c4ca53..811c478 100644 --- a/docs/scripts/platform-content-handler.js +++ b/docs/scripts/platform-content-handler.js @@ -18,8 +18,6 @@ const samplesLightThemeName = 'idea' window.addEventListener('load', () => { document.querySelectorAll("div[data-platform-hinted]") .forEach(elem => elem.addEventListener('click', (event) => togglePlatformDependent(event, elem))) - document.querySelectorAll("div[tabs-section]") - .forEach(elem => elem.addEventListener('click', (event) => toggleSectionsEventHandler(event))) const filterSection = document.getElementById('filter-section') if (filterSection) { filterSection.addEventListener('click', (event) => filterButtonHandler(event)) @@ -177,19 +175,30 @@ function handleAnchor() { } function initTabs() { - document.querySelectorAll("div[tabs-section]") - .forEach(element => { - showCorrespondingTabBody(element) - element.addEventListener('click', (event) => toggleSectionsEventHandler(event)) - }) - let cached = localStorage.getItem("active-tab") - if (cached) { - let parsed = JSON.parse(cached) - let tab = document.querySelector('div[tabs-section] > button[data-togglable="' + parsed + '"]') - if (tab) { - toggleSections(tab) - } - } + // we could have only a single type of data - classlike or package + const mainContent = document.querySelector('.main-content'); + const type = mainContent ? mainContent.getAttribute("data-page-type") : null; + const localStorageKey = "active-tab-" + type; + document.querySelectorAll('div[tabs-section]').forEach(element => { + showCorrespondingTabBody(element); + element.addEventListener('click', ({target}) => { + const togglable = target ? target.getAttribute("data-togglable") : null; + if (!togglable) return; + + localStorage.setItem(localStorageKey, JSON.stringify(togglable)); + toggleSections(target); + }); + }); + + const cached = localStorage.getItem(localStorageKey); + if (!cached) return; + + const tab = document.querySelector( + 'div[tabs-section] > button[data-togglable="' + JSON.parse(cached) + '"]' + ); + if (!tab) return; + + toggleSections(tab); } function showCorrespondingTabBody(element) { @@ -293,12 +302,6 @@ function toggleSections(target) { activateTabsBody("tabs-section-body") } -function toggleSectionsEventHandler(evt) { - if (!evt.target.getAttribute("data-togglable")) return - localStorage.setItem('active-tab', JSON.stringify(evt.target.getAttribute("data-togglable"))) - toggleSections(evt.target) -} - function togglePlatformDependent(e, container) { let target = e.target if (target.tagName != 'BUTTON') return; diff --git a/docs/styles/main.css b/docs/styles/main.css index ebe1ce1..5f7781e 100644 --- a/docs/styles/main.css +++ b/docs/styles/main.css @@ -1,6 +1,6 @@ /*! * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. - */#pages-search{cursor:pointer;border:none;border-radius:50%;background:transparent;fill:#fff;fill:var(--dark-mode-and-search-icon-color)}#pages-search:focus{outline:none}#pages-search:hover{background:var(--white-10)}.search,.search [data-test=ring-select],.search [data-test=ring-tooltip],.search [data-test=ring-select_focus],.search #pages-search{display:inline-block;padding:0;margin:0;font-size:0;line-height:0}.search-hotkey-popup{background-color:var(--background-color) !important;padding:4px}.popup-wrapper{min-width:calc(100% - 322px) !important;border:1px solid rgba(255,255,255,.2) !important;background-color:#27282c !important}.popup-wrapper [class^=filterWrapper]{border-bottom:1px solid rgba(255,255,255,.2)}.popup-wrapper input{color:rgba(255,255,255,.8) !important;font-weight:normal !important}.popup-wrapper span[data-test-custom=ring-select-popup-filter-icon]{color:#fff}.popup-wrapper button[data-test=ring-input-clear]{color:#fff !important}@media screen and (max-width: 759px){.popup-wrapper{min-width:100% !important}}.template-wrapper{display:grid;height:32px;grid-template-columns:auto auto}.template-wrapper strong{color:rgba(255,255,255,.8)}.template-wrapper span{color:rgba(255,255,255,.8);line-height:32px}.template-wrapper span.template-description{color:rgba(255,255,255,.6);justify-self:end}@media screen and (max-width: 759px){.template-wrapper{display:flex;flex-direction:column;height:auto}.template-wrapper span{line-height:unset}}.template-name{justify-self:start}[class^=fade]{display:none}[class*=hover]{background-color:rgba(255,255,255,.1) !important} + */#pages-search{cursor:pointer;border:none;border-radius:50%;background:transparent;fill:#fff;fill:var(--dark-mode-and-search-icon-color)}#pages-search:hover{background:var(--white-10)}.search,.search [data-test=ring-select],.search [data-test=ring-tooltip],.search [data-test=ring-select_focus],.search #pages-search{display:inline-block;padding:0;margin:0;font-size:0;line-height:0}.search-hotkey-popup{background-color:var(--background-color) !important;padding:4px}.popup-wrapper{min-width:calc(100% - 322px) !important;border:1px solid rgba(255,255,255,.2) !important;background-color:#27282c !important;color:rgba(255,255,255,.8)}.popup-wrapper [class^=filterWrapper]{border-bottom:1px solid rgba(255,255,255,.2)}.popup-wrapper input{color:rgba(255,255,255,.8) !important;font-weight:normal !important}.popup-wrapper span[data-test-custom=ring-select-popup-filter-icon]{color:#fff}.popup-wrapper button[data-test=ring-input-clear]{color:#fff !important}@media screen and (max-width: 759px){.popup-wrapper{min-width:100% !important}}.template-wrapper{display:grid;height:32px;grid-template-columns:auto auto}.template-wrapper strong{color:rgba(255,255,255,.8)}.template-wrapper span{color:rgba(255,255,255,.8);line-height:32px}.template-wrapper span.template-description{color:rgba(255,255,255,.6);justify-self:end}@media screen and (max-width: 759px){.template-wrapper{display:flex;flex-direction:column;height:auto}.template-wrapper span{line-height:unset}}.template-name{justify-self:start}[class^=fade]{display:none}[class*=hover]{background-color:rgba(255,255,255,.1) !important} /* stylelint-disable color-no-hex */ :root { diff --git a/docs/styles/style.css b/docs/styles/style.css index 67a899a..fc2b84d 100644 --- a/docs/styles/style.css +++ b/docs/styles/style.css @@ -342,6 +342,7 @@ td:first-child { /* --- Navigation controls --- */ .navigation-controls { display: flex; + margin-left: 4px; } @media (min-width: 760px) { @@ -354,37 +355,31 @@ td:first-child { display: none; } -/* --- Navigation THEME --- */ -.navigation-controls--search { +.navigation-controls--btn { display: inline-flex; - font-size: 0; - line-height: 0; -} - -.navigation-controls--theme { - display: block; + align-items: center; + justify-content: center; + width: 40px; + height: 40px; border-radius: 50%; background-color: inherit; - margin-left: 4px; + background-position: 50% 50%; padding: 0; border: none; cursor: pointer; font-size: 0; line-height: 0; + transition: background-color 200ms ease-in-out; + will-change: background-color; } -.navigation-controls--theme::before { - height: 40px; - width: 40px; +.navigation-controls--btn:hover { + background-color: var(--white-10); } -.navigation-controls--theme:hover { - background: var(--white-10); -} - -.navigation-controls--theme::before { - display: block; - content: url("../images/theme-toggle.svg"); +.navigation-controls--theme { + background-image: url("../images/theme-toggle.svg"); + background-repeat: no-repeat; } @media (max-width: 759px) { @@ -392,7 +387,18 @@ td:first-child { display: none; } } -/* /--- Navigation THEME --- */ + +.navigation-controls--homepage { + background-image: url("../images/homepage.svg"); + background-repeat: no-repeat; + background-size: 24px 24px; +} + +@media (max-width: 759px) { + .navigation-controls--homepage { + display: none; + } +} .navigation .platform-selector:not([data-active]) { color: #fff; @@ -656,6 +662,26 @@ code.paragraph { text-decoration: line-through; } +/* Workaround for Firefox https://github.com/Kotlin/dokka/issues/3156 */ +@-moz-document url-prefix() { + .strikethrough { + position: relative; + text-decoration: none; + } + + /* complex selectors here are required to handle multiline cases */ + .strikethrough::after, .strikethrough span:after { + content: ''; + position: absolute; + top: 7px; + left: 0; + right: 0; + height: 1px; + background-color: currentColor; + z-index: 1; + } +} + .symbol:empty { padding: 0; } @@ -684,7 +710,7 @@ code { code:not(.block) { display: inline-block; - vertical-align: middle; + vertical-align: bottom; } .symbol > a { From 0480a72c30e7bc2e66621196154ea883767e84f9 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Fri, 24 May 2024 17:15:15 -0700 Subject: [PATCH 28/63] Added a data class for the comment types --- config/detekt/baseline.xml | 2 +- .../-akismet-comment/-akismet-comment.html | 2 +- .../-companion/-a-d-m-i-n_-r-o-l-e.html | 2 +- .../-akismet-comment/-companion/index.html | 152 +---------- .../-akismet-comment/author-email.html | 2 +- .../-akismet-comment/author-url.html | 2 +- .../-akismet-comment/author.html | 2 +- .../-akismet-comment/blog-charset.html | 2 +- .../-akismet-comment/blog-lang.html | 2 +- .../-akismet-comment/content.html | 2 +- .../-akismet-comment/date-gmt.html | 2 +- .../-akismet-comment/equals.html | 2 +- .../-akismet-comment/hash-code.html | 2 +- .../-akismet-comment/index.html | 2 +- .../-akismet-comment/is-test.html | 2 +- .../-akismet-comment/permalink.html | 2 +- .../-akismet-comment/post-modified-gmt.html | 2 +- .../-akismet-comment/recheck-reason.html | 2 +- .../-akismet-comment/referrer.html | 2 +- .../-akismet-comment/server-env.html | 2 +- .../-akismet-comment/to-json.html | 2 +- .../-akismet-comment/to-string.html | 2 +- .../-akismet-comment/type.html | 2 +- .../-akismet-comment/user-role.html | 2 +- .../-comment-config/-builder/-builder.html | 2 +- .../-builder/author-email.html | 2 +- .../-comment-config/-builder/author-url.html | 2 +- .../-comment-config/-builder/author.html | 2 +- .../-builder/blog-charset.html | 2 +- .../-comment-config/-builder/blog-lang.html | 2 +- .../-comment-config/-builder/build.html | 2 +- .../-comment-config/-builder/content.html | 2 +- .../-comment-config/-builder/date-gmt.html | 2 +- .../-comment-config/-builder/index.html | 12 +- .../-comment-config/-builder/is-test.html | 2 +- .../-comment-config/-builder/permalink.html | 2 +- .../-builder/post-modified-gmt.html | 2 +- .../-builder/recheck-reason.html | 2 +- .../-comment-config/-builder/referrer.html | 2 +- .../-comment-config/-builder/server-env.html | 2 +- .../-comment-config/-builder/type.html | 4 +- .../-comment-config/-builder/user-agent.html | 2 +- .../-comment-config/-builder/user-ip.html | 2 +- .../-comment-config/-builder/user-role.html | 2 +- .../-comment-config/-comment-config.html | 2 +- .../-comment-config/author-email.html | 2 +- .../-comment-config/author-url.html | 2 +- .../-comment-config/author.html | 2 +- .../-comment-config/blog-charset.html | 2 +- .../-comment-config/blog-lang.html | 2 +- .../-comment-config/content.html | 2 +- .../-comment-config/date-gmt.html | 2 +- .../-comment-config/index.html | 10 +- .../-comment-config/is-test.html | 2 +- .../-comment-config/permalink.html | 2 +- .../-comment-config/post-modified-gmt.html | 2 +- .../-comment-config/recheck-reason.html | 2 +- .../-comment-config/referrer.html | 2 +- .../-comment-config/server-env.html | 2 +- .../-comment-config/type.html | 2 +- .../-comment-config/user-agent.html | 2 +- .../-comment-config/user-ip.html | 2 +- .../-comment-config/user-role.html | 2 +- .../-comment-type/-comment-type.html | 80 ++++++ .../-companion/-b-l-o-g_-p-o-s-t.html | 80 ++++++ .../-companion/-c-o-m-m-e-n-t.html | 80 ++++++ .../-companion/-c-o-n-t-a-c-t_-f-o-r-m.html | 80 ++++++ .../-companion/-f-o-r-u-m_-p-o-s-t.html | 80 ++++++ .../-companion/-m-e-s-s-a-g-e.html | 80 ++++++ .../-comment-type/-companion/-n-o-n-e.html | 80 ++++++ .../-companion/-p-i-n-g-b-a-c-k.html | 80 ++++++ .../-comment-type/-companion/-r-e-p-l-y.html | 80 ++++++ .../-companion/-s-i-g-n-u-p.html | 80 ++++++ .../-companion/-t-r-a-c-k-b-a-c-k.html | 80 ++++++ .../-comment-type/-companion/-t-w-e-e-t.html | 80 ++++++ .../-comment-type/-companion/index.html | 254 ++++++++++++++++++ .../-comment-type/index.html | 142 ++++++++++ .../-comment-type/value.html | 80 ++++++ .../net.thauvin.erik.akismet/index.html | 17 +- docs/-akismet -kotlin/package-list | 29 +- docs/navigation.html | 6 + docs/scripts/pages.json | 2 +- .../bld/java/com/example/ExampleBuild.java | 3 +- .../main/java/com/example/AkismetSample.java | 3 +- .../main/kotlin/com/example/AkismetExample.kt | 3 +- .../main/kotlin/com/example/AkismetServlet.kt | 5 +- examples/gradle/.idea/.name | 2 +- examples/gradle/.idea/misc.xml | 5 +- examples/gradle/.idea/modules.xml | 13 + examples/gradle/settings.gradle.kts | 2 +- .../main/java/com/example/AkismetSample.java | 3 +- .../main/kotlin/com/example/AkismetExample.kt | 3 +- .../main/kotlin/com/example/AkismetServlet.kt | 5 +- lib/bld/bld-wrapper.properties | 2 +- .../java/net/thauvin/erik/AkismetBuild.java | 5 + .../net/thauvin/erik/akismet/Akismet.kt | 4 +- .../thauvin/erik/akismet/AkismetComment.kt | 92 +++---- .../net/thauvin/erik/akismet/CommentConfig.kt | 44 ++- .../net/thauvin/erik/akismet/CommentType.kt | 107 ++++++++ .../net/thauvin/erik/akismet/AkismetTest.kt | 16 +- 100 files changed, 1760 insertions(+), 343 deletions(-) create mode 100644 docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-comment-type.html create mode 100644 docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-b-l-o-g_-p-o-s-t.html create mode 100644 docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-m-m-e-n-t.html create mode 100644 docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-n-t-a-c-t_-f-o-r-m.html create mode 100644 docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-f-o-r-u-m_-p-o-s-t.html create mode 100644 docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-m-e-s-s-a-g-e.html create mode 100644 docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-n-o-n-e.html create mode 100644 docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-p-i-n-g-b-a-c-k.html create mode 100644 docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-r-e-p-l-y.html create mode 100644 docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-s-i-g-n-u-p.html create mode 100644 docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-t-r-a-c-k-b-a-c-k.html create mode 100644 docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-t-w-e-e-t.html create mode 100644 docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/index.html create mode 100644 docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/index.html create mode 100644 docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/value.html create mode 100644 examples/gradle/.idea/modules.xml create mode 100644 src/main/kotlin/net/thauvin/erik/akismet/CommentType.kt diff --git a/config/detekt/baseline.xml b/config/detekt/baseline.xml index a4794c3..7bcb546 100644 --- a/config/detekt/baseline.xml +++ b/config/detekt/baseline.xml @@ -5,7 +5,7 @@ CyclomaticComplexMethod:Akismet.kt$Akismet$private fun buildFormBody(comment: AkismetComment): FormBody CyclomaticComplexMethod:AkismetComment.kt$AkismetComment$@Suppress("DuplicatedCode") override fun equals(other: Any?): Boolean LongParameterList:AkismetServlet.kt$AkismetServlet$( id: String, name: String?, email: String?, date: String?, comment: String?, json: String, isSpam: Boolean ) - LongParameterList:CommentConfig.kt$CommentConfig$( var userIp: String, var userAgent: String, var referrer: String = "", var permalink: String = "", var type: String = "", var author: String = "", var authorEmail: String = "", var authorUrl: String = "", var content: String = "", var dateGmt: String = "", var postModifiedGmt: String = "", var blogLang: String = "", var blogCharset: String = "", var userRole: String = "", var isTest: Boolean = false, var recheckReason: String = "", var serverEnv: Map<String, String> = emptyMap() ) + LongParameterList:CommentConfig.kt$CommentConfig$( var userIp: String, var userAgent: String, var referrer: String = "", var permalink: String = "", var type: CommentType = CommentType.NONE, var author: String = "", var authorEmail: String = "", var authorUrl: String = "", var content: String = "", var dateGmt: String = "", var postModifiedGmt: String = "", var blogLang: String = "", var blogCharset: String = "", var userRole: String = "", var isTest: Boolean = false, var recheckReason: String = "", var serverEnv: Map<String, String> = emptyMap() ) MagicNumber:Akismet.kt$Akismet$12 MagicNumber:Akismet.kt$Akismet$8 NestedBlockDepth:Akismet.kt$Akismet$@JvmOverloads fun executeMethod(apiUrl: HttpUrl, formBody: FormBody, trueOnError: Boolean = false): Boolean diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html index 7c95c93..1259c0e 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html @@ -66,7 +66,7 @@

AkismetComment

-
constructor(request: <Error class: unknown class>)(source)

Creates a new instance extracting the userIp, userAgent, referrer and serverEnv environment variables from a Servlet request.

See the Akismet API for more details.

See also


constructor(config: CommentConfig)(source)


constructor(userIp: String, userAgent: String)(source)

Creates a new instance.

See the Akismet API for more details.

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

+
constructor(request: <Error class: unknown class>)(source)

Creates a new instance extracting the userIp, userAgent, referrer and serverEnv environment variables from a Servlet request.

See the Akismet API for more details.

See also


constructor(config: CommentConfig)(source)


constructor(userIp: String, userAgent: String)(source)

Creates a new instance.

See the Akismet API for more details.

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

-

Administrator role. If used, Akismet will always return false.

+

Administrator role. If used, Akismet will always return false.

-
const val ADMIN_ROLE: String

Administrator role. If used, Akismet will always return false.

-
-
- - - -
-
-
- - -
Link copied to clipboard
-
-
-
-

A blog post.

-
-
-
-
- -
-
-
- - -
Link copied to clipboard
-
-
-
-
const val TYPE_COMMENT: String

A blog comment.

-
-
-
-
- -
-
-
- - -
Link copied to clipboard
-
-
-
-

A contact form or feedback form submission.

-
-
-
-
- -
-
-
- - -
Link copied to clipboard
-
-
-
-

A top-level forum post.

-
-
-
-
- -
-
-
- - -
Link copied to clipboard
-
-
-
-
const val TYPE_MESSAGE: String

A message sent between just a few users.

-
-
-
-
- -
-
-
- - -
Link copied to clipboard
-
-
-
-

A pingback.

-
-
-
-
- -
-
-
- - -
Link copied to clipboard
-
-
-
-
const val TYPE_REPLY: String

A reply to a top-level forum post.

-
-
-
-
- -
-
-
- - -
Link copied to clipboard
-
-
-
-
const val TYPE_SIGNUP: String

A new user account.

-
-
-
-
- -
-
-
- - -
Link copied to clipboard
-
-
-
-

A trackback.

-
-
-
-
- -
-
-
- - -
Link copied to clipboard
-
-
-
-
const val TYPE_TWEET: String

A Twitter message.

+
const val ADMIN_ROLE: String

Administrator role. If used, Akismet will always return false.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html index 7a99041..a372efe 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html @@ -66,7 +66,7 @@

authorEmail

-

Email address submitted with the comment.

+

Email address submitted with the comment.

-

URL submitted with comment.

+

URL submitted with comment.

-

Name submitted with the comment.

+

Name submitted with the comment.

-

The character encoding for the form values included in comment parameters, such as UTF-8 or ISO-8859-1

+

The character encoding for the form values included in comment parameters, such as UTF-8 or ISO-8859-1

-

Indicates the language(s) in use on the blog or site, in ISO 639-1 format, comma-separated.

A site with articles in English and French might use: en, fr_ca

+

Indicates the language(s) in use on the blog or site, in ISO 639-1 format, comma-separated.

A site with articles in English and French might use: en, fr_ca

-

The content that was submitted.

+

The content that was submitted.

-

The UTC timestamp of the creation of the comment, in ISO 8601 format.

May be omitted if the comment is sent to the API at the time it is created.

See also

+

The UTC timestamp of the creation of the comment, in ISO 8601 format.

May be omitted if the comment is sent to the API at the time it is created.

See also

-
open operator override fun equals(other: Any?): Boolean(source)

Indicates whether some other object is equal to this one.

+
open operator override fun equals(other: Any?): Boolean(source)

Indicates whether some other object is equal to this one.

-
open override fun hashCode(): Int(source)

Returns a hash code value for the object.

+
open override fun hashCode(): Int(source)

Returns a hash code value for the object.

-
var type: String?

A string that describes the type of content being sent, such as:

+

A string that describes the type of content being sent, such as:

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html index ef61f6e..14b17e1 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html @@ -66,7 +66,7 @@

isTest

-

This is an optional parameter. You can use it when submitting test queries to Akismet.

+

This is an optional parameter. You can use it when submitting test queries to Akismet.

-

The full permanent URL of the entry the comment was submitted to.

+

The full permanent URL of the entry the comment was submitted to.

-

The UTC timestamp of the publication time for the post, page or thread on which the comment was posted.

See also

+

The UTC timestamp of the publication time for the post, page or thread on which the comment was posted.

See also

-

If you are sending content to Akismet to be rechecked, such as a post that has been edited or old pending comments that you'd like to recheck, include this parameter with a string describing why the content is being rechecked.

For example: edit

+

If you are sending content to Akismet to be rechecked, such as a post that has been edited or old pending comments that you'd like to recheck, include this parameter with a string describing why the content is being rechecked.

For example: edit

-

The content of the referer header should be set here.

+

The content of the referer header should be set here.

-

In PHP, there is an array of environmental variables called $_SERVER that contains information about the Web server itself as well as a key/value for every HTTP header sent with the request. This data is highly useful to Akismet.

How the submitted content interacts with the server can be very telling, so please include as much of it as possible.

+

In PHP, there is an array of environmental variables called $_SERVER that contains information about the Web server itself as well as a key/value for every HTTP header sent with the request. This data is highly useful to Akismet.

How the submitted content interacts with the server can be very telling, so please include as much of it as possible.

-

Returns a JSON representation of the comment.

See also

+

Returns a JSON representation of the comment.

See also

-
open override fun toString(): String(source)

Returns a JSON representation of the comment.

See also

+
open override fun toString(): String(source)

Returns a JSON representation of the comment.

See also

-

A string that describes the type of content being sent, such as:

You may send a value not listed above if none of them accurately describe your content.

This is further explained here.

+

A string that describes the type of content being sent, such as:

You may send a value not listed above if none of them accurately describe your content.

This is further explained here.

-

The user role of the user who submitted the comment. This is an optional parameter.

If you set it to ADMIN_ROLE, Akismet will always return false.

+

The user role of the user who submitted the comment. This is an optional parameter.

If you set it to ADMIN_ROLE, Akismet will always return false.

-
constructor(userIp: String, userAgent: String)(source)

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

+
constructor(userIp: String, userAgent: String)(source)

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

-

Sets the email address submitted with the comment.


+

Sets the email address submitted with the comment.


-

Sets the URL submitted with comment.


+

Sets the URL submitted with comment.


-

Sets the mame submitted with the comment.


+

Sets the mame submitted with the comment.


-

Sets the character encoding for the form values included in comment parameters, such as UTF-8 or ISO-8859-1


+

Sets the character encoding for the form values included in comment parameters, such as UTF-8 or ISO-8859-1


-

Indicates the language(s) in use on the blog or site, in ISO 639-1 format, comma-separated.

A site with articles in English and French might use: en, fr_ca


+

Indicates the language(s) in use on the blog or site, in ISO 639-1 format, comma-separated.

A site with articles in English and French might use: en, fr_ca


-

Builds a new comment configuration.

+

Builds a new comment configuration.

-

Sets the content that was submitted.


+

Sets the content that was submitted.


-

Sets the UTC timestamp of the creation of the comment, in ISO 8601 format.

May be omitted if the comment is sent to the API at the time it is created.

See also


+

Sets the UTC timestamp of the creation of the comment, in ISO 8601 format.

May be omitted if the comment is sent to the API at the time it is created.

See also


Builder

-
data class Builder(var userIp: String, var userAgent: String)(source)

Provides a configuration builder.

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

+
data class Builder(var userIp: String, var userAgent: String)(source)

Provides a configuration builder.

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

@@ -296,7 +296,7 @@
- +
@@ -510,7 +510,7 @@
-
fun postModifiedGmt(postModifiedGmt: String): <Error class: unknown class>

Sets the UTC timestamp of the publication time for the post, page or thread on which the comment was posted.

+

Sets the UTC timestamp of the publication time for the post, page or thread on which the comment was posted.

@@ -560,17 +560,17 @@ - +
- +
Link copied to clipboard
-

Sets a string that describes the type of content being sent, such as:

+

Sets a string that describes the type of content being sent, such as:

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html index 4cfd974..4a52c41 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html @@ -66,7 +66,7 @@

isTest

-

This is optional. You can set it when submitting test queries to Akismet.


+

This is optional. You can set it when submitting test queries to Akismet.


-

Sets the full permanent URL of the entry the comment was submitted to.


+

Sets the full permanent URL of the entry the comment was submitted to.


-
fun postModifiedGmt(postModifiedGmt: String): <Error class: unknown class>(source)

Sets the UTC timestamp of the publication time for the post, page or thread on which the comment was posted.

See also


+

Sets the UTC timestamp of the publication time for the post, page or thread on which the comment was posted.

See also


-

If you are sending content to Akismet to be rechecked, such as a post that has been edited or old pending comments that you'd like to recheck, include this parameter with a string describing why the content is being rechecked.

For example: edit


+

If you are sending content to Akismet to be rechecked, such as a post that has been edited or old pending comments that you'd like to recheck, include this parameter with a string describing why the content is being rechecked.

For example: edit


-

Sets the content of the referrer header.


+

Sets the content of the referrer header.


-

In PHP, there is an array of environmental variables called $_SERVER that contains information about the Web server itself as well as a key/value for every HTTP header sent with the request. This data is highly useful to Akismet.

How the submitted content interacts with the server can be very telling, so please include as much of it as possible.


+

In PHP, there is an array of environmental variables called $_SERVER that contains information about the Web server itself as well as a key/value for every HTTP header sent with the request. This data is highly useful to Akismet.

How the submitted content interacts with the server can be very telling, so please include as much of it as possible.


-
+

type

-

Sets a string that describes the type of content being sent, such as:

You may send a value not listed above if none of them accurately describe your content.

This is further explained here.


+

Sets a string that describes the type of content being sent, such as:

You may send a value not listed above if none of them accurately describe your content.

This is further explained here.


-

Sets the user agent string of the web browser submitting the comment.


Parameters

userAgent

User agent string of the web browser submitting the comment.

+

Sets the user agent string of the web browser submitting the comment.


Parameters

userAgent

User agent string of the web browser submitting the comment.

-

Sets the IP address of the comment submitter.


Parameters

userIp

IP address of the comment submitter.

+

Sets the IP address of the comment submitter.


Parameters

userIp

IP address of the comment submitter.

-

Set the user role of the user who submitted the comment. This is an optional parameter.

If you set it to ADMIN_ROLE, Akismet will always return false.


+

Set the user role of the user who submitted the comment. This is an optional parameter.

If you set it to ADMIN_ROLE, Akismet will always return false.


-
constructor(builder: CommentConfig.Builder)(source)


constructor(userIp: String, userAgent: String, referrer: String = "", permalink: String = "", type: String = "", author: String = "", authorEmail: String = "", authorUrl: String = "", content: String = "", dateGmt: String = "", postModifiedGmt: String = "", blogLang: String = "", blogCharset: String = "", userRole: String = "", isTest: Boolean = false, recheckReason: String = "", serverEnv: Map<String, String> = emptyMap())(source)

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

+
constructor(builder: CommentConfig.Builder)(source)


constructor(userIp: String, userAgent: String, referrer: String = "", permalink: String = "", type: CommentType = CommentType.NONE, author: String = "", authorEmail: String = "", authorUrl: String = "", content: String = "", dateGmt: String = "", postModifiedGmt: String = "", blogLang: String = "", blogCharset: String = "", userRole: String = "", isTest: Boolean = false, recheckReason: String = "", serverEnv: Map<String, String> = emptyMap())(source)

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

- + - + - + - + - + - + - +

CommentConfig

-
class CommentConfigĀ constructor(var userIp: String, var userAgent: String, var referrer: String = "", var permalink: String = "", var type: String = "", var author: String = "", var authorEmail: String = "", var authorUrl: String = "", var content: String = "", var dateGmt: String = "", var postModifiedGmt: String = "", var blogLang: String = "", var blogCharset: String = "", var userRole: String = "", var isTest: Boolean = false, var recheckReason: String = "", var serverEnv: Map<String, String> = emptyMap())(source)

Provides a comment configuration.

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

+
class CommentConfigĀ constructor(var userIp: String, var userAgent: String, var referrer: String = "", var permalink: String = "", var type: CommentType = CommentType.NONE, var author: String = "", var authorEmail: String = "", var authorUrl: String = "", var content: String = "", var dateGmt: String = "", var postModifiedGmt: String = "", var blogLang: String = "", var blogCharset: String = "", var userRole: String = "", var isTest: Boolean = false, var recheckReason: String = "", var serverEnv: Map<String, String> = emptyMap())(source)

Provides a comment configuration.

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

Constructors

-
+
- +
Link copied to clipboard
-
constructor(builder: CommentConfig.Builder)
constructor(userIp: String, userAgent: String, referrer: String = "", permalink: String = "", type: String = "", author: String = "", authorEmail: String = "", authorUrl: String = "", content: String = "", dateGmt: String = "", postModifiedGmt: String = "", blogLang: String = "", blogCharset: String = "", userRole: String = "", isTest: Boolean = false, recheckReason: String = "", serverEnv: Map<String, String> = emptyMap())
+
constructor(builder: CommentConfig.Builder)
constructor(userIp: String, userAgent: String, referrer: String = "", permalink: String = "", type: CommentType = CommentType.NONE, author: String = "", authorEmail: String = "", authorUrl: String = "", content: String = "", dateGmt: String = "", postModifiedGmt: String = "", blogLang: String = "", blogCharset: String = "", userRole: String = "", isTest: Boolean = false, recheckReason: String = "", serverEnv: Map<String, String> = emptyMap())
@@ -315,7 +315,7 @@
- +
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/is-test.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/is-test.html index 6268169..7d8a664 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/is-test.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/is-test.html @@ -66,7 +66,7 @@

isTest

- +
- +
- +
- +
- + - + - + -

Parameters

userAgent

User agent string of the web browser submitting the comment.

+

Parameters

userAgent

User agent string of the web browser submitting the comment.

-

Parameters

userIp

IP address of the comment submitter.

+

Parameters

userIp

IP address of the comment submitter.

- +
-
class CommentConfigĀ constructor(var userIp: String, var userAgent: String, var referrer: String = "", var permalink: String = "", var type: String = "", var author: String = "", var authorEmail: String = "", var authorUrl: String = "", var content: String = "", var dateGmt: String = "", var postModifiedGmt: String = "", var blogLang: String = "", var blogCharset: String = "", var userRole: String = "", var isTest: Boolean = false, var recheckReason: String = "", var serverEnv: Map<String, String> = emptyMap())

Provides a comment configuration.

+
class CommentConfigĀ constructor(var userIp: String, var userAgent: String, var referrer: String = "", var permalink: String = "", var type: CommentType = CommentType.NONE, var author: String = "", var authorEmail: String = "", var authorUrl: String = "", var content: String = "", var dateGmt: String = "", var postModifiedGmt: String = "", var blogLang: String = "", var blogCharset: String = "", var userRole: String = "", var isTest: Boolean = false, var recheckReason: String = "", var serverEnv: Map<String, String> = emptyMap())

Provides a comment configuration.

+
+
+ + + +
+
+
+ + +
Link copied to clipboard
+
+
+
+
data class CommentType(var value: String)

Defines the comment types.

diff --git a/docs/-akismet -kotlin/package-list b/docs/-akismet -kotlin/package-list index 28d612c..ab8ee51 100644 --- a/docs/-akismet -kotlin/package-list +++ b/docs/-akismet -kotlin/package-list @@ -26,16 +26,6 @@ $dokka.location:net.thauvin.erik.akismet/Akismet/submitSpam/#net.thauvin.erik.ak $dokka.location:net.thauvin.erik.akismet/Akismet/verifyKey/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html $dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion///PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html $dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/ADMIN_ROLE/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_BLOG_POST/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-b-l-o-g_-p-o-s-t.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_COMMENT/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-m-m-e-n-t.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_CONTACT_FORM/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_FORUM_POST/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_MESSAGE/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-m-e-s-s-a-g-e.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_PINGBACK/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_REPLY/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-r-e-p-l-y.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_SIGNUP/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-s-i-g-n-u-p.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_TRACKBACK/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-r-a-c-k-b-a-c-k.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_TWEET/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-w-e-e-t.html $dokka.location:net.thauvin.erik.akismet/AkismetComment///PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html $dokka.location:net.thauvin.erik.akismet/AkismetComment/AkismetComment/#[Error type: Unresolved type for HttpServletRequest]/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html $dokka.location:net.thauvin.erik.akismet/AkismetComment/AkismetComment/#kotlin.String#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html @@ -91,7 +81,7 @@ $dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/referrer/#kotlin. $dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/serverEnv/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html $dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/serverEnv/#kotlin.collections.Map[kotlin.String,kotlin.String]/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html $dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/type/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/type.html -$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/type/#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/type.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/type/#net.thauvin.erik.akismet.CommentType/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/type.html $dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/userAgent/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html $dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/userAgent/#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html $dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/userIp/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html @@ -99,7 +89,7 @@ $dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/userIp/#kotlin.St $dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/userRole/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html $dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/userRole/#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html $dokka.location:net.thauvin.erik.akismet/CommentConfig///PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/index.html -$dokka.location:net.thauvin.erik.akismet/CommentConfig/CommentConfig/#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.Boolean#kotlin.String#kotlin.collections.Map[kotlin.String,kotlin.String]/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/CommentConfig/#kotlin.String#kotlin.String#kotlin.String#kotlin.String#net.thauvin.erik.akismet.CommentType#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.Boolean#kotlin.String#kotlin.collections.Map[kotlin.String,kotlin.String]/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html $dokka.location:net.thauvin.erik.akismet/CommentConfig/CommentConfig/#net.thauvin.erik.akismet.CommentConfig.Builder/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html $dokka.location:net.thauvin.erik.akismet/CommentConfig/author/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author.html $dokka.location:net.thauvin.erik.akismet/CommentConfig/authorEmail/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-email.html @@ -118,5 +108,20 @@ $dokka.location:net.thauvin.erik.akismet/CommentConfig/type/#/PointingToDeclarat $dokka.location:net.thauvin.erik.akismet/CommentConfig/userAgent/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-agent.html $dokka.location:net.thauvin.erik.akismet/CommentConfig/userIp/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-ip.html $dokka.location:net.thauvin.erik.akismet/CommentConfig/userRole/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-role.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion///PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/index.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion/BLOG_POST/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-b-l-o-g_-p-o-s-t.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion/COMMENT/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-m-m-e-n-t.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion/CONTACT_FORM/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-n-t-a-c-t_-f-o-r-m.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion/FORUM_POST/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-f-o-r-u-m_-p-o-s-t.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion/MESSAGE/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-m-e-s-s-a-g-e.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion/NONE/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-n-o-n-e.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion/PINGBACK/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-p-i-n-g-b-a-c-k.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion/REPLY/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-r-e-p-l-y.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion/SIGNUP/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-s-i-g-n-u-p.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion/TRACKBACK/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-t-r-a-c-k-b-a-c-k.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion/TWEET/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-t-w-e-e-t.html +$dokka.location:net.thauvin.erik.akismet/CommentType///PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/index.html +$dokka.location:net.thauvin.erik.akismet/CommentType/CommentType/#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-comment-type.html +$dokka.location:net.thauvin.erik.akismet/CommentType/value/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/value.html net.thauvin.erik.akismet diff --git a/docs/navigation.html b/docs/navigation.html index 08fa7f2..8d2ea7d 100644 --- a/docs/navigation.html +++ b/docs/navigation.html @@ -20,6 +20,12 @@
+ diff --git a/docs/scripts/pages.json b/docs/scripts/pages.json index ed1cadd..ad171a4 100644 --- a/docs/scripts/pages.json +++ b/docs/scripts/pages.json @@ -1 +1 @@ -[{"name":"class CommentConfigĀ constructor(var userIp: String, var userAgent: String, var referrer: String = \"\", var permalink: String = \"\", var type: String = \"\", var author: String = \"\", var authorEmail: String = \"\", var authorUrl: String = \"\", var content: String = \"\", var dateGmt: String = \"\", var postModifiedGmt: String = \"\", var blogLang: String = \"\", var blogCharset: String = \"\", var userRole: String = \"\", var isTest: Boolean = false, var recheckReason: String = \"\", var serverEnv: Map = emptyMap())","description":"net.thauvin.erik.akismet.CommentConfig","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/index.html","searchKeys":["CommentConfig","class CommentConfigĀ constructor(var userIp: String, var userAgent: String, var referrer: String = \"\", var permalink: String = \"\", var type: String = \"\", var author: String = \"\", var authorEmail: String = \"\", var authorUrl: String = \"\", var content: String = \"\", var dateGmt: String = \"\", var postModifiedGmt: String = \"\", var blogLang: String = \"\", var blogCharset: String = \"\", var userRole: String = \"\", var isTest: Boolean = false, var recheckReason: String = \"\", var serverEnv: Map = emptyMap())","net.thauvin.erik.akismet.CommentConfig"]},{"name":"const val ADMIN_ROLE: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.ADMIN_ROLE","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html","searchKeys":["ADMIN_ROLE","const val ADMIN_ROLE: String","net.thauvin.erik.akismet.AkismetComment.Companion.ADMIN_ROLE"]},{"name":"const val TYPE_BLOG_POST: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_BLOG_POST","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-b-l-o-g_-p-o-s-t.html","searchKeys":["TYPE_BLOG_POST","const val TYPE_BLOG_POST: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_BLOG_POST"]},{"name":"const val TYPE_COMMENT: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_COMMENT","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-m-m-e-n-t.html","searchKeys":["TYPE_COMMENT","const val TYPE_COMMENT: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_COMMENT"]},{"name":"const val TYPE_CONTACT_FORM: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_CONTACT_FORM","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html","searchKeys":["TYPE_CONTACT_FORM","const val TYPE_CONTACT_FORM: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_CONTACT_FORM"]},{"name":"const val TYPE_FORUM_POST: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_FORUM_POST","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html","searchKeys":["TYPE_FORUM_POST","const val TYPE_FORUM_POST: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_FORUM_POST"]},{"name":"const val TYPE_MESSAGE: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_MESSAGE","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-m-e-s-s-a-g-e.html","searchKeys":["TYPE_MESSAGE","const val TYPE_MESSAGE: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_MESSAGE"]},{"name":"const val TYPE_PINGBACK: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_PINGBACK","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html","searchKeys":["TYPE_PINGBACK","const val TYPE_PINGBACK: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_PINGBACK"]},{"name":"const val TYPE_REPLY: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_REPLY","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-r-e-p-l-y.html","searchKeys":["TYPE_REPLY","const val TYPE_REPLY: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_REPLY"]},{"name":"const val TYPE_SIGNUP: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_SIGNUP","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-s-i-g-n-u-p.html","searchKeys":["TYPE_SIGNUP","const val TYPE_SIGNUP: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_SIGNUP"]},{"name":"const val TYPE_TRACKBACK: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_TRACKBACK","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-r-a-c-k-b-a-c-k.html","searchKeys":["TYPE_TRACKBACK","const val TYPE_TRACKBACK: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_TRACKBACK"]},{"name":"const val TYPE_TWEET: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_TWEET","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-w-e-e-t.html","searchKeys":["TYPE_TWEET","const val TYPE_TWEET: String","net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_TWEET"]},{"name":"constructor(apiKey: String)","description":"net.thauvin.erik.akismet.Akismet.Akismet","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html","searchKeys":["Akismet","constructor(apiKey: String)","net.thauvin.erik.akismet.Akismet.Akismet"]},{"name":"constructor(apiKey: String, blog: String)","description":"net.thauvin.erik.akismet.Akismet.Akismet","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html","searchKeys":["Akismet","constructor(apiKey: String, blog: String)","net.thauvin.erik.akismet.Akismet.Akismet"]},{"name":"constructor(builder: CommentConfig.Builder)","description":"net.thauvin.erik.akismet.CommentConfig.CommentConfig","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html","searchKeys":["CommentConfig","constructor(builder: CommentConfig.Builder)","net.thauvin.erik.akismet.CommentConfig.CommentConfig"]},{"name":"constructor(config: CommentConfig)","description":"net.thauvin.erik.akismet.AkismetComment.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html","searchKeys":["AkismetComment","constructor(config: CommentConfig)","net.thauvin.erik.akismet.AkismetComment.AkismetComment"]},{"name":"constructor(request: )","description":"net.thauvin.erik.akismet.AkismetComment.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html","searchKeys":["AkismetComment","constructor(request: )","net.thauvin.erik.akismet.AkismetComment.AkismetComment"]},{"name":"constructor(userIp: String, userAgent: String)","description":"net.thauvin.erik.akismet.AkismetComment.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html","searchKeys":["AkismetComment","constructor(userIp: String, userAgent: String)","net.thauvin.erik.akismet.AkismetComment.AkismetComment"]},{"name":"constructor(userIp: String, userAgent: String)","description":"net.thauvin.erik.akismet.CommentConfig.Builder.Builder","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/-builder.html","searchKeys":["Builder","constructor(userIp: String, userAgent: String)","net.thauvin.erik.akismet.CommentConfig.Builder.Builder"]},{"name":"constructor(userIp: String, userAgent: String, referrer: String = \"\", permalink: String = \"\", type: String = \"\", author: String = \"\", authorEmail: String = \"\", authorUrl: String = \"\", content: String = \"\", dateGmt: String = \"\", postModifiedGmt: String = \"\", blogLang: String = \"\", blogCharset: String = \"\", userRole: String = \"\", isTest: Boolean = false, recheckReason: String = \"\", serverEnv: Map = emptyMap())","description":"net.thauvin.erik.akismet.CommentConfig.CommentConfig","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html","searchKeys":["CommentConfig","constructor(userIp: String, userAgent: String, referrer: String = \"\", permalink: String = \"\", type: String = \"\", author: String = \"\", authorEmail: String = \"\", authorUrl: String = \"\", content: String = \"\", dateGmt: String = \"\", postModifiedGmt: String = \"\", blogLang: String = \"\", blogCharset: String = \"\", userRole: String = \"\", isTest: Boolean = false, recheckReason: String = \"\", serverEnv: Map = emptyMap())","net.thauvin.erik.akismet.CommentConfig.CommentConfig"]},{"name":"data class Builder(var userIp: String, var userAgent: String)","description":"net.thauvin.erik.akismet.CommentConfig.Builder","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/index.html","searchKeys":["Builder","data class Builder(var userIp: String, var userAgent: String)","net.thauvin.erik.akismet.CommentConfig.Builder"]},{"name":"fun author(author: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.author","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author.html","searchKeys":["author","fun author(author: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.author"]},{"name":"fun authorEmail(authorEmail: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.authorEmail","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html","searchKeys":["authorEmail","fun authorEmail(authorEmail: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.authorEmail"]},{"name":"fun authorUrl(authorUrl: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.authorUrl","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html","searchKeys":["authorUrl","fun authorUrl(authorUrl: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.authorUrl"]},{"name":"fun blogCharset(blogCharset: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.blogCharset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html","searchKeys":["blogCharset","fun blogCharset(blogCharset: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.blogCharset"]},{"name":"fun blogLang(blogLang: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.blogLang","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html","searchKeys":["blogLang","fun blogLang(blogLang: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.blogLang"]},{"name":"fun build(): CommentConfig","description":"net.thauvin.erik.akismet.CommentConfig.Builder.build","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/build.html","searchKeys":["build","fun build(): CommentConfig","net.thauvin.erik.akismet.CommentConfig.Builder.build"]},{"name":"fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean","description":"net.thauvin.erik.akismet.Akismet.checkComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html","searchKeys":["checkComment","fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean","net.thauvin.erik.akismet.Akismet.checkComment"]},{"name":"fun content(content: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.content","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/content.html","searchKeys":["content","fun content(content: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.content"]},{"name":"fun dateGmt(dateGmt: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.dateGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html","searchKeys":["dateGmt","fun dateGmt(dateGmt: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.dateGmt"]},{"name":"fun dateToGmt(date: Date): String","description":"net.thauvin.erik.akismet.Akismet.Companion.dateToGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html","searchKeys":["dateToGmt","fun dateToGmt(date: Date): String","net.thauvin.erik.akismet.Akismet.Companion.dateToGmt"]},{"name":"fun dateToGmt(date: LocalDateTime): String","description":"net.thauvin.erik.akismet.Akismet.Companion.dateToGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html","searchKeys":["dateToGmt","fun dateToGmt(date: LocalDateTime): String","net.thauvin.erik.akismet.Akismet.Companion.dateToGmt"]},{"name":"fun executeMethod(apiUrl: , formBody: , trueOnError: Boolean = false): Boolean","description":"net.thauvin.erik.akismet.Akismet.executeMethod","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html","searchKeys":["executeMethod","fun executeMethod(apiUrl: , formBody: , trueOnError: Boolean = false): Boolean","net.thauvin.erik.akismet.Akismet.executeMethod"]},{"name":"fun isTest(isTest: Boolean): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.isTest","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html","searchKeys":["isTest","fun isTest(isTest: Boolean): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.isTest"]},{"name":"fun jsonComment(json: String): AkismetComment","description":"net.thauvin.erik.akismet.Akismet.Companion.jsonComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html","searchKeys":["jsonComment","fun jsonComment(json: String): AkismetComment","net.thauvin.erik.akismet.Akismet.Companion.jsonComment"]},{"name":"fun permalink(permalink: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.permalink","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html","searchKeys":["permalink","fun permalink(permalink: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.permalink"]},{"name":"fun postModifiedGmt(postModifiedGmt: String): ","description":"net.thauvin.erik.akismet.CommentConfig.Builder.postModifiedGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html","searchKeys":["postModifiedGmt","fun postModifiedGmt(postModifiedGmt: String): ","net.thauvin.erik.akismet.CommentConfig.Builder.postModifiedGmt"]},{"name":"fun recheckReason(checkReason: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.recheckReason","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html","searchKeys":["recheckReason","fun recheckReason(checkReason: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.recheckReason"]},{"name":"fun referrer(referrer: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.referrer","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html","searchKeys":["referrer","fun referrer(referrer: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.referrer"]},{"name":"fun reset()","description":"net.thauvin.erik.akismet.Akismet.reset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/reset.html","searchKeys":["reset","fun reset()","net.thauvin.erik.akismet.Akismet.reset"]},{"name":"fun serverEnv(serverEnv: Map): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.serverEnv","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html","searchKeys":["serverEnv","fun serverEnv(serverEnv: Map): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.serverEnv"]},{"name":"fun submitHam(comment: AkismetComment): Boolean","description":"net.thauvin.erik.akismet.Akismet.submitHam","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-ham.html","searchKeys":["submitHam","fun submitHam(comment: AkismetComment): Boolean","net.thauvin.erik.akismet.Akismet.submitHam"]},{"name":"fun submitSpam(comment: AkismetComment): Boolean","description":"net.thauvin.erik.akismet.Akismet.submitSpam","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-spam.html","searchKeys":["submitSpam","fun submitSpam(comment: AkismetComment): Boolean","net.thauvin.erik.akismet.Akismet.submitSpam"]},{"name":"fun toJson(): String","description":"net.thauvin.erik.akismet.AkismetComment.toJson","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-json.html","searchKeys":["toJson","fun toJson(): String","net.thauvin.erik.akismet.AkismetComment.toJson"]},{"name":"fun type(type: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.type","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/type.html","searchKeys":["type","fun type(type: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.type"]},{"name":"fun userAgent(userAgent: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html","searchKeys":["userAgent","fun userAgent(userAgent: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.userAgent"]},{"name":"fun userIp(userIp: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userIp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html","searchKeys":["userIp","fun userIp(userIp: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.userIp"]},{"name":"fun userRole(userRole: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userRole","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html","searchKeys":["userRole","fun userRole(userRole: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.userRole"]},{"name":"fun verifyKey(): Boolean","description":"net.thauvin.erik.akismet.Akismet.verifyKey","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html","searchKeys":["verifyKey","fun verifyKey(): Boolean","net.thauvin.erik.akismet.Akismet.verifyKey"]},{"name":"object Companion","description":"net.thauvin.erik.akismet.Akismet.Companion","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/index.html","searchKeys":["Companion","object Companion","net.thauvin.erik.akismet.Akismet.Companion"]},{"name":"object Companion","description":"net.thauvin.erik.akismet.AkismetComment.Companion","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html","searchKeys":["Companion","object Companion","net.thauvin.erik.akismet.AkismetComment.Companion"]},{"name":"open class Akismet(apiKey: String)","description":"net.thauvin.erik.akismet.Akismet","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/index.html","searchKeys":["Akismet","open class Akismet(apiKey: String)","net.thauvin.erik.akismet.Akismet"]},{"name":"open class AkismetComment(val userIp: String, val userAgent: String)","description":"net.thauvin.erik.akismet.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html","searchKeys":["AkismetComment","open class AkismetComment(val userIp: String, val userAgent: String)","net.thauvin.erik.akismet.AkismetComment"]},{"name":"open operator override fun equals(other: Any?): Boolean","description":"net.thauvin.erik.akismet.AkismetComment.equals","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/equals.html","searchKeys":["equals","open operator override fun equals(other: Any?): Boolean","net.thauvin.erik.akismet.AkismetComment.equals"]},{"name":"open override fun hashCode(): Int","description":"net.thauvin.erik.akismet.AkismetComment.hashCode","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/hash-code.html","searchKeys":["hashCode","open override fun hashCode(): Int","net.thauvin.erik.akismet.AkismetComment.hashCode"]},{"name":"open override fun toString(): String","description":"net.thauvin.erik.akismet.AkismetComment.toString","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-string.html","searchKeys":["toString","open override fun toString(): String","net.thauvin.erik.akismet.AkismetComment.toString"]},{"name":"val logger: Logger","description":"net.thauvin.erik.akismet.Akismet.logger","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/logger.html","searchKeys":["logger","val logger: Logger","net.thauvin.erik.akismet.Akismet.logger"]},{"name":"val userAgent: String","description":"net.thauvin.erik.akismet.AkismetComment.userAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html","searchKeys":["userAgent","val userAgent: String","net.thauvin.erik.akismet.AkismetComment.userAgent"]},{"name":"val userIp: String","description":"net.thauvin.erik.akismet.AkismetComment.userIp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html","searchKeys":["userIp","val userIp: String","net.thauvin.erik.akismet.AkismetComment.userIp"]},{"name":"var appUserAgent: String","description":"net.thauvin.erik.akismet.Akismet.appUserAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/app-user-agent.html","searchKeys":["appUserAgent","var appUserAgent: String","net.thauvin.erik.akismet.Akismet.appUserAgent"]},{"name":"var author: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.author","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author.html","searchKeys":["author","var author: String","net.thauvin.erik.akismet.CommentConfig.Builder.author"]},{"name":"var author: String","description":"net.thauvin.erik.akismet.CommentConfig.author","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author.html","searchKeys":["author","var author: String","net.thauvin.erik.akismet.CommentConfig.author"]},{"name":"var author: String?","description":"net.thauvin.erik.akismet.AkismetComment.author","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html","searchKeys":["author","var author: String?","net.thauvin.erik.akismet.AkismetComment.author"]},{"name":"var authorEmail: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.authorEmail","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html","searchKeys":["authorEmail","var authorEmail: String","net.thauvin.erik.akismet.CommentConfig.Builder.authorEmail"]},{"name":"var authorEmail: String","description":"net.thauvin.erik.akismet.CommentConfig.authorEmail","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-email.html","searchKeys":["authorEmail","var authorEmail: String","net.thauvin.erik.akismet.CommentConfig.authorEmail"]},{"name":"var authorEmail: String?","description":"net.thauvin.erik.akismet.AkismetComment.authorEmail","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html","searchKeys":["authorEmail","var authorEmail: String?","net.thauvin.erik.akismet.AkismetComment.authorEmail"]},{"name":"var authorUrl: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.authorUrl","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html","searchKeys":["authorUrl","var authorUrl: String","net.thauvin.erik.akismet.CommentConfig.Builder.authorUrl"]},{"name":"var authorUrl: String","description":"net.thauvin.erik.akismet.CommentConfig.authorUrl","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-url.html","searchKeys":["authorUrl","var authorUrl: String","net.thauvin.erik.akismet.CommentConfig.authorUrl"]},{"name":"var authorUrl: String?","description":"net.thauvin.erik.akismet.AkismetComment.authorUrl","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html","searchKeys":["authorUrl","var authorUrl: String?","net.thauvin.erik.akismet.AkismetComment.authorUrl"]},{"name":"var blog: String","description":"net.thauvin.erik.akismet.Akismet.blog","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/blog.html","searchKeys":["blog","var blog: String","net.thauvin.erik.akismet.Akismet.blog"]},{"name":"var blogCharset: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.blogCharset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html","searchKeys":["blogCharset","var blogCharset: String","net.thauvin.erik.akismet.CommentConfig.Builder.blogCharset"]},{"name":"var blogCharset: String","description":"net.thauvin.erik.akismet.CommentConfig.blogCharset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-charset.html","searchKeys":["blogCharset","var blogCharset: String","net.thauvin.erik.akismet.CommentConfig.blogCharset"]},{"name":"var blogCharset: String?","description":"net.thauvin.erik.akismet.AkismetComment.blogCharset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html","searchKeys":["blogCharset","var blogCharset: String?","net.thauvin.erik.akismet.AkismetComment.blogCharset"]},{"name":"var blogLang: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.blogLang","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html","searchKeys":["blogLang","var blogLang: String","net.thauvin.erik.akismet.CommentConfig.Builder.blogLang"]},{"name":"var blogLang: String","description":"net.thauvin.erik.akismet.CommentConfig.blogLang","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-lang.html","searchKeys":["blogLang","var blogLang: String","net.thauvin.erik.akismet.CommentConfig.blogLang"]},{"name":"var blogLang: String?","description":"net.thauvin.erik.akismet.AkismetComment.blogLang","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html","searchKeys":["blogLang","var blogLang: String?","net.thauvin.erik.akismet.AkismetComment.blogLang"]},{"name":"var content: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.content","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/content.html","searchKeys":["content","var content: String","net.thauvin.erik.akismet.CommentConfig.Builder.content"]},{"name":"var content: String","description":"net.thauvin.erik.akismet.CommentConfig.content","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/content.html","searchKeys":["content","var content: String","net.thauvin.erik.akismet.CommentConfig.content"]},{"name":"var content: String?","description":"net.thauvin.erik.akismet.AkismetComment.content","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/content.html","searchKeys":["content","var content: String?","net.thauvin.erik.akismet.AkismetComment.content"]},{"name":"var dateGmt: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.dateGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html","searchKeys":["dateGmt","var dateGmt: String","net.thauvin.erik.akismet.CommentConfig.Builder.dateGmt"]},{"name":"var dateGmt: String","description":"net.thauvin.erik.akismet.CommentConfig.dateGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/date-gmt.html","searchKeys":["dateGmt","var dateGmt: String","net.thauvin.erik.akismet.CommentConfig.dateGmt"]},{"name":"var dateGmt: String?","description":"net.thauvin.erik.akismet.AkismetComment.dateGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html","searchKeys":["dateGmt","var dateGmt: String?","net.thauvin.erik.akismet.AkismetComment.dateGmt"]},{"name":"var debugHelp: String","description":"net.thauvin.erik.akismet.Akismet.debugHelp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html","searchKeys":["debugHelp","var debugHelp: String","net.thauvin.erik.akismet.Akismet.debugHelp"]},{"name":"var errorMessage: String","description":"net.thauvin.erik.akismet.Akismet.errorMessage","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/error-message.html","searchKeys":["errorMessage","var errorMessage: String","net.thauvin.erik.akismet.Akismet.errorMessage"]},{"name":"var httpStatusCode: Int","description":"net.thauvin.erik.akismet.Akismet.httpStatusCode","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html","searchKeys":["httpStatusCode","var httpStatusCode: Int","net.thauvin.erik.akismet.Akismet.httpStatusCode"]},{"name":"var isDiscard: Boolean","description":"net.thauvin.erik.akismet.Akismet.isDiscard","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html","searchKeys":["isDiscard","var isDiscard: Boolean","net.thauvin.erik.akismet.Akismet.isDiscard"]},{"name":"var isTest: Boolean","description":"net.thauvin.erik.akismet.AkismetComment.isTest","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html","searchKeys":["isTest","var isTest: Boolean","net.thauvin.erik.akismet.AkismetComment.isTest"]},{"name":"var isTest: Boolean","description":"net.thauvin.erik.akismet.CommentConfig.Builder.isTest","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html","searchKeys":["isTest","var isTest: Boolean","net.thauvin.erik.akismet.CommentConfig.Builder.isTest"]},{"name":"var isTest: Boolean","description":"net.thauvin.erik.akismet.CommentConfig.isTest","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/is-test.html","searchKeys":["isTest","var isTest: Boolean","net.thauvin.erik.akismet.CommentConfig.isTest"]},{"name":"var isVerifiedKey: Boolean","description":"net.thauvin.erik.akismet.Akismet.isVerifiedKey","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html","searchKeys":["isVerifiedKey","var isVerifiedKey: Boolean","net.thauvin.erik.akismet.Akismet.isVerifiedKey"]},{"name":"var permalink: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.permalink","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html","searchKeys":["permalink","var permalink: String","net.thauvin.erik.akismet.CommentConfig.Builder.permalink"]},{"name":"var permalink: String","description":"net.thauvin.erik.akismet.CommentConfig.permalink","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/permalink.html","searchKeys":["permalink","var permalink: String","net.thauvin.erik.akismet.CommentConfig.permalink"]},{"name":"var permalink: String?","description":"net.thauvin.erik.akismet.AkismetComment.permalink","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/permalink.html","searchKeys":["permalink","var permalink: String?","net.thauvin.erik.akismet.AkismetComment.permalink"]},{"name":"var postModifiedGmt: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.postModifiedGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html","searchKeys":["postModifiedGmt","var postModifiedGmt: String","net.thauvin.erik.akismet.CommentConfig.Builder.postModifiedGmt"]},{"name":"var postModifiedGmt: String","description":"net.thauvin.erik.akismet.CommentConfig.postModifiedGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/post-modified-gmt.html","searchKeys":["postModifiedGmt","var postModifiedGmt: String","net.thauvin.erik.akismet.CommentConfig.postModifiedGmt"]},{"name":"var postModifiedGmt: String?","description":"net.thauvin.erik.akismet.AkismetComment.postModifiedGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html","searchKeys":["postModifiedGmt","var postModifiedGmt: String?","net.thauvin.erik.akismet.AkismetComment.postModifiedGmt"]},{"name":"var proTip: String","description":"net.thauvin.erik.akismet.Akismet.proTip","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html","searchKeys":["proTip","var proTip: String","net.thauvin.erik.akismet.Akismet.proTip"]},{"name":"var recheckReason: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.recheckReason","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html","searchKeys":["recheckReason","var recheckReason: String","net.thauvin.erik.akismet.CommentConfig.Builder.recheckReason"]},{"name":"var recheckReason: String","description":"net.thauvin.erik.akismet.CommentConfig.recheckReason","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/recheck-reason.html","searchKeys":["recheckReason","var recheckReason: String","net.thauvin.erik.akismet.CommentConfig.recheckReason"]},{"name":"var recheckReason: String?","description":"net.thauvin.erik.akismet.AkismetComment.recheckReason","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html","searchKeys":["recheckReason","var recheckReason: String?","net.thauvin.erik.akismet.AkismetComment.recheckReason"]},{"name":"var referrer: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.referrer","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html","searchKeys":["referrer","var referrer: String","net.thauvin.erik.akismet.CommentConfig.Builder.referrer"]},{"name":"var referrer: String","description":"net.thauvin.erik.akismet.CommentConfig.referrer","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/referrer.html","searchKeys":["referrer","var referrer: String","net.thauvin.erik.akismet.CommentConfig.referrer"]},{"name":"var referrer: String?","description":"net.thauvin.erik.akismet.AkismetComment.referrer","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/referrer.html","searchKeys":["referrer","var referrer: String?","net.thauvin.erik.akismet.AkismetComment.referrer"]},{"name":"var response: String","description":"net.thauvin.erik.akismet.Akismet.response","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/response.html","searchKeys":["response","var response: String","net.thauvin.erik.akismet.Akismet.response"]},{"name":"var serverEnv: Map","description":"net.thauvin.erik.akismet.AkismetComment.serverEnv","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/server-env.html","searchKeys":["serverEnv","var serverEnv: Map","net.thauvin.erik.akismet.AkismetComment.serverEnv"]},{"name":"var serverEnv: Map","description":"net.thauvin.erik.akismet.CommentConfig.Builder.serverEnv","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html","searchKeys":["serverEnv","var serverEnv: Map","net.thauvin.erik.akismet.CommentConfig.Builder.serverEnv"]},{"name":"var serverEnv: Map","description":"net.thauvin.erik.akismet.CommentConfig.serverEnv","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/server-env.html","searchKeys":["serverEnv","var serverEnv: Map","net.thauvin.erik.akismet.CommentConfig.serverEnv"]},{"name":"var type: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.type","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/type.html","searchKeys":["type","var type: String","net.thauvin.erik.akismet.CommentConfig.Builder.type"]},{"name":"var type: String","description":"net.thauvin.erik.akismet.CommentConfig.type","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/type.html","searchKeys":["type","var type: String","net.thauvin.erik.akismet.CommentConfig.type"]},{"name":"var type: String?","description":"net.thauvin.erik.akismet.AkismetComment.type","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/type.html","searchKeys":["type","var type: String?","net.thauvin.erik.akismet.AkismetComment.type"]},{"name":"var userAgent: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html","searchKeys":["userAgent","var userAgent: String","net.thauvin.erik.akismet.CommentConfig.Builder.userAgent"]},{"name":"var userAgent: String","description":"net.thauvin.erik.akismet.CommentConfig.userAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-agent.html","searchKeys":["userAgent","var userAgent: String","net.thauvin.erik.akismet.CommentConfig.userAgent"]},{"name":"var userIp: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userIp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html","searchKeys":["userIp","var userIp: String","net.thauvin.erik.akismet.CommentConfig.Builder.userIp"]},{"name":"var userIp: String","description":"net.thauvin.erik.akismet.CommentConfig.userIp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-ip.html","searchKeys":["userIp","var userIp: String","net.thauvin.erik.akismet.CommentConfig.userIp"]},{"name":"var userRole: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userRole","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html","searchKeys":["userRole","var userRole: String","net.thauvin.erik.akismet.CommentConfig.Builder.userRole"]},{"name":"var userRole: String","description":"net.thauvin.erik.akismet.CommentConfig.userRole","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-role.html","searchKeys":["userRole","var userRole: String","net.thauvin.erik.akismet.CommentConfig.userRole"]},{"name":"var userRole: String?","description":"net.thauvin.erik.akismet.AkismetComment.userRole","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html","searchKeys":["userRole","var userRole: String?","net.thauvin.erik.akismet.AkismetComment.userRole"]}] +[{"name":"class CommentConfigĀ constructor(var userIp: String, var userAgent: String, var referrer: String = \"\", var permalink: String = \"\", var type: CommentType = CommentType.NONE, var author: String = \"\", var authorEmail: String = \"\", var authorUrl: String = \"\", var content: String = \"\", var dateGmt: String = \"\", var postModifiedGmt: String = \"\", var blogLang: String = \"\", var blogCharset: String = \"\", var userRole: String = \"\", var isTest: Boolean = false, var recheckReason: String = \"\", var serverEnv: Map = emptyMap())","description":"net.thauvin.erik.akismet.CommentConfig","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/index.html","searchKeys":["CommentConfig","class CommentConfigĀ constructor(var userIp: String, var userAgent: String, var referrer: String = \"\", var permalink: String = \"\", var type: CommentType = CommentType.NONE, var author: String = \"\", var authorEmail: String = \"\", var authorUrl: String = \"\", var content: String = \"\", var dateGmt: String = \"\", var postModifiedGmt: String = \"\", var blogLang: String = \"\", var blogCharset: String = \"\", var userRole: String = \"\", var isTest: Boolean = false, var recheckReason: String = \"\", var serverEnv: Map = emptyMap())","net.thauvin.erik.akismet.CommentConfig"]},{"name":"const val ADMIN_ROLE: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.ADMIN_ROLE","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html","searchKeys":["ADMIN_ROLE","const val ADMIN_ROLE: String","net.thauvin.erik.akismet.AkismetComment.Companion.ADMIN_ROLE"]},{"name":"constructor(apiKey: String)","description":"net.thauvin.erik.akismet.Akismet.Akismet","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html","searchKeys":["Akismet","constructor(apiKey: String)","net.thauvin.erik.akismet.Akismet.Akismet"]},{"name":"constructor(apiKey: String, blog: String)","description":"net.thauvin.erik.akismet.Akismet.Akismet","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html","searchKeys":["Akismet","constructor(apiKey: String, blog: String)","net.thauvin.erik.akismet.Akismet.Akismet"]},{"name":"constructor(builder: CommentConfig.Builder)","description":"net.thauvin.erik.akismet.CommentConfig.CommentConfig","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html","searchKeys":["CommentConfig","constructor(builder: CommentConfig.Builder)","net.thauvin.erik.akismet.CommentConfig.CommentConfig"]},{"name":"constructor(config: CommentConfig)","description":"net.thauvin.erik.akismet.AkismetComment.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html","searchKeys":["AkismetComment","constructor(config: CommentConfig)","net.thauvin.erik.akismet.AkismetComment.AkismetComment"]},{"name":"constructor(request: )","description":"net.thauvin.erik.akismet.AkismetComment.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html","searchKeys":["AkismetComment","constructor(request: )","net.thauvin.erik.akismet.AkismetComment.AkismetComment"]},{"name":"constructor(userIp: String, userAgent: String)","description":"net.thauvin.erik.akismet.AkismetComment.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html","searchKeys":["AkismetComment","constructor(userIp: String, userAgent: String)","net.thauvin.erik.akismet.AkismetComment.AkismetComment"]},{"name":"constructor(userIp: String, userAgent: String)","description":"net.thauvin.erik.akismet.CommentConfig.Builder.Builder","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/-builder.html","searchKeys":["Builder","constructor(userIp: String, userAgent: String)","net.thauvin.erik.akismet.CommentConfig.Builder.Builder"]},{"name":"constructor(userIp: String, userAgent: String, referrer: String = \"\", permalink: String = \"\", type: CommentType = CommentType.NONE, author: String = \"\", authorEmail: String = \"\", authorUrl: String = \"\", content: String = \"\", dateGmt: String = \"\", postModifiedGmt: String = \"\", blogLang: String = \"\", blogCharset: String = \"\", userRole: String = \"\", isTest: Boolean = false, recheckReason: String = \"\", serverEnv: Map = emptyMap())","description":"net.thauvin.erik.akismet.CommentConfig.CommentConfig","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html","searchKeys":["CommentConfig","constructor(userIp: String, userAgent: String, referrer: String = \"\", permalink: String = \"\", type: CommentType = CommentType.NONE, author: String = \"\", authorEmail: String = \"\", authorUrl: String = \"\", content: String = \"\", dateGmt: String = \"\", postModifiedGmt: String = \"\", blogLang: String = \"\", blogCharset: String = \"\", userRole: String = \"\", isTest: Boolean = false, recheckReason: String = \"\", serverEnv: Map = emptyMap())","net.thauvin.erik.akismet.CommentConfig.CommentConfig"]},{"name":"constructor(value: String)","description":"net.thauvin.erik.akismet.CommentType.CommentType","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-comment-type.html","searchKeys":["CommentType","constructor(value: String)","net.thauvin.erik.akismet.CommentType.CommentType"]},{"name":"data class Builder(var userIp: String, var userAgent: String)","description":"net.thauvin.erik.akismet.CommentConfig.Builder","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/index.html","searchKeys":["Builder","data class Builder(var userIp: String, var userAgent: String)","net.thauvin.erik.akismet.CommentConfig.Builder"]},{"name":"data class CommentType(var value: String)","description":"net.thauvin.erik.akismet.CommentType","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/index.html","searchKeys":["CommentType","data class CommentType(var value: String)","net.thauvin.erik.akismet.CommentType"]},{"name":"fun author(author: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.author","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author.html","searchKeys":["author","fun author(author: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.author"]},{"name":"fun authorEmail(authorEmail: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.authorEmail","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html","searchKeys":["authorEmail","fun authorEmail(authorEmail: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.authorEmail"]},{"name":"fun authorUrl(authorUrl: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.authorUrl","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html","searchKeys":["authorUrl","fun authorUrl(authorUrl: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.authorUrl"]},{"name":"fun blogCharset(blogCharset: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.blogCharset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html","searchKeys":["blogCharset","fun blogCharset(blogCharset: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.blogCharset"]},{"name":"fun blogLang(blogLang: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.blogLang","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html","searchKeys":["blogLang","fun blogLang(blogLang: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.blogLang"]},{"name":"fun build(): CommentConfig","description":"net.thauvin.erik.akismet.CommentConfig.Builder.build","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/build.html","searchKeys":["build","fun build(): CommentConfig","net.thauvin.erik.akismet.CommentConfig.Builder.build"]},{"name":"fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean","description":"net.thauvin.erik.akismet.Akismet.checkComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html","searchKeys":["checkComment","fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean","net.thauvin.erik.akismet.Akismet.checkComment"]},{"name":"fun content(content: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.content","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/content.html","searchKeys":["content","fun content(content: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.content"]},{"name":"fun dateGmt(dateGmt: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.dateGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html","searchKeys":["dateGmt","fun dateGmt(dateGmt: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.dateGmt"]},{"name":"fun dateToGmt(date: Date): String","description":"net.thauvin.erik.akismet.Akismet.Companion.dateToGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html","searchKeys":["dateToGmt","fun dateToGmt(date: Date): String","net.thauvin.erik.akismet.Akismet.Companion.dateToGmt"]},{"name":"fun dateToGmt(date: LocalDateTime): String","description":"net.thauvin.erik.akismet.Akismet.Companion.dateToGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html","searchKeys":["dateToGmt","fun dateToGmt(date: LocalDateTime): String","net.thauvin.erik.akismet.Akismet.Companion.dateToGmt"]},{"name":"fun executeMethod(apiUrl: , formBody: , trueOnError: Boolean = false): Boolean","description":"net.thauvin.erik.akismet.Akismet.executeMethod","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html","searchKeys":["executeMethod","fun executeMethod(apiUrl: , formBody: , trueOnError: Boolean = false): Boolean","net.thauvin.erik.akismet.Akismet.executeMethod"]},{"name":"fun isTest(isTest: Boolean): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.isTest","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html","searchKeys":["isTest","fun isTest(isTest: Boolean): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.isTest"]},{"name":"fun jsonComment(json: String): AkismetComment","description":"net.thauvin.erik.akismet.Akismet.Companion.jsonComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html","searchKeys":["jsonComment","fun jsonComment(json: String): AkismetComment","net.thauvin.erik.akismet.Akismet.Companion.jsonComment"]},{"name":"fun permalink(permalink: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.permalink","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html","searchKeys":["permalink","fun permalink(permalink: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.permalink"]},{"name":"fun postModifiedGmt(postModifiedGmt: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.postModifiedGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html","searchKeys":["postModifiedGmt","fun postModifiedGmt(postModifiedGmt: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.postModifiedGmt"]},{"name":"fun recheckReason(checkReason: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.recheckReason","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html","searchKeys":["recheckReason","fun recheckReason(checkReason: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.recheckReason"]},{"name":"fun referrer(referrer: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.referrer","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html","searchKeys":["referrer","fun referrer(referrer: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.referrer"]},{"name":"fun reset()","description":"net.thauvin.erik.akismet.Akismet.reset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/reset.html","searchKeys":["reset","fun reset()","net.thauvin.erik.akismet.Akismet.reset"]},{"name":"fun serverEnv(serverEnv: Map): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.serverEnv","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html","searchKeys":["serverEnv","fun serverEnv(serverEnv: Map): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.serverEnv"]},{"name":"fun submitHam(comment: AkismetComment): Boolean","description":"net.thauvin.erik.akismet.Akismet.submitHam","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-ham.html","searchKeys":["submitHam","fun submitHam(comment: AkismetComment): Boolean","net.thauvin.erik.akismet.Akismet.submitHam"]},{"name":"fun submitSpam(comment: AkismetComment): Boolean","description":"net.thauvin.erik.akismet.Akismet.submitSpam","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-spam.html","searchKeys":["submitSpam","fun submitSpam(comment: AkismetComment): Boolean","net.thauvin.erik.akismet.Akismet.submitSpam"]},{"name":"fun toJson(): String","description":"net.thauvin.erik.akismet.AkismetComment.toJson","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-json.html","searchKeys":["toJson","fun toJson(): String","net.thauvin.erik.akismet.AkismetComment.toJson"]},{"name":"fun type(type: CommentType): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.type","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/type.html","searchKeys":["type","fun type(type: CommentType): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.type"]},{"name":"fun userAgent(userAgent: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html","searchKeys":["userAgent","fun userAgent(userAgent: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.userAgent"]},{"name":"fun userIp(userIp: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userIp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html","searchKeys":["userIp","fun userIp(userIp: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.userIp"]},{"name":"fun userRole(userRole: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userRole","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html","searchKeys":["userRole","fun userRole(userRole: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.userRole"]},{"name":"fun verifyKey(): Boolean","description":"net.thauvin.erik.akismet.Akismet.verifyKey","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html","searchKeys":["verifyKey","fun verifyKey(): Boolean","net.thauvin.erik.akismet.Akismet.verifyKey"]},{"name":"object Companion","description":"net.thauvin.erik.akismet.Akismet.Companion","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/index.html","searchKeys":["Companion","object Companion","net.thauvin.erik.akismet.Akismet.Companion"]},{"name":"object Companion","description":"net.thauvin.erik.akismet.AkismetComment.Companion","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html","searchKeys":["Companion","object Companion","net.thauvin.erik.akismet.AkismetComment.Companion"]},{"name":"object Companion","description":"net.thauvin.erik.akismet.CommentType.Companion","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/index.html","searchKeys":["Companion","object Companion","net.thauvin.erik.akismet.CommentType.Companion"]},{"name":"open class Akismet(apiKey: String)","description":"net.thauvin.erik.akismet.Akismet","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/index.html","searchKeys":["Akismet","open class Akismet(apiKey: String)","net.thauvin.erik.akismet.Akismet"]},{"name":"open class AkismetComment(val userIp: String, val userAgent: String)","description":"net.thauvin.erik.akismet.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html","searchKeys":["AkismetComment","open class AkismetComment(val userIp: String, val userAgent: String)","net.thauvin.erik.akismet.AkismetComment"]},{"name":"open operator override fun equals(other: Any?): Boolean","description":"net.thauvin.erik.akismet.AkismetComment.equals","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/equals.html","searchKeys":["equals","open operator override fun equals(other: Any?): Boolean","net.thauvin.erik.akismet.AkismetComment.equals"]},{"name":"open override fun hashCode(): Int","description":"net.thauvin.erik.akismet.AkismetComment.hashCode","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/hash-code.html","searchKeys":["hashCode","open override fun hashCode(): Int","net.thauvin.erik.akismet.AkismetComment.hashCode"]},{"name":"open override fun toString(): String","description":"net.thauvin.erik.akismet.AkismetComment.toString","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-string.html","searchKeys":["toString","open override fun toString(): String","net.thauvin.erik.akismet.AkismetComment.toString"]},{"name":"val BLOG_POST: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.BLOG_POST","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-b-l-o-g_-p-o-s-t.html","searchKeys":["BLOG_POST","val BLOG_POST: CommentType","net.thauvin.erik.akismet.CommentType.Companion.BLOG_POST"]},{"name":"val COMMENT: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.COMMENT","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-m-m-e-n-t.html","searchKeys":["COMMENT","val COMMENT: CommentType","net.thauvin.erik.akismet.CommentType.Companion.COMMENT"]},{"name":"val CONTACT_FORM: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.CONTACT_FORM","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-n-t-a-c-t_-f-o-r-m.html","searchKeys":["CONTACT_FORM","val CONTACT_FORM: CommentType","net.thauvin.erik.akismet.CommentType.Companion.CONTACT_FORM"]},{"name":"val FORUM_POST: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.FORUM_POST","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-f-o-r-u-m_-p-o-s-t.html","searchKeys":["FORUM_POST","val FORUM_POST: CommentType","net.thauvin.erik.akismet.CommentType.Companion.FORUM_POST"]},{"name":"val MESSAGE: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.MESSAGE","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-m-e-s-s-a-g-e.html","searchKeys":["MESSAGE","val MESSAGE: CommentType","net.thauvin.erik.akismet.CommentType.Companion.MESSAGE"]},{"name":"val NONE: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.NONE","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-n-o-n-e.html","searchKeys":["NONE","val NONE: CommentType","net.thauvin.erik.akismet.CommentType.Companion.NONE"]},{"name":"val PINGBACK: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.PINGBACK","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-p-i-n-g-b-a-c-k.html","searchKeys":["PINGBACK","val PINGBACK: CommentType","net.thauvin.erik.akismet.CommentType.Companion.PINGBACK"]},{"name":"val REPLY: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.REPLY","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-r-e-p-l-y.html","searchKeys":["REPLY","val REPLY: CommentType","net.thauvin.erik.akismet.CommentType.Companion.REPLY"]},{"name":"val SIGNUP: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.SIGNUP","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-s-i-g-n-u-p.html","searchKeys":["SIGNUP","val SIGNUP: CommentType","net.thauvin.erik.akismet.CommentType.Companion.SIGNUP"]},{"name":"val TRACKBACK: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.TRACKBACK","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-t-r-a-c-k-b-a-c-k.html","searchKeys":["TRACKBACK","val TRACKBACK: CommentType","net.thauvin.erik.akismet.CommentType.Companion.TRACKBACK"]},{"name":"val TWEET: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.TWEET","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-t-w-e-e-t.html","searchKeys":["TWEET","val TWEET: CommentType","net.thauvin.erik.akismet.CommentType.Companion.TWEET"]},{"name":"val logger: Logger","description":"net.thauvin.erik.akismet.Akismet.logger","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/logger.html","searchKeys":["logger","val logger: Logger","net.thauvin.erik.akismet.Akismet.logger"]},{"name":"val userAgent: String","description":"net.thauvin.erik.akismet.AkismetComment.userAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html","searchKeys":["userAgent","val userAgent: String","net.thauvin.erik.akismet.AkismetComment.userAgent"]},{"name":"val userIp: String","description":"net.thauvin.erik.akismet.AkismetComment.userIp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html","searchKeys":["userIp","val userIp: String","net.thauvin.erik.akismet.AkismetComment.userIp"]},{"name":"var appUserAgent: String","description":"net.thauvin.erik.akismet.Akismet.appUserAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/app-user-agent.html","searchKeys":["appUserAgent","var appUserAgent: String","net.thauvin.erik.akismet.Akismet.appUserAgent"]},{"name":"var author: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.author","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author.html","searchKeys":["author","var author: String","net.thauvin.erik.akismet.CommentConfig.Builder.author"]},{"name":"var author: String","description":"net.thauvin.erik.akismet.CommentConfig.author","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author.html","searchKeys":["author","var author: String","net.thauvin.erik.akismet.CommentConfig.author"]},{"name":"var author: String?","description":"net.thauvin.erik.akismet.AkismetComment.author","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html","searchKeys":["author","var author: String?","net.thauvin.erik.akismet.AkismetComment.author"]},{"name":"var authorEmail: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.authorEmail","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html","searchKeys":["authorEmail","var authorEmail: String","net.thauvin.erik.akismet.CommentConfig.Builder.authorEmail"]},{"name":"var authorEmail: String","description":"net.thauvin.erik.akismet.CommentConfig.authorEmail","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-email.html","searchKeys":["authorEmail","var authorEmail: String","net.thauvin.erik.akismet.CommentConfig.authorEmail"]},{"name":"var authorEmail: String?","description":"net.thauvin.erik.akismet.AkismetComment.authorEmail","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html","searchKeys":["authorEmail","var authorEmail: String?","net.thauvin.erik.akismet.AkismetComment.authorEmail"]},{"name":"var authorUrl: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.authorUrl","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html","searchKeys":["authorUrl","var authorUrl: String","net.thauvin.erik.akismet.CommentConfig.Builder.authorUrl"]},{"name":"var authorUrl: String","description":"net.thauvin.erik.akismet.CommentConfig.authorUrl","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-url.html","searchKeys":["authorUrl","var authorUrl: String","net.thauvin.erik.akismet.CommentConfig.authorUrl"]},{"name":"var authorUrl: String?","description":"net.thauvin.erik.akismet.AkismetComment.authorUrl","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html","searchKeys":["authorUrl","var authorUrl: String?","net.thauvin.erik.akismet.AkismetComment.authorUrl"]},{"name":"var blog: String","description":"net.thauvin.erik.akismet.Akismet.blog","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/blog.html","searchKeys":["blog","var blog: String","net.thauvin.erik.akismet.Akismet.blog"]},{"name":"var blogCharset: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.blogCharset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html","searchKeys":["blogCharset","var blogCharset: String","net.thauvin.erik.akismet.CommentConfig.Builder.blogCharset"]},{"name":"var blogCharset: String","description":"net.thauvin.erik.akismet.CommentConfig.blogCharset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-charset.html","searchKeys":["blogCharset","var blogCharset: String","net.thauvin.erik.akismet.CommentConfig.blogCharset"]},{"name":"var blogCharset: String?","description":"net.thauvin.erik.akismet.AkismetComment.blogCharset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html","searchKeys":["blogCharset","var blogCharset: String?","net.thauvin.erik.akismet.AkismetComment.blogCharset"]},{"name":"var blogLang: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.blogLang","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html","searchKeys":["blogLang","var blogLang: String","net.thauvin.erik.akismet.CommentConfig.Builder.blogLang"]},{"name":"var blogLang: String","description":"net.thauvin.erik.akismet.CommentConfig.blogLang","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-lang.html","searchKeys":["blogLang","var blogLang: String","net.thauvin.erik.akismet.CommentConfig.blogLang"]},{"name":"var blogLang: String?","description":"net.thauvin.erik.akismet.AkismetComment.blogLang","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html","searchKeys":["blogLang","var blogLang: String?","net.thauvin.erik.akismet.AkismetComment.blogLang"]},{"name":"var content: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.content","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/content.html","searchKeys":["content","var content: String","net.thauvin.erik.akismet.CommentConfig.Builder.content"]},{"name":"var content: String","description":"net.thauvin.erik.akismet.CommentConfig.content","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/content.html","searchKeys":["content","var content: String","net.thauvin.erik.akismet.CommentConfig.content"]},{"name":"var content: String?","description":"net.thauvin.erik.akismet.AkismetComment.content","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/content.html","searchKeys":["content","var content: String?","net.thauvin.erik.akismet.AkismetComment.content"]},{"name":"var dateGmt: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.dateGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html","searchKeys":["dateGmt","var dateGmt: String","net.thauvin.erik.akismet.CommentConfig.Builder.dateGmt"]},{"name":"var dateGmt: String","description":"net.thauvin.erik.akismet.CommentConfig.dateGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/date-gmt.html","searchKeys":["dateGmt","var dateGmt: String","net.thauvin.erik.akismet.CommentConfig.dateGmt"]},{"name":"var dateGmt: String?","description":"net.thauvin.erik.akismet.AkismetComment.dateGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html","searchKeys":["dateGmt","var dateGmt: String?","net.thauvin.erik.akismet.AkismetComment.dateGmt"]},{"name":"var debugHelp: String","description":"net.thauvin.erik.akismet.Akismet.debugHelp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html","searchKeys":["debugHelp","var debugHelp: String","net.thauvin.erik.akismet.Akismet.debugHelp"]},{"name":"var errorMessage: String","description":"net.thauvin.erik.akismet.Akismet.errorMessage","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/error-message.html","searchKeys":["errorMessage","var errorMessage: String","net.thauvin.erik.akismet.Akismet.errorMessage"]},{"name":"var httpStatusCode: Int","description":"net.thauvin.erik.akismet.Akismet.httpStatusCode","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html","searchKeys":["httpStatusCode","var httpStatusCode: Int","net.thauvin.erik.akismet.Akismet.httpStatusCode"]},{"name":"var isDiscard: Boolean","description":"net.thauvin.erik.akismet.Akismet.isDiscard","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html","searchKeys":["isDiscard","var isDiscard: Boolean","net.thauvin.erik.akismet.Akismet.isDiscard"]},{"name":"var isTest: Boolean","description":"net.thauvin.erik.akismet.AkismetComment.isTest","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html","searchKeys":["isTest","var isTest: Boolean","net.thauvin.erik.akismet.AkismetComment.isTest"]},{"name":"var isTest: Boolean","description":"net.thauvin.erik.akismet.CommentConfig.Builder.isTest","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html","searchKeys":["isTest","var isTest: Boolean","net.thauvin.erik.akismet.CommentConfig.Builder.isTest"]},{"name":"var isTest: Boolean","description":"net.thauvin.erik.akismet.CommentConfig.isTest","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/is-test.html","searchKeys":["isTest","var isTest: Boolean","net.thauvin.erik.akismet.CommentConfig.isTest"]},{"name":"var isVerifiedKey: Boolean","description":"net.thauvin.erik.akismet.Akismet.isVerifiedKey","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html","searchKeys":["isVerifiedKey","var isVerifiedKey: Boolean","net.thauvin.erik.akismet.Akismet.isVerifiedKey"]},{"name":"var permalink: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.permalink","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html","searchKeys":["permalink","var permalink: String","net.thauvin.erik.akismet.CommentConfig.Builder.permalink"]},{"name":"var permalink: String","description":"net.thauvin.erik.akismet.CommentConfig.permalink","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/permalink.html","searchKeys":["permalink","var permalink: String","net.thauvin.erik.akismet.CommentConfig.permalink"]},{"name":"var permalink: String?","description":"net.thauvin.erik.akismet.AkismetComment.permalink","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/permalink.html","searchKeys":["permalink","var permalink: String?","net.thauvin.erik.akismet.AkismetComment.permalink"]},{"name":"var postModifiedGmt: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.postModifiedGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html","searchKeys":["postModifiedGmt","var postModifiedGmt: String","net.thauvin.erik.akismet.CommentConfig.Builder.postModifiedGmt"]},{"name":"var postModifiedGmt: String","description":"net.thauvin.erik.akismet.CommentConfig.postModifiedGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/post-modified-gmt.html","searchKeys":["postModifiedGmt","var postModifiedGmt: String","net.thauvin.erik.akismet.CommentConfig.postModifiedGmt"]},{"name":"var postModifiedGmt: String?","description":"net.thauvin.erik.akismet.AkismetComment.postModifiedGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html","searchKeys":["postModifiedGmt","var postModifiedGmt: String?","net.thauvin.erik.akismet.AkismetComment.postModifiedGmt"]},{"name":"var proTip: String","description":"net.thauvin.erik.akismet.Akismet.proTip","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html","searchKeys":["proTip","var proTip: String","net.thauvin.erik.akismet.Akismet.proTip"]},{"name":"var recheckReason: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.recheckReason","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html","searchKeys":["recheckReason","var recheckReason: String","net.thauvin.erik.akismet.CommentConfig.Builder.recheckReason"]},{"name":"var recheckReason: String","description":"net.thauvin.erik.akismet.CommentConfig.recheckReason","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/recheck-reason.html","searchKeys":["recheckReason","var recheckReason: String","net.thauvin.erik.akismet.CommentConfig.recheckReason"]},{"name":"var recheckReason: String?","description":"net.thauvin.erik.akismet.AkismetComment.recheckReason","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html","searchKeys":["recheckReason","var recheckReason: String?","net.thauvin.erik.akismet.AkismetComment.recheckReason"]},{"name":"var referrer: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.referrer","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html","searchKeys":["referrer","var referrer: String","net.thauvin.erik.akismet.CommentConfig.Builder.referrer"]},{"name":"var referrer: String","description":"net.thauvin.erik.akismet.CommentConfig.referrer","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/referrer.html","searchKeys":["referrer","var referrer: String","net.thauvin.erik.akismet.CommentConfig.referrer"]},{"name":"var referrer: String?","description":"net.thauvin.erik.akismet.AkismetComment.referrer","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/referrer.html","searchKeys":["referrer","var referrer: String?","net.thauvin.erik.akismet.AkismetComment.referrer"]},{"name":"var response: String","description":"net.thauvin.erik.akismet.Akismet.response","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/response.html","searchKeys":["response","var response: String","net.thauvin.erik.akismet.Akismet.response"]},{"name":"var serverEnv: Map","description":"net.thauvin.erik.akismet.AkismetComment.serverEnv","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/server-env.html","searchKeys":["serverEnv","var serverEnv: Map","net.thauvin.erik.akismet.AkismetComment.serverEnv"]},{"name":"var serverEnv: Map","description":"net.thauvin.erik.akismet.CommentConfig.Builder.serverEnv","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html","searchKeys":["serverEnv","var serverEnv: Map","net.thauvin.erik.akismet.CommentConfig.Builder.serverEnv"]},{"name":"var serverEnv: Map","description":"net.thauvin.erik.akismet.CommentConfig.serverEnv","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/server-env.html","searchKeys":["serverEnv","var serverEnv: Map","net.thauvin.erik.akismet.CommentConfig.serverEnv"]},{"name":"var type: CommentType","description":"net.thauvin.erik.akismet.AkismetComment.type","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/type.html","searchKeys":["type","var type: CommentType","net.thauvin.erik.akismet.AkismetComment.type"]},{"name":"var type: CommentType","description":"net.thauvin.erik.akismet.CommentConfig.Builder.type","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/type.html","searchKeys":["type","var type: CommentType","net.thauvin.erik.akismet.CommentConfig.Builder.type"]},{"name":"var type: CommentType","description":"net.thauvin.erik.akismet.CommentConfig.type","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/type.html","searchKeys":["type","var type: CommentType","net.thauvin.erik.akismet.CommentConfig.type"]},{"name":"var userAgent: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html","searchKeys":["userAgent","var userAgent: String","net.thauvin.erik.akismet.CommentConfig.Builder.userAgent"]},{"name":"var userAgent: String","description":"net.thauvin.erik.akismet.CommentConfig.userAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-agent.html","searchKeys":["userAgent","var userAgent: String","net.thauvin.erik.akismet.CommentConfig.userAgent"]},{"name":"var userIp: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userIp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html","searchKeys":["userIp","var userIp: String","net.thauvin.erik.akismet.CommentConfig.Builder.userIp"]},{"name":"var userIp: String","description":"net.thauvin.erik.akismet.CommentConfig.userIp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-ip.html","searchKeys":["userIp","var userIp: String","net.thauvin.erik.akismet.CommentConfig.userIp"]},{"name":"var userRole: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userRole","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html","searchKeys":["userRole","var userRole: String","net.thauvin.erik.akismet.CommentConfig.Builder.userRole"]},{"name":"var userRole: String","description":"net.thauvin.erik.akismet.CommentConfig.userRole","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-role.html","searchKeys":["userRole","var userRole: String","net.thauvin.erik.akismet.CommentConfig.userRole"]},{"name":"var userRole: String?","description":"net.thauvin.erik.akismet.AkismetComment.userRole","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html","searchKeys":["userRole","var userRole: String?","net.thauvin.erik.akismet.AkismetComment.userRole"]},{"name":"var value: String","description":"net.thauvin.erik.akismet.CommentType.value","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/value.html","searchKeys":["value","var value: String","net.thauvin.erik.akismet.CommentType.value"]}] diff --git a/examples/bld/src/bld/java/com/example/ExampleBuild.java b/examples/bld/src/bld/java/com/example/ExampleBuild.java index 3e4ee93..8afa1c7 100644 --- a/examples/bld/src/bld/java/com/example/ExampleBuild.java +++ b/examples/bld/src/bld/java/com/example/ExampleBuild.java @@ -1,13 +1,12 @@ package com.example; +import rife.bld.BaseProject; import rife.bld.BuildCommand; import rife.bld.extension.CompileKotlinOperation; import rife.bld.operations.RunOperation; -import rife.bld.BaseProject; import java.util.List; - import static rife.bld.dependencies.Repository.*; import static rife.bld.dependencies.Scope.compile; diff --git a/examples/bld/src/main/java/com/example/AkismetSample.java b/examples/bld/src/main/java/com/example/AkismetSample.java index 6d6ced5..85e2f15 100644 --- a/examples/bld/src/main/java/com/example/AkismetSample.java +++ b/examples/bld/src/main/java/com/example/AkismetSample.java @@ -3,6 +3,7 @@ package com.example; import net.thauvin.erik.akismet.Akismet; import net.thauvin.erik.akismet.AkismetComment; import net.thauvin.erik.akismet.CommentConfig; +import net.thauvin.erik.akismet.CommentType; import java.util.Date; @@ -15,7 +16,7 @@ public class AkismetSample { .isTest(true) .referrer("https://www.google.com") .permalink(akismet.getBlog() + "post=1") - .type(AkismetComment.TYPE_COMMENT) + .type(CommentType.COMMENT) .author("admin") .authorEmail("test@test.com") .authorUrl("http://www.CheckOutMyCoolSite.com") diff --git a/examples/bld/src/main/kotlin/com/example/AkismetExample.kt b/examples/bld/src/main/kotlin/com/example/AkismetExample.kt index 013e633..be314f6 100644 --- a/examples/bld/src/main/kotlin/com/example/AkismetExample.kt +++ b/examples/bld/src/main/kotlin/com/example/AkismetExample.kt @@ -2,6 +2,7 @@ package com.example import net.thauvin.erik.akismet.Akismet import net.thauvin.erik.akismet.AkismetComment +import net.thauvin.erik.akismet.CommentType import java.util.* import kotlin.system.exitProcess @@ -12,7 +13,7 @@ fun main(args: Array) { isTest = true referrer = "https://www.google.com" permalink = "${akismet.blog}post=1" - type = AkismetComment.TYPE_COMMENT + type = CommentType.COMMENT author = "admin" authorEmail = "test@test.com" authorUrl = "https://www.CheckOutMyCoolSite.com" diff --git a/examples/bld/src/main/kotlin/com/example/AkismetServlet.kt b/examples/bld/src/main/kotlin/com/example/AkismetServlet.kt index 3e776ed..7e47ec3 100644 --- a/examples/bld/src/main/kotlin/com/example/AkismetServlet.kt +++ b/examples/bld/src/main/kotlin/com/example/AkismetServlet.kt @@ -7,8 +7,9 @@ import jakarta.servlet.http.HttpServletRequest import jakarta.servlet.http.HttpServletResponse import net.thauvin.erik.akismet.Akismet import net.thauvin.erik.akismet.AkismetComment +import net.thauvin.erik.akismet.CommentType import java.io.IOException -import java.util.Date +import java.util.* @WebServlet(description = "Akismet Servlet", displayName = "Akismet", urlPatterns = ["/comment/*"]) class AkismetServlet : HttpServlet() { @@ -22,7 +23,7 @@ class AkismetServlet : HttpServlet() { val comment = AkismetComment(request).apply { permalink = "${akismet.blog}/comment/$id" - type = AkismetComment.TYPE_COMMENT + type = CommentType.COMMENT author = request.getParameter("name") authorEmail = request.getParameter("email") dateGmt = Akismet.dateToGmt(Date()) diff --git a/examples/gradle/.idea/.name b/examples/gradle/.idea/.name index ac5e64e..420230f 100644 --- a/examples/gradle/.idea/.name +++ b/examples/gradle/.idea/.name @@ -1 +1 @@ -akismet-examples-gradle \ No newline at end of file +akismet-kotlin-examples-gradle \ No newline at end of file diff --git a/examples/gradle/.idea/misc.xml b/examples/gradle/.idea/misc.xml index 72d1c06..7f1bfa1 100644 --- a/examples/gradle/.idea/misc.xml +++ b/examples/gradle/.idea/misc.xml @@ -6,8 +6,11 @@ + + + - + \ No newline at end of file diff --git a/examples/gradle/.idea/modules.xml b/examples/gradle/.idea/modules.xml new file mode 100644 index 0000000..5cefaa4 --- /dev/null +++ b/examples/gradle/.idea/modules.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/gradle/settings.gradle.kts b/examples/gradle/settings.gradle.kts index a8da2aa..56fa529 100644 --- a/examples/gradle/settings.gradle.kts +++ b/examples/gradle/settings.gradle.kts @@ -7,4 +7,4 @@ * in the user manual at https://docs.gradle.org/5.6.2/userguide/multi_project_builds.html */ -rootProject.name = "akismet-examples" +rootProject.name = "akismet-kotlin-examples-gradle" diff --git a/examples/gradle/src/main/java/com/example/AkismetSample.java b/examples/gradle/src/main/java/com/example/AkismetSample.java index 6d6ced5..85e2f15 100644 --- a/examples/gradle/src/main/java/com/example/AkismetSample.java +++ b/examples/gradle/src/main/java/com/example/AkismetSample.java @@ -3,6 +3,7 @@ package com.example; import net.thauvin.erik.akismet.Akismet; import net.thauvin.erik.akismet.AkismetComment; import net.thauvin.erik.akismet.CommentConfig; +import net.thauvin.erik.akismet.CommentType; import java.util.Date; @@ -15,7 +16,7 @@ public class AkismetSample { .isTest(true) .referrer("https://www.google.com") .permalink(akismet.getBlog() + "post=1") - .type(AkismetComment.TYPE_COMMENT) + .type(CommentType.COMMENT) .author("admin") .authorEmail("test@test.com") .authorUrl("http://www.CheckOutMyCoolSite.com") diff --git a/examples/gradle/src/main/kotlin/com/example/AkismetExample.kt b/examples/gradle/src/main/kotlin/com/example/AkismetExample.kt index 013e633..be314f6 100644 --- a/examples/gradle/src/main/kotlin/com/example/AkismetExample.kt +++ b/examples/gradle/src/main/kotlin/com/example/AkismetExample.kt @@ -2,6 +2,7 @@ package com.example import net.thauvin.erik.akismet.Akismet import net.thauvin.erik.akismet.AkismetComment +import net.thauvin.erik.akismet.CommentType import java.util.* import kotlin.system.exitProcess @@ -12,7 +13,7 @@ fun main(args: Array) { isTest = true referrer = "https://www.google.com" permalink = "${akismet.blog}post=1" - type = AkismetComment.TYPE_COMMENT + type = CommentType.COMMENT author = "admin" authorEmail = "test@test.com" authorUrl = "https://www.CheckOutMyCoolSite.com" diff --git a/examples/gradle/src/main/kotlin/com/example/AkismetServlet.kt b/examples/gradle/src/main/kotlin/com/example/AkismetServlet.kt index 3e776ed..7e47ec3 100644 --- a/examples/gradle/src/main/kotlin/com/example/AkismetServlet.kt +++ b/examples/gradle/src/main/kotlin/com/example/AkismetServlet.kt @@ -7,8 +7,9 @@ import jakarta.servlet.http.HttpServletRequest import jakarta.servlet.http.HttpServletResponse import net.thauvin.erik.akismet.Akismet import net.thauvin.erik.akismet.AkismetComment +import net.thauvin.erik.akismet.CommentType import java.io.IOException -import java.util.Date +import java.util.* @WebServlet(description = "Akismet Servlet", displayName = "Akismet", urlPatterns = ["/comment/*"]) class AkismetServlet : HttpServlet() { @@ -22,7 +23,7 @@ class AkismetServlet : HttpServlet() { val comment = AkismetComment(request).apply { permalink = "${akismet.blog}/comment/$id" - type = AkismetComment.TYPE_COMMENT + type = CommentType.COMMENT author = request.getParameter("name") authorEmail = request.getParameter("email") dateGmt = Akismet.dateToGmt(Date()) diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index d83a407..5df79d3 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -2,7 +2,7 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true bld.extensions=com.uwyn.rife2:bld-generated-version:0.9.5 bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.5 -bld.extensions-kotlin=com.uwyn.rife2:bld-kotlin:0.9.5 +bld.extensions-kotlin=com.uwyn.rife2:bld-kotlin:0.9.7 bld.extensions-detekt=com.uwyn.rife2:bld-detekt:0.9.4 bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= diff --git a/src/bld/java/net/thauvin/erik/AkismetBuild.java b/src/bld/java/net/thauvin/erik/AkismetBuild.java index b2db28b..e425823 100644 --- a/src/bld/java/net/thauvin/erik/AkismetBuild.java +++ b/src/bld/java/net/thauvin/erik/AkismetBuild.java @@ -174,6 +174,9 @@ public class AkismetBuild extends Project { + "/tree/master/src/main/kotlin/", "#L") .includes("config/dokka/packages.md") .jdkVersion(javaRelease) + .externalDocumentationLinks("https://jakarta.ee/specifications/platform/9/apidocs/", + "https://jakarta.ee/specifications/platform/9/apidocs/package-list") + ) .execute(); } @@ -207,6 +210,8 @@ public class AkismetBuild extends Project { .moduleVersion(version.toString()) .outputDir(new File(buildDirectory(), "javadoc")) .outputFormat(OutputFormat.JAVADOC) + .globalLinks("https://jakarta.ee/specifications/platform/9/apidocs/", + "https://jakarta.ee/specifications/platform/9/apidocs/package-list") .execute(); } diff --git a/src/main/kotlin/net/thauvin/erik/akismet/Akismet.kt b/src/main/kotlin/net/thauvin/erik/akismet/Akismet.kt index 2c34032..6e2f93d 100644 --- a/src/main/kotlin/net/thauvin/erik/akismet/Akismet.kt +++ b/src/main/kotlin/net/thauvin/erik/akismet/Akismet.kt @@ -395,8 +395,8 @@ open class Akismet(apiKey: String) { if (!permalink.isNullOrBlank()) { add("permalink", permalink.toString()) } - if (!type.isNullOrBlank()) { - add("comment_type", type.toString()) + if (type != CommentType.NONE) { + add("comment_type", type.value) } if (!author.isNullOrBlank()) { add("comment_author", author.toString()) diff --git a/src/main/kotlin/net/thauvin/erik/akismet/AkismetComment.kt b/src/main/kotlin/net/thauvin/erik/akismet/AkismetComment.kt index dc9c163..400fc7e 100644 --- a/src/main/kotlin/net/thauvin/erik/akismet/AkismetComment.kt +++ b/src/main/kotlin/net/thauvin/erik/akismet/AkismetComment.kt @@ -58,47 +58,23 @@ private fun String?.ifNull() = this ?: "" @Serializable open class AkismetComment(val userIp: String, val userAgent: String) { companion object { - /** A blog comment. */ - const val TYPE_COMMENT = "comment" - - /** A top-level forum post. */ - const val TYPE_FORUM_POST = "forum-post" - - /** A reply to a top-level forum post. */ - const val TYPE_REPLY = "reply" - - /** A blog post. */ - const val TYPE_BLOG_POST = "blog-post" - - /** A contact form or feedback form submission. */ - const val TYPE_CONTACT_FORM = "contact-form" - - /** A new user account. */ - const val TYPE_SIGNUP = "signup" - - /** A message sent between just a few users. */ - const val TYPE_MESSAGE = "message" - - /** A pingback. */ - const val TYPE_PINGBACK = "pingback" - - /** A trackback. */ - const val TYPE_TRACKBACK = "trackback" - - /** A Twitter message. */ - const val TYPE_TWEET = "tweet" - - /** Administrator role. If used, Akismet will always return false. */ + /** + * Administrator role. If used, Akismet will always return `false`. + */ const val ADMIN_ROLE = "administrator" } - /** The content of the referer header should be set here. */ + /** + * The content of the referer header should be set here. + */ var referrer: String? = "" set(value) { field = value.ifNull() } - /** The full permanent URL of the entry the comment was submitted to. */ + /** + * The full permanent URL of the entry the comment was submitted to. + */ var permalink: String? = "" set(value) { field = value.ifNull() @@ -107,45 +83,50 @@ open class AkismetComment(val userIp: String, val userAgent: String) { /** * A string that describes the type of content being sent, such as: * - * - [TYPE_COMMENT] - * - [TYPE_FORUM_POST] - * - [TYPE_REPLY] - * - [TYPE_BLOG_POST] - * - [TYPE_CONTACT_FORM] - * - [TYPE_SIGNUP] - * - [TYPE_MESSAGE] - * - [TYPE_PINGBACK] - * - [TYPE_TRACKBACK] - * - [TYPE_TWEET] + * - [CommentType.COMMENT] + * - [CommentType.FORUM_POST] + * - [CommentType.REPLY] + * - [CommentType.BLOG_POST] + * - [CommentType.CONTACT_FORM] + * - [CommentType.SIGNUP] + * - [CommentType.MESSAGE] + * - [CommentType.PINGBACK] + * - [CommentType.TRACKBACK] + * - [CommentType.TWEET] * * You may send a value not listed above if none of them accurately describe your content. * * This is further explained [here](http://blog.akismet.com/2012/06/19/pro-tip-tell-us-your-comment_type/). */ - var type: String? = "" - set(value) { - field = value.ifNull() - } + var type: CommentType = CommentType.NONE - /** Name submitted with the comment. */ + /** + * Name submitted with the comment. + */ var author: String? = "" set(value) { field = value.ifNull() } - /** Email address submitted with the comment. */ + /** + * Email address submitted with the comment. + */ var authorEmail: String? = "" set(value) { field = value.ifNull() } - /** URL submitted with comment. */ + /** + * URL submitted with comment. + */ var authorUrl: String? = "" set(value) { field = value.ifNull() } - /** The content that was submitted. */ + /** + * The content that was submitted. + */ var content: String? = "" set(value) { field = value.ifNull() @@ -194,14 +175,16 @@ open class AkismetComment(val userIp: String, val userAgent: String) { /** * The user role of the user who submitted the comment. This is an optional parameter. * - * If you set it to [ADMIN_ROLE], Akismet will always return false. + * If you set it to [ADMIN_ROLE], Akismet will always return `false`. */ var userRole: String? = "" set(value) { field = value.ifNull() } - /** This is an optional parameter. You can use it when submitting test queries to Akismet. */ + /** + * This is an optional parameter. You can use it when submitting test queries to Akismet. + */ var isTest: Boolean = false /** @@ -230,8 +213,7 @@ open class AkismetComment(val userIp: String, val userAgent: String) { * Creates a new instance extracting the [userIp], [userAgent], [referrer] and [serverEnv] environment variables * from a Servlet request. * - * See the - * [Akismet API](https://akismet.com/development/api/#comment-check) for more details. + * See the [Akismet API](https://akismet.com/development/api/#comment-check) for more details. * * @see [serverEnv] */ diff --git a/src/main/kotlin/net/thauvin/erik/akismet/CommentConfig.kt b/src/main/kotlin/net/thauvin/erik/akismet/CommentConfig.kt index 01b0659..9df25d8 100644 --- a/src/main/kotlin/net/thauvin/erik/akismet/CommentConfig.kt +++ b/src/main/kotlin/net/thauvin/erik/akismet/CommentConfig.kt @@ -32,16 +32,6 @@ package net.thauvin.erik.akismet import net.thauvin.erik.akismet.AkismetComment.Companion.ADMIN_ROLE -import net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_BLOG_POST -import net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_COMMENT -import net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_CONTACT_FORM -import net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_FORUM_POST -import net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_MESSAGE -import net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_PINGBACK -import net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_REPLY -import net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_SIGNUP -import net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_TRACKBACK -import net.thauvin.erik.akismet.AkismetComment.Companion.TYPE_TWEET /** * Provides a comment configuration. @@ -54,7 +44,7 @@ class CommentConfig @JvmOverloads constructor( var userAgent: String, var referrer: String = "", var permalink: String = "", - var type: String = "", + var type: CommentType = CommentType.NONE, var author: String = "", var authorEmail: String = "", var authorUrl: String = "", @@ -96,7 +86,7 @@ class CommentConfig @JvmOverloads constructor( data class Builder(var userIp: String, var userAgent: String) { var referrer = "" var permalink = "" - var type = "" + var type: CommentType = CommentType.NONE var author = "" var authorEmail = "" var authorUrl = "" @@ -113,12 +103,12 @@ class CommentConfig @JvmOverloads constructor( /** * Sets the IP address of the comment submitter. */ - fun userIp(userIp: String) : Builder = apply { this.userIp = userIp } + fun userIp(userIp: String): Builder = apply { this.userIp = userIp } /** * Sets the user agent string of the web browser submitting the comment. */ - fun userAgent(userAgent: String) : Builder = apply { this.userAgent = userAgent } + fun userAgent(userAgent: String): Builder = apply { this.userAgent = userAgent } /** * Sets the content of the referrer header. @@ -133,22 +123,22 @@ class CommentConfig @JvmOverloads constructor( /** * Sets a string that describes the type of content being sent, such as: * - * - [TYPE_COMMENT] - * - [TYPE_FORUM_POST] - * - [TYPE_REPLY] - * - [TYPE_BLOG_POST] - * - [TYPE_CONTACT_FORM] - * - [TYPE_SIGNUP] - * - [TYPE_MESSAGE] - * - [TYPE_PINGBACK] - * - [TYPE_TRACKBACK] - * - [TYPE_TWEET] + * - [CommentType.COMMENT] + * - [CommentType.FORUM_POST] + * - [CommentType.REPLY] + * - [CommentType.BLOG_POST] + * - [CommentType.CONTACT_FORM] + * - [CommentType.SIGNUP] + * - [CommentType.MESSAGE] + * - [CommentType.PINGBACK] + * - [CommentType.TRACKBACK] + * - [CommentType.TWEET] * * You may send a value not listed above if none of them accurately describe your content. * * This is further explained [here](http://blog.akismet.com/2012/06/19/pro-tip-tell-us-your-comment_type/). */ - fun type(type: String): Builder = apply { this.type = type } + fun type(type: CommentType): Builder = apply { this.type = type } /** * Sets the mame submitted with the comment. @@ -184,7 +174,7 @@ class CommentConfig @JvmOverloads constructor( * * @see [Akismet.dateToGmt] */ - fun postModifiedGmt(postModifiedGmt: String) = apply { this.postModifiedGmt = postModifiedGmt } + fun postModifiedGmt(postModifiedGmt: String): Builder = apply { this.postModifiedGmt = postModifiedGmt } /** * Indicates the language(s) in use on the blog or site, in ISO 639-1 format, comma-separated. @@ -201,7 +191,7 @@ class CommentConfig @JvmOverloads constructor( /** * Set the user role of the user who submitted the comment. This is an optional parameter. * - * If you set it to [ADMIN_ROLE], Akismet will always return false. + * If you set it to [ADMIN_ROLE], Akismet will always return `false`. */ fun userRole(userRole: String): Builder = apply { this.userRole = userRole } diff --git a/src/main/kotlin/net/thauvin/erik/akismet/CommentType.kt b/src/main/kotlin/net/thauvin/erik/akismet/CommentType.kt new file mode 100644 index 0000000..b05ef07 --- /dev/null +++ b/src/main/kotlin/net/thauvin/erik/akismet/CommentType.kt @@ -0,0 +1,107 @@ +/* + * CommentType.kt + * + * Copyright 2019-2024 Erik C. Thauvin (erik@thauvin.net) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * Neither the name of this project nor the names of its contributors may be + * used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package net.thauvin.erik.akismet + +import kotlinx.serialization.Serializable + +/** + * Defines the comment types. + */ +@Serializable +data class CommentType(var value: String) { + companion object { + /** + * A blog comment. + */ + @JvmField + val COMMENT = CommentType("comment") + + /** + * A top-level forum post. + */ + @JvmField + val FORUM_POST = CommentType("forum-post") + + /** + * A reply to a top-level forum post. + */ + @JvmField + val REPLY = CommentType("reply") + + /** + * A blog post. + */ + @JvmField + val BLOG_POST = CommentType("blog-post") + + /** + * A contact form or feedback form submission. + */ + @JvmField + val CONTACT_FORM = CommentType("contact-form") + + /** A new user account. + */ + @JvmField + val SIGNUP = CommentType("signup") + + /** + * A message sent between just a few users. + */ + @JvmField + val MESSAGE = CommentType("message") + + /** + * A pingback. + */ + @JvmField + val PINGBACK = CommentType("pingback") + + /** + * A trackback. + */ + @JvmField + val TRACKBACK = CommentType("trackback") + + /** + * A Twitter message. + */ + @JvmField + val TWEET = CommentType("tweet") + + /** + * Undefined type. + */ + @JvmField + val NONE = CommentType("") + } +} diff --git a/src/test/kotlin/net/thauvin/erik/akismet/AkismetTest.kt b/src/test/kotlin/net/thauvin/erik/akismet/AkismetTest.kt index 3074992..8741a43 100644 --- a/src/test/kotlin/net/thauvin/erik/akismet/AkismetTest.kt +++ b/src/test/kotlin/net/thauvin/erik/akismet/AkismetTest.kt @@ -169,7 +169,7 @@ class AkismetTest { prop(AkismetComment::isTest).isFalse() prop(AkismetComment::referrer).isEqualTo("") prop(AkismetComment::permalink).isEqualTo("") - prop(AkismetComment::type).isEqualTo("") + prop(AkismetComment::type).isEqualTo(CommentType.NONE) prop(AkismetComment::authorEmail).isEqualTo("") prop(AkismetComment::author).isEqualTo("") prop(AkismetComment::authorUrl).isEqualTo("") @@ -183,11 +183,11 @@ class AkismetTest { prop(AkismetComment::serverEnv).size().isEqualTo(0) } - with(empty) { + with(receiver = empty) { for (s in listOf("test", "", null)) { referrer = s permalink = s - type = s + if (s != null) type = CommentType(s) authorEmail = s author = s authorUrl = s @@ -204,7 +204,7 @@ class AkismetTest { assertThat(empty, "AkismetComment($s)").all { prop(AkismetComment::referrer).isEqualTo(expected) prop(AkismetComment::permalink).isEqualTo(expected) - prop(AkismetComment::type).isEqualTo(expected) + prop(AkismetComment::type).isEqualTo(CommentType(expected)) prop(AkismetComment::authorEmail).isEqualTo(expected) prop(AkismetComment::author).isEqualTo(expected) prop(AkismetComment::authorUrl).isEqualTo(expected) @@ -384,11 +384,11 @@ class AkismetTest { private val config = CommentConfig.Builder(comment.userIp, comment.userAgent) .referrer(REFERER) .permalink("http://yourblogdomainname.com/blog/post=1") - .type(AkismetComment.TYPE_COMMENT) + .type(CommentType.COMMENT) .author("admin") .authorEmail("test@test.com") .authorUrl("http://www.CheckOutMyCoolSite.com") - .content("It means a lot that you would take the time to review our software. Thanks again.") + .content("It means a lot that you would take the time to review our software. Thanks again.") .dateGmt(Akismet.dateToGmt(date)) .postModifiedGmt(Akismet.dateToGmt(date)) .blogLang("en") @@ -403,7 +403,7 @@ class AkismetTest { with(comment) { referrer = config.referrer permalink = config.permalink - type = config.type + type = CommentType("comment") author = config.author authorEmail = config.authorEmail authorUrl = config.authorUrl @@ -428,7 +428,7 @@ class AkismetTest { postModifiedGmt = comment.dateGmt blogLang = comment.blogLang blogCharset = comment.blogCharset - userRole = comment.userRole + userRole = AkismetComment.ADMIN_ROLE recheckReason = comment.recheckReason isTest = true } From 8ff15ff59fdeba3b8ec2aa4830c1da643a1d35a0 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Fri, 24 May 2024 17:31:52 -0700 Subject: [PATCH 29/63] Updated README examples --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 38ce246..f98fc1f 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ A pretty complete and straightforward implementation of the [Automattic's Akisme val akismet = Akismet(apiKey = "YOUR_API_KEY", blog = "YOUR_BLOG_URL") val comment = AkismetComment(userIp = "127.0.0.1", userAgent = "curl/7.29.0").apply { referrer = "https://www.google.com" - type = AkismetComment.TYPE_COMMENT + type = CommentType.COMMENT author = "admin" authorEmail = "test@test.com" authorUrl = "https://www.CheckOutMyCoolSite.com" @@ -45,7 +45,7 @@ final Akismet akismet = new Akismet("YOUR_API_KEY", "YOUR_BLOG_URL"); final AkismetComment comment = new AkismetComment( new CommentConfig.Builder("127.0.0.1", "curl/7.29.0") .referrer("https://www.google.com") - .type(Akismet.TYPE_COMMENT) + .type(CommentType.COMMENT) .author("admin") .authorEmail("test@test.com") .authorUrl("https://www.CheckOutMyCoolSite.com") @@ -71,7 +71,7 @@ To use with [bld](https://rife2.com/bld), include the following dependency in yo repositories = List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS_LEGACY); scope(compile) - .include(dependency("net.thauvin.erik:akismet-kotlin:1.0.0")); + .include(dependency("net.thauvin.erik:akismet-kotlin:1.0.1-SNAPSHOT")); ``` ## Gradle @@ -84,7 +84,7 @@ repositories { } dependencies { - implementation("net.thauvin.erik:akismet-kotlin:1.0.0") + implementation("net.thauvin.erik:akismet-kotlin:1.0.1-SNAPSHOT") } ``` From d3cabe5e83adbc388df90c3957a00368521c1335 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Fri, 24 May 2024 17:42:07 -0700 Subject: [PATCH 30/63] Bumped version to 1.1.0-SNAPSHOT --- README.md | 4 ++-- .../-akismet-comment/-akismet-comment.html | 2 +- .../-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html | 2 +- .../-companion/-t-y-p-e_-b-l-o-g_-p-o-s-t.html | 2 +- .../-akismet-comment/-companion/-t-y-p-e_-c-o-m-m-e-n-t.html | 2 +- .../-companion/-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html | 2 +- .../-companion/-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html | 2 +- .../-akismet-comment/-companion/-t-y-p-e_-m-e-s-s-a-g-e.html | 2 +- .../-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html | 2 +- .../-akismet-comment/-companion/-t-y-p-e_-r-e-p-l-y.html | 2 +- .../-akismet-comment/-companion/-t-y-p-e_-s-i-g-n-u-p.html | 2 +- .../-companion/-t-y-p-e_-t-r-a-c-k-b-a-c-k.html | 2 +- .../-akismet-comment/-companion/-t-y-p-e_-t-w-e-e-t.html | 2 +- .../-akismet-comment/-companion/index.html | 2 +- .../-akismet-comment/author-email.html | 2 +- .../net.thauvin.erik.akismet/-akismet-comment/author-url.html | 2 +- .../net.thauvin.erik.akismet/-akismet-comment/author.html | 2 +- .../-akismet-comment/blog-charset.html | 2 +- .../net.thauvin.erik.akismet/-akismet-comment/blog-lang.html | 2 +- .../net.thauvin.erik.akismet/-akismet-comment/content.html | 2 +- .../net.thauvin.erik.akismet/-akismet-comment/date-gmt.html | 2 +- .../net.thauvin.erik.akismet/-akismet-comment/equals.html | 2 +- .../net.thauvin.erik.akismet/-akismet-comment/hash-code.html | 2 +- .../net.thauvin.erik.akismet/-akismet-comment/index.html | 2 +- .../net.thauvin.erik.akismet/-akismet-comment/is-test.html | 2 +- .../net.thauvin.erik.akismet/-akismet-comment/permalink.html | 2 +- .../-akismet-comment/post-modified-gmt.html | 2 +- .../-akismet-comment/recheck-reason.html | 2 +- .../net.thauvin.erik.akismet/-akismet-comment/referrer.html | 2 +- .../net.thauvin.erik.akismet/-akismet-comment/server-env.html | 2 +- .../net.thauvin.erik.akismet/-akismet-comment/to-json.html | 2 +- .../net.thauvin.erik.akismet/-akismet-comment/to-string.html | 2 +- .../net.thauvin.erik.akismet/-akismet-comment/type.html | 2 +- .../net.thauvin.erik.akismet/-akismet-comment/user-agent.html | 2 +- .../net.thauvin.erik.akismet/-akismet-comment/user-ip.html | 2 +- .../net.thauvin.erik.akismet/-akismet-comment/user-role.html | 2 +- .../net.thauvin.erik.akismet/-akismet/-akismet.html | 2 +- .../-akismet/-companion/date-to-gmt.html | 2 +- .../net.thauvin.erik.akismet/-akismet/-companion/index.html | 2 +- .../-akismet/-companion/json-comment.html | 2 +- .../net.thauvin.erik.akismet/-akismet/app-user-agent.html | 2 +- .../net.thauvin.erik.akismet/-akismet/blog.html | 2 +- .../net.thauvin.erik.akismet/-akismet/check-comment.html | 2 +- .../net.thauvin.erik.akismet/-akismet/debug-help.html | 2 +- .../net.thauvin.erik.akismet/-akismet/error-message.html | 2 +- .../net.thauvin.erik.akismet/-akismet/execute-method.html | 2 +- .../net.thauvin.erik.akismet/-akismet/http-status-code.html | 2 +- .../net.thauvin.erik.akismet/-akismet/index.html | 2 +- .../net.thauvin.erik.akismet/-akismet/is-discard.html | 2 +- .../net.thauvin.erik.akismet/-akismet/is-verified-key.html | 2 +- .../net.thauvin.erik.akismet/-akismet/logger.html | 2 +- .../net.thauvin.erik.akismet/-akismet/pro-tip.html | 2 +- .../net.thauvin.erik.akismet/-akismet/reset.html | 2 +- .../net.thauvin.erik.akismet/-akismet/response.html | 2 +- .../net.thauvin.erik.akismet/-akismet/submit-ham.html | 2 +- .../net.thauvin.erik.akismet/-akismet/submit-spam.html | 2 +- .../net.thauvin.erik.akismet/-akismet/verify-key.html | 2 +- .../-comment-config/-builder/-builder.html | 2 +- .../-comment-config/-builder/author-email.html | 2 +- .../-comment-config/-builder/author-url.html | 2 +- .../-comment-config/-builder/author.html | 2 +- .../-comment-config/-builder/blog-charset.html | 2 +- .../-comment-config/-builder/blog-lang.html | 2 +- .../-comment-config/-builder/build.html | 2 +- .../-comment-config/-builder/content.html | 2 +- .../-comment-config/-builder/date-gmt.html | 2 +- .../-comment-config/-builder/index.html | 2 +- .../-comment-config/-builder/is-test.html | 2 +- .../-comment-config/-builder/permalink.html | 2 +- .../-comment-config/-builder/post-modified-gmt.html | 2 +- .../-comment-config/-builder/recheck-reason.html | 2 +- .../-comment-config/-builder/referrer.html | 2 +- .../-comment-config/-builder/server-env.html | 2 +- .../-comment-config/-builder/type.html | 2 +- .../-comment-config/-builder/user-agent.html | 2 +- .../-comment-config/-builder/user-ip.html | 2 +- .../-comment-config/-builder/user-role.html | 2 +- .../-comment-config/-comment-config.html | 2 +- .../-comment-config/author-email.html | 2 +- .../net.thauvin.erik.akismet/-comment-config/author-url.html | 2 +- .../net.thauvin.erik.akismet/-comment-config/author.html | 2 +- .../-comment-config/blog-charset.html | 2 +- .../net.thauvin.erik.akismet/-comment-config/blog-lang.html | 2 +- .../net.thauvin.erik.akismet/-comment-config/content.html | 2 +- .../net.thauvin.erik.akismet/-comment-config/date-gmt.html | 2 +- .../net.thauvin.erik.akismet/-comment-config/index.html | 2 +- .../net.thauvin.erik.akismet/-comment-config/is-test.html | 2 +- .../net.thauvin.erik.akismet/-comment-config/permalink.html | 2 +- .../-comment-config/post-modified-gmt.html | 2 +- .../-comment-config/recheck-reason.html | 2 +- .../net.thauvin.erik.akismet/-comment-config/referrer.html | 2 +- .../net.thauvin.erik.akismet/-comment-config/server-env.html | 2 +- .../net.thauvin.erik.akismet/-comment-config/type.html | 2 +- .../net.thauvin.erik.akismet/-comment-config/user-agent.html | 2 +- .../net.thauvin.erik.akismet/-comment-config/user-ip.html | 2 +- .../net.thauvin.erik.akismet/-comment-config/user-role.html | 2 +- .../net.thauvin.erik.akismet/-comment-type/-comment-type.html | 2 +- .../-comment-type/-companion/-b-l-o-g_-p-o-s-t.html | 2 +- .../-comment-type/-companion/-c-o-m-m-e-n-t.html | 2 +- .../-comment-type/-companion/-c-o-n-t-a-c-t_-f-o-r-m.html | 2 +- .../-comment-type/-companion/-f-o-r-u-m_-p-o-s-t.html | 2 +- .../-comment-type/-companion/-m-e-s-s-a-g-e.html | 2 +- .../-comment-type/-companion/-n-o-n-e.html | 2 +- .../-comment-type/-companion/-p-i-n-g-b-a-c-k.html | 2 +- .../-comment-type/-companion/-r-e-p-l-y.html | 2 +- .../-comment-type/-companion/-s-i-g-n-u-p.html | 2 +- .../-comment-type/-companion/-t-r-a-c-k-b-a-c-k.html | 2 +- .../-comment-type/-companion/-t-w-e-e-t.html | 2 +- .../-comment-type/-companion/index.html | 2 +- .../net.thauvin.erik.akismet/-comment-type/index.html | 2 +- .../net.thauvin.erik.akismet/-comment-type/value.html | 2 +- docs/-akismet -kotlin/net.thauvin.erik.akismet/index.html | 2 +- docs/index.html | 2 +- examples/bld/src/bld/java/com/example/ExampleBuild.java | 2 +- examples/gradle/build.gradle.kts | 2 +- pom.xml | 2 +- src/bld/java/net/thauvin/erik/AkismetBuild.java | 2 +- src/main/kotlin/net/thauvin/erik/akismet/GeneratedVersion.kt | 2 +- 118 files changed, 119 insertions(+), 119 deletions(-) diff --git a/README.md b/README.md index f98fc1f..bde0ec4 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ To use with [bld](https://rife2.com/bld), include the following dependency in yo repositories = List.of(MAVEN_CENTRAL, SONATYPE_SNAPSHOTS_LEGACY); scope(compile) - .include(dependency("net.thauvin.erik:akismet-kotlin:1.0.1-SNAPSHOT")); + .include(dependency("net.thauvin.erik:akismet-kotlin:1.1.0-SNAPSHOT")); ``` ## Gradle @@ -84,7 +84,7 @@ repositories { } dependencies { - implementation("net.thauvin.erik:akismet-kotlin:1.0.1-SNAPSHOT") + implementation("net.thauvin.erik:akismet-kotlin:1.1.0-SNAPSHOT") } ``` diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html index 1259c0e..5a21ce3 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html index a768ff5..fb1d46f 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-b-l-o-g_-p-o-s-t.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-b-l-o-g_-p-o-s-t.html index 7355fc7..6c48b56 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-b-l-o-g_-p-o-s-t.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-b-l-o-g_-p-o-s-t.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-m-m-e-n-t.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-m-m-e-n-t.html index afe8804..f4812cc 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-m-m-e-n-t.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-m-m-e-n-t.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html index 8b621e3..8fae3a3 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html index 904d5ab..410c349 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-m-e-s-s-a-g-e.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-m-e-s-s-a-g-e.html index 6eebb27..b495a44 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-m-e-s-s-a-g-e.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-m-e-s-s-a-g-e.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html index 88d4c32..8da9d4c 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-r-e-p-l-y.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-r-e-p-l-y.html index 27d019e..f2fec4a 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-r-e-p-l-y.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-r-e-p-l-y.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-s-i-g-n-u-p.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-s-i-g-n-u-p.html index ffbd0fe..c665a02 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-s-i-g-n-u-p.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-s-i-g-n-u-p.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-r-a-c-k-b-a-c-k.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-r-a-c-k-b-a-c-k.html index 5cf4269..945d496 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-r-a-c-k-b-a-c-k.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-r-a-c-k-b-a-c-k.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-w-e-e-t.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-w-e-e-t.html index 6d6a965..a042273 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-w-e-e-t.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-w-e-e-t.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html index 3c75a7c..7c4d295 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html index a372efe..42fcc4e 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html index ab0f8a6..3504120 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html index b9b1fa7..ded74c2 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html index 47bce9f..4041d4c 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html index 954b35a..0c95d14 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/content.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/content.html index 908fbc9..93ebd83 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/content.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/content.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html index 6903f9e..d6d0129 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/equals.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/equals.html index 440f7d8..5b07d23 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/equals.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/equals.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/hash-code.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/hash-code.html index effab9e..0da7001 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/hash-code.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/hash-code.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html index bfb0b97..83c8d80 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html index 14b17e1..84ee583 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/permalink.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/permalink.html index 40ab757..726e840 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/permalink.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/permalink.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html index e69d08b..938165e 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html index d9c8888..843ff0a 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/referrer.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/referrer.html index 2db5210..1f98cd5 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/referrer.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/referrer.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/server-env.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/server-env.html index b2cf25a..7a7315a 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/server-env.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/server-env.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-json.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-json.html index c54437c..87ffa29 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-json.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-json.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-string.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-string.html index a6c8019..8f8bc1b 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-string.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-string.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/type.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/type.html index 9f66536..3756d68 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/type.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/type.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html index 425c8e0..53f9d4d 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html index 382ca42..45255c9 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html index b26f47a..0859ea8 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html index 6c96d10..7ce8321 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html index 12ebc0b..5a96283 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/index.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/index.html index 15cb77a..e502d6a 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/index.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/index.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html index 4899569..1c68d13 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/app-user-agent.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/app-user-agent.html index 2af3726..84ee7ab 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/app-user-agent.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/app-user-agent.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/blog.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/blog.html index 16c3896..99d2d9f 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/blog.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/blog.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html index 51c4b63..965e9cd 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html index 662ecd8..164d211 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/error-message.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/error-message.html index 7ebd106..51fd206 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/error-message.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/error-message.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html index 6864594..fd0a75e 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html index ef6eb2d..c814e4f 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/index.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/index.html index ecd5030..83ae089 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/index.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/index.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html index 7432915..79df4f8 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html index 63bd9ed..5bca9eb 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/logger.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/logger.html index 4a22835..fe5dea7 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/logger.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/logger.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html index d84c664..3e51d23 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/reset.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/reset.html index 89b0d83..50d9d77 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/reset.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/reset.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/response.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/response.html index 441f1d3..decd352 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/response.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/response.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-ham.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-ham.html index fd3d7a4..ffe5ab1 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-ham.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-ham.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-spam.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-spam.html index 0ee0cc5..9594d52 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-spam.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-spam.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html index b59bdb6..759cacd 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/-builder.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/-builder.html index 5ea6235..42409f0 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/-builder.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/-builder.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html index db59e2d..b0a3249 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html index 211c2ab..4fc1885 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author.html index 19fbbe4..b5d6c1f 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html index e4e0d04..79bb7b3 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html index 8c5ad0c..efba3c8 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/build.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/build.html index e2ddc9c..2caccd8 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/build.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/build.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/content.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/content.html index 5bf6cea..5a1ca4b 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/content.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/content.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html index e73c347..5bac02b 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/index.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/index.html index 6064938..0657f64 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/index.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/index.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html index 4a52c41..8d5b03c 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html index 819b3bc..03b6af0 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html index 094d260..d3e7f69 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html index 31663c2..e63aeb0 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html index 6d0572f..120085b 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html index 9c8a69d..e6ec6d7 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/type.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/type.html index 7bba6ee..e0bc2f7 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/type.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/type.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html index e5286e6..4bdc28f 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html index 01498a2..8a35616 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html index 464ab6e..8e1095a 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html index 9d39ad1..12576cc 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-email.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-email.html index 5a1f215..0f84c08 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-email.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-email.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-url.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-url.html index a4759ba..333ee15 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-url.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-url.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author.html index 771a41b..953e1ec 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-charset.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-charset.html index 417672b..08be284 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-charset.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-charset.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-lang.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-lang.html index 243e14a..2eb0196 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-lang.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-lang.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/content.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/content.html index 1cf4d17..607cff5 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/content.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/content.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/date-gmt.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/date-gmt.html index 10dc3fd..3ae7ad7 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/date-gmt.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/date-gmt.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/index.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/index.html index 7ecb16f..4d6340a 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/index.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/index.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/is-test.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/is-test.html index 7d8a664..38be6ab 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/is-test.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/is-test.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/permalink.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/permalink.html index 5e020ce..a4d80d1 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/permalink.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/permalink.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/post-modified-gmt.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/post-modified-gmt.html index 2b171c7..d6ea740 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/post-modified-gmt.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/post-modified-gmt.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/recheck-reason.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/recheck-reason.html index 7235200..637a275 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/recheck-reason.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/recheck-reason.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/referrer.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/referrer.html index 455a9bc..21c0d83 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/referrer.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/referrer.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/server-env.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/server-env.html index df7cd4d..8956bbb 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/server-env.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/server-env.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/type.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/type.html index f73990e..6e58405 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/type.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/type.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-agent.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-agent.html index 408ddc3..d7f041a 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-agent.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-agent.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-ip.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-ip.html index f69626e..175e7ff 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-ip.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-ip.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-role.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-role.html index 34597bb..32f14b6 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-role.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-role.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-comment-type.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-comment-type.html index 80673c4..b86739b 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-comment-type.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-comment-type.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-b-l-o-g_-p-o-s-t.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-b-l-o-g_-p-o-s-t.html index 2d02ed0..5fc5dc4 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-b-l-o-g_-p-o-s-t.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-b-l-o-g_-p-o-s-t.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-m-m-e-n-t.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-m-m-e-n-t.html index 8a9b32e..5a3fa75 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-m-m-e-n-t.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-m-m-e-n-t.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-n-t-a-c-t_-f-o-r-m.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-n-t-a-c-t_-f-o-r-m.html index 1089ad5..a06e3c0 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-n-t-a-c-t_-f-o-r-m.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-n-t-a-c-t_-f-o-r-m.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-f-o-r-u-m_-p-o-s-t.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-f-o-r-u-m_-p-o-s-t.html index f13db66..772c3b3 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-f-o-r-u-m_-p-o-s-t.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-f-o-r-u-m_-p-o-s-t.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-m-e-s-s-a-g-e.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-m-e-s-s-a-g-e.html index cabdba5..37aded8 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-m-e-s-s-a-g-e.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-m-e-s-s-a-g-e.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-n-o-n-e.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-n-o-n-e.html index 818e597..f6a4b0c 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-n-o-n-e.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-n-o-n-e.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-p-i-n-g-b-a-c-k.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-p-i-n-g-b-a-c-k.html index 8ee351b..7d36063 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-p-i-n-g-b-a-c-k.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-p-i-n-g-b-a-c-k.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-r-e-p-l-y.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-r-e-p-l-y.html index e5ee7b5..045a915 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-r-e-p-l-y.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-r-e-p-l-y.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-s-i-g-n-u-p.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-s-i-g-n-u-p.html index 0dc1503..cc8c70b 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-s-i-g-n-u-p.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-s-i-g-n-u-p.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-t-r-a-c-k-b-a-c-k.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-t-r-a-c-k-b-a-c-k.html index a92fe95..fedc9c5 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-t-r-a-c-k-b-a-c-k.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-t-r-a-c-k-b-a-c-k.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-t-w-e-e-t.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-t-w-e-e-t.html index 2d47550..57fb724 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-t-w-e-e-t.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-t-w-e-e-t.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/index.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/index.html index 2c69516..fe223bc 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/index.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/index.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/index.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/index.html index 94b29fc..e2e6f29 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/index.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/index.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/value.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/value.html index 9a7cf78..ea7ae3d 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/value.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/value.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/index.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/index.html index 72c6c9a..570b337 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/index.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/index.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/docs/index.html b/docs/index.html index 4a4f063..798d096 100644 --- a/docs/index.html +++ b/docs/index.html @@ -45,7 +45,7 @@
-1.0.1-SNAPSHOT
+1.1.0-SNAPSHOT
diff --git a/examples/bld/src/bld/java/com/example/ExampleBuild.java b/examples/bld/src/bld/java/com/example/ExampleBuild.java index 8afa1c7..ff74303 100644 --- a/examples/bld/src/bld/java/com/example/ExampleBuild.java +++ b/examples/bld/src/bld/java/com/example/ExampleBuild.java @@ -24,7 +24,7 @@ public class ExampleBuild extends BaseProject { repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL, SONATYPE_SNAPSHOTS_LEGACY); scope(compile) - .include(dependency("net.thauvin.erik:akismet-kotlin:1.0.1-SNAPSHOT")) + .include(dependency("net.thauvin.erik:akismet-kotlin:1.1.0-SNAPSHOT")) .include(dependency("jakarta.servlet:jakarta.servlet-api:6.0.0")); } diff --git a/examples/gradle/build.gradle.kts b/examples/gradle/build.gradle.kts index db1e416..924f9ac 100644 --- a/examples/gradle/build.gradle.kts +++ b/examples/gradle/build.gradle.kts @@ -13,7 +13,7 @@ repositories { dependencies { implementation("jakarta.servlet:jakarta.servlet-api:6.0.0") - implementation("net.thauvin.erik:akismet-kotlin:1.0.1-SNAPSHOT") + implementation("net.thauvin.erik:akismet-kotlin:1.1.0-SNAPSHOT") } java { diff --git a/pom.xml b/pom.xml index 14e130d..eec64aa 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 net.thauvin.erik akismet-kotlin - 1.0.1-SNAPSHOT + 1.1.0-SNAPSHOT akismet-kotlin A client library for accessing the Automattic Kismet (Akismet) spam comments filtering service. https://github.com/ethauvin/akismet-kotlin diff --git a/src/bld/java/net/thauvin/erik/AkismetBuild.java b/src/bld/java/net/thauvin/erik/AkismetBuild.java index e425823..fadf611 100644 --- a/src/bld/java/net/thauvin/erik/AkismetBuild.java +++ b/src/bld/java/net/thauvin/erik/AkismetBuild.java @@ -59,7 +59,7 @@ public class AkismetBuild extends Project { public AkismetBuild() { pkg = "net.thauvin.erik"; name = "akismet-kotlin"; - version = version(1, 0, 1, "SNAPSHOT"); + version = version(1, 1, 0, "SNAPSHOT"); javaRelease = 11; downloadSources = true; diff --git a/src/main/kotlin/net/thauvin/erik/akismet/GeneratedVersion.kt b/src/main/kotlin/net/thauvin/erik/akismet/GeneratedVersion.kt index 8f63ec2..7a30996 100644 --- a/src/main/kotlin/net/thauvin/erik/akismet/GeneratedVersion.kt +++ b/src/main/kotlin/net/thauvin/erik/akismet/GeneratedVersion.kt @@ -10,5 +10,5 @@ package net.thauvin.erik.akismet */ internal object GeneratedVersion { const val PROJECT = "Akismet Kotlin" - const val VERSION = "1.0.1-SNAPSHOT" + const val VERSION = "1.1.0-SNAPSHOT" } From 56a8cbd7f7041a9ca73c1db1ab95e4b5281b0b4e Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sat, 25 May 2024 00:24:12 -0700 Subject: [PATCH 31/63] Fixed docs generation classpath --- .idea/libraries/compile.xml | 4 + .idea/libraries/test.xml | 5 + .../-akismet-comment/-akismet-comment.html | 4 +- .../-akismet-comment/index.html | 8 +- .../-akismet/-companion/date-to-gmt.html | 2 +- .../-akismet/-companion/index.html | 4 +- .../-akismet/-companion/json-comment.html | 2 +- .../-akismet/check-comment.html | 2 +- .../-akismet/execute-method.html | 4 +- .../-akismet/index.html | 8 +- .../-comment-config/-comment-config.html | 2 +- .../-comment-config/index.html | 4 +- .../-companion/-b-l-o-g_-p-o-s-t.html | 2 +- .../-companion/-c-o-m-m-e-n-t.html | 2 +- .../-companion/-c-o-n-t-a-c-t_-f-o-r-m.html | 2 +- .../-companion/-f-o-r-u-m_-p-o-s-t.html | 2 +- .../-companion/-m-e-s-s-a-g-e.html | 2 +- .../-comment-type/-companion/-n-o-n-e.html | 2 +- .../-companion/-p-i-n-g-b-a-c-k.html | 2 +- .../-comment-type/-companion/-r-e-p-l-y.html | 2 +- .../-companion/-s-i-g-n-u-p.html | 2 +- .../-companion/-t-r-a-c-k-b-a-c-k.html | 2 +- .../-comment-type/-companion/-t-w-e-e-t.html | 2 +- .../-comment-type/-companion/index.html | 22 +- .../-comment-type/index.html | 2 +- .../net.thauvin.erik.akismet/index.html | 6 +- docs/-akismet -kotlin/package-list | 4 +- .../-akismet-comment/-akismet-comment.html | 80 +++ .../-companion/-a-d-m-i-n_-r-o-l-e.html | 80 +++ .../-akismet-comment/-companion/index.html | 104 +++ .../-akismet-comment/author-email.html | 80 +++ .../-akismet-comment/author-url.html | 80 +++ .../-akismet-comment/author.html | 80 +++ .../-akismet-comment/blog-charset.html | 80 +++ .../-akismet-comment/blog-lang.html | 80 +++ .../-akismet-comment/content.html | 80 +++ .../-akismet-comment/date-gmt.html | 80 +++ .../-akismet-comment/equals.html | 80 +++ .../-akismet-comment/hash-code.html | 80 +++ .../-akismet-comment/index.html | 446 ++++++++++++ .../-akismet-comment/is-test.html | 80 +++ .../-akismet-comment/permalink.html | 80 +++ .../-akismet-comment/post-modified-gmt.html | 80 +++ .../-akismet-comment/recheck-reason.html | 80 +++ .../-akismet-comment/referrer.html | 80 +++ .../-akismet-comment/server-env.html | 80 +++ .../-akismet-comment/to-json.html | 80 +++ .../-akismet-comment/to-string.html | 80 +++ .../-akismet-comment/type.html | 80 +++ .../-akismet-comment/user-agent.html | 80 +++ .../-akismet-comment/user-ip.html | 80 +++ .../-akismet-comment/user-role.html | 80 +++ .../-akismet/-akismet.html | 80 +++ .../-akismet/-companion/date-to-gmt.html | 80 +++ .../-akismet/-companion/index.html | 119 ++++ .../-akismet/-companion/json-comment.html | 80 +++ .../-akismet/app-user-agent.html | 80 +++ .../-akismet/blog.html | 80 +++ .../-akismet/check-comment.html | 80 +++ .../-akismet/debug-help.html | 80 +++ .../-akismet/error-message.html | 80 +++ .../-akismet/execute-method.html | 80 +++ .../-akismet/http-status-code.html | 80 +++ .../-akismet/index.html | 371 ++++++++++ .../-akismet/is-discard.html | 80 +++ .../-akismet/is-verified-key.html | 80 +++ .../-akismet/logger.html | 80 +++ .../-akismet/pro-tip.html | 80 +++ .../-akismet/reset.html | 80 +++ .../-akismet/response.html | 80 +++ .../-akismet/submit-ham.html | 80 +++ .../-akismet/submit-spam.html | 80 +++ .../-akismet/verify-key.html | 80 +++ .../-comment-config/-builder/-builder.html | 80 +++ .../-builder/author-email.html | 80 +++ .../-comment-config/-builder/author-url.html | 80 +++ .../-comment-config/-builder/author.html | 80 +++ .../-builder/blog-charset.html | 80 +++ .../-comment-config/-builder/blog-lang.html | 80 +++ .../-comment-config/-builder/build.html | 80 +++ .../-comment-config/-builder/content.html | 80 +++ .../-comment-config/-builder/date-gmt.html | 80 +++ .../-comment-config/-builder/index.html | 637 ++++++++++++++++++ .../-comment-config/-builder/is-test.html | 80 +++ .../-comment-config/-builder/permalink.html | 80 +++ .../-builder/post-modified-gmt.html | 80 +++ .../-builder/recheck-reason.html | 80 +++ .../-comment-config/-builder/referrer.html | 80 +++ .../-comment-config/-builder/server-env.html | 80 +++ .../-comment-config/-builder/type.html | 80 +++ .../-comment-config/-builder/user-agent.html | 80 +++ .../-comment-config/-builder/user-ip.html | 80 +++ .../-comment-config/-builder/user-role.html | 80 +++ .../-comment-config/-comment-config.html | 80 +++ .../-comment-config/author-email.html | 80 +++ .../-comment-config/author-url.html | 80 +++ .../-comment-config/author.html | 80 +++ .../-comment-config/blog-charset.html | 80 +++ .../-comment-config/blog-lang.html | 80 +++ .../-comment-config/content.html | 80 +++ .../-comment-config/date-gmt.html | 80 +++ .../-comment-config/index.html | 382 +++++++++++ .../-comment-config/is-test.html | 80 +++ .../-comment-config/permalink.html | 80 +++ .../-comment-config/post-modified-gmt.html | 80 +++ .../-comment-config/recheck-reason.html | 80 +++ .../-comment-config/referrer.html | 80 +++ .../-comment-config/server-env.html | 80 +++ .../-comment-config/type.html | 80 +++ .../-comment-config/user-agent.html | 80 +++ .../-comment-config/user-ip.html | 80 +++ .../-comment-config/user-role.html | 80 +++ .../-comment-type/-comment-type.html | 80 +++ .../-companion/-b-l-o-g_-p-o-s-t.html | 80 +++ .../-companion/-c-o-m-m-e-n-t.html | 80 +++ .../-companion/-c-o-n-t-a-c-t_-f-o-r-m.html | 80 +++ .../-companion/-f-o-r-u-m_-p-o-s-t.html | 80 +++ .../-companion/-m-e-s-s-a-g-e.html | 80 +++ .../-comment-type/-companion/-n-o-n-e.html | 80 +++ .../-companion/-p-i-n-g-b-a-c-k.html | 80 +++ .../-comment-type/-companion/-r-e-p-l-y.html | 80 +++ .../-companion/-s-i-g-n-u-p.html | 80 +++ .../-companion/-t-r-a-c-k-b-a-c-k.html | 80 +++ .../-comment-type/-companion/-t-w-e-e-t.html | 80 +++ .../-comment-type/-companion/index.html | 254 +++++++ .../-comment-type/index.html | 142 ++++ .../-comment-type/value.html | 80 +++ docs/root/net.thauvin.erik.akismet/index.html | 148 ++++ docs/root/package-list | 127 ++++ docs/scripts/pages.json | 2 +- lib/bld/bld-wrapper.properties | 2 +- pom.xml | 6 - .../java/net/thauvin/erik/AkismetBuild.java | 4 +- 133 files changed, 10152 insertions(+), 57 deletions(-) create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/author-email.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/author-url.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/author.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/content.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/equals.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/hash-code.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/index.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/is-test.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/permalink.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/referrer.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/server-env.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/to-json.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/to-string.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/type.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/user-agent.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/user-ip.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet-comment/user-role.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet/-akismet.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet/-companion/index.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet/app-user-agent.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet/blog.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet/check-comment.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet/debug-help.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet/error-message.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet/execute-method.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet/http-status-code.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet/index.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet/is-discard.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet/is-verified-key.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet/logger.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet/pro-tip.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet/reset.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet/response.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet/submit-ham.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet/submit-spam.html create mode 100644 docs/root/net.thauvin.erik.akismet/-akismet/verify-key.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/-builder/-builder.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/-builder/author.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/-builder/build.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/-builder/content.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/-builder/index.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/-builder/type.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/-comment-config.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/author-email.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/author-url.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/author.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/blog-charset.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/blog-lang.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/content.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/date-gmt.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/index.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/is-test.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/permalink.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/post-modified-gmt.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/recheck-reason.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/referrer.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/server-env.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/type.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/user-agent.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/user-ip.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-config/user-role.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-type/-comment-type.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-b-l-o-g_-p-o-s-t.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-m-m-e-n-t.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-n-t-a-c-t_-f-o-r-m.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-f-o-r-u-m_-p-o-s-t.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-m-e-s-s-a-g-e.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-n-o-n-e.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-p-i-n-g-b-a-c-k.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-r-e-p-l-y.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-s-i-g-n-u-p.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-t-r-a-c-k-b-a-c-k.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-t-w-e-e-t.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-type/-companion/index.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-type/index.html create mode 100644 docs/root/net.thauvin.erik.akismet/-comment-type/value.html create mode 100644 docs/root/net.thauvin.erik.akismet/index.html create mode 100644 docs/root/package-list diff --git a/.idea/libraries/compile.xml b/.idea/libraries/compile.xml index 9bd86aa..143dc93 100644 --- a/.idea/libraries/compile.xml +++ b/.idea/libraries/compile.xml @@ -2,12 +2,16 @@ + + + + \ No newline at end of file diff --git a/.idea/libraries/test.xml b/.idea/libraries/test.xml index b80486a..ce3c795 100644 --- a/.idea/libraries/test.xml +++ b/.idea/libraries/test.xml @@ -2,13 +2,18 @@ + + + + + \ No newline at end of file diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html index 5a21ce3..11d8349 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html @@ -61,12 +61,12 @@
-
+

AkismetComment

-
constructor(request: <Error class: unknown class>)(source)

Creates a new instance extracting the userIp, userAgent, referrer and serverEnv environment variables from a Servlet request.

See the Akismet API for more details.

See also


constructor(config: CommentConfig)(source)


constructor(userIp: String, userAgent: String)(source)

Creates a new instance.

See the Akismet API for more details.

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

+
constructor(request: HttpServletRequest)(source)

Creates a new instance extracting the userIp, userAgent, referrer and serverEnv environment variables from a Servlet request.

See the Akismet API for more details.

See also


constructor(config: CommentConfig)(source)


constructor(userIp: String, userAgent: String)(source)

Creates a new instance.

See the Akismet API for more details.

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

AkismetComment

-
open class AkismetComment(val userIp: String, val userAgent: String)(source)

A comment to send to Akismet.

Most everything is optional. Performance can drop dramatically if you choose to exclude data points. The more data you send Akismet about each comment, the greater the accuracy. They recommend erring on the side of including too much data.

See the Akismet API for more details.

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

+
@Serializable
open class AkismetComment(val userIp: String, val userAgent: String)(source)

A comment to send to Akismet.

Most everything is optional. Performance can drop dramatically if you choose to exclude data points. The more data you send Akismet about each comment, the greater the accuracy. They recommend erring on the side of including too much data.

See the Akismet API for more details.

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

Constructors

-
+
- +
Link copied to clipboard
-
constructor(request: <Error class: unknown class>)

Creates a new instance extracting the userIp, userAgent, referrer and serverEnv environment variables from a Servlet request.

constructor(config: CommentConfig)
constructor(userIp: String, userAgent: String)

Creates a new instance.

+
constructor(request: HttpServletRequest)

Creates a new instance extracting the userIp, userAgent, referrer and serverEnv environment variables from a Servlet request.

constructor(config: CommentConfig)
constructor(userIp: String, userAgent: String)

Creates a new instance.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html index 5a96283..0924417 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html @@ -66,7 +66,7 @@

dateToGmt

-

Converts a date to a UTC timestamp. (ISO 8601)

See also


Converts a locale date/time to a UTC timestamp. (ISO 8601)

See also

+

Converts a date to a UTC timestamp. (ISO 8601)

See also


Converts a locale date/time to a UTC timestamp. (ISO 8601)

See also

-

Converts a locale date/time to a UTC timestamp. (ISO 8601)

fun dateToGmt(date: Date): String

Converts a date to a UTC timestamp. (ISO 8601)

+

Converts a locale date/time to a UTC timestamp. (ISO 8601)

Converts a date to a UTC timestamp. (ISO 8601)

@@ -97,7 +97,7 @@
-

(Re)Creates a comment from a JSON string.

+

(Re)Creates a comment from a JSON string.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html index 1c68d13..ed8f7c5 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html @@ -66,7 +66,7 @@

jsonComment

-

(Re)Creates a comment from a JSON string.

See also

+

(Re)Creates a comment from a JSON string.

See also

-
fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean(source)

Comment Check.

This is the call you will make the most. It takes a number of arguments and characteristics about the submitted content and then returns a thumbs up or thumbs down. Performance can drop dramatically if you choose to exclude data points. The more data you send Akismet about each comment, the greater the accuracy. They recommend erring on the side of including too much data

By default, if an error (IO, empty response from Akismet, etc.) occurs the function will return false and log the error, use the trueOnError parameter to change this behavior.

See the Akismet API for more details.

Return

true if the comment is spam, false if the comment is not.

Parameters

trueOnError

Set to return true on error.

+
fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean(source)

Comment Check.

This is the call you will make the most. It takes a number of arguments and characteristics about the submitted content and then returns a thumbs up or thumbs down. Performance can drop dramatically if you choose to exclude data points. The more data you send Akismet about each comment, the greater the accuracy. They recommend erring on the side of including too much data

By default, if an error (IO, empty response from Akismet, etc.) occurs the function will return false and log the error, use the trueOnError parameter to change this behavior.

See the Akismet API for more details.

Return

true if the comment is spam, false if the comment is not.

Parameters

trueOnError

Set to return true on error.

-
+

executeMethod

-
fun executeMethod(apiUrl: <Error class: unknown class>, formBody: <Error class: unknown class>, trueOnError: Boolean = false): Boolean(source)

Executes a call to an Akismet REST API method.

Parameters

apiUrl

The Akismet API URL endpoint. (e.g. https://rest.akismet.com/1.1/verify-key)

formBody

The HTTP POST form body containing the request parameters to be submitted.

trueOnError

Set to return true on error (IO, empty response, etc.)

+
fun executeMethod(apiUrl: HttpUrl, formBody: FormBody, trueOnError: Boolean = false): Boolean(source)

Executes a call to an Akismet REST API method.

Parameters

apiUrl

The Akismet API URL endpoint. (e.g. https://rest.akismet.com/1.1/verify-key)

formBody

The HTTP POST form body containing the request parameters to be submitted.

trueOnError

Set to return true on error (IO, empty response, etc.)

-
fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean

Comment Check.

+
fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean

Comment Check.

- +
- +
Link copied to clipboard
-
fun executeMethod(apiUrl: <Error class: unknown class>, formBody: <Error class: unknown class>, trueOnError: Boolean = false): Boolean

Executes a call to an Akismet REST API method.

+
fun executeMethod(apiUrl: HttpUrl, formBody: FormBody, trueOnError: Boolean = false): Boolean

Executes a call to an Akismet REST API method.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html index 12576cc..92cb19d 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html @@ -66,7 +66,7 @@

CommentConfig

-
constructor(builder: CommentConfig.Builder)(source)


constructor(userIp: String, userAgent: String, referrer: String = "", permalink: String = "", type: CommentType = CommentType.NONE, author: String = "", authorEmail: String = "", authorUrl: String = "", content: String = "", dateGmt: String = "", postModifiedGmt: String = "", blogLang: String = "", blogCharset: String = "", userRole: String = "", isTest: Boolean = false, recheckReason: String = "", serverEnv: Map<String, String> = emptyMap())(source)

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

+
constructor(builder: CommentConfig.Builder)(source)


constructor(userIp: String, userAgent: String, referrer: String = "", permalink: String = "", type: CommentType = CommentType.NONE, author: String = "", authorEmail: String = "", authorUrl: String = "", content: String = "", dateGmt: String = "", postModifiedGmt: String = "", blogLang: String = "", blogCharset: String = "", userRole: String = "", isTest: Boolean = false, recheckReason: String = "", serverEnv: Map<String, String> = emptyMap())(source)

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

CommentConfig

-
class CommentConfigĀ constructor(var userIp: String, var userAgent: String, var referrer: String = "", var permalink: String = "", var type: CommentType = CommentType.NONE, var author: String = "", var authorEmail: String = "", var authorUrl: String = "", var content: String = "", var dateGmt: String = "", var postModifiedGmt: String = "", var blogLang: String = "", var blogCharset: String = "", var userRole: String = "", var isTest: Boolean = false, var recheckReason: String = "", var serverEnv: Map<String, String> = emptyMap())(source)

Provides a comment configuration.

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

+
class CommentConfigĀ @JvmOverloadsĀ constructor(var userIp: String, var userAgent: String, var referrer: String = "", var permalink: String = "", var type: CommentType = CommentType.NONE, var author: String = "", var authorEmail: String = "", var authorUrl: String = "", var content: String = "", var dateGmt: String = "", var postModifiedGmt: String = "", var blogLang: String = "", var blogCharset: String = "", var userRole: String = "", var isTest: Boolean = false, var recheckReason: String = "", var serverEnv: Map<String, String> = emptyMap())(source)

Provides a comment configuration.

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

@@ -82,7 +82,7 @@
-
constructor(builder: CommentConfig.Builder)
constructor(userIp: String, userAgent: String, referrer: String = "", permalink: String = "", type: CommentType = CommentType.NONE, author: String = "", authorEmail: String = "", authorUrl: String = "", content: String = "", dateGmt: String = "", postModifiedGmt: String = "", blogLang: String = "", blogCharset: String = "", userRole: String = "", isTest: Boolean = false, recheckReason: String = "", serverEnv: Map<String, String> = emptyMap())
+
constructor(builder: CommentConfig.Builder)
constructor(userIp: String, userAgent: String, referrer: String = "", permalink: String = "", type: CommentType = CommentType.NONE, author: String = "", authorEmail: String = "", authorUrl: String = "", content: String = "", dateGmt: String = "", postModifiedGmt: String = "", blogLang: String = "", blogCharset: String = "", userRole: String = "", isTest: Boolean = false, recheckReason: String = "", serverEnv: Map<String, String> = emptyMap())
diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-b-l-o-g_-p-o-s-t.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-b-l-o-g_-p-o-s-t.html index 5fc5dc4..4a5d2f0 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-b-l-o-g_-p-o-s-t.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-b-l-o-g_-p-o-s-t.html @@ -66,7 +66,7 @@

BLOG_POST

-

A blog post.

+ -

A blog comment.

+

A blog comment.

-

A contact form or feedback form submission.

+

A contact form or feedback form submission.

-

A top-level forum post.

+

A top-level forum post.

-

A message sent between just a few users.

+

A message sent between just a few users.

-

Undefined type.

+

Undefined type.

-

A pingback.

+ -

A reply to a top-level forum post.

+

A reply to a top-level forum post.

-

A new user account.

+

A new user account.

-

A trackback.

+ -

A Twitter message.

+

A Twitter message.

-

A blog post.

+

A blog post.

@@ -97,7 +97,7 @@
-

A blog comment.

+

A blog comment.

@@ -112,7 +112,7 @@
-

A contact form or feedback form submission.

+

A contact form or feedback form submission.

@@ -127,7 +127,7 @@
-

A top-level forum post.

+

A top-level forum post.

@@ -142,7 +142,7 @@
-

A message sent between just a few users.

+

A message sent between just a few users.

@@ -157,7 +157,7 @@
-

Undefined type.

+

Undefined type.

@@ -172,7 +172,7 @@
-

A pingback.

+

A pingback.

@@ -187,7 +187,7 @@
-

A reply to a top-level forum post.

+

A reply to a top-level forum post.

@@ -202,7 +202,7 @@
-

A new user account.

+

A new user account.

@@ -217,7 +217,7 @@
-

A trackback.

+

A trackback.

@@ -232,7 +232,7 @@
-

A Twitter message.

+

A Twitter message.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/index.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/index.html index e2e6f29..40c11a5 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/index.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/index.html @@ -65,7 +65,7 @@

CommentType

-
data class CommentType(var value: String)(source)

Defines the comment types.

+
@Serializable
data class CommentType(var value: String)(source)

Defines the comment types.

diff --git a/docs/-akismet -kotlin/net.thauvin.erik.akismet/index.html b/docs/-akismet -kotlin/net.thauvin.erik.akismet/index.html index 570b337..d28b509 100644 --- a/docs/-akismet -kotlin/net.thauvin.erik.akismet/index.html +++ b/docs/-akismet -kotlin/net.thauvin.erik.akismet/index.html @@ -97,7 +97,7 @@
-
open class AkismetComment(val userIp: String, val userAgent: String)

A comment to send to Akismet.

+
@Serializable
open class AkismetComment(val userIp: String, val userAgent: String)

A comment to send to Akismet.

@@ -112,7 +112,7 @@
-
class CommentConfigĀ constructor(var userIp: String, var userAgent: String, var referrer: String = "", var permalink: String = "", var type: CommentType = CommentType.NONE, var author: String = "", var authorEmail: String = "", var authorUrl: String = "", var content: String = "", var dateGmt: String = "", var postModifiedGmt: String = "", var blogLang: String = "", var blogCharset: String = "", var userRole: String = "", var isTest: Boolean = false, var recheckReason: String = "", var serverEnv: Map<String, String> = emptyMap())

Provides a comment configuration.

+
class CommentConfigĀ @JvmOverloadsĀ constructor(var userIp: String, var userAgent: String, var referrer: String = "", var permalink: String = "", var type: CommentType = CommentType.NONE, var author: String = "", var authorEmail: String = "", var authorUrl: String = "", var content: String = "", var dateGmt: String = "", var postModifiedGmt: String = "", var blogLang: String = "", var blogCharset: String = "", var userRole: String = "", var isTest: Boolean = false, var recheckReason: String = "", var serverEnv: Map<String, String> = emptyMap())

Provides a comment configuration.

@@ -127,7 +127,7 @@
-
data class CommentType(var value: String)

Defines the comment types.

+
@Serializable
data class CommentType(var value: String)

Defines the comment types.

diff --git a/docs/-akismet -kotlin/package-list b/docs/-akismet -kotlin/package-list index ab8ee51..5372bf1 100644 --- a/docs/-akismet -kotlin/package-list +++ b/docs/-akismet -kotlin/package-list @@ -13,7 +13,7 @@ $dokka.location:net.thauvin.erik.akismet/Akismet/blog/#/PointingToDeclaration/- $dokka.location:net.thauvin.erik.akismet/Akismet/checkComment/#net.thauvin.erik.akismet.AkismetComment#kotlin.Boolean/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html $dokka.location:net.thauvin.erik.akismet/Akismet/debugHelp/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html $dokka.location:net.thauvin.erik.akismet/Akismet/errorMessage/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/error-message.html -$dokka.location:net.thauvin.erik.akismet/Akismet/executeMethod/#[Error type: Unresolved type for HttpUrl]#[Error type: Unresolved type for FormBody]#kotlin.Boolean/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html +$dokka.location:net.thauvin.erik.akismet/Akismet/executeMethod/#okhttp3.HttpUrl#okhttp3.FormBody#kotlin.Boolean/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html $dokka.location:net.thauvin.erik.akismet/Akismet/httpStatusCode/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html $dokka.location:net.thauvin.erik.akismet/Akismet/isDiscard/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html $dokka.location:net.thauvin.erik.akismet/Akismet/isVerifiedKey/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html @@ -27,7 +27,7 @@ $dokka.location:net.thauvin.erik.akismet/Akismet/verifyKey/#/PointingToDeclarati $dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion///PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html $dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/ADMIN_ROLE/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html $dokka.location:net.thauvin.erik.akismet/AkismetComment///PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html -$dokka.location:net.thauvin.erik.akismet/AkismetComment/AkismetComment/#[Error type: Unresolved type for HttpServletRequest]/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/AkismetComment/#jakarta.servlet.http.HttpServletRequest/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html $dokka.location:net.thauvin.erik.akismet/AkismetComment/AkismetComment/#kotlin.String#kotlin.String/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html $dokka.location:net.thauvin.erik.akismet/AkismetComment/AkismetComment/#net.thauvin.erik.akismet.CommentConfig/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html $dokka.location:net.thauvin.erik.akismet/AkismetComment/author/#/PointingToDeclaration/-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html new file mode 100644 index 0000000..c4dc2d9 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html @@ -0,0 +1,80 @@ + + + + + AkismetComment + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

AkismetComment

+
+
constructor(request: <Error class: unknown class>)

Creates a new instance extracting the userIp, userAgent, referrer and serverEnv environment variables from a Servlet request.

See the Akismet API for more details.

See also


constructor(config: CommentConfig)


constructor(userIp: String, userAgent: String)

Creates a new instance.

See the Akismet API for more details.

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html new file mode 100644 index 0000000..5313584 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html @@ -0,0 +1,80 @@ + + + + + ADMIN_ROLE + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

ADMIN_ROLE

+
+
const val ADMIN_ROLE: String

Administrator role. If used, Akismet will always return false.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html new file mode 100644 index 0000000..be496c0 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html @@ -0,0 +1,104 @@ + + + + + Companion + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

Companion

+
object Companion
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
const val ADMIN_ROLE: String

Administrator role. If used, Akismet will always return false.

+
+
+
+
+
+
+
+
+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/author-email.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/author-email.html new file mode 100644 index 0000000..39a43b3 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/author-email.html @@ -0,0 +1,80 @@ + + + + + authorEmail + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

authorEmail

+
+

Email address submitted with the comment.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/author-url.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/author-url.html new file mode 100644 index 0000000..4fc00f8 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/author-url.html @@ -0,0 +1,80 @@ + + + + + authorUrl + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

authorUrl

+
+

URL submitted with comment.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/author.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/author.html new file mode 100644 index 0000000..6d6acda --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/author.html @@ -0,0 +1,80 @@ + + + + + author + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

author

+
+

Name submitted with the comment.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html new file mode 100644 index 0000000..95d456a --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html @@ -0,0 +1,80 @@ + + + + + blogCharset + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

blogCharset

+
+

The character encoding for the form values included in comment parameters, such as UTF-8 or ISO-8859-1

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html new file mode 100644 index 0000000..87f364e --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html @@ -0,0 +1,80 @@ + + + + + blogLang + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

blogLang

+
+

Indicates the language(s) in use on the blog or site, in ISO 639-1 format, comma-separated.

A site with articles in English and French might use: en, fr_ca

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/content.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/content.html new file mode 100644 index 0000000..744a94f --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/content.html @@ -0,0 +1,80 @@ + + + + + content + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

content

+
+

The content that was submitted.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html new file mode 100644 index 0000000..bf91cd0 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html @@ -0,0 +1,80 @@ + + + + + dateGmt + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

dateGmt

+
+

The UTC timestamp of the creation of the comment, in ISO 8601 format.

May be omitted if the comment is sent to the API at the time it is created.

See also

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/equals.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/equals.html new file mode 100644 index 0000000..1d016a3 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/equals.html @@ -0,0 +1,80 @@ + + + + + equals + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

equals

+
+
open operator override fun equals(other: Any?): Boolean

Indicates whether some other object is equal to this one.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/hash-code.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/hash-code.html new file mode 100644 index 0000000..f0b4cf5 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/hash-code.html @@ -0,0 +1,80 @@ + + + + + hashCode + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

hashCode

+
+
open override fun hashCode(): Int

Returns a hash code value for the object.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/index.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/index.html new file mode 100644 index 0000000..c32b8f2 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/index.html @@ -0,0 +1,446 @@ + + + + + AkismetComment + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

AkismetComment

+
open class AkismetComment(val userIp: String, val userAgent: String)

A comment to send to Akismet.

Most everything is optional. Performance can drop dramatically if you choose to exclude data points. The more data you send Akismet about each comment, the greater the accuracy. They recommend erring on the side of including too much data.

See the Akismet API for more details.

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

+
+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
constructor(request: <Error class: unknown class>)

Creates a new instance extracting the userIp, userAgent, referrer and serverEnv environment variables from a Servlet request.

constructor(config: CommentConfig)
constructor(userIp: String, userAgent: String)

Creates a new instance.

+
+
+
+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
object Companion
+
+
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Name submitted with the comment.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Email address submitted with the comment.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

URL submitted with comment.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The character encoding for the form values included in comment parameters, such as UTF-8 or ISO-8859-1

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Indicates the language(s) in use on the blog or site, in ISO 639-1 format, comma-separated.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The content that was submitted.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The UTC timestamp of the creation of the comment, in ISO 8601 format.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

This is an optional parameter. You can use it when submitting test queries to Akismet.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The full permanent URL of the entry the comment was submitted to.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The UTC timestamp of the publication time for the post, page or thread on which the comment was posted.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

If you are sending content to Akismet to be rechecked, such as a post that has been edited or old pending comments that you'd like to recheck, include this parameter with a string describing why the content is being rechecked.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The content of the referer header should be set here.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

In PHP, there is an array of environmental variables called $_SERVER that contains information about the Web server itself as well as a key/value for every HTTP header sent with the request. This data is highly useful to Akismet.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

A string that describes the type of content being sent, such as:

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The user role of the user who submitted the comment. This is an optional parameter.

+
+
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open operator override fun equals(other: Any?): Boolean

Indicates whether some other object is equal to this one.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun hashCode(): Int

Returns a hash code value for the object.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun toJson(): String

Returns a JSON representation of the comment.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open override fun toString(): String

Returns a JSON representation of the comment.

+
+
+
+
+
+
+
+
+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/is-test.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/is-test.html new file mode 100644 index 0000000..71b3c62 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/is-test.html @@ -0,0 +1,80 @@ + + + + + isTest + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

isTest

+
+

This is an optional parameter. You can use it when submitting test queries to Akismet.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/permalink.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/permalink.html new file mode 100644 index 0000000..5f18f9f --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/permalink.html @@ -0,0 +1,80 @@ + + + + + permalink + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

permalink

+
+

The full permanent URL of the entry the comment was submitted to.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html new file mode 100644 index 0000000..8674bcf --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html @@ -0,0 +1,80 @@ + + + + + postModifiedGmt + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

postModifiedGmt

+
+

The UTC timestamp of the publication time for the post, page or thread on which the comment was posted.

See also

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html new file mode 100644 index 0000000..82e0075 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html @@ -0,0 +1,80 @@ + + + + + recheckReason + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

recheckReason

+
+

If you are sending content to Akismet to be rechecked, such as a post that has been edited or old pending comments that you'd like to recheck, include this parameter with a string describing why the content is being rechecked.

For example: edit

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/referrer.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/referrer.html new file mode 100644 index 0000000..a9a67a1 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/referrer.html @@ -0,0 +1,80 @@ + + + + + referrer + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

referrer

+
+

The content of the referer header should be set here.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/server-env.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/server-env.html new file mode 100644 index 0000000..e92a50e --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/server-env.html @@ -0,0 +1,80 @@ + + + + + serverEnv + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

serverEnv

+
+

In PHP, there is an array of environmental variables called $_SERVER that contains information about the Web server itself as well as a key/value for every HTTP header sent with the request. This data is highly useful to Akismet.

How the submitted content interacts with the server can be very telling, so please include as much of it as possible.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/to-json.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/to-json.html new file mode 100644 index 0000000..bc88e62 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/to-json.html @@ -0,0 +1,80 @@ + + + + + toJson + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

toJson

+
+
fun toJson(): String

Returns a JSON representation of the comment.

See also

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/to-string.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/to-string.html new file mode 100644 index 0000000..f61a2d9 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/to-string.html @@ -0,0 +1,80 @@ + + + + + toString + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

toString

+
+
open override fun toString(): String

Returns a JSON representation of the comment.

See also

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/type.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/type.html new file mode 100644 index 0000000..8e18d92 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/type.html @@ -0,0 +1,80 @@ + + + + + type + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

type

+
+

A string that describes the type of content being sent, such as:

You may send a value not listed above if none of them accurately describe your content.

This is further explained here.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/user-agent.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/user-agent.html new file mode 100644 index 0000000..6127697 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/user-agent.html @@ -0,0 +1,80 @@ + + + + + userAgent + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

userAgent

+
+

Parameters

userAgent

User agent string of the web browser submitting the comment.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/user-ip.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/user-ip.html new file mode 100644 index 0000000..1fbc4a0 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/user-ip.html @@ -0,0 +1,80 @@ + + + + + userIp + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

userIp

+
+

Parameters

userIp

IP address of the comment submitter.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet-comment/user-role.html b/docs/root/net.thauvin.erik.akismet/-akismet-comment/user-role.html new file mode 100644 index 0000000..41435e8 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet-comment/user-role.html @@ -0,0 +1,80 @@ + + + + + userRole + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

userRole

+
+

The user role of the user who submitted the comment. This is an optional parameter.

If you set it to ADMIN_ROLE, Akismet will always return false.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet/-akismet.html b/docs/root/net.thauvin.erik.akismet/-akismet/-akismet.html new file mode 100644 index 0000000..a37f73b --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet/-akismet.html @@ -0,0 +1,80 @@ + + + + + Akismet + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

Akismet

+
+
constructor(apiKey: String, blog: String)

Creates a new instance using an Akismet API key and URL registered with Akismet.


constructor(apiKey: String)

Creates a new instance using the provided Akismet API key.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html b/docs/root/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html new file mode 100644 index 0000000..d90afff --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html @@ -0,0 +1,80 @@ + + + + + dateToGmt + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

dateToGmt

+
+
fun dateToGmt(date: Date): String

Converts a date to a UTC timestamp. (ISO 8601)

See also


Converts a locale date/time to a UTC timestamp. (ISO 8601)

See also

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet/-companion/index.html b/docs/root/net.thauvin.erik.akismet/-akismet/-companion/index.html new file mode 100644 index 0000000..88e459c --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet/-companion/index.html @@ -0,0 +1,119 @@ + + + + + Companion + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

Companion

+
object Companion
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Converts a locale date/time to a UTC timestamp. (ISO 8601)

fun dateToGmt(date: Date): String

Converts a date to a UTC timestamp. (ISO 8601)

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

(Re)Creates a comment from a JSON string.

+
+
+
+
+
+
+
+
+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html b/docs/root/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html new file mode 100644 index 0000000..8fae673 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html @@ -0,0 +1,80 @@ + + + + + jsonComment + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

jsonComment

+
+

(Re)Creates a comment from a JSON string.

See also

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet/app-user-agent.html b/docs/root/net.thauvin.erik.akismet/-akismet/app-user-agent.html new file mode 100644 index 0000000..b2ad48f --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet/app-user-agent.html @@ -0,0 +1,80 @@ + + + + + appUserAgent + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

appUserAgent

+
+

The application user agent to be sent to Akismet.

If possible, the application user agent string should always use the following format:

    Application Name/Version

The library's own user agent string will automatically be appended.

See the Akismet API for more details.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet/blog.html b/docs/root/net.thauvin.erik.akismet/-akismet/blog.html new file mode 100644 index 0000000..06fe121 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet/blog.html @@ -0,0 +1,80 @@ + + + + + blog + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

blog

+
+

The URL registered with Akismet.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet/check-comment.html b/docs/root/net.thauvin.erik.akismet/-akismet/check-comment.html new file mode 100644 index 0000000..1624ea3 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet/check-comment.html @@ -0,0 +1,80 @@ + + + + + checkComment + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

checkComment

+
+
fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean

Comment Check.

This is the call you will make the most. It takes a number of arguments and characteristics about the submitted content and then returns a thumbs up or thumbs down. Performance can drop dramatically if you choose to exclude data points. The more data you send Akismet about each comment, the greater the accuracy. They recommend erring on the side of including too much data

By default, if an error (IO, empty response from Akismet, etc.) occurs the function will return false and log the error, use the trueOnError parameter to change this behavior.

See the Akismet API for more details.

Return

true if the comment is spam, false if the comment is not.

Parameters

trueOnError

Set to return true on error.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet/debug-help.html b/docs/root/net.thauvin.erik.akismet/-akismet/debug-help.html new file mode 100644 index 0000000..7042eab --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet/debug-help.html @@ -0,0 +1,80 @@ + + + + + debugHelp + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

debugHelp

+
+

The x-akismet-debug-help header from the last operation, if any.

If the call returns neither true nor false, the x-akismet-debug-help header will provide context for any error that has occurred.

Note that the x-akismet-debug-help header will not always be sent if a response does not return false or true.

See the Akismet API for more details.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet/error-message.html b/docs/root/net.thauvin.erik.akismet/-akismet/error-message.html new file mode 100644 index 0000000..8cdc08e --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet/error-message.html @@ -0,0 +1,80 @@ + + + + + errorMessage + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

errorMessage

+
+

The error message.

The error (IO, empty response from Akismet, etc.) message is also logged as a warning.

See also

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet/execute-method.html b/docs/root/net.thauvin.erik.akismet/-akismet/execute-method.html new file mode 100644 index 0000000..fa730ea --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet/execute-method.html @@ -0,0 +1,80 @@ + + + + + executeMethod + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

executeMethod

+
+
fun executeMethod(apiUrl: <Error class: unknown class>, formBody: <Error class: unknown class>, trueOnError: Boolean = false): Boolean

Executes a call to an Akismet REST API method.

Parameters

apiUrl

The Akismet API URL endpoint. (e.g. https://rest.akismet.com/1.1/verify-key)

formBody

The HTTP POST form body containing the request parameters to be submitted.

trueOnError

Set to return true on error (IO, empty response, etc.)

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet/http-status-code.html b/docs/root/net.thauvin.erik.akismet/-akismet/http-status-code.html new file mode 100644 index 0000000..51a6eb8 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet/http-status-code.html @@ -0,0 +1,80 @@ + + + + + httpStatusCode + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

httpStatusCode

+
+

The HTTP status code of the last operation.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet/index.html b/docs/root/net.thauvin.erik.akismet/-akismet/index.html new file mode 100644 index 0000000..f8deedb --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet/index.html @@ -0,0 +1,371 @@ + + + + + Akismet + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

Akismet

+
open class Akismet(apiKey: String)

Provides access to the Akismet API.

+
+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
constructor(apiKey: String, blog: String)

Creates a new instance using an Akismet API key and URL registered with Akismet.

constructor(apiKey: String)

Creates a new instance using the provided Akismet API key.

+
+
+
+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
object Companion
+
+
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

The application user agent to be sent to Akismet.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The URL registered with Akismet.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The x-akismet-debug-help header from the last operation, if any.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The error message.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The HTTP status code of the last operation.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Set to true if Akismet has determined that the last checked comment is blatant spam, and you can safely discard it without saving it in any spam queue.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Set to true if the API Key has been verified.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The logger instance.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The x-akismet-pro-tip header from the last operation, if any.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

The actual response sent by Akismet from the last operation.

+
+
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean

Comment Check.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
fun executeMethod(apiUrl: <Error class: unknown class>, formBody: <Error class: unknown class>, trueOnError: Boolean = false): Boolean

Executes a call to an Akismet REST API method.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Submit Ham. (False Positives)

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Submit Spam. (Missed Spam)

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Key Verification.

+
+
+
+
+
+
+
+
+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet/is-discard.html b/docs/root/net.thauvin.erik.akismet/-akismet/is-discard.html new file mode 100644 index 0000000..b6320e1 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet/is-discard.html @@ -0,0 +1,80 @@ + + + + + isDiscard + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

isDiscard

+
+

Set to true if Akismet has determined that the last checked comment is blatant spam, and you can safely discard it without saving it in any spam queue.

See the Akismet API for more details.

See also

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet/is-verified-key.html b/docs/root/net.thauvin.erik.akismet/-akismet/is-verified-key.html new file mode 100644 index 0000000..9842b5f --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet/is-verified-key.html @@ -0,0 +1,80 @@ + + + + + isVerifiedKey + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

isVerifiedKey

+
+

Set to true if the API Key has been verified.

See also

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet/logger.html b/docs/root/net.thauvin.erik.akismet/-akismet/logger.html new file mode 100644 index 0000000..c037a09 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet/logger.html @@ -0,0 +1,80 @@ + + + + + logger + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

logger

+
+

The logger instance.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet/pro-tip.html b/docs/root/net.thauvin.erik.akismet/-akismet/pro-tip.html new file mode 100644 index 0000000..04b1892 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet/pro-tip.html @@ -0,0 +1,80 @@ + + + + + proTip + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

proTip

+
+

The x-akismet-pro-tip header from the last operation, if any.

If the x-akismet-pro-tip header is set to discard, then Akismet has determined that the comment is blatant spam, and you can safely discard it without saving it in any spam queue.

See the Akismet API for more details.

See also

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet/reset.html b/docs/root/net.thauvin.erik.akismet/-akismet/reset.html new file mode 100644 index 0000000..bf460c2 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet/reset.html @@ -0,0 +1,80 @@ + + + + + reset + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

reset

+
+ +
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet/response.html b/docs/root/net.thauvin.erik.akismet/-akismet/response.html new file mode 100644 index 0000000..d973e99 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet/response.html @@ -0,0 +1,80 @@ + + + + + response + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

response

+
+

The actual response sent by Akismet from the last operation.

For example: true, false, valid, invalid, etc.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet/submit-ham.html b/docs/root/net.thauvin.erik.akismet/-akismet/submit-ham.html new file mode 100644 index 0000000..6f0b288 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet/submit-ham.html @@ -0,0 +1,80 @@ + + + + + submitHam + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

submitHam

+
+

Submit Ham. (False Positives)

This call is intended for the submission of false positives - items that were incorrectly classified as spam by Akismet. It takes identical arguments as comment check and submit spam.

It is very important that the values you submit with this call match those of your comment check calls as closely as possible. In order to learn from its mistakes, Akismet needs to match your missed spam and false positive reports to the original comment-check API calls made when the content was first posted. While it is normal for less information to be available for submit-spam and submit-ham calls (most comment systems and forums will not store all metadata), you should ensure that the values that you do send match those of the original content.

See the Akismet API for more details.

Return

true if the comment was submitted, false otherwise.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet/submit-spam.html b/docs/root/net.thauvin.erik.akismet/-akismet/submit-spam.html new file mode 100644 index 0000000..855a3f2 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet/submit-spam.html @@ -0,0 +1,80 @@ + + + + + submitSpam + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

submitSpam

+
+

Submit Spam. (Missed Spam)

This call is for submitting comments that weren't marked as spam but should have been.

It is very important that the values you submit with this call match those of your comment check calls as closely as possible. In order to learn from its mistakes, Akismet needs to match your missed spam and false positive reports to the original comment-check API calls made when the content was first posted. While it is normal for less information to be available for submit-spam and submit-ham calls (most comment systems and forums will not store all metadata), you should ensure that the values that you do send match those of the original content.

See the Akismet API for more details.

Return

true if the comment was submitted, false otherwise.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-akismet/verify-key.html b/docs/root/net.thauvin.erik.akismet/-akismet/verify-key.html new file mode 100644 index 0000000..1c92d1e --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-akismet/verify-key.html @@ -0,0 +1,80 @@ + + + + + verifyKey + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

verifyKey

+
+

Key Verification.

Key verification authenticates your key before calling the comment check, submit spam, or submit ham methods. This is the first call that you should make to Akismet and is especially useful if you will have multiple users with their own Akismet subscriptions using your application.

See the Akismet API for more details.

Return

true if the key is valid, false otherwise.

See also

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/-builder.html b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/-builder.html new file mode 100644 index 0000000..a6c53d6 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/-builder.html @@ -0,0 +1,80 @@ + + + + + Builder + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

Builder

+
+
constructor(userIp: String, userAgent: String)

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html new file mode 100644 index 0000000..af5bad5 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html @@ -0,0 +1,80 @@ + + + + + authorEmail + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

authorEmail

+
+

Sets the email address submitted with the comment.


+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html new file mode 100644 index 0000000..8494e23 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html @@ -0,0 +1,80 @@ + + + + + authorUrl + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

authorUrl

+
+

Sets the URL submitted with comment.


+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/author.html b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/author.html new file mode 100644 index 0000000..6407357 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/author.html @@ -0,0 +1,80 @@ + + + + + author + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

author

+
+

Sets the mame submitted with the comment.


+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html new file mode 100644 index 0000000..0a9fc21 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html @@ -0,0 +1,80 @@ + + + + + blogCharset + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

blogCharset

+
+

Sets the character encoding for the form values included in comment parameters, such as UTF-8 or ISO-8859-1


+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html new file mode 100644 index 0000000..59190c3 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html @@ -0,0 +1,80 @@ + + + + + blogLang + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

blogLang

+
+

Indicates the language(s) in use on the blog or site, in ISO 639-1 format, comma-separated.

A site with articles in English and French might use: en, fr_ca


+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/build.html b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/build.html new file mode 100644 index 0000000..72cde0b --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/build.html @@ -0,0 +1,80 @@ + + + + + build + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

build

+
+

Builds a new comment configuration.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/content.html b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/content.html new file mode 100644 index 0000000..f9819b7 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/content.html @@ -0,0 +1,80 @@ + + + + + content + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

content

+
+

Sets the content that was submitted.


+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html new file mode 100644 index 0000000..b406e6e --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html @@ -0,0 +1,80 @@ + + + + + dateGmt + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

dateGmt

+
+

Sets the UTC timestamp of the creation of the comment, in ISO 8601 format.

May be omitted if the comment is sent to the API at the time it is created.

See also


+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/index.html b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/index.html new file mode 100644 index 0000000..7208193 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/index.html @@ -0,0 +1,637 @@ + + + + + Builder + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

Builder

+
data class Builder(var userIp: String, var userAgent: String)

Provides a configuration builder.

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

+
+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
constructor(userIp: String, userAgent: String)
+
+
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+

Functions

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the mame submitted with the comment.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the email address submitted with the comment.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the URL submitted with comment.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the character encoding for the form values included in comment parameters, such as UTF-8 or ISO-8859-1

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Indicates the language(s) in use on the blog or site, in ISO 639-1 format, comma-separated.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Builds a new comment configuration.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the content that was submitted.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the UTC timestamp of the creation of the comment, in ISO 8601 format.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

This is optional. You can set it when submitting test queries to Akismet.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the full permanent URL of the entry the comment was submitted to.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the UTC timestamp of the publication time for the post, page or thread on which the comment was posted.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

If you are sending content to Akismet to be rechecked, such as a post that has been edited or old pending comments that you'd like to recheck, include this parameter with a string describing why the content is being rechecked.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the content of the referrer header.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

In PHP, there is an array of environmental variables called $_SERVER that contains information about the Web server itself as well as a key/value for every HTTP header sent with the request. This data is highly useful to Akismet.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets a string that describes the type of content being sent, such as:

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the user agent string of the web browser submitting the comment.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Sets the IP address of the comment submitter.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Set the user role of the user who submitted the comment. This is an optional parameter.

+
+
+
+
+
+
+
+
+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html new file mode 100644 index 0000000..c76fffb --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html @@ -0,0 +1,80 @@ + + + + + isTest + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

isTest

+
+

This is optional. You can set it when submitting test queries to Akismet.


+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html new file mode 100644 index 0000000..a298025 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html @@ -0,0 +1,80 @@ + + + + + permalink + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

permalink

+
+

Sets the full permanent URL of the entry the comment was submitted to.


+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html new file mode 100644 index 0000000..8efb333 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html @@ -0,0 +1,80 @@ + + + + + postModifiedGmt + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

postModifiedGmt

+
+

Sets the UTC timestamp of the publication time for the post, page or thread on which the comment was posted.

See also


+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html new file mode 100644 index 0000000..c6efd7c --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html @@ -0,0 +1,80 @@ + + + + + recheckReason + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

recheckReason

+
+

If you are sending content to Akismet to be rechecked, such as a post that has been edited or old pending comments that you'd like to recheck, include this parameter with a string describing why the content is being rechecked.

For example: edit


+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html new file mode 100644 index 0000000..19b3f1e --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html @@ -0,0 +1,80 @@ + + + + + referrer + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

referrer

+
+

Sets the content of the referrer header.


+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html new file mode 100644 index 0000000..6fd5770 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html @@ -0,0 +1,80 @@ + + + + + serverEnv + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

serverEnv

+
+

In PHP, there is an array of environmental variables called $_SERVER that contains information about the Web server itself as well as a key/value for every HTTP header sent with the request. This data is highly useful to Akismet.

How the submitted content interacts with the server can be very telling, so please include as much of it as possible.


+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/type.html b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/type.html new file mode 100644 index 0000000..1013420 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/type.html @@ -0,0 +1,80 @@ + + + + + type + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

type

+
+

Sets a string that describes the type of content being sent, such as:

You may send a value not listed above if none of them accurately describe your content.

This is further explained here.


+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html new file mode 100644 index 0000000..70fd9f9 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html @@ -0,0 +1,80 @@ + + + + + userAgent + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

userAgent

+
+

Sets the user agent string of the web browser submitting the comment.


Parameters

userAgent

User agent string of the web browser submitting the comment.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html new file mode 100644 index 0000000..b368893 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html @@ -0,0 +1,80 @@ + + + + + userIp + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

userIp

+
+

Sets the IP address of the comment submitter.


Parameters

userIp

IP address of the comment submitter.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html new file mode 100644 index 0000000..b28cd4d --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html @@ -0,0 +1,80 @@ + + + + + userRole + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

userRole

+
+

Set the user role of the user who submitted the comment. This is an optional parameter.

If you set it to ADMIN_ROLE, Akismet will always return false.


+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/-comment-config.html b/docs/root/net.thauvin.erik.akismet/-comment-config/-comment-config.html new file mode 100644 index 0000000..bd0b374 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/-comment-config.html @@ -0,0 +1,80 @@ + + + + + CommentConfig + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

CommentConfig

+
+
constructor(builder: CommentConfig.Builder)


constructor(userIp: String, userAgent: String, referrer: String = "", permalink: String = "", type: CommentType = CommentType.NONE, author: String = "", authorEmail: String = "", authorUrl: String = "", content: String = "", dateGmt: String = "", postModifiedGmt: String = "", blogLang: String = "", blogCharset: String = "", userRole: String = "", isTest: Boolean = false, recheckReason: String = "", serverEnv: Map<String, String> = emptyMap())

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/author-email.html b/docs/root/net.thauvin.erik.akismet/-comment-config/author-email.html new file mode 100644 index 0000000..0702758 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/author-email.html @@ -0,0 +1,80 @@ + + + + + authorEmail + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

authorEmail

+
+ +
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/author-url.html b/docs/root/net.thauvin.erik.akismet/-comment-config/author-url.html new file mode 100644 index 0000000..342b7cc --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/author-url.html @@ -0,0 +1,80 @@ + + + + + authorUrl + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

authorUrl

+
+ +
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/author.html b/docs/root/net.thauvin.erik.akismet/-comment-config/author.html new file mode 100644 index 0000000..658fcae --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/author.html @@ -0,0 +1,80 @@ + + + + + author + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

author

+
+ +
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/blog-charset.html b/docs/root/net.thauvin.erik.akismet/-comment-config/blog-charset.html new file mode 100644 index 0000000..e202aa9 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/blog-charset.html @@ -0,0 +1,80 @@ + + + + + blogCharset + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

blogCharset

+
+ +
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/blog-lang.html b/docs/root/net.thauvin.erik.akismet/-comment-config/blog-lang.html new file mode 100644 index 0000000..8e9a388 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/blog-lang.html @@ -0,0 +1,80 @@ + + + + + blogLang + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

blogLang

+
+ +
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/content.html b/docs/root/net.thauvin.erik.akismet/-comment-config/content.html new file mode 100644 index 0000000..66718fd --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/content.html @@ -0,0 +1,80 @@ + + + + + content + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

content

+
+ +
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/date-gmt.html b/docs/root/net.thauvin.erik.akismet/-comment-config/date-gmt.html new file mode 100644 index 0000000..4999017 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/date-gmt.html @@ -0,0 +1,80 @@ + + + + + dateGmt + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

dateGmt

+
+ +
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/index.html b/docs/root/net.thauvin.erik.akismet/-comment-config/index.html new file mode 100644 index 0000000..dd918a2 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/index.html @@ -0,0 +1,382 @@ + + + + + CommentConfig + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

CommentConfig

+
class CommentConfigĀ constructor(var userIp: String, var userAgent: String, var referrer: String = "", var permalink: String = "", var type: CommentType = CommentType.NONE, var author: String = "", var authorEmail: String = "", var authorUrl: String = "", var content: String = "", var dateGmt: String = "", var postModifiedGmt: String = "", var blogLang: String = "", var blogCharset: String = "", var userRole: String = "", var isTest: Boolean = false, var recheckReason: String = "", var serverEnv: Map<String, String> = emptyMap())

Provides a comment configuration.

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

+
+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
constructor(builder: CommentConfig.Builder)
constructor(userIp: String, userAgent: String, referrer: String = "", permalink: String = "", type: CommentType = CommentType.NONE, author: String = "", authorEmail: String = "", authorUrl: String = "", content: String = "", dateGmt: String = "", postModifiedGmt: String = "", blogLang: String = "", blogCharset: String = "", userRole: String = "", isTest: Boolean = false, recheckReason: String = "", serverEnv: Map<String, String> = emptyMap())
+
+
+
+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
data class Builder(var userIp: String, var userAgent: String)

Provides a configuration builder.

+
+
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+ +
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/is-test.html b/docs/root/net.thauvin.erik.akismet/-comment-config/is-test.html new file mode 100644 index 0000000..3c48603 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/is-test.html @@ -0,0 +1,80 @@ + + + + + isTest + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

isTest

+
+ +
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/permalink.html b/docs/root/net.thauvin.erik.akismet/-comment-config/permalink.html new file mode 100644 index 0000000..0274fb2 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/permalink.html @@ -0,0 +1,80 @@ + + + + + permalink + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

permalink

+
+ +
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/post-modified-gmt.html b/docs/root/net.thauvin.erik.akismet/-comment-config/post-modified-gmt.html new file mode 100644 index 0000000..e548982 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/post-modified-gmt.html @@ -0,0 +1,80 @@ + + + + + postModifiedGmt + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

postModifiedGmt

+
+ +
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/recheck-reason.html b/docs/root/net.thauvin.erik.akismet/-comment-config/recheck-reason.html new file mode 100644 index 0000000..dff0869 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/recheck-reason.html @@ -0,0 +1,80 @@ + + + + + recheckReason + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

recheckReason

+
+ +
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/referrer.html b/docs/root/net.thauvin.erik.akismet/-comment-config/referrer.html new file mode 100644 index 0000000..f332715 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/referrer.html @@ -0,0 +1,80 @@ + + + + + referrer + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

referrer

+
+ +
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/server-env.html b/docs/root/net.thauvin.erik.akismet/-comment-config/server-env.html new file mode 100644 index 0000000..aada008 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/server-env.html @@ -0,0 +1,80 @@ + + + + + serverEnv + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

serverEnv

+
+ +
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/type.html b/docs/root/net.thauvin.erik.akismet/-comment-config/type.html new file mode 100644 index 0000000..f5cd94f --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/type.html @@ -0,0 +1,80 @@ + + + + + type + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

type

+
+ +
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/user-agent.html b/docs/root/net.thauvin.erik.akismet/-comment-config/user-agent.html new file mode 100644 index 0000000..a9553f7 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/user-agent.html @@ -0,0 +1,80 @@ + + + + + userAgent + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

userAgent

+
+

Parameters

userAgent

User agent string of the web browser submitting the comment.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/user-ip.html b/docs/root/net.thauvin.erik.akismet/-comment-config/user-ip.html new file mode 100644 index 0000000..3102481 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/user-ip.html @@ -0,0 +1,80 @@ + + + + + userIp + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

userIp

+
+

Parameters

userIp

IP address of the comment submitter.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-config/user-role.html b/docs/root/net.thauvin.erik.akismet/-comment-config/user-role.html new file mode 100644 index 0000000..af1c1b8 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-config/user-role.html @@ -0,0 +1,80 @@ + + + + + userRole + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

userRole

+
+ +
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-type/-comment-type.html b/docs/root/net.thauvin.erik.akismet/-comment-type/-comment-type.html new file mode 100644 index 0000000..3e4278f --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-type/-comment-type.html @@ -0,0 +1,80 @@ + + + + + CommentType + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

CommentType

+
+
constructor(value: String)
+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-b-l-o-g_-p-o-s-t.html b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-b-l-o-g_-p-o-s-t.html new file mode 100644 index 0000000..8b14809 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-b-l-o-g_-p-o-s-t.html @@ -0,0 +1,80 @@ + + + + + BLOG_POST + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

BLOG_POST

+
+

A blog post.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-m-m-e-n-t.html b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-m-m-e-n-t.html new file mode 100644 index 0000000..e3b36ed --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-m-m-e-n-t.html @@ -0,0 +1,80 @@ + + + + + COMMENT + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

COMMENT

+
+

A blog comment.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-n-t-a-c-t_-f-o-r-m.html b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-n-t-a-c-t_-f-o-r-m.html new file mode 100644 index 0000000..f02eb18 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-n-t-a-c-t_-f-o-r-m.html @@ -0,0 +1,80 @@ + + + + + CONTACT_FORM + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

CONTACT_FORM

+
+

A contact form or feedback form submission.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-f-o-r-u-m_-p-o-s-t.html b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-f-o-r-u-m_-p-o-s-t.html new file mode 100644 index 0000000..224ba40 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-f-o-r-u-m_-p-o-s-t.html @@ -0,0 +1,80 @@ + + + + + FORUM_POST + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

FORUM_POST

+
+

A top-level forum post.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-m-e-s-s-a-g-e.html b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-m-e-s-s-a-g-e.html new file mode 100644 index 0000000..09b8770 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-m-e-s-s-a-g-e.html @@ -0,0 +1,80 @@ + + + + + MESSAGE + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

MESSAGE

+
+

A message sent between just a few users.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-n-o-n-e.html b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-n-o-n-e.html new file mode 100644 index 0000000..b8a3ece --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-n-o-n-e.html @@ -0,0 +1,80 @@ + + + + + NONE + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

NONE

+
+

Undefined type.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-p-i-n-g-b-a-c-k.html b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-p-i-n-g-b-a-c-k.html new file mode 100644 index 0000000..4771580 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-p-i-n-g-b-a-c-k.html @@ -0,0 +1,80 @@ + + + + + PINGBACK + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

PINGBACK

+
+

A pingback.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-r-e-p-l-y.html b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-r-e-p-l-y.html new file mode 100644 index 0000000..8685765 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-r-e-p-l-y.html @@ -0,0 +1,80 @@ + + + + + REPLY + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

REPLY

+
+

A reply to a top-level forum post.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-s-i-g-n-u-p.html b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-s-i-g-n-u-p.html new file mode 100644 index 0000000..9031d4a --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-s-i-g-n-u-p.html @@ -0,0 +1,80 @@ + + + + + SIGNUP + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

SIGNUP

+
+

A new user account.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-t-r-a-c-k-b-a-c-k.html b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-t-r-a-c-k-b-a-c-k.html new file mode 100644 index 0000000..2c06ff2 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-t-r-a-c-k-b-a-c-k.html @@ -0,0 +1,80 @@ + + + + + TRACKBACK + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

TRACKBACK

+
+

A trackback.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-t-w-e-e-t.html b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-t-w-e-e-t.html new file mode 100644 index 0000000..553ac98 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/-t-w-e-e-t.html @@ -0,0 +1,80 @@ + + + + + TWEET + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

TWEET

+
+

A Twitter message.

+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/index.html b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/index.html new file mode 100644 index 0000000..6fdb31f --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-type/-companion/index.html @@ -0,0 +1,254 @@ + + + + + Companion + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

Companion

+
object Companion
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+

A blog post.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

A blog comment.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

A contact form or feedback form submission.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

A top-level forum post.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

A message sent between just a few users.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

Undefined type.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

A pingback.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

A reply to a top-level forum post.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

A new user account.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

A trackback.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+

A Twitter message.

+
+
+
+
+
+
+
+
+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-type/index.html b/docs/root/net.thauvin.erik.akismet/-comment-type/index.html new file mode 100644 index 0000000..e0c2306 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-type/index.html @@ -0,0 +1,142 @@ + + + + + CommentType + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

CommentType

+
data class CommentType(var value: String)

Defines the comment types.

+
+
+
+
+
+

Constructors

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
constructor(value: String)
+
+
+
+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
object Companion
+
+
+
+
+
+
+
+

Properties

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+ +
+
+
+
+
+
+
+
+
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/-comment-type/value.html b/docs/root/net.thauvin.erik.akismet/-comment-type/value.html new file mode 100644 index 0000000..07cce74 --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/-comment-type/value.html @@ -0,0 +1,80 @@ + + + + + value + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

value

+
+ +
+ +
+
+
+ + diff --git a/docs/root/net.thauvin.erik.akismet/index.html b/docs/root/net.thauvin.erik.akismet/index.html new file mode 100644 index 0000000..766f3df --- /dev/null +++ b/docs/root/net.thauvin.erik.akismet/index.html @@ -0,0 +1,148 @@ + + + + + net.thauvin.erik.akismet + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+

Package-level declarations

+
+
+
+
+
+

Types

+
+
+
+
+ + +
Link copied to clipboard
+
+
+
+
open class Akismet(apiKey: String)

Provides access to the Akismet API.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
open class AkismetComment(val userIp: String, val userAgent: String)

A comment to send to Akismet.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
class CommentConfigĀ constructor(var userIp: String, var userAgent: String, var referrer: String = "", var permalink: String = "", var type: CommentType = CommentType.NONE, var author: String = "", var authorEmail: String = "", var authorUrl: String = "", var content: String = "", var dateGmt: String = "", var postModifiedGmt: String = "", var blogLang: String = "", var blogCharset: String = "", var userRole: String = "", var isTest: Boolean = false, var recheckReason: String = "", var serverEnv: Map<String, String> = emptyMap())

Provides a comment configuration.

+
+
+
+
+ +
+
+
+ + +
Link copied to clipboard
+
+
+
+
data class CommentType(var value: String)

Defines the comment types.

+
+
+
+
+
+
+
+
+
+ +
+
+
+ + diff --git a/docs/root/package-list b/docs/root/package-list new file mode 100644 index 0000000..2b8e2fd --- /dev/null +++ b/docs/root/package-list @@ -0,0 +1,127 @@ +$dokka.format:html-v1 +$dokka.linkExtension:html +$dokka.location:net.thauvin.erik.akismet////PointingToDeclaration/root/net.thauvin.erik.akismet/index.html +$dokka.location:net.thauvin.erik.akismet/Akismet.Companion///PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet/-companion/index.html +$dokka.location:net.thauvin.erik.akismet/Akismet.Companion/dateToGmt/#java.time.LocalDateTime/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html +$dokka.location:net.thauvin.erik.akismet/Akismet.Companion/dateToGmt/#java.util.Date/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html +$dokka.location:net.thauvin.erik.akismet/Akismet.Companion/jsonComment/#kotlin.String/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html +$dokka.location:net.thauvin.erik.akismet/Akismet///PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet/index.html +$dokka.location:net.thauvin.erik.akismet/Akismet/Akismet/#kotlin.String#kotlin.String/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet/-akismet.html +$dokka.location:net.thauvin.erik.akismet/Akismet/Akismet/#kotlin.String/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet/-akismet.html +$dokka.location:net.thauvin.erik.akismet/Akismet/appUserAgent/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet/app-user-agent.html +$dokka.location:net.thauvin.erik.akismet/Akismet/blog/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet/blog.html +$dokka.location:net.thauvin.erik.akismet/Akismet/checkComment/#net.thauvin.erik.akismet.AkismetComment#kotlin.Boolean/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet/check-comment.html +$dokka.location:net.thauvin.erik.akismet/Akismet/debugHelp/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet/debug-help.html +$dokka.location:net.thauvin.erik.akismet/Akismet/errorMessage/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet/error-message.html +$dokka.location:net.thauvin.erik.akismet/Akismet/executeMethod/#[Error type: Unresolved type for HttpUrl]#[Error type: Unresolved type for FormBody]#kotlin.Boolean/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet/execute-method.html +$dokka.location:net.thauvin.erik.akismet/Akismet/httpStatusCode/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet/http-status-code.html +$dokka.location:net.thauvin.erik.akismet/Akismet/isDiscard/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet/is-discard.html +$dokka.location:net.thauvin.erik.akismet/Akismet/isVerifiedKey/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet/is-verified-key.html +$dokka.location:net.thauvin.erik.akismet/Akismet/logger/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet/logger.html +$dokka.location:net.thauvin.erik.akismet/Akismet/proTip/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet/pro-tip.html +$dokka.location:net.thauvin.erik.akismet/Akismet/reset/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet/reset.html +$dokka.location:net.thauvin.erik.akismet/Akismet/response/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet/response.html +$dokka.location:net.thauvin.erik.akismet/Akismet/submitHam/#net.thauvin.erik.akismet.AkismetComment/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet/submit-ham.html +$dokka.location:net.thauvin.erik.akismet/Akismet/submitSpam/#net.thauvin.erik.akismet.AkismetComment/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet/submit-spam.html +$dokka.location:net.thauvin.erik.akismet/Akismet/verifyKey/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet/verify-key.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion///PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/ADMIN_ROLE/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment///PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/index.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/AkismetComment/#[Error type: Unresolved type for HttpServletRequest]/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/AkismetComment/#kotlin.String#kotlin.String/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/AkismetComment/#net.thauvin.erik.akismet.CommentConfig/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/author/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/author.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/authorEmail/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/author-email.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/authorUrl/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/author-url.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/blogCharset/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/blogLang/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/content/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/content.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/dateGmt/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/equals/#kotlin.Any?/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/equals.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/hashCode/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/hash-code.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/isTest/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/is-test.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/permalink/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/permalink.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/postModifiedGmt/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/recheckReason/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/referrer/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/referrer.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/serverEnv/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/server-env.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/toJson/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/to-json.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/toString/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/to-string.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/type/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/type.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/userAgent/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/user-agent.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/userIp/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/user-ip.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/userRole/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-akismet-comment/user-role.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder///PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/index.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/Builder/#kotlin.String#kotlin.String/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/-builder.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/author/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/author.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/author/#kotlin.String/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/author.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/authorEmail/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/authorEmail/#kotlin.String/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/authorUrl/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/authorUrl/#kotlin.String/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/blogCharset/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/blogCharset/#kotlin.String/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/blogLang/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/blogLang/#kotlin.String/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/build/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/build.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/content/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/content.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/content/#kotlin.String/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/content.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/dateGmt/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/dateGmt/#kotlin.String/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/isTest/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/isTest/#kotlin.Boolean/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/permalink/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/permalink/#kotlin.String/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/postModifiedGmt/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/postModifiedGmt/#kotlin.String/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/recheckReason/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/recheckReason/#kotlin.String/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/referrer/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/referrer/#kotlin.String/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/serverEnv/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/serverEnv/#kotlin.collections.Map[kotlin.String,kotlin.String]/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/type/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/type.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/type/#net.thauvin.erik.akismet.CommentType/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/type.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/userAgent/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/userAgent/#kotlin.String/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/userIp/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/userIp/#kotlin.String/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/userRole/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig.Builder/userRole/#kotlin.String/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig///PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/index.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/CommentConfig/#kotlin.String#kotlin.String#kotlin.String#kotlin.String#net.thauvin.erik.akismet.CommentType#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.String#kotlin.Boolean#kotlin.String#kotlin.collections.Map[kotlin.String,kotlin.String]/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-comment-config.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/CommentConfig/#net.thauvin.erik.akismet.CommentConfig.Builder/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/-comment-config.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/author/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/author.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/authorEmail/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/author-email.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/authorUrl/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/author-url.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/blogCharset/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/blog-charset.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/blogLang/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/blog-lang.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/content/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/content.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/dateGmt/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/date-gmt.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/isTest/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/is-test.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/permalink/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/permalink.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/postModifiedGmt/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/post-modified-gmt.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/recheckReason/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/recheck-reason.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/referrer/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/referrer.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/serverEnv/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/server-env.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/type/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/type.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/userAgent/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/user-agent.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/userIp/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/user-ip.html +$dokka.location:net.thauvin.erik.akismet/CommentConfig/userRole/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-config/user-role.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion///PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-type/-companion/index.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion/BLOG_POST/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-type/-companion/-b-l-o-g_-p-o-s-t.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion/COMMENT/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-m-m-e-n-t.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion/CONTACT_FORM/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-n-t-a-c-t_-f-o-r-m.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion/FORUM_POST/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-type/-companion/-f-o-r-u-m_-p-o-s-t.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion/MESSAGE/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-type/-companion/-m-e-s-s-a-g-e.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion/NONE/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-type/-companion/-n-o-n-e.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion/PINGBACK/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-type/-companion/-p-i-n-g-b-a-c-k.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion/REPLY/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-type/-companion/-r-e-p-l-y.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion/SIGNUP/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-type/-companion/-s-i-g-n-u-p.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion/TRACKBACK/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-type/-companion/-t-r-a-c-k-b-a-c-k.html +$dokka.location:net.thauvin.erik.akismet/CommentType.Companion/TWEET/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-type/-companion/-t-w-e-e-t.html +$dokka.location:net.thauvin.erik.akismet/CommentType///PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-type/index.html +$dokka.location:net.thauvin.erik.akismet/CommentType/CommentType/#kotlin.String/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-type/-comment-type.html +$dokka.location:net.thauvin.erik.akismet/CommentType/value/#/PointingToDeclaration/root/net.thauvin.erik.akismet/-comment-type/value.html +net.thauvin.erik.akismet + diff --git a/docs/scripts/pages.json b/docs/scripts/pages.json index ad171a4..e3e92d4 100644 --- a/docs/scripts/pages.json +++ b/docs/scripts/pages.json @@ -1 +1 @@ -[{"name":"class CommentConfigĀ constructor(var userIp: String, var userAgent: String, var referrer: String = \"\", var permalink: String = \"\", var type: CommentType = CommentType.NONE, var author: String = \"\", var authorEmail: String = \"\", var authorUrl: String = \"\", var content: String = \"\", var dateGmt: String = \"\", var postModifiedGmt: String = \"\", var blogLang: String = \"\", var blogCharset: String = \"\", var userRole: String = \"\", var isTest: Boolean = false, var recheckReason: String = \"\", var serverEnv: Map = emptyMap())","description":"net.thauvin.erik.akismet.CommentConfig","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/index.html","searchKeys":["CommentConfig","class CommentConfigĀ constructor(var userIp: String, var userAgent: String, var referrer: String = \"\", var permalink: String = \"\", var type: CommentType = CommentType.NONE, var author: String = \"\", var authorEmail: String = \"\", var authorUrl: String = \"\", var content: String = \"\", var dateGmt: String = \"\", var postModifiedGmt: String = \"\", var blogLang: String = \"\", var blogCharset: String = \"\", var userRole: String = \"\", var isTest: Boolean = false, var recheckReason: String = \"\", var serverEnv: Map = emptyMap())","net.thauvin.erik.akismet.CommentConfig"]},{"name":"const val ADMIN_ROLE: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.ADMIN_ROLE","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html","searchKeys":["ADMIN_ROLE","const val ADMIN_ROLE: String","net.thauvin.erik.akismet.AkismetComment.Companion.ADMIN_ROLE"]},{"name":"constructor(apiKey: String)","description":"net.thauvin.erik.akismet.Akismet.Akismet","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html","searchKeys":["Akismet","constructor(apiKey: String)","net.thauvin.erik.akismet.Akismet.Akismet"]},{"name":"constructor(apiKey: String, blog: String)","description":"net.thauvin.erik.akismet.Akismet.Akismet","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html","searchKeys":["Akismet","constructor(apiKey: String, blog: String)","net.thauvin.erik.akismet.Akismet.Akismet"]},{"name":"constructor(builder: CommentConfig.Builder)","description":"net.thauvin.erik.akismet.CommentConfig.CommentConfig","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html","searchKeys":["CommentConfig","constructor(builder: CommentConfig.Builder)","net.thauvin.erik.akismet.CommentConfig.CommentConfig"]},{"name":"constructor(config: CommentConfig)","description":"net.thauvin.erik.akismet.AkismetComment.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html","searchKeys":["AkismetComment","constructor(config: CommentConfig)","net.thauvin.erik.akismet.AkismetComment.AkismetComment"]},{"name":"constructor(request: )","description":"net.thauvin.erik.akismet.AkismetComment.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html","searchKeys":["AkismetComment","constructor(request: )","net.thauvin.erik.akismet.AkismetComment.AkismetComment"]},{"name":"constructor(userIp: String, userAgent: String)","description":"net.thauvin.erik.akismet.AkismetComment.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html","searchKeys":["AkismetComment","constructor(userIp: String, userAgent: String)","net.thauvin.erik.akismet.AkismetComment.AkismetComment"]},{"name":"constructor(userIp: String, userAgent: String)","description":"net.thauvin.erik.akismet.CommentConfig.Builder.Builder","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/-builder.html","searchKeys":["Builder","constructor(userIp: String, userAgent: String)","net.thauvin.erik.akismet.CommentConfig.Builder.Builder"]},{"name":"constructor(userIp: String, userAgent: String, referrer: String = \"\", permalink: String = \"\", type: CommentType = CommentType.NONE, author: String = \"\", authorEmail: String = \"\", authorUrl: String = \"\", content: String = \"\", dateGmt: String = \"\", postModifiedGmt: String = \"\", blogLang: String = \"\", blogCharset: String = \"\", userRole: String = \"\", isTest: Boolean = false, recheckReason: String = \"\", serverEnv: Map = emptyMap())","description":"net.thauvin.erik.akismet.CommentConfig.CommentConfig","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html","searchKeys":["CommentConfig","constructor(userIp: String, userAgent: String, referrer: String = \"\", permalink: String = \"\", type: CommentType = CommentType.NONE, author: String = \"\", authorEmail: String = \"\", authorUrl: String = \"\", content: String = \"\", dateGmt: String = \"\", postModifiedGmt: String = \"\", blogLang: String = \"\", blogCharset: String = \"\", userRole: String = \"\", isTest: Boolean = false, recheckReason: String = \"\", serverEnv: Map = emptyMap())","net.thauvin.erik.akismet.CommentConfig.CommentConfig"]},{"name":"constructor(value: String)","description":"net.thauvin.erik.akismet.CommentType.CommentType","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-comment-type.html","searchKeys":["CommentType","constructor(value: String)","net.thauvin.erik.akismet.CommentType.CommentType"]},{"name":"data class Builder(var userIp: String, var userAgent: String)","description":"net.thauvin.erik.akismet.CommentConfig.Builder","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/index.html","searchKeys":["Builder","data class Builder(var userIp: String, var userAgent: String)","net.thauvin.erik.akismet.CommentConfig.Builder"]},{"name":"data class CommentType(var value: String)","description":"net.thauvin.erik.akismet.CommentType","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/index.html","searchKeys":["CommentType","data class CommentType(var value: String)","net.thauvin.erik.akismet.CommentType"]},{"name":"fun author(author: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.author","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author.html","searchKeys":["author","fun author(author: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.author"]},{"name":"fun authorEmail(authorEmail: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.authorEmail","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html","searchKeys":["authorEmail","fun authorEmail(authorEmail: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.authorEmail"]},{"name":"fun authorUrl(authorUrl: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.authorUrl","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html","searchKeys":["authorUrl","fun authorUrl(authorUrl: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.authorUrl"]},{"name":"fun blogCharset(blogCharset: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.blogCharset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html","searchKeys":["blogCharset","fun blogCharset(blogCharset: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.blogCharset"]},{"name":"fun blogLang(blogLang: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.blogLang","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html","searchKeys":["blogLang","fun blogLang(blogLang: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.blogLang"]},{"name":"fun build(): CommentConfig","description":"net.thauvin.erik.akismet.CommentConfig.Builder.build","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/build.html","searchKeys":["build","fun build(): CommentConfig","net.thauvin.erik.akismet.CommentConfig.Builder.build"]},{"name":"fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean","description":"net.thauvin.erik.akismet.Akismet.checkComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html","searchKeys":["checkComment","fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean","net.thauvin.erik.akismet.Akismet.checkComment"]},{"name":"fun content(content: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.content","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/content.html","searchKeys":["content","fun content(content: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.content"]},{"name":"fun dateGmt(dateGmt: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.dateGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html","searchKeys":["dateGmt","fun dateGmt(dateGmt: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.dateGmt"]},{"name":"fun dateToGmt(date: Date): String","description":"net.thauvin.erik.akismet.Akismet.Companion.dateToGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html","searchKeys":["dateToGmt","fun dateToGmt(date: Date): String","net.thauvin.erik.akismet.Akismet.Companion.dateToGmt"]},{"name":"fun dateToGmt(date: LocalDateTime): String","description":"net.thauvin.erik.akismet.Akismet.Companion.dateToGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html","searchKeys":["dateToGmt","fun dateToGmt(date: LocalDateTime): String","net.thauvin.erik.akismet.Akismet.Companion.dateToGmt"]},{"name":"fun executeMethod(apiUrl: , formBody: , trueOnError: Boolean = false): Boolean","description":"net.thauvin.erik.akismet.Akismet.executeMethod","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html","searchKeys":["executeMethod","fun executeMethod(apiUrl: , formBody: , trueOnError: Boolean = false): Boolean","net.thauvin.erik.akismet.Akismet.executeMethod"]},{"name":"fun isTest(isTest: Boolean): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.isTest","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html","searchKeys":["isTest","fun isTest(isTest: Boolean): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.isTest"]},{"name":"fun jsonComment(json: String): AkismetComment","description":"net.thauvin.erik.akismet.Akismet.Companion.jsonComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html","searchKeys":["jsonComment","fun jsonComment(json: String): AkismetComment","net.thauvin.erik.akismet.Akismet.Companion.jsonComment"]},{"name":"fun permalink(permalink: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.permalink","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html","searchKeys":["permalink","fun permalink(permalink: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.permalink"]},{"name":"fun postModifiedGmt(postModifiedGmt: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.postModifiedGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html","searchKeys":["postModifiedGmt","fun postModifiedGmt(postModifiedGmt: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.postModifiedGmt"]},{"name":"fun recheckReason(checkReason: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.recheckReason","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html","searchKeys":["recheckReason","fun recheckReason(checkReason: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.recheckReason"]},{"name":"fun referrer(referrer: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.referrer","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html","searchKeys":["referrer","fun referrer(referrer: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.referrer"]},{"name":"fun reset()","description":"net.thauvin.erik.akismet.Akismet.reset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/reset.html","searchKeys":["reset","fun reset()","net.thauvin.erik.akismet.Akismet.reset"]},{"name":"fun serverEnv(serverEnv: Map): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.serverEnv","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html","searchKeys":["serverEnv","fun serverEnv(serverEnv: Map): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.serverEnv"]},{"name":"fun submitHam(comment: AkismetComment): Boolean","description":"net.thauvin.erik.akismet.Akismet.submitHam","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-ham.html","searchKeys":["submitHam","fun submitHam(comment: AkismetComment): Boolean","net.thauvin.erik.akismet.Akismet.submitHam"]},{"name":"fun submitSpam(comment: AkismetComment): Boolean","description":"net.thauvin.erik.akismet.Akismet.submitSpam","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-spam.html","searchKeys":["submitSpam","fun submitSpam(comment: AkismetComment): Boolean","net.thauvin.erik.akismet.Akismet.submitSpam"]},{"name":"fun toJson(): String","description":"net.thauvin.erik.akismet.AkismetComment.toJson","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-json.html","searchKeys":["toJson","fun toJson(): String","net.thauvin.erik.akismet.AkismetComment.toJson"]},{"name":"fun type(type: CommentType): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.type","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/type.html","searchKeys":["type","fun type(type: CommentType): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.type"]},{"name":"fun userAgent(userAgent: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html","searchKeys":["userAgent","fun userAgent(userAgent: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.userAgent"]},{"name":"fun userIp(userIp: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userIp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html","searchKeys":["userIp","fun userIp(userIp: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.userIp"]},{"name":"fun userRole(userRole: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userRole","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html","searchKeys":["userRole","fun userRole(userRole: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.userRole"]},{"name":"fun verifyKey(): Boolean","description":"net.thauvin.erik.akismet.Akismet.verifyKey","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html","searchKeys":["verifyKey","fun verifyKey(): Boolean","net.thauvin.erik.akismet.Akismet.verifyKey"]},{"name":"object Companion","description":"net.thauvin.erik.akismet.Akismet.Companion","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/index.html","searchKeys":["Companion","object Companion","net.thauvin.erik.akismet.Akismet.Companion"]},{"name":"object Companion","description":"net.thauvin.erik.akismet.AkismetComment.Companion","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html","searchKeys":["Companion","object Companion","net.thauvin.erik.akismet.AkismetComment.Companion"]},{"name":"object Companion","description":"net.thauvin.erik.akismet.CommentType.Companion","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/index.html","searchKeys":["Companion","object Companion","net.thauvin.erik.akismet.CommentType.Companion"]},{"name":"open class Akismet(apiKey: String)","description":"net.thauvin.erik.akismet.Akismet","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/index.html","searchKeys":["Akismet","open class Akismet(apiKey: String)","net.thauvin.erik.akismet.Akismet"]},{"name":"open class AkismetComment(val userIp: String, val userAgent: String)","description":"net.thauvin.erik.akismet.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html","searchKeys":["AkismetComment","open class AkismetComment(val userIp: String, val userAgent: String)","net.thauvin.erik.akismet.AkismetComment"]},{"name":"open operator override fun equals(other: Any?): Boolean","description":"net.thauvin.erik.akismet.AkismetComment.equals","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/equals.html","searchKeys":["equals","open operator override fun equals(other: Any?): Boolean","net.thauvin.erik.akismet.AkismetComment.equals"]},{"name":"open override fun hashCode(): Int","description":"net.thauvin.erik.akismet.AkismetComment.hashCode","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/hash-code.html","searchKeys":["hashCode","open override fun hashCode(): Int","net.thauvin.erik.akismet.AkismetComment.hashCode"]},{"name":"open override fun toString(): String","description":"net.thauvin.erik.akismet.AkismetComment.toString","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-string.html","searchKeys":["toString","open override fun toString(): String","net.thauvin.erik.akismet.AkismetComment.toString"]},{"name":"val BLOG_POST: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.BLOG_POST","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-b-l-o-g_-p-o-s-t.html","searchKeys":["BLOG_POST","val BLOG_POST: CommentType","net.thauvin.erik.akismet.CommentType.Companion.BLOG_POST"]},{"name":"val COMMENT: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.COMMENT","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-m-m-e-n-t.html","searchKeys":["COMMENT","val COMMENT: CommentType","net.thauvin.erik.akismet.CommentType.Companion.COMMENT"]},{"name":"val CONTACT_FORM: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.CONTACT_FORM","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-n-t-a-c-t_-f-o-r-m.html","searchKeys":["CONTACT_FORM","val CONTACT_FORM: CommentType","net.thauvin.erik.akismet.CommentType.Companion.CONTACT_FORM"]},{"name":"val FORUM_POST: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.FORUM_POST","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-f-o-r-u-m_-p-o-s-t.html","searchKeys":["FORUM_POST","val FORUM_POST: CommentType","net.thauvin.erik.akismet.CommentType.Companion.FORUM_POST"]},{"name":"val MESSAGE: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.MESSAGE","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-m-e-s-s-a-g-e.html","searchKeys":["MESSAGE","val MESSAGE: CommentType","net.thauvin.erik.akismet.CommentType.Companion.MESSAGE"]},{"name":"val NONE: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.NONE","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-n-o-n-e.html","searchKeys":["NONE","val NONE: CommentType","net.thauvin.erik.akismet.CommentType.Companion.NONE"]},{"name":"val PINGBACK: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.PINGBACK","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-p-i-n-g-b-a-c-k.html","searchKeys":["PINGBACK","val PINGBACK: CommentType","net.thauvin.erik.akismet.CommentType.Companion.PINGBACK"]},{"name":"val REPLY: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.REPLY","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-r-e-p-l-y.html","searchKeys":["REPLY","val REPLY: CommentType","net.thauvin.erik.akismet.CommentType.Companion.REPLY"]},{"name":"val SIGNUP: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.SIGNUP","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-s-i-g-n-u-p.html","searchKeys":["SIGNUP","val SIGNUP: CommentType","net.thauvin.erik.akismet.CommentType.Companion.SIGNUP"]},{"name":"val TRACKBACK: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.TRACKBACK","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-t-r-a-c-k-b-a-c-k.html","searchKeys":["TRACKBACK","val TRACKBACK: CommentType","net.thauvin.erik.akismet.CommentType.Companion.TRACKBACK"]},{"name":"val TWEET: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.TWEET","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-t-w-e-e-t.html","searchKeys":["TWEET","val TWEET: CommentType","net.thauvin.erik.akismet.CommentType.Companion.TWEET"]},{"name":"val logger: Logger","description":"net.thauvin.erik.akismet.Akismet.logger","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/logger.html","searchKeys":["logger","val logger: Logger","net.thauvin.erik.akismet.Akismet.logger"]},{"name":"val userAgent: String","description":"net.thauvin.erik.akismet.AkismetComment.userAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html","searchKeys":["userAgent","val userAgent: String","net.thauvin.erik.akismet.AkismetComment.userAgent"]},{"name":"val userIp: String","description":"net.thauvin.erik.akismet.AkismetComment.userIp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html","searchKeys":["userIp","val userIp: String","net.thauvin.erik.akismet.AkismetComment.userIp"]},{"name":"var appUserAgent: String","description":"net.thauvin.erik.akismet.Akismet.appUserAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/app-user-agent.html","searchKeys":["appUserAgent","var appUserAgent: String","net.thauvin.erik.akismet.Akismet.appUserAgent"]},{"name":"var author: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.author","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author.html","searchKeys":["author","var author: String","net.thauvin.erik.akismet.CommentConfig.Builder.author"]},{"name":"var author: String","description":"net.thauvin.erik.akismet.CommentConfig.author","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author.html","searchKeys":["author","var author: String","net.thauvin.erik.akismet.CommentConfig.author"]},{"name":"var author: String?","description":"net.thauvin.erik.akismet.AkismetComment.author","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html","searchKeys":["author","var author: String?","net.thauvin.erik.akismet.AkismetComment.author"]},{"name":"var authorEmail: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.authorEmail","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html","searchKeys":["authorEmail","var authorEmail: String","net.thauvin.erik.akismet.CommentConfig.Builder.authorEmail"]},{"name":"var authorEmail: String","description":"net.thauvin.erik.akismet.CommentConfig.authorEmail","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-email.html","searchKeys":["authorEmail","var authorEmail: String","net.thauvin.erik.akismet.CommentConfig.authorEmail"]},{"name":"var authorEmail: String?","description":"net.thauvin.erik.akismet.AkismetComment.authorEmail","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html","searchKeys":["authorEmail","var authorEmail: String?","net.thauvin.erik.akismet.AkismetComment.authorEmail"]},{"name":"var authorUrl: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.authorUrl","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html","searchKeys":["authorUrl","var authorUrl: String","net.thauvin.erik.akismet.CommentConfig.Builder.authorUrl"]},{"name":"var authorUrl: String","description":"net.thauvin.erik.akismet.CommentConfig.authorUrl","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-url.html","searchKeys":["authorUrl","var authorUrl: String","net.thauvin.erik.akismet.CommentConfig.authorUrl"]},{"name":"var authorUrl: String?","description":"net.thauvin.erik.akismet.AkismetComment.authorUrl","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html","searchKeys":["authorUrl","var authorUrl: String?","net.thauvin.erik.akismet.AkismetComment.authorUrl"]},{"name":"var blog: String","description":"net.thauvin.erik.akismet.Akismet.blog","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/blog.html","searchKeys":["blog","var blog: String","net.thauvin.erik.akismet.Akismet.blog"]},{"name":"var blogCharset: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.blogCharset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html","searchKeys":["blogCharset","var blogCharset: String","net.thauvin.erik.akismet.CommentConfig.Builder.blogCharset"]},{"name":"var blogCharset: String","description":"net.thauvin.erik.akismet.CommentConfig.blogCharset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-charset.html","searchKeys":["blogCharset","var blogCharset: String","net.thauvin.erik.akismet.CommentConfig.blogCharset"]},{"name":"var blogCharset: String?","description":"net.thauvin.erik.akismet.AkismetComment.blogCharset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html","searchKeys":["blogCharset","var blogCharset: String?","net.thauvin.erik.akismet.AkismetComment.blogCharset"]},{"name":"var blogLang: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.blogLang","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html","searchKeys":["blogLang","var blogLang: String","net.thauvin.erik.akismet.CommentConfig.Builder.blogLang"]},{"name":"var blogLang: String","description":"net.thauvin.erik.akismet.CommentConfig.blogLang","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-lang.html","searchKeys":["blogLang","var blogLang: String","net.thauvin.erik.akismet.CommentConfig.blogLang"]},{"name":"var blogLang: String?","description":"net.thauvin.erik.akismet.AkismetComment.blogLang","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html","searchKeys":["blogLang","var blogLang: String?","net.thauvin.erik.akismet.AkismetComment.blogLang"]},{"name":"var content: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.content","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/content.html","searchKeys":["content","var content: String","net.thauvin.erik.akismet.CommentConfig.Builder.content"]},{"name":"var content: String","description":"net.thauvin.erik.akismet.CommentConfig.content","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/content.html","searchKeys":["content","var content: String","net.thauvin.erik.akismet.CommentConfig.content"]},{"name":"var content: String?","description":"net.thauvin.erik.akismet.AkismetComment.content","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/content.html","searchKeys":["content","var content: String?","net.thauvin.erik.akismet.AkismetComment.content"]},{"name":"var dateGmt: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.dateGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html","searchKeys":["dateGmt","var dateGmt: String","net.thauvin.erik.akismet.CommentConfig.Builder.dateGmt"]},{"name":"var dateGmt: String","description":"net.thauvin.erik.akismet.CommentConfig.dateGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/date-gmt.html","searchKeys":["dateGmt","var dateGmt: String","net.thauvin.erik.akismet.CommentConfig.dateGmt"]},{"name":"var dateGmt: String?","description":"net.thauvin.erik.akismet.AkismetComment.dateGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html","searchKeys":["dateGmt","var dateGmt: String?","net.thauvin.erik.akismet.AkismetComment.dateGmt"]},{"name":"var debugHelp: String","description":"net.thauvin.erik.akismet.Akismet.debugHelp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html","searchKeys":["debugHelp","var debugHelp: String","net.thauvin.erik.akismet.Akismet.debugHelp"]},{"name":"var errorMessage: String","description":"net.thauvin.erik.akismet.Akismet.errorMessage","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/error-message.html","searchKeys":["errorMessage","var errorMessage: String","net.thauvin.erik.akismet.Akismet.errorMessage"]},{"name":"var httpStatusCode: Int","description":"net.thauvin.erik.akismet.Akismet.httpStatusCode","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html","searchKeys":["httpStatusCode","var httpStatusCode: Int","net.thauvin.erik.akismet.Akismet.httpStatusCode"]},{"name":"var isDiscard: Boolean","description":"net.thauvin.erik.akismet.Akismet.isDiscard","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html","searchKeys":["isDiscard","var isDiscard: Boolean","net.thauvin.erik.akismet.Akismet.isDiscard"]},{"name":"var isTest: Boolean","description":"net.thauvin.erik.akismet.AkismetComment.isTest","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html","searchKeys":["isTest","var isTest: Boolean","net.thauvin.erik.akismet.AkismetComment.isTest"]},{"name":"var isTest: Boolean","description":"net.thauvin.erik.akismet.CommentConfig.Builder.isTest","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html","searchKeys":["isTest","var isTest: Boolean","net.thauvin.erik.akismet.CommentConfig.Builder.isTest"]},{"name":"var isTest: Boolean","description":"net.thauvin.erik.akismet.CommentConfig.isTest","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/is-test.html","searchKeys":["isTest","var isTest: Boolean","net.thauvin.erik.akismet.CommentConfig.isTest"]},{"name":"var isVerifiedKey: Boolean","description":"net.thauvin.erik.akismet.Akismet.isVerifiedKey","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html","searchKeys":["isVerifiedKey","var isVerifiedKey: Boolean","net.thauvin.erik.akismet.Akismet.isVerifiedKey"]},{"name":"var permalink: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.permalink","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html","searchKeys":["permalink","var permalink: String","net.thauvin.erik.akismet.CommentConfig.Builder.permalink"]},{"name":"var permalink: String","description":"net.thauvin.erik.akismet.CommentConfig.permalink","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/permalink.html","searchKeys":["permalink","var permalink: String","net.thauvin.erik.akismet.CommentConfig.permalink"]},{"name":"var permalink: String?","description":"net.thauvin.erik.akismet.AkismetComment.permalink","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/permalink.html","searchKeys":["permalink","var permalink: String?","net.thauvin.erik.akismet.AkismetComment.permalink"]},{"name":"var postModifiedGmt: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.postModifiedGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html","searchKeys":["postModifiedGmt","var postModifiedGmt: String","net.thauvin.erik.akismet.CommentConfig.Builder.postModifiedGmt"]},{"name":"var postModifiedGmt: String","description":"net.thauvin.erik.akismet.CommentConfig.postModifiedGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/post-modified-gmt.html","searchKeys":["postModifiedGmt","var postModifiedGmt: String","net.thauvin.erik.akismet.CommentConfig.postModifiedGmt"]},{"name":"var postModifiedGmt: String?","description":"net.thauvin.erik.akismet.AkismetComment.postModifiedGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html","searchKeys":["postModifiedGmt","var postModifiedGmt: String?","net.thauvin.erik.akismet.AkismetComment.postModifiedGmt"]},{"name":"var proTip: String","description":"net.thauvin.erik.akismet.Akismet.proTip","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html","searchKeys":["proTip","var proTip: String","net.thauvin.erik.akismet.Akismet.proTip"]},{"name":"var recheckReason: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.recheckReason","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html","searchKeys":["recheckReason","var recheckReason: String","net.thauvin.erik.akismet.CommentConfig.Builder.recheckReason"]},{"name":"var recheckReason: String","description":"net.thauvin.erik.akismet.CommentConfig.recheckReason","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/recheck-reason.html","searchKeys":["recheckReason","var recheckReason: String","net.thauvin.erik.akismet.CommentConfig.recheckReason"]},{"name":"var recheckReason: String?","description":"net.thauvin.erik.akismet.AkismetComment.recheckReason","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html","searchKeys":["recheckReason","var recheckReason: String?","net.thauvin.erik.akismet.AkismetComment.recheckReason"]},{"name":"var referrer: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.referrer","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html","searchKeys":["referrer","var referrer: String","net.thauvin.erik.akismet.CommentConfig.Builder.referrer"]},{"name":"var referrer: String","description":"net.thauvin.erik.akismet.CommentConfig.referrer","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/referrer.html","searchKeys":["referrer","var referrer: String","net.thauvin.erik.akismet.CommentConfig.referrer"]},{"name":"var referrer: String?","description":"net.thauvin.erik.akismet.AkismetComment.referrer","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/referrer.html","searchKeys":["referrer","var referrer: String?","net.thauvin.erik.akismet.AkismetComment.referrer"]},{"name":"var response: String","description":"net.thauvin.erik.akismet.Akismet.response","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/response.html","searchKeys":["response","var response: String","net.thauvin.erik.akismet.Akismet.response"]},{"name":"var serverEnv: Map","description":"net.thauvin.erik.akismet.AkismetComment.serverEnv","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/server-env.html","searchKeys":["serverEnv","var serverEnv: Map","net.thauvin.erik.akismet.AkismetComment.serverEnv"]},{"name":"var serverEnv: Map","description":"net.thauvin.erik.akismet.CommentConfig.Builder.serverEnv","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html","searchKeys":["serverEnv","var serverEnv: Map","net.thauvin.erik.akismet.CommentConfig.Builder.serverEnv"]},{"name":"var serverEnv: Map","description":"net.thauvin.erik.akismet.CommentConfig.serverEnv","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/server-env.html","searchKeys":["serverEnv","var serverEnv: Map","net.thauvin.erik.akismet.CommentConfig.serverEnv"]},{"name":"var type: CommentType","description":"net.thauvin.erik.akismet.AkismetComment.type","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/type.html","searchKeys":["type","var type: CommentType","net.thauvin.erik.akismet.AkismetComment.type"]},{"name":"var type: CommentType","description":"net.thauvin.erik.akismet.CommentConfig.Builder.type","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/type.html","searchKeys":["type","var type: CommentType","net.thauvin.erik.akismet.CommentConfig.Builder.type"]},{"name":"var type: CommentType","description":"net.thauvin.erik.akismet.CommentConfig.type","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/type.html","searchKeys":["type","var type: CommentType","net.thauvin.erik.akismet.CommentConfig.type"]},{"name":"var userAgent: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html","searchKeys":["userAgent","var userAgent: String","net.thauvin.erik.akismet.CommentConfig.Builder.userAgent"]},{"name":"var userAgent: String","description":"net.thauvin.erik.akismet.CommentConfig.userAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-agent.html","searchKeys":["userAgent","var userAgent: String","net.thauvin.erik.akismet.CommentConfig.userAgent"]},{"name":"var userIp: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userIp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html","searchKeys":["userIp","var userIp: String","net.thauvin.erik.akismet.CommentConfig.Builder.userIp"]},{"name":"var userIp: String","description":"net.thauvin.erik.akismet.CommentConfig.userIp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-ip.html","searchKeys":["userIp","var userIp: String","net.thauvin.erik.akismet.CommentConfig.userIp"]},{"name":"var userRole: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userRole","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html","searchKeys":["userRole","var userRole: String","net.thauvin.erik.akismet.CommentConfig.Builder.userRole"]},{"name":"var userRole: String","description":"net.thauvin.erik.akismet.CommentConfig.userRole","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-role.html","searchKeys":["userRole","var userRole: String","net.thauvin.erik.akismet.CommentConfig.userRole"]},{"name":"var userRole: String?","description":"net.thauvin.erik.akismet.AkismetComment.userRole","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html","searchKeys":["userRole","var userRole: String?","net.thauvin.erik.akismet.AkismetComment.userRole"]},{"name":"var value: String","description":"net.thauvin.erik.akismet.CommentType.value","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/value.html","searchKeys":["value","var value: String","net.thauvin.erik.akismet.CommentType.value"]}] +[{"name":"class CommentConfigĀ constructor(var userIp: String, var userAgent: String, var referrer: String = \"\", var permalink: String = \"\", var type: CommentType = CommentType.NONE, var author: String = \"\", var authorEmail: String = \"\", var authorUrl: String = \"\", var content: String = \"\", var dateGmt: String = \"\", var postModifiedGmt: String = \"\", var blogLang: String = \"\", var blogCharset: String = \"\", var userRole: String = \"\", var isTest: Boolean = false, var recheckReason: String = \"\", var serverEnv: Map = emptyMap())","description":"net.thauvin.erik.akismet.CommentConfig","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/index.html","searchKeys":["CommentConfig","class CommentConfigĀ constructor(var userIp: String, var userAgent: String, var referrer: String = \"\", var permalink: String = \"\", var type: CommentType = CommentType.NONE, var author: String = \"\", var authorEmail: String = \"\", var authorUrl: String = \"\", var content: String = \"\", var dateGmt: String = \"\", var postModifiedGmt: String = \"\", var blogLang: String = \"\", var blogCharset: String = \"\", var userRole: String = \"\", var isTest: Boolean = false, var recheckReason: String = \"\", var serverEnv: Map = emptyMap())","net.thauvin.erik.akismet.CommentConfig"]},{"name":"const val ADMIN_ROLE: String","description":"net.thauvin.erik.akismet.AkismetComment.Companion.ADMIN_ROLE","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html","searchKeys":["ADMIN_ROLE","const val ADMIN_ROLE: String","net.thauvin.erik.akismet.AkismetComment.Companion.ADMIN_ROLE"]},{"name":"constructor(apiKey: String)","description":"net.thauvin.erik.akismet.Akismet.Akismet","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html","searchKeys":["Akismet","constructor(apiKey: String)","net.thauvin.erik.akismet.Akismet.Akismet"]},{"name":"constructor(apiKey: String, blog: String)","description":"net.thauvin.erik.akismet.Akismet.Akismet","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html","searchKeys":["Akismet","constructor(apiKey: String, blog: String)","net.thauvin.erik.akismet.Akismet.Akismet"]},{"name":"constructor(builder: CommentConfig.Builder)","description":"net.thauvin.erik.akismet.CommentConfig.CommentConfig","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html","searchKeys":["CommentConfig","constructor(builder: CommentConfig.Builder)","net.thauvin.erik.akismet.CommentConfig.CommentConfig"]},{"name":"constructor(config: CommentConfig)","description":"net.thauvin.erik.akismet.AkismetComment.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html","searchKeys":["AkismetComment","constructor(config: CommentConfig)","net.thauvin.erik.akismet.AkismetComment.AkismetComment"]},{"name":"constructor(request: HttpServletRequest)","description":"net.thauvin.erik.akismet.AkismetComment.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html","searchKeys":["AkismetComment","constructor(request: HttpServletRequest)","net.thauvin.erik.akismet.AkismetComment.AkismetComment"]},{"name":"constructor(userIp: String, userAgent: String)","description":"net.thauvin.erik.akismet.AkismetComment.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html","searchKeys":["AkismetComment","constructor(userIp: String, userAgent: String)","net.thauvin.erik.akismet.AkismetComment.AkismetComment"]},{"name":"constructor(userIp: String, userAgent: String)","description":"net.thauvin.erik.akismet.CommentConfig.Builder.Builder","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/-builder.html","searchKeys":["Builder","constructor(userIp: String, userAgent: String)","net.thauvin.erik.akismet.CommentConfig.Builder.Builder"]},{"name":"constructor(userIp: String, userAgent: String, referrer: String = \"\", permalink: String = \"\", type: CommentType = CommentType.NONE, author: String = \"\", authorEmail: String = \"\", authorUrl: String = \"\", content: String = \"\", dateGmt: String = \"\", postModifiedGmt: String = \"\", blogLang: String = \"\", blogCharset: String = \"\", userRole: String = \"\", isTest: Boolean = false, recheckReason: String = \"\", serverEnv: Map = emptyMap())","description":"net.thauvin.erik.akismet.CommentConfig.CommentConfig","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-comment-config.html","searchKeys":["CommentConfig","constructor(userIp: String, userAgent: String, referrer: String = \"\", permalink: String = \"\", type: CommentType = CommentType.NONE, author: String = \"\", authorEmail: String = \"\", authorUrl: String = \"\", content: String = \"\", dateGmt: String = \"\", postModifiedGmt: String = \"\", blogLang: String = \"\", blogCharset: String = \"\", userRole: String = \"\", isTest: Boolean = false, recheckReason: String = \"\", serverEnv: Map = emptyMap())","net.thauvin.erik.akismet.CommentConfig.CommentConfig"]},{"name":"constructor(value: String)","description":"net.thauvin.erik.akismet.CommentType.CommentType","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-comment-type.html","searchKeys":["CommentType","constructor(value: String)","net.thauvin.erik.akismet.CommentType.CommentType"]},{"name":"data class Builder(var userIp: String, var userAgent: String)","description":"net.thauvin.erik.akismet.CommentConfig.Builder","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/index.html","searchKeys":["Builder","data class Builder(var userIp: String, var userAgent: String)","net.thauvin.erik.akismet.CommentConfig.Builder"]},{"name":"data class CommentType(var value: String)","description":"net.thauvin.erik.akismet.CommentType","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/index.html","searchKeys":["CommentType","data class CommentType(var value: String)","net.thauvin.erik.akismet.CommentType"]},{"name":"fun author(author: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.author","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author.html","searchKeys":["author","fun author(author: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.author"]},{"name":"fun authorEmail(authorEmail: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.authorEmail","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html","searchKeys":["authorEmail","fun authorEmail(authorEmail: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.authorEmail"]},{"name":"fun authorUrl(authorUrl: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.authorUrl","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html","searchKeys":["authorUrl","fun authorUrl(authorUrl: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.authorUrl"]},{"name":"fun blogCharset(blogCharset: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.blogCharset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html","searchKeys":["blogCharset","fun blogCharset(blogCharset: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.blogCharset"]},{"name":"fun blogLang(blogLang: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.blogLang","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html","searchKeys":["blogLang","fun blogLang(blogLang: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.blogLang"]},{"name":"fun build(): CommentConfig","description":"net.thauvin.erik.akismet.CommentConfig.Builder.build","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/build.html","searchKeys":["build","fun build(): CommentConfig","net.thauvin.erik.akismet.CommentConfig.Builder.build"]},{"name":"fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean","description":"net.thauvin.erik.akismet.Akismet.checkComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html","searchKeys":["checkComment","fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean","net.thauvin.erik.akismet.Akismet.checkComment"]},{"name":"fun content(content: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.content","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/content.html","searchKeys":["content","fun content(content: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.content"]},{"name":"fun dateGmt(dateGmt: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.dateGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html","searchKeys":["dateGmt","fun dateGmt(dateGmt: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.dateGmt"]},{"name":"fun dateToGmt(date: Date): String","description":"net.thauvin.erik.akismet.Akismet.Companion.dateToGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html","searchKeys":["dateToGmt","fun dateToGmt(date: Date): String","net.thauvin.erik.akismet.Akismet.Companion.dateToGmt"]},{"name":"fun dateToGmt(date: LocalDateTime): String","description":"net.thauvin.erik.akismet.Akismet.Companion.dateToGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html","searchKeys":["dateToGmt","fun dateToGmt(date: LocalDateTime): String","net.thauvin.erik.akismet.Akismet.Companion.dateToGmt"]},{"name":"fun executeMethod(apiUrl: HttpUrl, formBody: FormBody, trueOnError: Boolean = false): Boolean","description":"net.thauvin.erik.akismet.Akismet.executeMethod","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html","searchKeys":["executeMethod","fun executeMethod(apiUrl: HttpUrl, formBody: FormBody, trueOnError: Boolean = false): Boolean","net.thauvin.erik.akismet.Akismet.executeMethod"]},{"name":"fun isTest(isTest: Boolean): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.isTest","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html","searchKeys":["isTest","fun isTest(isTest: Boolean): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.isTest"]},{"name":"fun jsonComment(json: String): AkismetComment","description":"net.thauvin.erik.akismet.Akismet.Companion.jsonComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html","searchKeys":["jsonComment","fun jsonComment(json: String): AkismetComment","net.thauvin.erik.akismet.Akismet.Companion.jsonComment"]},{"name":"fun permalink(permalink: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.permalink","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html","searchKeys":["permalink","fun permalink(permalink: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.permalink"]},{"name":"fun postModifiedGmt(postModifiedGmt: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.postModifiedGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html","searchKeys":["postModifiedGmt","fun postModifiedGmt(postModifiedGmt: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.postModifiedGmt"]},{"name":"fun recheckReason(checkReason: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.recheckReason","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html","searchKeys":["recheckReason","fun recheckReason(checkReason: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.recheckReason"]},{"name":"fun referrer(referrer: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.referrer","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html","searchKeys":["referrer","fun referrer(referrer: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.referrer"]},{"name":"fun reset()","description":"net.thauvin.erik.akismet.Akismet.reset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/reset.html","searchKeys":["reset","fun reset()","net.thauvin.erik.akismet.Akismet.reset"]},{"name":"fun serverEnv(serverEnv: Map): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.serverEnv","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html","searchKeys":["serverEnv","fun serverEnv(serverEnv: Map): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.serverEnv"]},{"name":"fun submitHam(comment: AkismetComment): Boolean","description":"net.thauvin.erik.akismet.Akismet.submitHam","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-ham.html","searchKeys":["submitHam","fun submitHam(comment: AkismetComment): Boolean","net.thauvin.erik.akismet.Akismet.submitHam"]},{"name":"fun submitSpam(comment: AkismetComment): Boolean","description":"net.thauvin.erik.akismet.Akismet.submitSpam","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/submit-spam.html","searchKeys":["submitSpam","fun submitSpam(comment: AkismetComment): Boolean","net.thauvin.erik.akismet.Akismet.submitSpam"]},{"name":"fun toJson(): String","description":"net.thauvin.erik.akismet.AkismetComment.toJson","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-json.html","searchKeys":["toJson","fun toJson(): String","net.thauvin.erik.akismet.AkismetComment.toJson"]},{"name":"fun type(type: CommentType): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.type","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/type.html","searchKeys":["type","fun type(type: CommentType): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.type"]},{"name":"fun userAgent(userAgent: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html","searchKeys":["userAgent","fun userAgent(userAgent: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.userAgent"]},{"name":"fun userIp(userIp: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userIp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html","searchKeys":["userIp","fun userIp(userIp: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.userIp"]},{"name":"fun userRole(userRole: String): CommentConfig.Builder","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userRole","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html","searchKeys":["userRole","fun userRole(userRole: String): CommentConfig.Builder","net.thauvin.erik.akismet.CommentConfig.Builder.userRole"]},{"name":"fun verifyKey(): Boolean","description":"net.thauvin.erik.akismet.Akismet.verifyKey","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html","searchKeys":["verifyKey","fun verifyKey(): Boolean","net.thauvin.erik.akismet.Akismet.verifyKey"]},{"name":"object Companion","description":"net.thauvin.erik.akismet.Akismet.Companion","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/-companion/index.html","searchKeys":["Companion","object Companion","net.thauvin.erik.akismet.Akismet.Companion"]},{"name":"object Companion","description":"net.thauvin.erik.akismet.AkismetComment.Companion","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html","searchKeys":["Companion","object Companion","net.thauvin.erik.akismet.AkismetComment.Companion"]},{"name":"object Companion","description":"net.thauvin.erik.akismet.CommentType.Companion","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/index.html","searchKeys":["Companion","object Companion","net.thauvin.erik.akismet.CommentType.Companion"]},{"name":"open class Akismet(apiKey: String)","description":"net.thauvin.erik.akismet.Akismet","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/index.html","searchKeys":["Akismet","open class Akismet(apiKey: String)","net.thauvin.erik.akismet.Akismet"]},{"name":"open class AkismetComment(val userIp: String, val userAgent: String)","description":"net.thauvin.erik.akismet.AkismetComment","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html","searchKeys":["AkismetComment","open class AkismetComment(val userIp: String, val userAgent: String)","net.thauvin.erik.akismet.AkismetComment"]},{"name":"open operator override fun equals(other: Any?): Boolean","description":"net.thauvin.erik.akismet.AkismetComment.equals","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/equals.html","searchKeys":["equals","open operator override fun equals(other: Any?): Boolean","net.thauvin.erik.akismet.AkismetComment.equals"]},{"name":"open override fun hashCode(): Int","description":"net.thauvin.erik.akismet.AkismetComment.hashCode","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/hash-code.html","searchKeys":["hashCode","open override fun hashCode(): Int","net.thauvin.erik.akismet.AkismetComment.hashCode"]},{"name":"open override fun toString(): String","description":"net.thauvin.erik.akismet.AkismetComment.toString","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/to-string.html","searchKeys":["toString","open override fun toString(): String","net.thauvin.erik.akismet.AkismetComment.toString"]},{"name":"val BLOG_POST: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.BLOG_POST","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-b-l-o-g_-p-o-s-t.html","searchKeys":["BLOG_POST","val BLOG_POST: CommentType","net.thauvin.erik.akismet.CommentType.Companion.BLOG_POST"]},{"name":"val COMMENT: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.COMMENT","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-m-m-e-n-t.html","searchKeys":["COMMENT","val COMMENT: CommentType","net.thauvin.erik.akismet.CommentType.Companion.COMMENT"]},{"name":"val CONTACT_FORM: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.CONTACT_FORM","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-c-o-n-t-a-c-t_-f-o-r-m.html","searchKeys":["CONTACT_FORM","val CONTACT_FORM: CommentType","net.thauvin.erik.akismet.CommentType.Companion.CONTACT_FORM"]},{"name":"val FORUM_POST: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.FORUM_POST","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-f-o-r-u-m_-p-o-s-t.html","searchKeys":["FORUM_POST","val FORUM_POST: CommentType","net.thauvin.erik.akismet.CommentType.Companion.FORUM_POST"]},{"name":"val MESSAGE: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.MESSAGE","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-m-e-s-s-a-g-e.html","searchKeys":["MESSAGE","val MESSAGE: CommentType","net.thauvin.erik.akismet.CommentType.Companion.MESSAGE"]},{"name":"val NONE: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.NONE","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-n-o-n-e.html","searchKeys":["NONE","val NONE: CommentType","net.thauvin.erik.akismet.CommentType.Companion.NONE"]},{"name":"val PINGBACK: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.PINGBACK","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-p-i-n-g-b-a-c-k.html","searchKeys":["PINGBACK","val PINGBACK: CommentType","net.thauvin.erik.akismet.CommentType.Companion.PINGBACK"]},{"name":"val REPLY: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.REPLY","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-r-e-p-l-y.html","searchKeys":["REPLY","val REPLY: CommentType","net.thauvin.erik.akismet.CommentType.Companion.REPLY"]},{"name":"val SIGNUP: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.SIGNUP","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-s-i-g-n-u-p.html","searchKeys":["SIGNUP","val SIGNUP: CommentType","net.thauvin.erik.akismet.CommentType.Companion.SIGNUP"]},{"name":"val TRACKBACK: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.TRACKBACK","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-t-r-a-c-k-b-a-c-k.html","searchKeys":["TRACKBACK","val TRACKBACK: CommentType","net.thauvin.erik.akismet.CommentType.Companion.TRACKBACK"]},{"name":"val TWEET: CommentType","description":"net.thauvin.erik.akismet.CommentType.Companion.TWEET","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/-companion/-t-w-e-e-t.html","searchKeys":["TWEET","val TWEET: CommentType","net.thauvin.erik.akismet.CommentType.Companion.TWEET"]},{"name":"val logger: Logger","description":"net.thauvin.erik.akismet.Akismet.logger","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/logger.html","searchKeys":["logger","val logger: Logger","net.thauvin.erik.akismet.Akismet.logger"]},{"name":"val userAgent: String","description":"net.thauvin.erik.akismet.AkismetComment.userAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html","searchKeys":["userAgent","val userAgent: String","net.thauvin.erik.akismet.AkismetComment.userAgent"]},{"name":"val userIp: String","description":"net.thauvin.erik.akismet.AkismetComment.userIp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html","searchKeys":["userIp","val userIp: String","net.thauvin.erik.akismet.AkismetComment.userIp"]},{"name":"var appUserAgent: String","description":"net.thauvin.erik.akismet.Akismet.appUserAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/app-user-agent.html","searchKeys":["appUserAgent","var appUserAgent: String","net.thauvin.erik.akismet.Akismet.appUserAgent"]},{"name":"var author: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.author","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author.html","searchKeys":["author","var author: String","net.thauvin.erik.akismet.CommentConfig.Builder.author"]},{"name":"var author: String","description":"net.thauvin.erik.akismet.CommentConfig.author","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author.html","searchKeys":["author","var author: String","net.thauvin.erik.akismet.CommentConfig.author"]},{"name":"var author: String?","description":"net.thauvin.erik.akismet.AkismetComment.author","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html","searchKeys":["author","var author: String?","net.thauvin.erik.akismet.AkismetComment.author"]},{"name":"var authorEmail: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.authorEmail","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-email.html","searchKeys":["authorEmail","var authorEmail: String","net.thauvin.erik.akismet.CommentConfig.Builder.authorEmail"]},{"name":"var authorEmail: String","description":"net.thauvin.erik.akismet.CommentConfig.authorEmail","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-email.html","searchKeys":["authorEmail","var authorEmail: String","net.thauvin.erik.akismet.CommentConfig.authorEmail"]},{"name":"var authorEmail: String?","description":"net.thauvin.erik.akismet.AkismetComment.authorEmail","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html","searchKeys":["authorEmail","var authorEmail: String?","net.thauvin.erik.akismet.AkismetComment.authorEmail"]},{"name":"var authorUrl: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.authorUrl","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/author-url.html","searchKeys":["authorUrl","var authorUrl: String","net.thauvin.erik.akismet.CommentConfig.Builder.authorUrl"]},{"name":"var authorUrl: String","description":"net.thauvin.erik.akismet.CommentConfig.authorUrl","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/author-url.html","searchKeys":["authorUrl","var authorUrl: String","net.thauvin.erik.akismet.CommentConfig.authorUrl"]},{"name":"var authorUrl: String?","description":"net.thauvin.erik.akismet.AkismetComment.authorUrl","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html","searchKeys":["authorUrl","var authorUrl: String?","net.thauvin.erik.akismet.AkismetComment.authorUrl"]},{"name":"var blog: String","description":"net.thauvin.erik.akismet.Akismet.blog","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/blog.html","searchKeys":["blog","var blog: String","net.thauvin.erik.akismet.Akismet.blog"]},{"name":"var blogCharset: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.blogCharset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-charset.html","searchKeys":["blogCharset","var blogCharset: String","net.thauvin.erik.akismet.CommentConfig.Builder.blogCharset"]},{"name":"var blogCharset: String","description":"net.thauvin.erik.akismet.CommentConfig.blogCharset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-charset.html","searchKeys":["blogCharset","var blogCharset: String","net.thauvin.erik.akismet.CommentConfig.blogCharset"]},{"name":"var blogCharset: String?","description":"net.thauvin.erik.akismet.AkismetComment.blogCharset","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html","searchKeys":["blogCharset","var blogCharset: String?","net.thauvin.erik.akismet.AkismetComment.blogCharset"]},{"name":"var blogLang: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.blogLang","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/blog-lang.html","searchKeys":["blogLang","var blogLang: String","net.thauvin.erik.akismet.CommentConfig.Builder.blogLang"]},{"name":"var blogLang: String","description":"net.thauvin.erik.akismet.CommentConfig.blogLang","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/blog-lang.html","searchKeys":["blogLang","var blogLang: String","net.thauvin.erik.akismet.CommentConfig.blogLang"]},{"name":"var blogLang: String?","description":"net.thauvin.erik.akismet.AkismetComment.blogLang","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html","searchKeys":["blogLang","var blogLang: String?","net.thauvin.erik.akismet.AkismetComment.blogLang"]},{"name":"var content: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.content","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/content.html","searchKeys":["content","var content: String","net.thauvin.erik.akismet.CommentConfig.Builder.content"]},{"name":"var content: String","description":"net.thauvin.erik.akismet.CommentConfig.content","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/content.html","searchKeys":["content","var content: String","net.thauvin.erik.akismet.CommentConfig.content"]},{"name":"var content: String?","description":"net.thauvin.erik.akismet.AkismetComment.content","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/content.html","searchKeys":["content","var content: String?","net.thauvin.erik.akismet.AkismetComment.content"]},{"name":"var dateGmt: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.dateGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/date-gmt.html","searchKeys":["dateGmt","var dateGmt: String","net.thauvin.erik.akismet.CommentConfig.Builder.dateGmt"]},{"name":"var dateGmt: String","description":"net.thauvin.erik.akismet.CommentConfig.dateGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/date-gmt.html","searchKeys":["dateGmt","var dateGmt: String","net.thauvin.erik.akismet.CommentConfig.dateGmt"]},{"name":"var dateGmt: String?","description":"net.thauvin.erik.akismet.AkismetComment.dateGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html","searchKeys":["dateGmt","var dateGmt: String?","net.thauvin.erik.akismet.AkismetComment.dateGmt"]},{"name":"var debugHelp: String","description":"net.thauvin.erik.akismet.Akismet.debugHelp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html","searchKeys":["debugHelp","var debugHelp: String","net.thauvin.erik.akismet.Akismet.debugHelp"]},{"name":"var errorMessage: String","description":"net.thauvin.erik.akismet.Akismet.errorMessage","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/error-message.html","searchKeys":["errorMessage","var errorMessage: String","net.thauvin.erik.akismet.Akismet.errorMessage"]},{"name":"var httpStatusCode: Int","description":"net.thauvin.erik.akismet.Akismet.httpStatusCode","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html","searchKeys":["httpStatusCode","var httpStatusCode: Int","net.thauvin.erik.akismet.Akismet.httpStatusCode"]},{"name":"var isDiscard: Boolean","description":"net.thauvin.erik.akismet.Akismet.isDiscard","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html","searchKeys":["isDiscard","var isDiscard: Boolean","net.thauvin.erik.akismet.Akismet.isDiscard"]},{"name":"var isTest: Boolean","description":"net.thauvin.erik.akismet.AkismetComment.isTest","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html","searchKeys":["isTest","var isTest: Boolean","net.thauvin.erik.akismet.AkismetComment.isTest"]},{"name":"var isTest: Boolean","description":"net.thauvin.erik.akismet.CommentConfig.Builder.isTest","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/is-test.html","searchKeys":["isTest","var isTest: Boolean","net.thauvin.erik.akismet.CommentConfig.Builder.isTest"]},{"name":"var isTest: Boolean","description":"net.thauvin.erik.akismet.CommentConfig.isTest","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/is-test.html","searchKeys":["isTest","var isTest: Boolean","net.thauvin.erik.akismet.CommentConfig.isTest"]},{"name":"var isVerifiedKey: Boolean","description":"net.thauvin.erik.akismet.Akismet.isVerifiedKey","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html","searchKeys":["isVerifiedKey","var isVerifiedKey: Boolean","net.thauvin.erik.akismet.Akismet.isVerifiedKey"]},{"name":"var permalink: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.permalink","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/permalink.html","searchKeys":["permalink","var permalink: String","net.thauvin.erik.akismet.CommentConfig.Builder.permalink"]},{"name":"var permalink: String","description":"net.thauvin.erik.akismet.CommentConfig.permalink","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/permalink.html","searchKeys":["permalink","var permalink: String","net.thauvin.erik.akismet.CommentConfig.permalink"]},{"name":"var permalink: String?","description":"net.thauvin.erik.akismet.AkismetComment.permalink","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/permalink.html","searchKeys":["permalink","var permalink: String?","net.thauvin.erik.akismet.AkismetComment.permalink"]},{"name":"var postModifiedGmt: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.postModifiedGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/post-modified-gmt.html","searchKeys":["postModifiedGmt","var postModifiedGmt: String","net.thauvin.erik.akismet.CommentConfig.Builder.postModifiedGmt"]},{"name":"var postModifiedGmt: String","description":"net.thauvin.erik.akismet.CommentConfig.postModifiedGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/post-modified-gmt.html","searchKeys":["postModifiedGmt","var postModifiedGmt: String","net.thauvin.erik.akismet.CommentConfig.postModifiedGmt"]},{"name":"var postModifiedGmt: String?","description":"net.thauvin.erik.akismet.AkismetComment.postModifiedGmt","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html","searchKeys":["postModifiedGmt","var postModifiedGmt: String?","net.thauvin.erik.akismet.AkismetComment.postModifiedGmt"]},{"name":"var proTip: String","description":"net.thauvin.erik.akismet.Akismet.proTip","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html","searchKeys":["proTip","var proTip: String","net.thauvin.erik.akismet.Akismet.proTip"]},{"name":"var recheckReason: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.recheckReason","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/recheck-reason.html","searchKeys":["recheckReason","var recheckReason: String","net.thauvin.erik.akismet.CommentConfig.Builder.recheckReason"]},{"name":"var recheckReason: String","description":"net.thauvin.erik.akismet.CommentConfig.recheckReason","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/recheck-reason.html","searchKeys":["recheckReason","var recheckReason: String","net.thauvin.erik.akismet.CommentConfig.recheckReason"]},{"name":"var recheckReason: String?","description":"net.thauvin.erik.akismet.AkismetComment.recheckReason","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html","searchKeys":["recheckReason","var recheckReason: String?","net.thauvin.erik.akismet.AkismetComment.recheckReason"]},{"name":"var referrer: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.referrer","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/referrer.html","searchKeys":["referrer","var referrer: String","net.thauvin.erik.akismet.CommentConfig.Builder.referrer"]},{"name":"var referrer: String","description":"net.thauvin.erik.akismet.CommentConfig.referrer","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/referrer.html","searchKeys":["referrer","var referrer: String","net.thauvin.erik.akismet.CommentConfig.referrer"]},{"name":"var referrer: String?","description":"net.thauvin.erik.akismet.AkismetComment.referrer","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/referrer.html","searchKeys":["referrer","var referrer: String?","net.thauvin.erik.akismet.AkismetComment.referrer"]},{"name":"var response: String","description":"net.thauvin.erik.akismet.Akismet.response","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet/response.html","searchKeys":["response","var response: String","net.thauvin.erik.akismet.Akismet.response"]},{"name":"var serverEnv: Map","description":"net.thauvin.erik.akismet.AkismetComment.serverEnv","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/server-env.html","searchKeys":["serverEnv","var serverEnv: Map","net.thauvin.erik.akismet.AkismetComment.serverEnv"]},{"name":"var serverEnv: Map","description":"net.thauvin.erik.akismet.CommentConfig.Builder.serverEnv","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/server-env.html","searchKeys":["serverEnv","var serverEnv: Map","net.thauvin.erik.akismet.CommentConfig.Builder.serverEnv"]},{"name":"var serverEnv: Map","description":"net.thauvin.erik.akismet.CommentConfig.serverEnv","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/server-env.html","searchKeys":["serverEnv","var serverEnv: Map","net.thauvin.erik.akismet.CommentConfig.serverEnv"]},{"name":"var type: CommentType","description":"net.thauvin.erik.akismet.AkismetComment.type","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/type.html","searchKeys":["type","var type: CommentType","net.thauvin.erik.akismet.AkismetComment.type"]},{"name":"var type: CommentType","description":"net.thauvin.erik.akismet.CommentConfig.Builder.type","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/type.html","searchKeys":["type","var type: CommentType","net.thauvin.erik.akismet.CommentConfig.Builder.type"]},{"name":"var type: CommentType","description":"net.thauvin.erik.akismet.CommentConfig.type","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/type.html","searchKeys":["type","var type: CommentType","net.thauvin.erik.akismet.CommentConfig.type"]},{"name":"var userAgent: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-agent.html","searchKeys":["userAgent","var userAgent: String","net.thauvin.erik.akismet.CommentConfig.Builder.userAgent"]},{"name":"var userAgent: String","description":"net.thauvin.erik.akismet.CommentConfig.userAgent","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-agent.html","searchKeys":["userAgent","var userAgent: String","net.thauvin.erik.akismet.CommentConfig.userAgent"]},{"name":"var userIp: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userIp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-ip.html","searchKeys":["userIp","var userIp: String","net.thauvin.erik.akismet.CommentConfig.Builder.userIp"]},{"name":"var userIp: String","description":"net.thauvin.erik.akismet.CommentConfig.userIp","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-ip.html","searchKeys":["userIp","var userIp: String","net.thauvin.erik.akismet.CommentConfig.userIp"]},{"name":"var userRole: String","description":"net.thauvin.erik.akismet.CommentConfig.Builder.userRole","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/-builder/user-role.html","searchKeys":["userRole","var userRole: String","net.thauvin.erik.akismet.CommentConfig.Builder.userRole"]},{"name":"var userRole: String","description":"net.thauvin.erik.akismet.CommentConfig.userRole","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-config/user-role.html","searchKeys":["userRole","var userRole: String","net.thauvin.erik.akismet.CommentConfig.userRole"]},{"name":"var userRole: String?","description":"net.thauvin.erik.akismet.AkismetComment.userRole","location":"-akismet -kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html","searchKeys":["userRole","var userRole: String?","net.thauvin.erik.akismet.AkismetComment.userRole"]},{"name":"var value: String","description":"net.thauvin.erik.akismet.CommentType.value","location":"-akismet -kotlin/net.thauvin.erik.akismet/-comment-type/value.html","searchKeys":["value","var value: String","net.thauvin.erik.akismet.CommentType.value"]}] diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 5df79d3..ec0a459 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -2,7 +2,7 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true bld.extensions=com.uwyn.rife2:bld-generated-version:0.9.5 bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.5 -bld.extensions-kotlin=com.uwyn.rife2:bld-kotlin:0.9.7 +bld.extensions-kotlin=com.uwyn.rife2:bld-kotlin:0.9.8-SNAPSHOT bld.extensions-detekt=com.uwyn.rife2:bld-detekt:0.9.4 bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= diff --git a/pom.xml b/pom.xml index eec64aa..c2e42dd 100644 --- a/pom.xml +++ b/pom.xml @@ -33,12 +33,6 @@ 4.12.0 compile - - jakarta.servlet - jakarta.servlet-api - 6.0.0 - compile - org.jetbrains.kotlinx kotlinx-serialization-json-jvm diff --git a/src/bld/java/net/thauvin/erik/AkismetBuild.java b/src/bld/java/net/thauvin/erik/AkismetBuild.java index fadf611..db01101 100644 --- a/src/bld/java/net/thauvin/erik/AkismetBuild.java +++ b/src/bld/java/net/thauvin/erik/AkismetBuild.java @@ -72,9 +72,9 @@ public class AkismetBuild extends Project { .include(dependency("org.jetbrains.kotlin", "kotlin-stdlib", kotlin)) .include(dependency("com.squareup.okhttp3", "okhttp", okHttp)) .include(dependency("com.squareup.okhttp3", "logging-interceptor", okHttp)) - .include(dependency("jakarta.servlet", "jakarta.servlet-api", version(6, 0, 0))) .include(dependency("org.jetbrains.kotlinx", "kotlinx-serialization-json-jvm", version(1, 6, 3))); scope(provided) + .include(dependency("jakarta.servlet", "jakarta.servlet-api", version(6, 0, 0))) .include(dependency("org.jetbrains.kotlin", "kotlin-serialization-compiler-plugin", kotlin)); scope(test) .include(dependency("org.mockito", "mockito-core", version(5, 12, 0))) @@ -170,6 +170,8 @@ public class AkismetBuild extends Project { .sourceSet( new SourceSet() .src(srcMainKotlin.getAbsolutePath()) + .classpath(compileClasspathJars()) + .classpath(providedClasspathJars()) .srcLink(srcMainKotlin.getAbsolutePath(), "https://github.com/ethauvin/" + name + "/tree/master/src/main/kotlin/", "#L") .includes("config/dokka/packages.md") From 19956a337fd3eb763e0777e561400cfdbad18dbd Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 26 May 2024 00:25:49 -0700 Subject: [PATCH 32/63] Made config constructor private --- .../net/thauvin/erik/akismet/CommentConfig.kt | 58 ++++++------------- 1 file changed, 18 insertions(+), 40 deletions(-) diff --git a/src/main/kotlin/net/thauvin/erik/akismet/CommentConfig.kt b/src/main/kotlin/net/thauvin/erik/akismet/CommentConfig.kt index 9df25d8..ff04fb9 100644 --- a/src/main/kotlin/net/thauvin/erik/akismet/CommentConfig.kt +++ b/src/main/kotlin/net/thauvin/erik/akismet/CommentConfig.kt @@ -35,47 +35,25 @@ import net.thauvin.erik.akismet.AkismetComment.Companion.ADMIN_ROLE /** * Provides a comment configuration. - * - * @param userIp IP address of the comment submitter. - * @param userAgent User agent string of the web browser submitting the comment. */ -class CommentConfig @JvmOverloads constructor( - var userIp: String, - var userAgent: String, - var referrer: String = "", - var permalink: String = "", - var type: CommentType = CommentType.NONE, - var author: String = "", - var authorEmail: String = "", - var authorUrl: String = "", - var content: String = "", - var dateGmt: String = "", - var postModifiedGmt: String = "", - var blogLang: String = "", - var blogCharset: String = "", - var userRole: String = "", - var isTest: Boolean = false, - var recheckReason: String = "", - var serverEnv: Map = emptyMap() - -) { - constructor(builder: Builder) : this(builder.userIp, builder.userAgent) { - referrer = builder.referrer - permalink = builder.permalink - type = builder.type - author = builder.author - authorEmail = builder.authorEmail - authorUrl = builder.authorUrl - content = builder.content - dateGmt = builder.dateGmt - postModifiedGmt = builder.postModifiedGmt - blogLang = builder.blogLang - blogCharset = builder.blogCharset - userRole = builder.userRole - isTest = builder.isTest - recheckReason = builder.recheckReason - serverEnv = builder.serverEnv - } +class CommentConfig private constructor(builder: Builder) { + val userIp: String = builder.userIp + val userAgent: String = builder.userAgent + val referrer = builder.referrer + val permalink = builder.permalink + val type = builder.type + val author = builder.author + val authorEmail = builder.authorEmail + val authorUrl = builder.authorUrl + val content = builder.content + val dateGmt = builder.dateGmt + val postModifiedGmt = builder.postModifiedGmt + val blogLang = builder.blogLang + val blogCharset = builder.blogCharset + val userRole = builder.userRole + val isTest = builder.isTest + val recheckReason = builder.recheckReason + val serverEnv = builder.serverEnv /** * Provides a configuration builder. From f823e5a0fedfcff3108a6e6bac368f66fe10523b Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Mon, 27 May 2024 17:59:47 -0700 Subject: [PATCH 33/63] Bumped extensions versions Bumped Kotlin extension to version 0.9.8 Bumped Generated Version extension to version 0.9.6 --- examples/bld/lib/bld/bld-wrapper.properties | 2 +- lib/bld/bld-wrapper.properties | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/bld/lib/bld/bld-wrapper.properties b/examples/bld/lib/bld/bld-wrapper.properties index b32aeb6..8c08ccc 100644 --- a/examples/bld/lib/bld/bld-wrapper.properties +++ b/examples/bld/lib/bld/bld-wrapper.properties @@ -1,6 +1,6 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extensions=com.uwyn.rife2:bld-kotlin:0.9.7 +bld.extensions=com.uwyn.rife2:bld-kotlin:0.9.8 bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= bld.sourceDirectories= diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index ec0a459..a1e2c45 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,9 +1,9 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extensions=com.uwyn.rife2:bld-generated-version:0.9.5 bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.5 -bld.extensions-kotlin=com.uwyn.rife2:bld-kotlin:0.9.8-SNAPSHOT +bld.extensions-kotlin=com.uwyn.rife2:bld-kotlin:0.9.8 bld.extensions-detekt=com.uwyn.rife2:bld-detekt:0.9.4 +bld.extensions=com.uwyn.rife2:bld-generated-version:0.9.6 bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= bld.sourceDirectories= From 086c736b9ecd3533f58c5f69d38b0e35f77237f7 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 11 Jul 2024 19:52:45 -0700 Subject: [PATCH 34/63] Updated dependencies --- .idea/kotlinc.xml | 19 +++++++++++------- .idea/libraries/bld.xml | 4 ++-- .../bld/.idea/runConfigurations/Run Tests.xml | 9 --------- examples/bld/lib/bld/bld-wrapper.jar | Bin 27319 -> 27319 bytes examples/bld/lib/bld/bld-wrapper.properties | 5 +++-- .../bld/java/com/example/ExampleBuild.java | 2 +- examples/gradle/.idea/gradle.xml | 1 - examples/gradle/build.gradle.kts | 2 +- .../gradle/gradle/wrapper/gradle-wrapper.jar | Bin 43453 -> 43504 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/gradle/gradlew | 7 +++++-- examples/gradle/gradlew.bat | 2 ++ lib/bld/bld-wrapper.jar | Bin 27319 -> 29229 bytes lib/bld/bld-wrapper.properties | 13 ++++++------ 14 files changed, 34 insertions(+), 32 deletions(-) delete mode 100644 examples/bld/.idea/runConfigurations/Run Tests.xml diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml index 54d38d2..86ebe4c 100644 --- a/.idea/kotlinc.xml +++ b/.idea/kotlinc.xml @@ -1,13 +1,18 @@ - - - + + + + + diff --git a/.idea/libraries/bld.xml b/.idea/libraries/bld.xml index a2969be..2fb5ff0 100644 --- a/.idea/libraries/bld.xml +++ b/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/examples/bld/.idea/runConfigurations/Run Tests.xml b/examples/bld/.idea/runConfigurations/Run Tests.xml deleted file mode 100644 index 2b503e5..0000000 --- a/examples/bld/.idea/runConfigurations/Run Tests.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - \ No newline at end of file diff --git a/examples/bld/lib/bld/bld-wrapper.jar b/examples/bld/lib/bld/bld-wrapper.jar index 6012eefa34ce859c8027bc6c4f7e48b2f789b69a..a56ed93efc4a8d176f495b04769ee743a676296b 100644 GIT binary patch delta 131 zcmdmfm2vx3M&1B#W)=|!4h{~6KfNa=^42i}sf~R~#vpq0X5(%qFvHP|T@TFgPC3sA wX2_-)f~6)0X4r!SCQr_A2Gch)Ji)YTW(b(B$#ezNM>69e;#vM+x;)DP0Ga4KNdN!< delta 131 zcmdmfm2vx3M&1B#W)=|!4h{~6oW8{qdFz;g)W$v~V-UT0vvD^QnBi!~t_Nm#r<`X5 wGi1{Y!BUe0GweYElP705gXx
\ No newline at end of file diff --git a/.idea/libraries/runtime.xml b/.idea/libraries/runtime.xml index 2ae5c4b..d4069f2 100644 --- a/.idea/libraries/runtime.xml +++ b/.idea/libraries/runtime.xml @@ -8,7 +8,7 @@ - - + +
\ No newline at end of file diff --git a/.idea/libraries/test.xml b/.idea/libraries/test.xml index ce3c795..5445790 100644 --- a/.idea/libraries/test.xml +++ b/.idea/libraries/test.xml @@ -11,9 +11,9 @@ - - - - + + + + \ No newline at end of file diff --git a/README.md b/README.md index bde0ec4..9928bce 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ [![License (3-Clause BSD)](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg?style=flat-square)](https://opensource.org/licenses/BSD-3-Clause) [![Kotlin](https://img.shields.io/badge/kotlin-1.9.24-7f52ff)](https://kotlinlang.org/) -[![bld](https://img.shields.io/badge/1.9.1-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) +[![bld](https://img.shields.io/badge/2.1.0-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) [![Release](https://img.shields.io/github/release/ethauvin/akismet-kotlin.svg)](https://github.com/ethauvin/akismet-kotlin/releases/latest) [![Nexus Snapshot](https://img.shields.io/nexus/s/net.thauvin.erik/akismet-kotlin?label=snapshot&server=https%3A%2F%2Foss.sonatype.org%2F)](https://oss.sonatype.org/content/repositories/snapshots/net/thauvin/erik/akismet-kotlin/) [![Maven Central](https://img.shields.io/maven-central/v/net.thauvin.erik/akismet-kotlin.svg?color=blue)](https://central.sonatype.com/artifact/net.thauvin.erik/akismet-kotlin) diff --git a/examples/bld/.idea/libraries/bld.xml b/examples/bld/.idea/libraries/bld.xml index a2969be..5c4010c 100644 --- a/examples/bld/.idea/libraries/bld.xml +++ b/examples/bld/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/examples/bld/.idea/libraries/compile.xml b/examples/bld/.idea/libraries/compile.xml index 9bd86aa..99cc0c0 100644 --- a/examples/bld/.idea/libraries/compile.xml +++ b/examples/bld/.idea/libraries/compile.xml @@ -7,7 +7,7 @@ - - + + \ No newline at end of file diff --git a/examples/bld/.idea/libraries/runtime.xml b/examples/bld/.idea/libraries/runtime.xml index 2ae5c4b..d4069f2 100644 --- a/examples/bld/.idea/libraries/runtime.xml +++ b/examples/bld/.idea/libraries/runtime.xml @@ -8,7 +8,7 @@ - - + + \ No newline at end of file diff --git a/examples/bld/.idea/libraries/test.xml b/examples/bld/.idea/libraries/test.xml index b80486a..57ed5ef 100644 --- a/examples/bld/.idea/libraries/test.xml +++ b/examples/bld/.idea/libraries/test.xml @@ -8,7 +8,7 @@ - - + + \ No newline at end of file diff --git a/examples/bld/.vscode/settings.json b/examples/bld/.vscode/settings.json index d136e4d..4c33beb 100644 --- a/examples/bld/.vscode/settings.json +++ b/examples/bld/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-1.9.1.jar", + "${HOME}/.bld/dist/bld-2.1.0.jar", "lib/**/*.jar" ] } diff --git a/examples/bld/lib/bld/bld-wrapper.jar b/examples/bld/lib/bld/bld-wrapper.jar index a56ed93efc4a8d176f495b04769ee743a676296b..97dab74538556f0f9e3ad6f4a8b567fc9687cc2c 100644 GIT binary patch delta 16612 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 delta 13494 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 akhG$Lk}M4DfAVnuI?=!KLI2Va5dRNyYfjbx diff --git a/examples/bld/lib/bld/bld-wrapper.properties b/examples/bld/lib/bld/bld-wrapper.properties index edf4d9d..28c5833 100644 --- a/examples/bld/lib/bld/bld-wrapper.properties +++ b/examples/bld/lib/bld/bld-wrapper.properties @@ -1,7 +1,7 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true bld.downloadLocation= -bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.0.0-SNAPSHOT +bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.0.2 bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.sourceDirectories= -bld.version=1.9.1 +bld.version=2.1.0 diff --git a/lib/bld/bld-wrapper.jar b/lib/bld/bld-wrapper.jar index 93388ee197f9f4b25410b1967f9ebd3d40dc0dcb..7917038b20240982fbffcd43fe96379572518b4c 100644 GIT binary patch delta 28389 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 T)BgmqTZ*MC5sabRf4cq;GCDt( delta 27525 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 k4iFF`vSRvb;!4Ut Date: Thu, 19 Sep 2024 18:19:07 -0700 Subject: [PATCH 39/63] Bump Kotlin to version 2.0.20 --- .circleci/config.yml | 2 +- .github/workflows/bld.yml | 18 +++++++++--------- README.md | 2 +- config/detekt/baseline.xml | 1 - examples/gradle/build.gradle.kts | 2 +- .../gradle/gradle/wrapper/gradle-wrapper.jar | Bin 43504 -> 43583 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../java/net/thauvin/erik/AkismetBuild.java | 4 ++-- 8 files changed, 15 insertions(+), 16 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 17b50f1..8dabc3f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -21,7 +21,7 @@ commands: - sdkman/setup-sdkman - sdkman/sdkman-install: candidate: kotlin - version: 2.0.0 + version: 2.0.20 - run: name: Download dependencies command: ./bld download diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml index 3183ee9..9ef2fea 100644 --- a/.github/workflows/bld.yml +++ b/.github/workflows/bld.yml @@ -2,19 +2,21 @@ name: bld-ci on: [push, pull_request, workflow_dispatch] +env: + AKISMET_API_KEY: ${{ secrets.AKISMET_API_KEY }} + AKISMET_BLOG: ${{ secrets.AKISMET_BLOG }} + COVERAGE_JDK: "21" + COVERAGE_KOTLIN: "2.0.0" + KOTLIN_HOME: /usr/share/kotlinc + jobs: build-bld-project: runs-on: ubuntu-latest - env: - COVERAGE_JDK: "21" - COVERAGE_KOTLIN: "2.0.0" - KOTLIN_HOME: /usr/share/kotlinc - strategy: matrix: java-version: [17, 21, 22] - kotlin-version: [1.9.24, 2.0.0] + kotlin-version: [1.9.24, 2.0.20] steps: - name: Checkout source repository @@ -35,12 +37,10 @@ jobs: run: ./bld compile - name: Run tests - env: - AKISMET_BLOG: ${{ secrets.AKISMET_BLOG }} - AKISMET_API_KEY: ${{ secrets.AKISMET_API_KEY }} run: ./bld jacoco - name: Remove pom.xml + if: success() && matrix.java-version == env.COVERAGE_JDK && matrix.kotlin-version == env.COVERAGE_KOTLIN run: rm -rf pom.xml - name: SonarCloud Scan diff --git a/README.md b/README.md index 9928bce..c98e3e6 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ [![License (3-Clause BSD)](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg?style=flat-square)](https://opensource.org/licenses/BSD-3-Clause) -[![Kotlin](https://img.shields.io/badge/kotlin-1.9.24-7f52ff)](https://kotlinlang.org/) +[![Kotlin](https://img.shields.io/badge/kotlin-2.0.20-7f52ff)](https://kotlinlang.org/) [![bld](https://img.shields.io/badge/2.1.0-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) [![Release](https://img.shields.io/github/release/ethauvin/akismet-kotlin.svg)](https://github.com/ethauvin/akismet-kotlin/releases/latest) [![Nexus Snapshot](https://img.shields.io/nexus/s/net.thauvin.erik/akismet-kotlin?label=snapshot&server=https%3A%2F%2Foss.sonatype.org%2F)](https://oss.sonatype.org/content/repositories/snapshots/net/thauvin/erik/akismet-kotlin/) diff --git a/config/detekt/baseline.xml b/config/detekt/baseline.xml index 7bcb546..a418973 100644 --- a/config/detekt/baseline.xml +++ b/config/detekt/baseline.xml @@ -5,7 +5,6 @@ CyclomaticComplexMethod:Akismet.kt$Akismet$private fun buildFormBody(comment: AkismetComment): FormBody CyclomaticComplexMethod:AkismetComment.kt$AkismetComment$@Suppress("DuplicatedCode") override fun equals(other: Any?): Boolean LongParameterList:AkismetServlet.kt$AkismetServlet$( id: String, name: String?, email: String?, date: String?, comment: String?, json: String, isSpam: Boolean ) - LongParameterList:CommentConfig.kt$CommentConfig$( var userIp: String, var userAgent: String, var referrer: String = "", var permalink: String = "", var type: CommentType = CommentType.NONE, var author: String = "", var authorEmail: String = "", var authorUrl: String = "", var content: String = "", var dateGmt: String = "", var postModifiedGmt: String = "", var blogLang: String = "", var blogCharset: String = "", var userRole: String = "", var isTest: Boolean = false, var recheckReason: String = "", var serverEnv: Map<String, String> = emptyMap() ) MagicNumber:Akismet.kt$Akismet$12 MagicNumber:Akismet.kt$Akismet$8 NestedBlockDepth:Akismet.kt$Akismet$@JvmOverloads fun executeMethod(apiUrl: HttpUrl, formBody: FormBody, trueOnError: Boolean = false): Boolean diff --git a/examples/gradle/build.gradle.kts b/examples/gradle/build.gradle.kts index b31c97b..5a15155 100644 --- a/examples/gradle/build.gradle.kts +++ b/examples/gradle/build.gradle.kts @@ -1,7 +1,7 @@ plugins { id("application") id("com.github.ben-manes.versions") version "0.51.0" - kotlin("jvm") version "2.0.0" + kotlin("jvm") version "2.0.20" } defaultTasks(ApplicationPlugin.TASK_RUN_NAME) diff --git a/examples/gradle/gradle/wrapper/gradle-wrapper.jar b/examples/gradle/gradle/wrapper/gradle-wrapper.jar index 2c3521197d7c4586c843d1d3e9090525f1898cde..a4b76b9530d66f5e68d973ea569d8e19de379189 100644 GIT binary patch delta 3990 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 diff --git a/examples/gradle/gradle/wrapper/gradle-wrapper.properties b/examples/gradle/gradle/wrapper/gradle-wrapper.properties index 09523c0..0aaefbc 100644 --- a/examples/gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/src/bld/java/net/thauvin/erik/AkismetBuild.java b/src/bld/java/net/thauvin/erik/AkismetBuild.java index dd8922b..1dc0736 100644 --- a/src/bld/java/net/thauvin/erik/AkismetBuild.java +++ b/src/bld/java/net/thauvin/erik/AkismetBuild.java @@ -71,14 +71,14 @@ public class AkismetBuild extends Project { repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL); var okHttp = version(4, 12, 0); - final var kotlin = version(2, 0, 0); + final var kotlin = version(2, 0, 20); scope(compile) .include(dependency("org.jetbrains.kotlin", "kotlin-stdlib", kotlin)) .include(dependency("org.jetbrains.kotlin", "kotlin-stdlib-jdk7", kotlin)) .include(dependency("org.jetbrains.kotlin", "kotlin-stdlib-jdk8", kotlin)) .include(dependency("com.squareup.okhttp3", "okhttp", okHttp)) .include(dependency("com.squareup.okhttp3", "logging-interceptor", okHttp)) - .include(dependency("org.jetbrains.kotlinx", "kotlinx-serialization-json", version(1, 7, 1))); + .include(dependency("org.jetbrains.kotlinx", "kotlinx-serialization-json", version(1, 7, 3))); scope(provided) .include(dependency("jakarta.servlet", "jakarta.servlet-api", version(6, 1, 0))); scope(test) From da280da5ac6e67e8393ca4faed39f77385ac20e2 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 19 Sep 2024 18:29:21 -0700 Subject: [PATCH 40/63] Updated dependencies Bumped Mockito to version 5.13.0 Bumpled JUnit to version 5.11.0 --- .../java/net/thauvin/erik/AkismetBuild.java | 36 +++++++++---------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/src/bld/java/net/thauvin/erik/AkismetBuild.java b/src/bld/java/net/thauvin/erik/AkismetBuild.java index 1dc0736..bde820f 100644 --- a/src/bld/java/net/thauvin/erik/AkismetBuild.java +++ b/src/bld/java/net/thauvin/erik/AkismetBuild.java @@ -82,10 +82,10 @@ public class AkismetBuild extends Project { scope(provided) .include(dependency("jakarta.servlet", "jakarta.servlet-api", version(6, 1, 0))); scope(test) - .include(dependency("org.mockito", "mockito-core", version(5, 12, 0))) + .include(dependency("org.mockito", "mockito-core", version(5, 13, 0))) .include(dependency("org.jetbrains.kotlin", "kotlin-test-junit5", kotlin)) - .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 3))) - .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 3))) + .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 11, 0))) + .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 11, 0))) .include(dependency("com.willowtreeapps.assertk", "assertk-jvm", version(0, 28, 1))); publishOperation() @@ -93,29 +93,25 @@ public class AkismetBuild extends Project { .withCredentials(property("sonatype.user"), property("sonatype.password")) : repository(SONATYPE_RELEASES_LEGACY.location()) .withCredentials(property("sonatype.user"), property("sonatype.password"))) + .repository(repository("github")) .info() .groupId(pkg) .artifactId(name) .description("A client library for accessing the Automattic Kismet (Akismet) spam comments filtering service.") .url("https://github.com/ethauvin/" + name) - .developer( - new PublishDeveloper() - .id("ethauvin") - .name("Erik C. Thauvin") - .email("erik@thauvin.net") - .url("https://erik.thauvin.net/") + .developer(new PublishDeveloper() + .id("ethauvin") + .name("Erik C. Thauvin") + .email("erik@thauvin.net") + .url("https://erik.thauvin.net/") ) - .license( - - new PublishLicense() - .name("BSD 3-Clause") - .url("https://opensource.org/licenses/BSD-3-Clause")) - .scm( - - new PublishScm() - .connection("scm:git:https://github.com/ethauvin/" + name + ".git") - .developerConnection("scm:git:git@github.com:ethauvin/" + name + ".git") - .url("https://github.com/ethauvin/" + name)) + .license(new PublishLicense() + .name("BSD 3-Clause") + .url("https://opensource.org/licenses/BSD-3-Clause")) + .scm(new PublishScm() + .connection("scm:git:https://github.com/ethauvin/" + name + ".git") + .developerConnection("scm:git:git@github.com:ethauvin/" + name + ".git") + .url("https://github.com/ethauvin/" + name)) .signKey(property("sign.key")) .signPassphrase(property("sign.passphrase")); From 00641bab1aed14bba772929a7b4f79e49c48c0fc Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 19 Sep 2024 18:31:55 -0700 Subject: [PATCH 41/63] 1.1.0-SNAPSHOT --- .../net/thauvin/erik/akismet/GeneratedVersion.kt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/kotlin/net/thauvin/erik/akismet/GeneratedVersion.kt b/src/main/kotlin/net/thauvin/erik/akismet/GeneratedVersion.kt index 7a30996..7ffc8c4 100644 --- a/src/main/kotlin/net/thauvin/erik/akismet/GeneratedVersion.kt +++ b/src/main/kotlin/net/thauvin/erik/akismet/GeneratedVersion.kt @@ -1,14 +1,14 @@ -/* -* This file is automatically generated. -* Do not modify! -- ALL CHANGES WILL BE ERASED! -*/ +/** + * This file is automatically generated. + * Do not modify! -- ALL CHANGES WILL BE ERASED! + */ package net.thauvin.erik.akismet /** -* Provides semantic version information. -*/ -internal object GeneratedVersion { + * Provides semantic version information. + */ + internal object GeneratedVersion { const val PROJECT = "Akismet Kotlin" const val VERSION = "1.1.0-SNAPSHOT" } From 7b0a4673163c8cc59673a4c56f26dd02dfc20b39 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 16 Mar 2025 11:11:48 -0700 Subject: [PATCH 42/63] Bump bld to version 2.2.1 --- .idea/libraries/bld.xml | 4 ++-- README.md | 2 +- examples/bld/.idea/libraries/bld.xml | 4 ++-- examples/bld/.vscode/settings.json | 2 +- examples/bld/lib/bld/bld-wrapper.jar | Bin 30440 -> 30440 bytes examples/bld/lib/bld/bld-wrapper.properties | 2 +- lib/bld/bld-wrapper.jar | Bin 30440 -> 30440 bytes lib/bld/bld-wrapper.properties | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.idea/libraries/bld.xml b/.idea/libraries/bld.xml index 5c4010c..153a060 100644 --- a/.idea/libraries/bld.xml +++ b/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/README.md b/README.md index c98e3e6..864d72b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ [![License (3-Clause BSD)](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg?style=flat-square)](https://opensource.org/licenses/BSD-3-Clause) [![Kotlin](https://img.shields.io/badge/kotlin-2.0.20-7f52ff)](https://kotlinlang.org/) -[![bld](https://img.shields.io/badge/2.1.0-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) +[![bld](https://img.shields.io/badge/2.2.1-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) [![Release](https://img.shields.io/github/release/ethauvin/akismet-kotlin.svg)](https://github.com/ethauvin/akismet-kotlin/releases/latest) [![Nexus Snapshot](https://img.shields.io/nexus/s/net.thauvin.erik/akismet-kotlin?label=snapshot&server=https%3A%2F%2Foss.sonatype.org%2F)](https://oss.sonatype.org/content/repositories/snapshots/net/thauvin/erik/akismet-kotlin/) [![Maven Central](https://img.shields.io/maven-central/v/net.thauvin.erik/akismet-kotlin.svg?color=blue)](https://central.sonatype.com/artifact/net.thauvin.erik/akismet-kotlin) diff --git a/examples/bld/.idea/libraries/bld.xml b/examples/bld/.idea/libraries/bld.xml index 5c4010c..153a060 100644 --- a/examples/bld/.idea/libraries/bld.xml +++ b/examples/bld/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/examples/bld/.vscode/settings.json b/examples/bld/.vscode/settings.json index 4c33beb..ba429d0 100644 --- a/examples/bld/.vscode/settings.json +++ b/examples/bld/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-2.1.0.jar", + "${HOME}/.bld/dist/bld-2.2.1.jar", "lib/**/*.jar" ] } diff --git a/examples/bld/lib/bld/bld-wrapper.jar b/examples/bld/lib/bld/bld-wrapper.jar index 97dab74538556f0f9e3ad6f4a8b567fc9687cc2c..e09b50359750da7ea50fa3b8460bf19612a648cf 100644 GIT binary patch delta 203 zcmaFymhr_~M!o=VW)=|!4h{|mm(3AT6ZvXcK=j6b6B{sNa-Y4%=Jz(UnZUfwefC{Y zmW&gd9z;y7;2a}_^`p=LB0E{9L{8*i9|;9^1_lOJAP(?mWD;RO*f%+^ q#0g^0mJ$yzV^V1_L?9f-SXb%-5&2dc3zaJK;{dr5Wb)*-W!3;iltW7Z delta 203 zcmaFymhr_~M!o=VW)=|!4h{|mt2wff6ZvXcK=j6b6B{sNa-Y4%=Jz(UnZUfwefC{Y zmW&gd9z;y7;2a}_^`p=LB0E{9L{8<3F#|(@H#^70qR3Eo1_lOJAP(?mWD;RO*f%+^ q#0g^0mJ$yzV^V1_L?9f-SXb%-5&2dc3zaJK;{dr5Wb)*-W!3;%B|f(R diff --git a/examples/bld/lib/bld/bld-wrapper.properties b/examples/bld/lib/bld/bld-wrapper.properties index 28c5833..3df526f 100644 --- a/examples/bld/lib/bld/bld-wrapper.properties +++ b/examples/bld/lib/bld/bld-wrapper.properties @@ -4,4 +4,4 @@ bld.downloadLocation= bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.0.2 bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.sourceDirectories= -bld.version=2.1.0 +bld.version=2.2.1 diff --git a/lib/bld/bld-wrapper.jar b/lib/bld/bld-wrapper.jar index 7917038b20240982fbffcd43fe96379572518b4c..78344b7d1ec844fbdb8833e135e8e72362449ce7 100644 GIT binary patch delta 203 zcmaFymhr_~M!o=VW)=|!4h{|mr_B*j6ZvXcK=j6b6B{sNa-Y4%=Jz(UnZUfwefC{Y zmW&gd9z;y7;2a}_^`p=LB0E{9L{8*i9|;9^1_lOJAP(?mWD;RO*f%+^ q#0g^0mJ$yzV^V1_L?9f-SXb%-5&2dc3zaJK;{dr5Wb)*-W!3;WaziTs delta 203 zcmaFymhr_~M!o=VW)=|!4h{|m^EtAS6ZvXcK=j6b6B{sNa-Y4%=Jz(UnZUfwefC{Y zmW&gd9z;y7;2a}_^`p=LB0E{9L{8<3F#|(@H#^70qR3Eo1_lOJAP(?mWD;RO*f%+^ q#0g^0mJ$yzV^V1_L?9f-SXb%-5&2dc3zaJK;{dr5Wb)*-W!3;k@;-+E diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 1728ce7..a672d2c 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -8,4 +8,4 @@ bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.8 bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.0.2 bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.sourceDirectories= -bld.version=2.1.0 +bld.version=2.2.1 From 29bf8369e122e9e39cddc3aadc478832d5406e9d Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 16 Mar 2025 11:18:53 -0700 Subject: [PATCH 43/63] Bump Kotlin to version 2.1.0 --- .github/workflows/bld.yml | 2 +- README.md | 2 +- examples/gradle/build.gradle.kts | 2 +- src/bld/java/net/thauvin/erik/AkismetBuild.java | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml index 9ef2fea..4185541 100644 --- a/.github/workflows/bld.yml +++ b/.github/workflows/bld.yml @@ -16,7 +16,7 @@ jobs: strategy: matrix: java-version: [17, 21, 22] - kotlin-version: [1.9.24, 2.0.20] + kotlin-version: [1.9.25, 2.1.10] steps: - name: Checkout source repository diff --git a/README.md b/README.md index 864d72b..309209f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ [![License (3-Clause BSD)](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg?style=flat-square)](https://opensource.org/licenses/BSD-3-Clause) -[![Kotlin](https://img.shields.io/badge/kotlin-2.0.20-7f52ff)](https://kotlinlang.org/) +[![Kotlin](https://img.shields.io/badge/kotlin-2.1.10-7f52ff)](https://kotlinlang.org/) [![bld](https://img.shields.io/badge/2.2.1-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) [![Release](https://img.shields.io/github/release/ethauvin/akismet-kotlin.svg)](https://github.com/ethauvin/akismet-kotlin/releases/latest) [![Nexus Snapshot](https://img.shields.io/nexus/s/net.thauvin.erik/akismet-kotlin?label=snapshot&server=https%3A%2F%2Foss.sonatype.org%2F)](https://oss.sonatype.org/content/repositories/snapshots/net/thauvin/erik/akismet-kotlin/) diff --git a/examples/gradle/build.gradle.kts b/examples/gradle/build.gradle.kts index 5a15155..927fc12 100644 --- a/examples/gradle/build.gradle.kts +++ b/examples/gradle/build.gradle.kts @@ -1,7 +1,7 @@ plugins { id("application") id("com.github.ben-manes.versions") version "0.51.0" - kotlin("jvm") version "2.0.20" + kotlin("jvm") version "2.1.10" } defaultTasks(ApplicationPlugin.TASK_RUN_NAME) diff --git a/src/bld/java/net/thauvin/erik/AkismetBuild.java b/src/bld/java/net/thauvin/erik/AkismetBuild.java index bde820f..65fd718 100644 --- a/src/bld/java/net/thauvin/erik/AkismetBuild.java +++ b/src/bld/java/net/thauvin/erik/AkismetBuild.java @@ -71,14 +71,14 @@ public class AkismetBuild extends Project { repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL); var okHttp = version(4, 12, 0); - final var kotlin = version(2, 0, 20); + final var kotlin = version(2, 1, 10); scope(compile) .include(dependency("org.jetbrains.kotlin", "kotlin-stdlib", kotlin)) .include(dependency("org.jetbrains.kotlin", "kotlin-stdlib-jdk7", kotlin)) .include(dependency("org.jetbrains.kotlin", "kotlin-stdlib-jdk8", kotlin)) .include(dependency("com.squareup.okhttp3", "okhttp", okHttp)) .include(dependency("com.squareup.okhttp3", "logging-interceptor", okHttp)) - .include(dependency("org.jetbrains.kotlinx", "kotlinx-serialization-json", version(1, 7, 3))); + .include(dependency("org.jetbrains.kotlinx", "kotlinx-serialization-json", version(1, 8, 0))); scope(provided) .include(dependency("jakarta.servlet", "jakarta.servlet-api", version(6, 1, 0))); scope(test) From 6e1f2991007747f2f9f1cf18efde1f03863faf1c Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 16 Mar 2025 11:21:35 -0700 Subject: [PATCH 44/63] Bump JUnit to version 5.12.1 --- src/bld/java/net/thauvin/erik/AkismetBuild.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bld/java/net/thauvin/erik/AkismetBuild.java b/src/bld/java/net/thauvin/erik/AkismetBuild.java index 65fd718..ba61fb4 100644 --- a/src/bld/java/net/thauvin/erik/AkismetBuild.java +++ b/src/bld/java/net/thauvin/erik/AkismetBuild.java @@ -84,8 +84,8 @@ public class AkismetBuild extends Project { scope(test) .include(dependency("org.mockito", "mockito-core", version(5, 13, 0))) .include(dependency("org.jetbrains.kotlin", "kotlin-test-junit5", kotlin)) - .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 11, 0))) - .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 11, 0))) + .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 12, 1))) + .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 12, 1))) .include(dependency("com.willowtreeapps.assertk", "assertk-jvm", version(0, 28, 1))); publishOperation() From c770e8a659241900033d060477a490f99515101c Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 16 Mar 2025 11:22:36 -0700 Subject: [PATCH 45/63] Bump Mockito to version 5.16.1 --- src/bld/java/net/thauvin/erik/AkismetBuild.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bld/java/net/thauvin/erik/AkismetBuild.java b/src/bld/java/net/thauvin/erik/AkismetBuild.java index ba61fb4..f4ad5a6 100644 --- a/src/bld/java/net/thauvin/erik/AkismetBuild.java +++ b/src/bld/java/net/thauvin/erik/AkismetBuild.java @@ -82,7 +82,7 @@ public class AkismetBuild extends Project { scope(provided) .include(dependency("jakarta.servlet", "jakarta.servlet-api", version(6, 1, 0))); scope(test) - .include(dependency("org.mockito", "mockito-core", version(5, 13, 0))) + .include(dependency("org.mockito", "mockito-core", version(5, 16, 1))) .include(dependency("org.jetbrains.kotlin", "kotlin-test-junit5", kotlin)) .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 12, 1))) .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 12, 1))) @@ -116,6 +116,7 @@ public class AkismetBuild extends Project { .signPassphrase(property("sign.passphrase")); jarSourcesOperation().sourceDirectories(srcMainKotlin); + testOperation().javaOptions(List.of("-XX:+EnableDynamicAgentLoading")); } public static void main(String[] args) { From c707eefa4f8e8a5ce2b5e509bbae6ba82928c1bd Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 16 Mar 2025 11:23:10 -0700 Subject: [PATCH 46/63] Add pomRoot to publishLocal --- src/bld/java/net/thauvin/erik/AkismetBuild.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/bld/java/net/thauvin/erik/AkismetBuild.java b/src/bld/java/net/thauvin/erik/AkismetBuild.java index f4ad5a6..456276c 100644 --- a/src/bld/java/net/thauvin/erik/AkismetBuild.java +++ b/src/bld/java/net/thauvin/erik/AkismetBuild.java @@ -226,6 +226,12 @@ public class AkismetBuild extends Project { pomRoot(); } + @Override + public void publishLocal() throws Exception { + super.publishLocal(); + pomRoot(); + } + @BuildCommand(value = "pom-root", summary = "Generates the POM file in the root directory") public void pomRoot() throws FileUtilsErrorException { PomBuilder.generateInto(publishOperation().fromProject(this).info(), dependencies(), From 48d43843d28b197d6b557565928482c40ccd9a99 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 16 Mar 2025 11:24:09 -0700 Subject: [PATCH 47/63] Bump Kotlin extension to version 1.0.4 --- examples/bld/lib/bld/bld-wrapper.properties | 2 +- lib/bld/bld-wrapper.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/bld/lib/bld/bld-wrapper.properties b/examples/bld/lib/bld/bld-wrapper.properties index 3df526f..1ffe3ff 100644 --- a/examples/bld/lib/bld/bld-wrapper.properties +++ b/examples/bld/lib/bld/bld-wrapper.properties @@ -1,7 +1,7 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true bld.downloadLocation= -bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.0.2 +bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.0.4 bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.sourceDirectories= bld.version=2.2.1 diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index a672d2c..7ad0153 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -5,7 +5,7 @@ bld.extension-detekt=com.uwyn.rife2:bld-detekt:0.9.7 bld.extension-dokka=com.uwyn.rife2:bld-dokka:1.0.1 bld.extension-gv=com.uwyn.rife2:bld-generated-version:0.9.9 bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.8 -bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.0.2 +bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.0.4 bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.sourceDirectories= bld.version=2.2.1 From 921725ede416cb65a03389bac10a4cbb1f08287f Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 16 Mar 2025 11:25:40 -0700 Subject: [PATCH 48/63] Bump Gradle to version 8.13 --- .../gradle/gradle/wrapper/gradle-wrapper.jar | Bin 43583 -> 43705 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/gradle/gradlew | 5 ++--- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/examples/gradle/gradle/wrapper/gradle-wrapper.jar b/examples/gradle/gradle/wrapper/gradle-wrapper.jar index a4b76b9530d66f5e68d973ea569d8e19de379189..9bbc975c742b298b441bfb90dbc124400a3751b9 100644 GIT binary patch delta 34744 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 delta 34727 zcmXV%Ra6`cvxO5Z$lx}3aCi6M?oM!bCpZ&qa2?#;f(LgPoZ#+m!6j&boByo)(og-+ zYgN^*s&7}fEx`25!_*O>gBqKvn~dOCN!``g&ecy%t0`n>G*p;ir0B{<{sUU9M>#WqH4lTN!~PgB@D;`rIdQ#hRw z?T|`wO^O=zovKDMVjuZHAeratT0Q-HK<95;BTTtc%A5Bo>Z{jfiz& z$W5u4#(O_eLYQDY_i&xqzVd#y&cR>MOQU@-w1GN((w{b+PM;=Y3ndBGVv|>|_=ZIC zB^E2+XVovHYl%!I#}4)Pma4)hM2Ly6E;&R5LmOnMf-Qz43>#K*j*LSWoYxxIR5Csm zuHXA8{`YgmqApC|BgY0wGwj-im6rmS^jrAbN8^PEIHj1WH#AVVuUA2HXj&Vm*QD^# zWX8+sR14XM!@6HrfzFpcC$ZXlhjA{{oq5cs&VRBUX2VwX$fdjO~`3n~1})#Bxr5Vh%KwFov=k zW;Jy5qsvC$lw>?*BsoPIo}YgJN>u)C^4Abbjx$NW@n5S8aN_T0BeAXWjz#dQ=3v*# zRQrjH1%R&krxBrfITop};aQdE=ZRgLN%n%+^y5BOs|pO6lg|I3prX{gSgQuRK%177 zlE#t+nHbT~VSO995imTaX&SCB&pgp`Izkg}-NV zI%~Z42T+^_9-gw;yOI&!oZf=H(Cot~)w4^gX&q(zg`7ekm4un&?FuaJQKIrLF$<_% zR;ok9K%L!NlTYgW8?uhX&TS?ojtu~oLm(`7iY<5Ci@V)7+gRHbb!o0OipVh)`vKW) zp9OVLDkaP@Sn!ZRa zpfwY36ct~JlEsS7_Dr%e0UL8^zRSsSv3K)+n$b@Xq9*^-p|AFj(*#}L-%5Z}D@Zl%y2gokn7l;Zr z3CK}pP8BDR1$L~R{R^BwKH~@v9m;O_$00a5MMXTe!u0FG^=2=_f-XZR!DQeQ`5S_$ zO>mOUF8Y-Wfl3P|Mk-VDsBp`X&=kMQl<>nt9$C)^A<4v@xtW>qn@`Z)`|gCedb?$A z^S(N0{?3!oy|^tx0p&<-D62OWo$gVhEodpMi;O#DM7P>i6bnTf$_=~8)PdQ+^h30pu>DfM=LQT20!&5)= zGdR6}f=YHb45NFG9?dd44$Dm~B6k3w1%E%atidmZ`Kaw4q&8yb+5=wqe`pXWH0J%);cCo710p3&(EMuAI{aKjT^Z!u)Eq~b?HpnrSE9ftF4Ibs#HFpuPR zyT$g5JIX12nSw?q!}IY^iHMikUh8V)gjx{JN@8Am6<$2Mz^mHY*_n$LNj)%w6Vs2|Kwpq;J=(VFf`y)>|;A@J@8mL zpw=k%oRd`%OdUL*1^Bd27^<|sYM9NqMxOfyc56FSDcG3u;oJKCAOsBvw)JlyBt5jT zQZ;fkKI1}9MJMtnCEG?ZUph^R-lV{%Av1S91fH#pacM-EI@93$Z)d@UUxu6ruJMHVl=>YjT8reRi0SjW8t!4qJkSw2EWvi_K%!>35@JDfw9#W$~G@9?4ubk&}M9<~>f3`r6~|Hun&D&#w^ zZ2xrK!I3O(3uNXz*JhWWdgESs3jPCOS_W_J;0ggAduavgNUuLi`PfS*0$=1$q$C-# z>ca0l=Pm+p9&+rJQNFKvb%8vn0!qW9SGnIO&tjv!kv980`FquGKanhc(YAwQTGx)(9c1fRnojjxST~<*=y|?=9V1w`t~7Ag$5h)P#FwB7FM=E`e^youj?Nh^d}|GOC7mPW z_H&16WtD5M9H)i@@=Vzo^f`%yIQZ-qGuCko?CP8h^B$X|UkaKazJe>9C00F82u$Iz zFOjPU5)>;*KBg9UezT$OL$aW(Ogut^COwjSO2!@-ZbW#lHVfb_k?7DlEGcbl^tn{p z#+go${sx^TPB3R5272wadT(x2lACj6Y4~LktAm z<+#pEqlksdo%9?Q29%rP9C+LM*WZM-N-e*wX85OOu}J7Zrt%9iGjxN358Fy5GGaNA zlr-b*b{4zqiK)A~_jjEnJhRaVOdID52{6I%oS^X6)EYS(>ZE6NKd-S?F}lIJNYkBz zX=;apb)xyAi#nMFCj#Ex($CGiR?oF|gei))16?8E-mB*}o2=$UtMDZxq+&Q?liP(n z&Ni8pBpgnCai7%!7$wG2n4{^JeW)f-h&_$4648~!d7<~p8apf5f~7e0n$lV_qbrLM zH6T|df(D0@=>WA5f5yN)2BIZFqObOK5I*vhD*2~PZSt*83>fM))aLjXIEokDF;KGw zZ_75?2$lhYW)I_!@r8QpYKr4p27lOeG~ESg#8)LE@pH;oozO*hv19;A7iT#2eow_h z8?gZtDstc~s|f{hFXH|~d~zQ~z_94FB&hp$n~Uv_DB!2y<6&VqZs>-fmUU^yuJGdJ zNCHP?2Q+FZr?J{^_M3`92rOWnrL2vymWZ&0dYxz>Kv&GXWgwxTKz)<+J43r&!q}II z1DmfLl8nu-xGa?TgsrX45d}j{QAC!m8iO1JU=|Pb8D@9FE-V0hJEA?F)srec5$GqD z8(`^KQozt$N;6ts8^+R_uiy|d8MO=#Jvd3z_#2aHXjF94XkEdq3myI_UvT|r>1&LP zU*Mm7Fk}T$qbutLyH`@m{L57Mlkq!hAMe>2-o(8*axogLh^b!!{|amH_{Hrdu!4kWol?jSB%l2>w;Jry$!mf_nbz9_B1#8bWJwL@w!No42F zZ!YAr(^WO;wuxHb`%ZD(qKIOW&)L%j)eAUf-WERo1D?D~FV`np( z5x$@RPj8}2Rbm<>mRjfuPFJ`nN>>ltyp;oE9#K9IU>+pE$;Cq!IYr!NXvc_-MDFXBXW=Z9LZM(k9}OKqEKn5 zMk4%l_POO{UM$2M+YvQV#N~$?Ycqe>LbTz9ur0(-Wp!^8a^GDh7h{U~8h980RG|9E z6RPnEU0ccY1fEIdJfnZ?3Nl4X0Ag>*m6>|oajhbexf9~a8(K`2Ys~o)z{jnuOj93V zg4L4K@x2Dewt5Bok=03M@JIhBSWy2hwxcxRv7ukj`8uYPGrMdH0q!`qHJ^xDQ_bLG ze*?ZCvMv^t`JI7rlqLPEo^WJ0b^>d@C~mI!Zv)-ljBg#u;uvw%ZXMqZsz8Mxdtvbh zbK^eGn90ynsgjzKUOl)O`l3#-uY%L?tj;+Edgz+awV132>9Z-?mj*}u ziM4~P{Pc$s;}v&zYF)Te5J7W2!$o`EH|~F3NfA2NjF&~?@K5S*f_mv2@wT};{Sj`b z%#^~iJN17>qQ6aej~{ubsrhkBAD`C(j7{y)+hU@!^SU03F0Vu6vU3+>!lN@MLR}42 zLOtGS+@f@~=id z8&aK=-2+Pz*y)te)kF3xgyS?qgp@L;G(tM1&#!4p&Z$yX2<+lj>VWT1tiO4`_h^}* zQ@WGd`H9t~sH>+NT2d{O5(~BeYjG#5=s&k0J)iACkpC8u;rFz@_E-w@s0bAs_;b>+ zeR6?5n@}4wjy}GSL@%#%!-~chg|$Q=CE38#Hj0u5P4^Y-V?j(=38#%L#%l4={T(Rq z=x*H|^!EG)+e-leqrbec5?(g)@Op(cHsVg4*>F$Xb=BheCE*5LdSmdwZ-MSJs@@i{5t){y; zxAVyon;`>Rns;YH^`c&M3QdxzNaJl(Byct8a9v38fkXaJ_<=8oe=(6%mZ}CJAQ}2r z#oHZ)q;H0pGydy~@02e)oeVW*rQaD_OLr+)29*|p(gAHd<9*JxBnu0W61lNr+cO_= zX$B`VmPwyz9?FV9j3-@v0D7Z1Z}O;#KZ!@Gm7ZeKORcLQsPN8= zAZRd8VWqow?b1Kp8!AiYk8acC$>6xHuUZWkNk~?EqKsUr2$iixV=zYwM9laPwn)(W z7b-$PlwKh6n5^&Rs$#s&98P1ch#7FGNN6yU!Nwzcesp2Ylw~C1F@G^YA!PF|a$MJ+ z{!r?468ju$sWQLL=o~SYP|CBJ7(3`;c^t;TL4ScL$Pvv>N+5iugRLdmL zaD(CzY&3J+N)7MS)Jw`U8u*IevtEAUKN4~AiL82B$4Bl5oK#No3jGEW-o4`>c%G#8 z!h<$iX*efTk1lnM-d*7Db6h_94Y@IcQg@UJ1-g76_d9@vHWB%F55WG&!4DAy{K)Xv zz~7iiiq(J#G*Jdb2F>RKFnc3y>bIwlQ_Jhzoc4h(EOVm|0C}@X1v`lf-*wuaH5_H)kg%$_&tAkc`-Mk_04t+f0A_7=y20O8`7#X)4WDMOUpG*Z~n ziH5Zevf@*c28LS>z60h(QH92FxJHOKTj&>ep>z##ag+Tm*{QU<#Sk`f3)1y<#hgNV zkGRx3`qggo)?FK!Vd`6U+lA@MVk3QlsjDj#M*^!8JsEqK;p+%l%NyiKg#EX^3GBuk zlh2;u`5~mtZgY!005*{*dmF!OsrxVg*Rpvf{ieqF1ZPV6Mm4vb&^x06M8jn4XO#a* zXJhi$qNRT@M;;!sLq`lbqmcnAsSvSakQ{XcfmP-CU5_ini_P>t3m1P+(5I3tq028F zE8xAnu-M!FQ{&(q8oC{RXMCqw5&ri5tvt$=P|_J!+#m6Iz;U2BaX7}7%E%i{`jgjM^OfP1@K6wN+iSJ-2z7%MfLBS2$+zC|(5j4tu zq@N1d5n}UyXF>Bz{_%qT2O=&{@hkb|g++>5oZPMe%j~Ee^;OCr)Y7u{V4m&Qf@%WD zEUKEu%teX>pmF5DMIP1!>pm1D);32{D-N5>U4W*9kTO|z(Tb#n-@+j!vWj-S8aRy<(xvQm zwZ-#hyB%RQf|G(r&oI7iZhf^pG13lCEWA>mk}rI8IFlm%*!~#7;2xQps>NS2$f@g2 z1EoM!1ML(HjM)=bp>Z>u=jEM5{Ir>yFJ{m8hLv-$1jxB4a{4HNUhk+Rj5-H8}G za~r&Uoh}bQzyC)f6#o3mEkwFNhaD8_~{CW03Dv2Tbl4{ zAFamTS$i&ZYWmae1aCxVNIKrj+u4g3%D96}iqw8~HBu+gFA&*oRP5Z`MikjjDgYjq zkf0&#_Xj->@bJ>!}JGl=t1|~ zGIx9!u63fRtm^?=^0z=^H2SZA43p1deVixbphteFyrqycaRq6DLy2$x4nxgB;-Dug zzoN<>vK7~UxLPDR{wE0ps6mN9MKC>dWM{~@#F)ne0*ExL**#VrA^|@km1xCtF`2N( ze{G#meS3J5(rIs2)mwi>518)j5=wQ+Q`|O{br)MyktYd}-u+5QYQmrBU2ckYE7#Z$ z>MgHjknqi-2`)(Z+pJ?ah4UMg*D%PFgHFMnKg?{GSZZ*f3V+g@129FH@79v%&$&v32_So*G$-3SIp6 zYTlLgF2}s>)U;QtdWf5P&xikI0p1eg2{G!w0+xXNuYf%n#X#fou8}EYvAw$zmrjK&OZkS!$REMr$*aG zyPPjsYd_SXp#Vt9NGI*R;-*4~Gz)&7!zq>hh7)i?8PzCAAv(pNcUGlPNf^OXS$=bx(V#ji2eMF6q{U@ z9?ldp%YEsl;)d%}_Qs81OX>!2>kyChh!-n0Xd@2C1cI2qkRk&b4)(?@KY|?%qMoYb zEi7l}n$O`v+T31;YZF(;FEwj`I8Dz*9fbKrE)8#&?joolVY~3YbZuJwfRt4-kCOM; zcm34HXKH>;a?joGLqjIBG|B??@rS`LSU(l!vxSyfKmGa^x5&S$gvrsrlVT0@Yw#bP z-3#zdbm1;n!DpT@>AnxkZ4llVa;h^fj?R3uN5?-F)SLb}a%TBE=HM5_U*{K=ddu;L7kJ## zqyyGh;WY5rpvMm)$*xZHv!CUlc{zU8huQp`KmQT*yq*ugOu_#Kt-kRa+ODx`Va(;{ zLMO*lsSV`U%+u>-R9GmwqgWulP#>jO9|V60TBE z5ONjntHY2V_MmDJHr3CyuL5X%IlQKbDRch~>EBrwAM? zvOJj&z#NzlWa*K*VEZgjP#cAQ-HRG&mC)aqyjY19GP$U zSKm`d_gXzrLE_^a!9R<~vT9n;>{y3F`!rB%M5psN(yv*%*}F{akxIj9`XBf6jg8a| z^a*Bnpt%;w7P)rXQ8ZkhEt)_RlV=QxL5Ub(IPe9H%T>phrx_UNUT(Tx_Ku09G2}!K($6 zk&bmp@^oUdf8qZpAqrEe`R@M|WEk$lzm$X=&;cRF7^D#Nd;~}a8z$(h7q%A88yb=# zVd1n3r|vPZuhe!9QR*ZtnjELX5i*NoXH%d1E1O1wmebT~HX0F~DbFxk=J^<v|BCiebRdAHYXxOo$YS#BHYecz?S6CX@AcF_k;#_IF+JIV*5|%lV=Y;Ql?=b^ zt}1qN)~qaKnz~KZRf9Aa7U5S&Opz~;SF2ojOSD3HP8WYTbvlEyYK~);#wr+UO8_Sl z$-Yx3B~JYU!uChjzf0v1TKYAtsRkH`QZeF8Q$_`7iPJ79{8V(jbX4T=-LF59vw>au zY6LS|t!~Zz>*ops1&9o5w z3lQx+lhgdg^4d0r-%q!s(A$J%XYhUx~)v|ptx_cU#?44pnz*s$G%3=wh_01 z5l7f$uM;P6oqhM8F|$4h0me5--syUE%vI)HuhLv@kL`s1eP@buw&}80Umf5QOXBlP zAY(8r9}paD1p*&Bir^3<@3Cc4Mr>EpoDHghr{U$hcD8$^OZ6bZS{UYhl_*Otp}Be} z-P^9U7tc!@aodKCp{~TV6o}?M9xG$hN$Kr>|7e~E4mJK>_yjrqF@Kk1;fHw1PP`UI z1Aoa$7yGRMrUVO0M9$rM;=Glzi>SO8!lqon9E_1^0b)CsR0%Nv-$st+be?a*qJkqI zUNaqi*6Y^E>qlHH+*M=aj?)y2r>RGkG?X;Rv!7JG6Uz=^g7B`jEKEvgUq)s3Fw|zFMdak((XwlUaSRN4hGMrH zn2xFaLH!t8txnTiQW;qUWd^m#<3zgCp(=5~i~xw9lU{R~o1qSo#Sh1_4W5(^hL%O9 zOauMH!uGL}u?hV!4V~#?F-<;)X<)4B$u1F4 zf=%}>{b#f`$Ixo^Du_42V6Wir?Muh`(!izQSV9Y3d-MCQT|9bs zIlCtJP7*;A%^1-=u(Laj97hG}uP6Hq0+DzAjB^|$CG(?e_adMTiO&^_9WwrW4H!ju zWEYrjLw<{fSyh-yiPOP{O;c|453fxkp`E;k&)d^wYK=ipbD_kG$u*Ro!kQJOppV5* zP4o#ab%r@RITbag_zHMKF5$z8fJd1L+D8G@m^`*H->XyF$E{x;d;A+T`A zR!1#O!ed)ai|TF054f1+K6 zTDH=fps}vL7=Yl3_R)o948I{CP*`f1v{E~-xX#PaLvb?#qQRElOF-pVuL>d8_�{ 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 a%EQ2*fnt2> /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -206,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. From bcc8955f9252d3f3776feb3cc0bf824bb5998a10 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 16 Mar 2025 11:26:28 -0700 Subject: [PATCH 49/63] Bump Java matrix from version 22 to 23 --- .github/workflows/bld.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml index 4185541..d10c2b9 100644 --- a/.github/workflows/bld.yml +++ b/.github/workflows/bld.yml @@ -15,7 +15,7 @@ jobs: strategy: matrix: - java-version: [17, 21, 22] + java-version: [17, 21, 23] kotlin-version: [1.9.25, 2.1.10] steps: From 9f6c444ba2830e5e767a8a0a8762bd3281ece63a Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 16 Mar 2025 11:28:00 -0700 Subject: [PATCH 50/63] Update extensions dependencies Bump Detekt extension to version 0.9.9 Bump Dokka extension to version 1.0.3 Bump Generated Version extension to version 1.0.0 Bump Jacoco Report extension to version 0.9.9 --- lib/bld/bld-wrapper.properties | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 7ad0153..f9c4abb 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,10 +1,10 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true bld.downloadLocation= -bld.extension-detekt=com.uwyn.rife2:bld-detekt:0.9.7 -bld.extension-dokka=com.uwyn.rife2:bld-dokka:1.0.1 -bld.extension-gv=com.uwyn.rife2:bld-generated-version:0.9.9 -bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.8 +bld.extension-detekt=com.uwyn.rife2:bld-detekt:0.9.9 +bld.extension-dokka=com.uwyn.rife2:bld-dokka:1.0.3 +bld.extension-gv=com.uwyn.rife2:bld-generated-version:1.0.0 +bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.9 bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.0.4 bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.sourceDirectories= From 72f89a26ee41bb8d502dc5d1bc3dd176f093c6ba Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 16 Mar 2025 11:28:30 -0700 Subject: [PATCH 51/63] Remove IDEA app module --- .idea/app.iml | 30 ------------------------------ .idea/modules.xml | 1 - 2 files changed, 31 deletions(-) delete mode 100644 .idea/app.iml diff --git a/.idea/app.iml b/.idea/app.iml deleted file mode 100644 index 2c1fe21..0000000 --- a/.idea/app.iml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml index 55adcb9..354189b 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,7 +2,6 @@ - From c9ed08d95d2c2adaa09f6a58f82562ca7b7fe73a Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 16 Mar 2025 12:14:50 -0700 Subject: [PATCH 52/63] Update root pom --- pom.xml | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index c2e42dd..ff558a4 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,19 @@ org.jetbrains.kotlin kotlin-stdlib - 1.9.24 + 2.1.10 + compile + + + org.jetbrains.kotlin + kotlin-stdlib-jdk7 + 2.1.10 + compile + + + org.jetbrains.kotlin + kotlin-stdlib-jdk8 + 2.1.10 compile @@ -35,10 +47,16 @@ org.jetbrains.kotlinx - kotlinx-serialization-json-jvm - 1.6.3 + kotlinx-serialization-json + 1.8.0 compile + + jakarta.servlet + jakarta.servlet-api + 6.1.0 + provided + From cb5cd8fc847b06c062592b0252bf4a3a398829cf Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 16 Mar 2025 12:16:33 -0700 Subject: [PATCH 53/63] Update copyright --- src/bld/java/net/thauvin/erik/AkismetBuild.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bld/java/net/thauvin/erik/AkismetBuild.java b/src/bld/java/net/thauvin/erik/AkismetBuild.java index 456276c..48f7ad4 100644 --- a/src/bld/java/net/thauvin/erik/AkismetBuild.java +++ b/src/bld/java/net/thauvin/erik/AkismetBuild.java @@ -1,7 +1,7 @@ /* * AkismetBuild.java * - * Copyright 2019-2024 Erik C. Thauvin (erik@thauvin.net) + * Copyright 2019-2025 Erik C. Thauvin (erik@thauvin.net) * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: From c94f7331bdcb2b54249ec6c042a764560238f7a0 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 16 Mar 2025 12:42:07 -0700 Subject: [PATCH 54/63] Fix IDEA project --- .idea/app.iml | 30 +++ .idea/inspectionProfiles/Project_Default.xml | 2 +- .idea/intellij-javadocs-4.0.1.xml | 204 ------------------- .idea/libraries/bld.xml | 2 +- .idea/libraries/test.xml | 1 - .idea/misc.xml | 23 +-- .idea/modules.xml | 1 + .idea/runConfigurations/Run Tests.xml | 2 +- 8 files changed, 35 insertions(+), 230 deletions(-) create mode 100644 .idea/app.iml delete mode 100644 .idea/intellij-javadocs-4.0.1.xml diff --git a/.idea/app.iml b/.idea/app.iml new file mode 100644 index 0000000..a350d1f --- /dev/null +++ b/.idea/app.iml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index 1e01b48..37eb64c 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -5,4 +5,4 @@ diff --git a/.idea/modules.xml b/.idea/modules.xml index 354189b..55adcb9 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,6 +2,7 @@ + diff --git a/.idea/runConfigurations/Run Tests.xml b/.idea/runConfigurations/Run Tests.xml index a0f7cf6..d46a237 100644 --- a/.idea/runConfigurations/Run Tests.xml +++ b/.idea/runConfigurations/Run Tests.xml @@ -6,4 +6,4 @@