akismet 0.3.2
akismet: ^0.3.2 copied to clipboard
Prevent comment spam using Akismet service.
Akismet.dart #
Prevent comment spam using Akismet service, in Dart.
Features #
- Key verification: checks an Akismet API key and gets a value indicating whether it is valid.
- Comment check: checks a comment and gets a value indicating whether it is spam.
- Submit spam: submits a comment that was not marked as spam but should have been.
- Submit ham: submits a comment that was incorrectly marked as spam but should not have been.
Documentation #
Installing via Pub #
1. Depend on it
Add this to your package's pubspec.yaml file:
dependencies:
akismet: any
2. Install it
If you're using the Dart Editor, choose:
Menu > Tools > Pub Get
Or if you want to install from the command line, run:
$ pub get
3. Import it
Now in your Dart code, you can use:
import 'package:akismet/html.dart'; // In browser applications.
import 'package:akismet/io.dart'; // In console applications.
Usage #
Key Verification
var client = new Client('123YourAPIKey', Uri.parse('http://your.blog.url'));
client.verifyKey().then((isValid) =>
print(isValid ? 'Your API key is valid.' : 'Your API key is invalid.')
);
Comment Check
var comment = new Comment('A comment.', new Author('An author.'));
client.checkComment(comment).then((isSpam) =>
print(isSpam ? 'The comment is marked as spam.' : 'The comment is marked as ham.')
);
Submit Spam/Ham
client.submitSpam(comment).then((_) => print('Spam submitted.'));
client.submitHam(comment).then((_) => print('Ham submitted.'));
Implementations #
Client
The Akismet client comes in two flavors: a first one based on dart:io
for server/console applications, and a second one based on dart:html
for client/browser applications.
Their usage is the same, but the HTML client is limited by security restrictions in a browser context. Unfortunately, the Akismet service does not support CORS headers. So, the HTML client can't be used directly with the official service.
Server
To be able to use the HTML client, we must rely on a proxy server adding CORS headers to service responses.
This is why a server implementation is provided with this package.
To facilitate its usage, a command line interface is available in the bin folder.
From a command prompt, run the cli.dart script:
$ dart bin/cli.dart --help
Starts an Akismet.dart server.
Usage:
cli.dart [options]
Options:
-a, --address The address to which to listen.
(defaults to "0.0.0.0")
-p, --port The port on which to listen.
(defaults to "3000")
-r, --redirect The URL to redirect when a request is not handled.
-h, --help Print this usage information.
License #
Akismet.dart is distributed under the MIT License.