Skip to content
Akismet for Kotlin/Java, a client library for accessing the Automattic Kismet (Akismet) spam comments filtering service.
Kotlin HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
.idea
config
examples
gradle/wrapper
src
.editorconfig
.gitattributes
.gitignore
.travis.yml
LICENSE.txt
README.md
build.gradle.kts
detekt-baseline.xml
gradlew
gradlew.bat
pom.xml
settings.gradle.kts
version.mustache
version.properties

README.md

License (3-Clause BSD)
Known Vulnerabilities Quality Gate Status Build Status CircleCI

Akismet for Kotlin/Java

Akismet for Kotlin/Java is a pretty complete and straightforward implementation of the Automattic's Akismet API, a free service that 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

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 of the relevant information is automatically included.

AkismetComment(request = context.getRequest())

View Full Example

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

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.toString()

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

akismet.submitSpam(Akismet.jsonComment(json))
You can’t perform that action at this time.