Files
music-agregator/proto/music_agregator/indexer/v1/indexer.proto
T
2026-05-04 22:48:14 +02:00

87 lines
1.6 KiB
Protocol Buffer

syntax = "proto3";
package music_agregator.indexer.v1;
option go_package = "homelab.lan/music-agregator/gen/music_agregator/v1/indexer";
service IndexerService {
rpc Search(SearchRequest) returns (SearchResponse) {}
rpc Capabilities(CapabilitiesRequest) returns (CapabilitiesResponse) {}
}
message SearchRequest {
string query = 1;
int32 limit = 2;
string tracker = 3;
}
message SearchResponse {
repeated SearchItem result = 1;
}
message SearchItem {
string title = 1;
string link = 2;
string guid = 3;
string pub_date = 4;
int64 size = 5;
string description = 6;
repeated string categories = 7;
Enclosure enclosure = 8;
repeated TorznabAttr torznab_attrs = 9;
}
message Enclosure {
string url = 1;
int64 length = 2;
string type = 3;
}
message TorznabAttr {
string name = 1;
string value = 2;
}
message CapabilitiesRequest {
string indexer = 1;
}
message CapabilitiesResponse {
Server server = 1;
Limits limits = 2;
Searching searching = 3;
repeated Category categories = 4;
}
message Server {
string title = 1;
}
message Limits {
int32 default = 1;
int32 max = 2;
}
message Searching {
SearchCapability search = 1;
SearchCapability tv_search = 2;
SearchCapability movie_search = 3;
SearchCapability music_search = 4;
SearchCapability audio_search = 5;
SearchCapability book_search = 6;
}
message SearchCapability {
bool available = 1;
repeated string supported_params = 2;
string search_engine = 3;
}
message Category {
int32 id = 1;
string name = 2;
repeated Subcat subcats = 3;
}
message Subcat {
int32 id = 1;
string name = 2;
}