161 lines
3.5 KiB
Protocol Buffer
161 lines
3.5 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package proto;
|
|
|
|
option csharp_namespace = "DysonNetwork.Shared.Proto";
|
|
|
|
import "google/protobuf/timestamp.proto";
|
|
import "embed.proto";
|
|
import "publisher.proto";
|
|
|
|
message WebFeedConfig {
|
|
bool scrap_page = 1;
|
|
}
|
|
|
|
message WebFeed {
|
|
string id = 1;
|
|
string url = 2;
|
|
string title = 3;
|
|
optional string description = 4;
|
|
optional google.protobuf.Timestamp verified_at = 5;
|
|
optional LinkEmbed preview = 6;
|
|
WebFeedConfig config = 7;
|
|
string publisher_id = 8;
|
|
optional Publisher publisher = 9;
|
|
google.protobuf.Timestamp created_at = 10;
|
|
google.protobuf.Timestamp updated_at = 11;
|
|
optional google.protobuf.Timestamp deleted_at = 12;
|
|
}
|
|
|
|
message WebArticle {
|
|
string id = 1;
|
|
string title = 2;
|
|
string url = 3;
|
|
optional string author = 4;
|
|
optional bytes meta = 5;
|
|
optional LinkEmbed preview = 6;
|
|
optional string content = 7;
|
|
optional google.protobuf.Timestamp published_at = 8;
|
|
string feed_id = 9;
|
|
optional WebFeed feed = 10;
|
|
google.protobuf.Timestamp created_at = 11;
|
|
google.protobuf.Timestamp updated_at = 12;
|
|
optional google.protobuf.Timestamp deleted_at = 13;
|
|
}
|
|
|
|
message WebFeedSubscription {
|
|
string id = 1;
|
|
string feed_id = 2;
|
|
optional WebFeed feed = 3;
|
|
string account_id = 4;
|
|
google.protobuf.Timestamp created_at = 5;
|
|
google.protobuf.Timestamp updated_at = 6;
|
|
}
|
|
|
|
message ScrapedArticle {
|
|
LinkEmbed link_embed = 1;
|
|
optional string content = 2;
|
|
}
|
|
|
|
message GetWebArticleRequest {
|
|
string id = 1;
|
|
}
|
|
|
|
message GetWebArticleResponse {
|
|
WebArticle article = 1;
|
|
}
|
|
|
|
message GetWebArticleBatchRequest {
|
|
repeated string ids = 1;
|
|
}
|
|
|
|
message GetWebArticleBatchResponse {
|
|
repeated WebArticle articles = 1;
|
|
}
|
|
|
|
message ListWebArticlesRequest {
|
|
string feed_id = 1;
|
|
int32 page_size = 2;
|
|
string page_token = 3;
|
|
}
|
|
|
|
message ListWebArticlesResponse {
|
|
repeated WebArticle articles = 1;
|
|
string next_page_token = 2;
|
|
int32 total_size = 3;
|
|
}
|
|
|
|
message GetRecentArticlesRequest {
|
|
int32 limit = 1;
|
|
}
|
|
|
|
message GetRecentArticlesResponse {
|
|
repeated WebArticle articles = 1;
|
|
}
|
|
|
|
message GetWebFeedRequest {
|
|
oneof identifier {
|
|
string id = 1;
|
|
string url = 2;
|
|
}
|
|
}
|
|
|
|
message GetWebFeedResponse {
|
|
WebFeed feed = 1;
|
|
}
|
|
|
|
message ListWebFeedsRequest {
|
|
string publisher_id = 1;
|
|
int32 page_size = 2;
|
|
string page_token = 3;
|
|
}
|
|
|
|
message ListWebFeedsResponse {
|
|
repeated WebFeed feeds = 1;
|
|
string next_page_token = 2;
|
|
int32 total_size = 3;
|
|
}
|
|
|
|
message ScrapeArticleRequest {
|
|
string url = 1;
|
|
}
|
|
|
|
message ScrapeArticleResponse {
|
|
ScrapedArticle article = 1;
|
|
}
|
|
|
|
message GetLinkPreviewRequest {
|
|
string url = 1;
|
|
bool bypass_cache = 2;
|
|
}
|
|
|
|
message GetLinkPreviewResponse {
|
|
LinkEmbed preview = 1;
|
|
}
|
|
|
|
message InvalidateLinkPreviewCacheRequest {
|
|
string url = 1;
|
|
}
|
|
|
|
message InvalidateLinkPreviewCacheResponse {
|
|
bool success = 1;
|
|
}
|
|
|
|
service WebArticleService {
|
|
rpc GetWebArticle(GetWebArticleRequest) returns (GetWebArticleResponse);
|
|
rpc GetWebArticleBatch(GetWebArticleBatchRequest) returns (GetWebArticleBatchResponse);
|
|
rpc ListWebArticles(ListWebArticlesRequest) returns (ListWebArticlesResponse);
|
|
rpc GetRecentArticles(GetRecentArticlesRequest) returns (GetRecentArticlesResponse);
|
|
}
|
|
|
|
service WebFeedService {
|
|
rpc GetWebFeed(GetWebFeedRequest) returns (GetWebFeedResponse);
|
|
rpc ListWebFeeds(ListWebFeedsRequest) returns (ListWebFeedsResponse);
|
|
}
|
|
|
|
service WebReaderService {
|
|
rpc ScrapeArticle(ScrapeArticleRequest) returns (ScrapeArticleResponse);
|
|
rpc GetLinkPreview(GetLinkPreviewRequest) returns (GetLinkPreviewResponse);
|
|
rpc InvalidateLinkPreviewCache(InvalidateLinkPreviewCacheRequest) returns (InvalidateLinkPreviewCacheResponse);
|
|
}
|