Package animeshon.tracker.v1alpha1
Index
TrackerService
GetTracker |
---|
| rpc GetTracker(GetTrackerRequest) Tracker
Get a tracker by its unique identifier.
To fetch a tracker by the resource, use ListTrackers
instead with an appropriate filter. Example: filter = "resource:animes/1245678"
. |
ListTrackers |
---|
rpc ListTrackers(ListTrackersRequest) ListTrackersResponse TODO: add documentation about supported filters. |
CreateTracker |
---|
rpc CreateTracker(CreateTrackerRequest) Tracker |
UpdateTracker |
---|
rpc UpdateTracker(UpdateTrackerRequest) Tracker |
DeleteTracker |
---|
rpc DeleteTracker(DeleteTrackerRequest) .google.protobuf.Empty |
ImportTrackers |
---|
rpc ImportTrackers(ImportTrackersRequest) .google.longrunning.Operation |
ExportTrackers |
---|
rpc ExportTrackers(ExportTrackersRequest) .google.longrunning.Operation |
CreateActivity |
---|
rpc CreateActivity(CreateActivityRequest) Activity |
DeleteActivity |
---|
rpc DeleteActivity(DeleteActivityRequest) .google.protobuf.Empty |
Activity
Activities track the progress of a user related to readable or watchable resources such as light novel and graphic novel chapters, and anime episodes.
Activities are immutable and store meta information such as when the activity started, when it ended, from where the progress started and where it stopped.
An example of activities might be a user watching on Netflix the Episode N of the Anime XYZ from minute 5:47 to minute 15:32 on the 7th of July at 8:35 PM.
In this specific case a Chrome extension might automatically create a new activity every minute until the user pauses the video or closes the tab.
The information collected allows the service to let the user know when was the last "checkpoint" recorded, enabling the user to resume the episode at the correct time on a different platform (i.e. continue from where I left). Additionally, the information collected is useful to generate histograms and to idenitify popular scenes within an episode (we all know Pornhub has an identical feature already).
There is no limit to the number of activities a user might generate and some activities are automatically registered from Animeshon itself, for example when a user is reading a graph novel directly on our platform. Activities can also be repeated multiple times for the same range (e.g. if a user rewatches the same scene in an episode 5 times).
Whenever an activity is created that marks the end of a resource, its parent tracker is updated to include it in the list of completed resource.
Field | Description |
---|---|
name | string The id of the activity. |
resource | string The content whose progress is being tracked. |
platform | string The platform that the user used to consume the resource. |
from | int32 Where the activity started within the resource. This value represents the time in seconds within an episode or the page number within a graphic novel or light novel chapter. |
to | int32 Where the activity ended within the resource. This value represents the time in seconds within an episode or the page number within a graphic novel or light novel chapter. |
start_time | google.protobuf.Timestamp When this activity started. |
end_time | google.protobuf.Timestamp When this activity ended. |
Audience
TODO: this is represented as a group in authorization. TODO: who should be the owner of an audience? the user who created it?
Field | Description |
---|---|
name | string The id of the audience. |
members | repeated string The members of this audience. |
CreateActivityRequest
Field | Description |
---|---|
parent | string The parent this tracker belongs to. |
activity | Activity The activity to create. |
CreateTrackerRequest
Field | Description |
---|---|
parent | string The parent this tracker belongs to. |
tracker | Tracker The tracker to create. |
DeleteActivityRequest
Field | Description |
---|---|
name | string The name of the activity to delete. |
DeleteTrackerRequest
Field | Description |
---|---|
name | string The name of the tracker to delete. |
ExportTrackersRequest
Selecting what provider we want to export to
Field | Description |
---|---|
parent | string |
provider | Provider |
ExportTrackersResponse
GetTrackerRequest
Field | Description |
---|---|
name | string The name of the tracker to retrieve. |
ImportTrackersRequest
Selecting what provider we want to import from
Field | Description |
---|---|
parent | string |
provider | Provider |
ImportTrackersResponse
TODO(christian-roggia): this is a workaround to solve the issue of GAPIC CLI where broken code is generated if google.protobuf.Empty is used in the response_type of longrunning operations.
ListTrackersRequest
Field | Description |
---|---|
parent | string The user this tracker belongs to. |
page_size | int32 If unspecified, server will pick an appropriate default. |
page_token | string The value returned from the previous call. |
filter | string A filter to be applied to results. |
ListTrackersResponse
Field | Description |
---|---|
trackers | repeated Tracker The list of trackers. |
next_page_token | string A token to retrieve next page of results. |
OperationMetadata
Represents the metadata of the long-running operation.
Field | Description |
---|---|
create_time | google.protobuf.Timestamp Output only. The time the operation was created. |
end_time | google.protobuf.Timestamp Output only. The time the operation finished running. |
target | string Output only. Server-defined resource path for the target of the operation. |
verb | string Output only. Name of the verb executed by the operation. |
status_message | string Output only. Human-readable status of the operation, if any. |
requested_cancellation | bool Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have [Operation.error][] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to Code.CANCELLED . |
api_version | string Output only. API version used to start the operation. |
progress_percentage | int32 Output only. |
Tracker
A tracker tracks the progress of one or more users related to releasable resources such as animes, graphic novels, light novels, and visual novels.
It is important to notice that users cannot watch
an anime from a technical
perspective but rather they can watch one of its releases such as its pysical
DVD copy or its broadcast on Funimation. Nevertheless, for a better user
experience a releasable content is considered completed whenever a user
watched, played, or read all of its "regular" episodes, chapters, or
releases. This means that "recaps" and "specials" are ultimately ignored.
Animes and novels are easier to track as they have a countable and defined amount of resources that can be consumed (episodes and chapters). Their progress is therefore automatically updated whenever a new user activity is generated.
Visual novels and video games in general do not always have a clear progress and therefore must be updated manually by the user.
A tracker accounts only for the overall progress on a releasable content, this means that it won't provide any information about rewatches.
Additionally, trackers can be shared among multiple users thorough audiences, this is useful whenever a user is, for example, watching an anime together with a group of friends and wants to keep track of the progress separately from his/her own personal progress or from the progress on the same resource with another group of friends (i.e. audience).
The progress of audience trackers affects the personal progress, that is whenever new resources are consumed by an audience the personal tracker of each member belonging to that audience will be updated automatically as well. This behavior makes sense as a group of people watching the Episode N of the Anime XYZ also means that each member of the group also watched the episode and therefore their collective personal progress changed.
Field | Description |
---|---|
name | string The id of the tracker. |
resource | string The content whose progress is being tracked. |
start_time | google.protobuf.Timestamp When the progress started. |
end_time | google.protobuf.Timestamp When the progress ended. |
completed_resources | repeated string The list of completed sub-resources (e.g episodes or chapters). |
progress_percentage | google.protobuf.FloatValue The percentage of progress from 0 to 100. A null value means the value was not manually defined and therefore the percentage should be calculated on-the-fly. |
state | State The progress state of the tracker. |
UpdateTrackerRequest
Field | Description |
---|---|
tracker | Tracker The tracker to update. |
update_mask | google.protobuf.FieldMask The field mask to determine which fields are to be updated. If empty, the server will assume all fields are to be updated. |
Provider
Name | Description |
---|---|
PROVIDER_UNSPECIFIED | No description. |
MYANIMELIST | No description. |
MANGADEX | No description. |
ANILIST | No description. |
ANIDB | No description. |
MANGAUPDATES | No description. |
VNDB | No description. |
State
Name | Description |
---|---|
STATE_UNSPECIFIED | No description. |
IN_PROGRESS | The consumption of the media is still in progress. |
COMPLETED | The consumption of the media has been completed. |
ON_HOLD | The consumption of the media is on hold. |