tiagoamaro/pickpocket

View on GitHub
bin/pickpocket

Summary

Maintainability
Test Coverage
#!/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)