.circleci | ||
.idea | ||
kobalt | ||
lib | ||
src | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
kobaltw | ||
kobaltw.bat | ||
pinboard-poster.iml | ||
pom.xml | ||
README.md |
Pinboard Poster for Kotlin/Java
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")
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");
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>0.9.2</version>
</dependency>
Gradle
To install and run from Gradle, add the following to the build.gradle file:
dependencies {
compile 'net.thauvin.erik:pinboard-poster:0.9.2'
}
Kobalt
To install and run from Kobalt, add the following to the Build.kt file:
dependencies {
compile("net.thauvin.erik:pinboard-poster:0.9.2")
}
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"))
To specify your own key:
# my.properties
my.api.key=user\:TOKEN
val poster = PinboardPoster(Paths.get("my.properties"), "my.api.key")
Environment Variable
If no arguments are passed to the constructor, 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"