gyroid

command module
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 18, 2022 License: MIT Imports: 15 Imported by: 0

README

gyroid

CircleCI codecov Go Report Card

A Pocket client designed to help you quickly refine your Pocket library.

Preview

Motivation

I have an ever-growing collection of articles saved on Pocket that remain untagged, and thus difficult to track down when I want to read them. Also, I find that I am more likely to read articles on the top of my Pocket list, which are the more recently added items, than ones that are in the middle or closer to the bottom. I would like to have a quick and easy way of scanning through my untagged items and either assign them to appropriate tags or bump them back up to the top of my list.

Luckily, Pocket has a number of great tools available in its public API that I can use to achieve these tasks, plus more. I put together this CLI tool to have a simple tool available to accomplish these refinement tasks much more efficiently than on the browser webapp. Quickly assign tags, bump, mark as favourite, and archive articles! All from the comfort of the terminal. Keep your articles organized before you're on-the-go.

Features

  • Mark articles with one or more tags
  • Favourite/unfavourite articles
  • Bump articles to the top of the list (the same action as unarchiving an article on Pocket)
  • Archive an article
  • Delete an article
  • Open an article on your web browser directly from the CLI
  • Add an article to your Pocket list, either by manual input or directly from clipboard

Installation

The quickest way to get started with gyroid is to run the following command to install it to your GOPATH:

go get -u github.com/Coteh/gyroid

You will need a Pocket API consumer key to use gyroid. You can grab one here.

You will then need to create a textfile in ~/.config/gyroid (where ~ is your home directory) called consumer_key and simply paste the consumer key into it.

Now you can run the program from your terminal (assuming GOPATH is in your PATH) as follows:

gyroid

See this project's maskfile.md for more commands to build and run the project. You will need the latest version of Go. (1.11 or newer as this project uses the new versioned module system)

The commands within the maskfile.md can also be executed using mask. If you don't have mask installed, you can install it from here using cargo (requires Rust toolchain)

Definition of Refinement

Within the context of this app, I currently define a "refined" article as an article that contains one or more tags assigned to it. Upon load of the app, all of your "unrefined" articles - untagged articles - will appear one-by-one for you to refine.

This currently suits my personal needs, as an article on my Pocket list that contains one or more tags usually means that I have given the article some consideration already as to whether I actually want to read it or not. I have set up an Issue however, for consideration as to whether the definitions of "refined" and "unrefined" can be configured from config.yml.

Configuration

The configuration file for gyroid will be found in ~/.config/gyroid/config.yml, where ~ represents your home directory. gyroid will populate one on startup if not found, or you can define it yourself using the following template:

clipboard: false     # whether or not to use clipboard (disabled by default)
refine-new: yes      # whether or not to add article to refinement list upon add (yes, prompt, or no (default))

Issues

  • Number of requests made and number of articles to be returned from each request need to be fine-tuned #5
  • Certain edge cases of Pocket API (such as Retrieve request with offset past final articles on list) need to be handled #10
  • Check out Issues to post your own

Future Additions

  • Customize ordering of Pocket articles to be loaded #8
  • Quick tag system #6
  • Consider switching to go-pocket for Pocket API interaction #7

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
lib
connector
Package connector contains functions that interface with Pocket's API
Package connector contains functions that interface with Pocket's API

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL