#!/usr/bin/env ruby require 'pickpocket' require 'thor' class PickpocketCLI < Thor package_name 'Pickpocket' desc 'oauth', '1st authorization step: ask Pocket to allow Pickpocket app' def oauth oauth = Pickpocket::Authentication::Oauth.new oauth.request_authorization end desc 'authorize', '2nd authorization step: allow Pickpocket read/write access to your library' def authorize oauth = Pickpocket::Authentication::Oauth.new oauth.authorize end desc 'pick', 'Picks a random article from your library (marking it as read)' method_option :quantity, aliases: '-q', banner: '1', desc: 'Quantity of articles to open', type: :numeric, default: 1 def pick quantity = options[:quantity].to_i library = Pickpocket::Articles::Library.new library.pick(quantity) end desc 'renew', 'Syncs your local library with your Pocket. It will delete read articles and download new articles from your library' def renew library = Pickpocket::Articles::Library.new library.renew library.stats end desc 'stats', 'Show the number of read/unread articles you have on your local library' def stats library = Pickpocket::Articles::Library.new library.stats end map status: :stats end PickpocketCLI.start(ARGV)