Sha256: 01d0f4f2ec8720c2f6fc4068307e0b8747400bf3161f04b5c71207636d70117f

Contents?: true

Size: 1.4 KB

Versions: 18

Compression:

Stored size: 1.4 KB

Contents

# encoding: utf-8
module Ayadn
  class PinBoard

    def has_credentials_file?
      File.exist?(Ayadn::Settings.config[:paths][:db] + '/ayadn_pinboard.db')
    end

    def ask_credentials
      begin
        puts Status.pin_username
        pin_username = STDIN.gets.chomp()
        puts Status.pin_password
        pin_password = STDIN.noecho(&:gets).chomp()
      rescue Interrupt
        abort(Status.canceled)
      rescue => e
        puts Status.wtf
        Errors.global_error({error: e, caller: caller, data: [pin_username]})
      end
      save_credentials(encode(pin_username, pin_password))
    end

    def load_credentials
      decode(File.read(Ayadn::Settings.config[:paths][:db] + '/ayadn_pinboard.db'))
    end

    def pin(data)
      pinboard = Pinboard::Client.new(:username => data.username, :password => data.password)
      pinboard.add(:url => data.url, :tags => data.tags, :extended => data.text, :description => data.description)
    end

    private

    def decode(encoded_pinboard_credentials)
      Base64.strict_decode64(encoded_pinboard_credentials[/AyadnPinboard (.*)/, 1]).split(":")
    end

    def save_credentials(encoded_pinboard_credentials)
      File.write(Ayadn::Settings.config[:paths][:db] + '/ayadn_pinboard.db', encoded_pinboard_credentials)
    end

    def encode(username, password)
      "AyadnPinboard #{Base64.strict_encode64([username, password].join(":"))}"
    end

  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
ayadn-1.8.2 lib/ayadn/pinboard.rb
ayadn-1.8.1 lib/ayadn/pinboard.rb
ayadn-1.8.0 lib/ayadn/pinboard.rb
ayadn-1.7.7 lib/ayadn/pinboard.rb
ayadn-1.7.6 lib/ayadn/pinboard.rb
ayadn-1.7.5 lib/ayadn/pinboard.rb
ayadn-1.7.4 lib/ayadn/pinboard.rb
ayadn-1.7.3 lib/ayadn/pinboard.rb
ayadn-1.7.2 lib/ayadn/pinboard.rb
ayadn-1.7.1 lib/ayadn/pinboard.rb
ayadn-1.7.0 lib/ayadn/pinboard.rb
ayadn-1.6.0 lib/ayadn/pinboard.rb
ayadn-1.5.1 lib/ayadn/pinboard.rb
ayadn-1.5.0 lib/ayadn/pinboard.rb
ayadn-1.4.6 lib/ayadn/pinboard.rb
ayadn-1.4.5 lib/ayadn/pinboard.rb
ayadn-1.4.4 lib/ayadn/pinboard.rb
ayadn-1.4.3 lib/ayadn/pinboard.rb