Anki/proto/anki/media.proto
2025-09-08 00:31:34 +03:00

60 lines
1.6 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";
option java_multiple_files = true;
package anki.media;
import "anki/generic.proto";
import "anki/notetypes.proto";
service MediaService {
rpc CheckMedia(generic.Empty) returns (CheckMediaResponse);
rpc AddMediaFile(AddMediaFileRequest) returns (generic.String);
rpc AddMediaFromPath(AddMediaFromPathRequest) returns (generic.String);
rpc TrashMediaFiles(TrashMediaFilesRequest) returns (generic.Empty);
rpc EmptyTrash(generic.Empty) returns (generic.Empty);
rpc RestoreTrash(generic.Empty) returns (generic.Empty);
rpc ExtractStaticMediaFiles(notetypes.NotetypeId)
returns (generic.StringList);
rpc ExtractMediaFiles(generic.String) returns (generic.StringList);
rpc GetAbsoluteMediaPath(generic.String) returns (generic.String);
}
// Implicitly includes any of the above methods that are not listed in the
// backend service.
service BackendMediaService {
rpc AddMediaFromUrl(AddMediaFromUrlRequest) returns (AddMediaFromUrlResponse);
}
message CheckMediaResponse {
repeated string unused = 1;
repeated string missing = 2;
repeated int64 missing_media_notes = 3;
string report = 4;
bool have_trash = 5;
}
message TrashMediaFilesRequest {
repeated string fnames = 1;
}
message AddMediaFileRequest {
string desired_name = 1;
bytes data = 2;
}
message AddMediaFromPathRequest {
string path = 1;
}
message AddMediaFromUrlRequest {
string url = 1;
}
message AddMediaFromUrlResponse {
optional string filename = 1;
optional string error = 2;
}