Kotlin Other
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.circleci
.idea
gradle/wrapper
kobalt
lib
samples
src
.gitattributes
.gitignore
.travis.yml
LICENCE.txt
README.md
build.gradle.kts
gradlew
gradlew.bat
kobaltw
kobaltw.bat
pinboard-poster.iml
pom.xml
settings.gradle

README.md

Pinboard Poster for Kotlin/Java

License (3-Clause BSD) release Download
Known Vulnerabilities Build Status CircleCI

A small Kotlin/Java library for posting to Pinboard.

Examples

Kotlin

val poster = PinboardPoster("user:TOKEN")

poster.addPin("http://www.example.com/foo", "This is a test")
poster.deletePin("http:///www.example.com/bar")

View Example

Java

final PinboardPoster poster = new PinBboardPoster("user:TOKEN");

poster.addPin("http://www.example.com/foo", "This is a test");
poster.deletePin("http:///www.example.com/bar");

View Example

Your API authentication token is available on the Pinboard settings page.

Usage with Maven, Gradle and Kobalt

Maven

To install and run from Maven, configure an artifact as follows:

<dependency>
    <groupId>net.thauvin.erik</groupId>
    <artifactId>pinboard-poster</artifactId>
    <version>1.0.0</version>
</dependency>

Gradle

To install and run from Gradle, add the following to the build.gradle file:

dependencies {
    compile 'net.thauvin.erik:pinboard-poster:1.0.0'
}

View Example
View Kotlin DSL Example

Kobalt

To install and run from Kobalt, add the following to the Build.kt file:

dependencies {
    compile("net.thauvin.erik:pinboard-poster:1.0.0")
}

View Example

Adding

The addPin function support all of the Pinboard API parameters:

poster.addPin(url = "http://www.example.com",
              description = "This is the title",
              extended = "This is the extended description.",
              tags = "tag1 tag2 tag3",
              dt = "2010-12-11T19:48:02Z",
              replace = true,
              shared = true,
              toRead = false)

url and description are required.

It returns true if the bookmark was added successfully, false otherwise.

Deleting

The deletePin function support all of the Pinboard API parameters:

poster.deletePin(url = "http://www.example.com/")

It returns true if the bookmark was deleted successfully, false otherwise.

Logging

The library used java.util.logging to log errors. Logging can be configured as follows:

Kotlin

with(poster.logger) {
    addHandler(ConsoleHandler().apply { level = Level.FINE })
    level = Level.FINE
}

Java

final ConsoleHandler consoleHandler = new ConsoleHandler();
consoleHandler.setLevel(Level.FINE);
final Logger logger = poster.getLogger();
logger.addHandler(consoleHandler);
logger.setLevel(Level.FINE);

or using a logging properties file.

API Authentication Token

The token can also be located in a properties file or environment variable.

Local Property

For example, using the default PINBOARD_API_TOKEN key value from a local.properties file:

# local.properties
PINBOARD_API_TOKEN=user\:TOKEN
val poster = PinboardPoster(Paths.get("local.properties"))

or by specifying your own key:

# my.properties
my.api.key=user\:TOKEN
val poster = PinboardPoster(Paths.get("my.properties"), "my.api.key")

or even specifying your own property:

val p = Properties()
p.setProperty("api.key", "user:TOKEN")

val poster = PinboardPoster(p, "api.key")

In all cases, the value of the PINBOARD_API_TOKEN environment variable is used by default if the specified property is invalid or not found.

Environment Variable

If no arguments are passed to the constructor, the value of the PINBOARD_API_TOKEN environment variable will be used, if any.

export PINBOARD_API_TOKEN="user:TOKEN"
val poster = PinboardPoster()

API End Point

The API end point is automatically configured to https://api.pinboard.in/v1/. Since Pinboard uses the del.ico.us API, the library could potentially be used with another compatible service. To configure the API end point, use:

poster.apiEndPoint = "https://www.example.com/v1"