Ленты (RSS)
Подписывайтесь на RSS/Atom-ленты, получайте записи и сохраняйте статьи в заметки. Поддерживает импорт/экспорт OPML.
Определения типов
type Feed {
id: ID!
url: String! # RSS/Atom URL
name: String! # display name (defaults to feed title)
fetchContent: Boolean! # when true, the server fetches the full article body
updatedAt: String!
}
type FeedCount {
feedId: ID!
count: Int! # total entries
unreadCount: Int!
}
type FeedEntry {
id: ID!
feedId: ID!
title: String!
description: String! # short summary
content: String! # full article body (may be empty until fetched)
url: String! # canonical article URL
publishedAt: String! # ISO 8601
read: Boolean!
favorite: Boolean!
tags: [Tag!]!
}Операции
feeds
Список всех подписанных лент.
query GetFeeds {
feeds { id url name fetchContent updatedAt }
}feedsCount
Общее количество записей и количество непрочитанных на ленту.
query GetFeedsCount {
feedsCount { feedId count unreadCount }
}feedEntries
Поиск записей ленты (заголовок + описание). Оставьте запрос пустым, чтобы перечислить все.
query GetFeedEntries($offset: Int!, $limit: Int!, $query: String!) {
feedEntries(offset: $offset, limit: $limit, query: $query) {
id feedId title description content url publishedAt read favorite
tags { id name }
}
}feedEntryCount
Подсчитайте записи ленты, соответствующие запросу.
query GetFeedEntryCount($query: String!) {
feedEntryCount(query: $query)
}feedEntry
Получите одну запись ленты по ID.
query GetFeedEntry($id: ID!) {
feedEntry(id: $id) { id feedId title description content url publishedAt read favorite }
}createFeed
Подпишитесь на новую ленту. Сервер получает RSS-канал для заполнения имени, затем запускает одноразовую синхронизацию.
mutation CreateFeed($url: String!, $fetchContent: Boolean!) {
createFeed(url: $url, fetchContent: $fetchContent) { id url name fetchContent updatedAt }
}updateFeed
Обновите отображаемое имя ленты или флаг fetchContent.
mutation UpdateFeed($id: ID!, $name: String!, $fetchContent: Boolean!) {
updateFeed(id: $id, name: $name, fetchContent: $fetchContent) { id url name fetchContent updatedAt }
}deleteFeed
Отпишитесь от ленты и удалите все её записи (и их связи тегов).
mutation DeleteFeed($id: ID!) {
deleteFeed(id: $id)
}syncFeeds
Запустите одноразовый воркер синхронизации лент. Передайте id для синхронизации одной ленты; передайте null или пусто для синхронизации всех.
mutation SyncFeeds($id: ID) {
syncFeeds(id: $id)
}syncFeedEntryContent
Fetch the full article body for a single feed entry. Returns the updated entry.
mutation SyncFeedEntryContent($id: ID!) {
syncFeedEntryContent(id: $id) { id content }
}deleteFeedEntries
Удалите записи ленты, соответствующие запросу (и их связи тегов).
mutation DeleteFeedEntries($query: String!) {
deleteFeedEntries(query: $query)
}importFeeds
Импортируйте OPML-документ (как строку) в базу лент.
mutation ImportFeeds($content: String!) {
importFeeds(content: $content)
}exportFeeds
Экспортируйте все подписанные ленты как OPML-строку.
mutation ExportFeeds {
exportFeeds
}