mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 14:02:21 -04:00
65 lines
1.5 KiB
Protocol Buffer
65 lines
1.5 KiB
Protocol Buffer
// Copyright: Ankitects Pty Ltd and contributors
|
|
// License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|
|
|
syntax = "proto3";
|
|
|
|
package anki.stats;
|
|
|
|
import "anki/generic.proto";
|
|
import "anki/cards.proto";
|
|
|
|
service StatsService {
|
|
rpc CardStats(cards.CardId) returns (generic.String);
|
|
rpc Graphs(GraphsRequest) returns (GraphsResponse);
|
|
rpc GetGraphPreferences(generic.Empty) returns (GraphPreferences);
|
|
rpc SetGraphPreferences(GraphPreferences) returns (generic.Empty);
|
|
}
|
|
|
|
message GraphsRequest {
|
|
string search = 1;
|
|
uint32 days = 2;
|
|
}
|
|
|
|
message GraphsResponse {
|
|
repeated cards.Card cards = 1;
|
|
repeated RevlogEntry revlog = 2;
|
|
uint32 days_elapsed = 3;
|
|
// Based on rollover hour
|
|
uint32 next_day_at_secs = 4;
|
|
uint32 scheduler_version = 5;
|
|
/// Seconds to add to UTC timestamps to get local time.
|
|
int32 local_offset_secs = 7;
|
|
}
|
|
|
|
message GraphPreferences {
|
|
enum Weekday {
|
|
SUNDAY = 0;
|
|
MONDAY = 1;
|
|
FRIDAY = 5;
|
|
SATURDAY = 6;
|
|
}
|
|
Weekday calendar_first_day_of_week = 1;
|
|
bool card_counts_separate_inactive = 2;
|
|
bool browser_links_supported = 3;
|
|
bool future_due_show_backlog = 4;
|
|
}
|
|
|
|
message RevlogEntry {
|
|
enum ReviewKind {
|
|
LEARNING = 0;
|
|
REVIEW = 1;
|
|
RELEARNING = 2;
|
|
// Recent Anki versions only use this when rescheduling disabled
|
|
FILTERED = 3;
|
|
MANUAL = 4;
|
|
}
|
|
int64 id = 1;
|
|
int64 cid = 2;
|
|
int32 usn = 3;
|
|
uint32 button_chosen = 4;
|
|
int32 interval = 5;
|
|
int32 last_interval = 6;
|
|
uint32 ease_factor = 7;
|
|
uint32 taken_millis = 8;
|
|
ReviewKind review_kind = 9;
|
|
}
|