7 releases
0.2.8 | May 9, 2023 |
---|---|
0.2.6 | Nov 12, 2022 |
0.2.5 | Oct 17, 2022 |
0.2.1 | Sep 25, 2022 |
0.1.2 | Jun 18, 2020 |
#1474 in Command line utilities
33 downloads per month
130KB
2.5K
SLoC
Table of Contents
Introduction
Pinboard is "social bookmarking for introverts"– a social bookmarking web service along the lines of (the now defunct) del.icio.us. pin is a command-line client for Pinboard. It is by no means complete; it supports a few operations which I have found useful in my workflow. Here are a few examples:
You can send a link http://foo.com/bar
to Pinboard with title "splat" & tags a
, b
& c
like so:
pin send -t a -t b -t c "http://foo.com/bar | splat"
You can setup canned tag clouds you use repeatedly & refer to them by name:
$> cat ~/.pin
token = "you:XXX"
[targets]
[targets.frobnitz]
tags = ["@review", "frobinate"]
read_later = true
...
# This link will get tags @review & frobinate, and have the "read later" flag set:
$> pin send -r frobnitz "http://foo.com/bar | splat"
You can send the link to Instapaper at the same time:
$> pin send -r frobnitz --with-instapaper "http://foo.com/bar | splat"
I use it for curating my tags:
$> pin get-tags
| Tag | Use Count |
+--------------------------------+-----------+
| flapdoodl | 1 |
| flapdoodle | 10000 |
...
# Hmmm... likely a mis-spelling
$> pin rename-tag flapdoodl flapdoodle
or, say, deleting all links with a given combination of tags when they're no longer useful:
ping delete old-company+jira
Type pin --help
for a description of all flags & sub-commands.
License
pin is GPL v3 software.
Prerequistes
The Rust toolchain (Rust version 1.57 at minimum).
Installation
This crate is available on crates.io, but you can also download an Autotools tarball:
cd /tmp
curl -O https://www.unwoundstack.com/dist/pin-0.2.8.tar.xz
tar xf pin-0.2.8.tar.xz
cd pin-0.2.8
./configure
make
make check
sudo make install
Status & Roadmap
pin is still early code; I have chosen the version number (0.2) in the hopes of conveying that this is a preliminary release. pinboard.py provides far more complete coverage of the Pinboard API, albeit at the cost of forcing users to navigate Python's package management. Still, pin provides an interface that is task-oriented, not API-oriented. For instance, deleting all links with a given tag combination is actually a complex operation; one needs to:
- ask the API for all links that have that combination of tags
- delete those links one at a time (because that is what the API allows)
- while respecting the API's rate limits
In other words, this package is intended to provide an interface organized around user operations, not API endpoints.
Bugs, comments, problems, PRs, feature requests &c welcome at sp1ff@pobox.com and in the issues.
Dependencies
~19–34MB
~489K SLoC