Module: AnkiConnect::Client::Statistics

Included in:
AnkiConnect::Client
Defined in:
lib/anki_connect/statistics.rb

Overview

Methods to query review counts, retrieve review history, and access collection statistics.

Instance Method Summary collapse

Instance Method Details

#cards_reviewed_by_day ⇒ Array<Array>

Gets review counts by day.

Returns:

  • (Array<Array>) —

    Array of [dateString, count] pairs



19
20
21
# File 'lib/anki_connect/statistics.rb', line 19

def cards_reviewed_by_day
  request(:getNumCardsReviewedByDay)
end

#cards_reviewed_today ⇒ Integer

Gets count of cards reviewed today. "Today" uses day start time as configured in Anki.

Returns:

  • (Integer) —

    Count of cards reviewed today



12
13
14
# File 'lib/anki_connect/statistics.rb', line 12

def cards_reviewed_today
  request(:getNumCardsReviewedToday)
end

#collection_stats_html(whole_collection: true) ⇒ String

Gets collection statistics report as HTML.

Parameters:

  • whole_collection (Boolean) (defaults to: true) —

    Whether to get stats for whole collection (default: true)

Returns:

  • (String) —

    HTML string



27
28
29
# File 'lib/anki_connect/statistics.rb', line 27

def collection_stats_html(whole_collection: true)
  request(:getCollectionStatsHTML, wholeCollection: whole_collection)
end

#insert_reviews(reviews) ⇒ nil

Inserts review records into database.

Parameters:

  • reviews (Array<Array>) —

    Array of 9-tuples (same format as reviews output)

Returns:

  • (nil)


60
61
62
# File 'lib/anki_connect/statistics.rb', line 60

def insert_reviews(reviews)
  request(:insertReviews, reviews: reviews)
end

#latest_review_id(deck_name) ⇒ Integer

Gets the latest review log ID for a deck.

Parameters:

  • deck_name (String) —

    Deck name

Returns:

  • (Integer) —

    Review log ID in epoch milliseconds, or 0 if no reviews



52
53
54
# File 'lib/anki_connect/statistics.rb', line 52

def latest_review_id(deck_name)
  request(:getLatestReviewID, deck: deck_name)
end

#reviews(deck_name, after:) ⇒ Array<Array>

Gets all card reviews for a deck after a review log ID.

Parameters:

  • deck_name (String) —

    Deck name

  • after (Integer) —

    Review log ID in epoch milliseconds (exclusive)

Returns:

  • (Array<Array>) —

    Array of 9-tuples: (reviewTime, cardID, usn, buttonPressed, newInterval, previousInterval, newFactor, reviewDuration, reviewType)



36
37
38
# File 'lib/anki_connect/statistics.rb', line 36

def reviews(deck_name, after:)
  request(:cardReviews, deck: deck_name, startID: after)
end

#reviews_for_cards(card_ids) ⇒ Hash

Gets all reviews for specific cards.

Parameters:

  • card_ids (Array<Integer>) —

    Array of card IDs

Returns:

  • (Hash) —

    Dictionary mapping card IDs to arrays of review objects with id, usn, ease, ivl, lastIvl, factor, time, type



44
45
46
# File 'lib/anki_connect/statistics.rb', line 44

def reviews_for_cards(card_ids)
  request(:getReviewsOfCards, cards: card_ids)
end