Akismet for Kotlin/Java/Android, a client library for accessing the Automattic Kismet (Akismet) spam comments filtering service. https://github.com/ethauvin/akismet-kotlin
Find a file
2021-05-19 21:23:43 -07:00
.circleci Fix job name for JDK 14. 2021-03-21 16:40:08 -07:00
.github/workflows Moved Sonarqube to GitHub action. 2021-05-19 21:23:43 -07:00
.idea Upgraded to Gradle 6.6 and Kotlin 1.4.0. 2020-08-18 00:31:13 -07:00
config Upgraded to Gradle 6.6 and Kotlin 1.4.0. 2020-08-18 00:31:13 -07:00
docs Updated dependencies. 2021-04-26 12:47:38 -07:00
examples Moved Sonarqube to GitHub action. 2021-05-19 21:23:43 -07:00
gradle/wrapper Moved Sonarqube to GitHub action. 2021-05-19 21:23:43 -07:00
src Updated dependencies. 2021-04-26 12:47:38 -07:00
.editorconfig Initial commit. 2019-09-18 05:16:01 -07:00
.gitattributes Initial commit. 2019-09-18 05:16:01 -07:00
.gitignore Updated from JCenter to Maven Central. 2021-03-21 16:32:46 -07:00
.gitlab-ci.yml Fix for Gitlab CI 2021-05-11 21:49:50 -07:00
.travis.yml Moved Sonarqube to GitHub action. 2021-05-19 21:23:43 -07:00
bitbucket-pipelines.yml Added GitLab, BitBucket and GitHub CI configurations. 2020-08-18 00:32:11 -07:00
build.gradle.kts Moved Sonarqube to GitHub action. 2021-05-19 21:23:43 -07:00
gradlew Upgraded to Gradle 6.6 and Kotlin 1.4.0. 2020-08-18 00:31:13 -07:00
gradlew.bat Upgraded to Gradle 6.6 and Kotlin 1.4.0. 2020-08-18 00:31:13 -07:00
LICENSE.txt Updated copyright. 2021-03-21 17:14:41 -07:00
pom.xml Uptaded to Kotlin Serialization 1.2 2021-05-08 01:03:31 -07:00
README.md Updated from JCenter to Maven Central. 2021-03-21 16:32:46 -07:00
settings.gradle.kts Updated dependencies. 2019-12-15 17:41:18 -08:00
version.mustache Added version template. 2019-09-19 18:07:38 -07:00
version.properties Added support for snapshot. 2021-05-02 22:21:44 -07:00

License (3-Clause BSD) Release Maven Central

Known Vulnerabilities Quality Gate Status Build Status CircleCI

Akismet for Kotlin/Java

Akismet for Kotlin/Java/Android is a pretty complete and straightforward implementation of the Automattic's Akismet API, a free service which can be used to actively stop comments spam.

Examples (TL;DR)

Kotlin

val akismet = Akismet(apiKey = "YOUR_API_KEY", blog = "YOUR_BLOG_URL")
val comment = AkismetComment(userIp = "127.0.0.1", userAgent = "curl/7.29.0")

with(comment) {
    referrer = "http://www.google.com"
    type = AkismetComment.TYPE_COMMENT
    author = "admin"
    authorEmail = "test@test.com"
    authorUrl = "http://www.CheckOutMyCoolSite.com"
    dateGmt = Akismet.dateToGmt(Date())
    content = "It means a lot that you would take the time to review our software."
}
// ...

val isSpam = akismet.checkComment(comment)
if (isSpam) {
    // ...
}

View Full Example

Java

final Akismet akismet = new Akismet("YOUR_API_KEY", "YOUR_BLOG_URL");
final AkismetComment comment = new AkismetComment("127.0.0.1", "curl/7.29.0");

comment.setReferrer("http://www.google.com");
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.setContent("It means a lot that you would take the time to review our software.");
//...

final boolean isSpam = akismet.checkComment(comment);
if (isSpam) {
    // ...
}

View Full Example

Gradle

To use with Gradle, include the following dependency in your build file:

dependencies {
    implementation("net.thauvin.erik:akismet-kotlin:0.9.3")
}

Instructions for using with Maven, Ivy, etc. can be found on Maven Central.

HttpServletRequest

The more information is sent to Akismet, the more accurate the response is. An HttpServletRequest can be used as a parameter so that all the relevant information is automatically included.

AkismetComment(request = context.getRequest())

This will ensure that the user's IP, agent, referrer and various environment variables are automatically extracted from the request.

View Full Example

JSON

Since comments mis-identified as spam or ham can be submitted to Askimet to improve the service. A comment can be saved as a JSON object to be stored in a database, etc.

var json = comment.toJson()

At a latter time, the comment can then be submitted:

akismet.submitSpam(Akismet.jsonComment(json))

More...

If all else fails, there's always more Documentation.