API 參考

Feeds (RSS)

訂閱 RSS/Atom feed,擷取項目,並將文章儲存到筆記。支援 OPML 匯入/匯出。

型別定義

bash
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!]!
}

操作

query

feeds

列出所有已訂閱的 feed。

bash
query GetFeeds {
  feeds { id url name fetchContent updatedAt }
}
query

feedsCount

每個 feed 的總項目數和未讀項目數。

bash
query GetFeedsCount {
  feedsCount { feedId count unreadCount }
}
query

feedEntries

搜尋 feed 項目(標題 + 描述)。查詢留空可列出全部。

bash
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 }
  }
}
query

feedEntryCount

計算符合查詢的 feed 項目數量。

bash
query GetFeedEntryCount($query: String!) {
  feedEntryCount(query: $query)
}
query

feedEntry

依 ID 取得單一 feed 項目。

bash
query GetFeedEntry($id: ID!) {
  feedEntry(id: $id) { id feedId title description content url publishedAt read favorite }
}
mutation

createFeed

訂閱新的 feed。伺服器擷取 RSS 頻道以填入名稱,然後啟動一次同步。

bash
mutation CreateFeed($url: String!, $fetchContent: Boolean!) {
  createFeed(url: $url, fetchContent: $fetchContent) { id url name fetchContent updatedAt }
}
mutation

updateFeed

更新 feed 的顯示名稱或 fetchContent 旗標。

bash
mutation UpdateFeed($id: ID!, $name: String!, $fetchContent: Boolean!) {
  updateFeed(id: $id, name: $name, fetchContent: $fetchContent) { id url name fetchContent updatedAt }
}
mutation

deleteFeed

取消訂閱 feed 並刪除其所有項目(及其標籤關係)。

bash
mutation DeleteFeed($id: ID!) {
  deleteFeed(id: $id)
}
mutation

syncFeeds

觸發一次 feed 同步 worker。傳入 id 可同步單一 feed;傳入 null 或空可同步全部。

bash
mutation SyncFeeds($id: ID) {
  syncFeeds(id: $id)
}
mutation

fetchFeedContent

擷取單一 feed 項目的完整文章內文。傳回更新後的項目。

bash
mutation FetchFeedContent($id: ID!) {
  fetchFeedContent(id: $id) { id content }
}
mutation

syncFeedContent

fetchFeedContent 的別名。保留以向後相容。

bash
mutation SyncFeedContent($id: ID!) {
  syncFeedContent(id: $id) { id content }
}
mutation

deleteFeedEntries

刪除符合查詢的 feed 項目(及其標籤關係)。

bash
mutation DeleteFeedEntries($query: String!) {
  deleteFeedEntries(query: $query)
}
mutation

importFeeds

將 OPML 文件(作為字串)匯入 feed 資料庫。

bash
mutation ImportFeeds($content: String!) {
  importFeeds(content: $content)
}
mutation

exportFeeds

將所有已訂閱的 feed 匯出為 OPML 字串。

bash
mutation ExportFeeds {
  exportFeeds
}