kindle-highlights

Get your Kindle highlights.

  • 所有者: speric/kindle-highlights
  • 平台:
  • 許可證: MIT License
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

kindle-highlights

build status

A Ruby gem for collecting your Kindle highlights.

Requirements

  • Ruby 2.1.0 or greater
  • An Amazon Kindle account

Install

gem install kindle-highlights

Use

First, require the gem and initialize a new client by passing in the email address & password you use
to sign into your Amazon Kindle account:

require 'kindle_highlights'

kindle = KindleHighlights::Client.new(
  email_address: "email.address@gmail.com",
  password: "password"
)

Fetching a list of your Kindle books

Use the books method to get a listing of all your Kindle books. This method
returns a collection of KindleHighlights::Book objects:

kindle.books
#=>
[
  <KindleHighlights::Book:
      @asin="B000XUAETY",
      @author="James R. Mcdonough",
      @title="Platoon Leader: A Memoir of Command in Combat"
  >,
  <KindleHighlights::Book:
    @asin="B003XDUCEU",
    @author="Michael Lopp",
    @title="Being Geek: The Software Developer's Career Handbook"
  >,
  <KindleHighlights::Book:
    @asin="B00JJ1RIO2",
    @author="James K. A. Smith",
    @title="How (Not) to Be Secular: Reading Charles Taylor"
  >
]

Each Book object has it's asin, author, and title as attributes:

book = kindle.books.first
book.asin
#=> "B000XUAETY"
book.author
#=> "James R. Mcdonough"
book.title
#=> "Platoon Leader: A Memoir of Command in Combat"

Fetching all highlights for a single book

To get only the highlights for a specific book, use the highlights_for method, passing
in the book's Amazon ASIN as the only method parameter. This method returns a collection of
KindleHighlights::Highlight objects:

kindle.highlights_for("B005CQ2ZE6")
#=>
[
  <KindleHighlights::Highlight:0x007fc4e7e03ea0
    @asin="B005CQ2ZE6",
    @text="One of the most dangerous things you can believe in this world is that technology is neutral.",
    @location="197"
  >
]

Each Highlight object has the book's asin, the text of the highlight, and it's location as attributes:

highlight = kindle.highlights_for("B005CQ2ZE6").first

highlight.asin
#=> "B005CQ2ZE6"
highlight.text
#=> "One of the most dangerous things you can believe in this world is that technology is neutral."
highlight.location
#=> "197"

Additionally, each book has it's own highlights_from_amazon method:

book = kindle.books.first
book.highlights_from_amazon

Advanced Usage

This gem uses mechanize to interact with Amazon's Kindle pages. You can override any of the default mechanize settings (see lib/kindle_highlights/client.rb) by passing your settings to the initializer:

kindle = KindleHighlights::Client.new(
  email_address: "me@example.com",
  password: "amazon_password",
  mechanize_options: { user_agent_alias: 'Mac Safari' }
)

Or you can use read.amazon.com equivalents provided on other TLDs like:

kindle = KindleHighlights::Client.new(
  email_address: "me@example.com",
  password: "amazon_password",\
  root_url: 'https://read.amazon.co.jp'
)

A Note About CAPTCHAs

Amazon will sometimes issue a CAPTCHA challenge when logging in to your
Kindle account. If this happens when the gem attempts to log in to your
Kindle account to retrieve your book list or highlights, you'll get a KindleHighlights::Client::CaptchaError, like the following:

> kindle.books
KindleHighlights::Client::CaptchaError: Received a CAPTCHA while attempting to sign in to your Amazon account. You will need to resolve this manually at https://www.amazon.com/ap/signin?openid.pape.max_auth_age=0&openid...

There's no way to programmatically resolve this situation. The best
solution I've found is to open a browser, visit the URL that the gem returns, log in to
your Kindle account, and click around a bit. Then log out of your Kindle
account and re-attempt to fetch your highlights via this gem. Additionally, you could try
instantiating a new instance of the client and changing the User-Agent
via mechanize_options like:

kindle = KindleHighlights::Client.new(
  email_address: "me@example.com",
  password: "amazon_password",
  mechanize_options: { user_agent_alias: 'iPhone' }
)

In The Wild

  • tobi/highlights - Download your Kindle highlights and email random ones to your inbox

Contributing to kindle-highlights (PRs welcome)

  • Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
  • Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
  • Fork the project
  • Start a feature/bugfix branch
  • Commit and push until you are happy with your contribution
  • Make sure to add tests for the feature/bugfix. This is important so I don't break it in a future version unintentionally.
  • Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate it to its own commit so I can cherry-pick around it.

Copyright (c) 2011-2018 Eric Farkas. See MIT-LICENSE for details.

主要指標

概覽
名稱與所有者speric/kindle-highlights
主編程語言Ruby
編程語言Ruby (語言數: 1)
平台
許可證MIT License
所有者活动
創建於2011-12-20 15:54:17
推送於2020-04-04 01:12:01
最后一次提交2020-04-03 18:11:56
發布數7
最新版本名稱v2.0.1 (發布於 )
第一版名稱v0.0.7 (發布於 2013-08-20 22:08:10)
用户参与
星數577
關注者數15
派生數48
提交數57
已啟用問題?
問題數12
打開的問題數8
拉請求數11
打開的拉請求數3
關閉的拉請求數3
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?