1
1
Fork 0
mirror of https://code.mensbeam.com/MensBeam/Arsse.git synced 2024-12-23 07:24:53 +00:00
Arsse/docs/en/030_Supported_Protocols/005_Miniflux.md
J. King c4260323bc Answer 201 to PUTs like Miniflux
This does not apply to PUTs to /v1/entries, which were always 204
2021-03-18 10:38:20 -04:00

3.9 KiB

[TOC]

About

Supported since
0.9.0
Base URL
/
API endpoint
/v1/
Specifications
API Reference, Filtering Rules

The Miniflux protocol is a fairly well-designed protocol supporting a wide variety of operations on newsfeeds, folders (termed "categories"), and articles; it also allows for user administration, and native OPML importing and exporting. Architecturally it is similar to the Nextcloud News protocol, but has more capabilities.

Miniflux version 2.0.28 is emulated, though not all features are implemented

Missing features

  • JSON Feed format is not suported
  • Various feed-related features are not supported; attempting to use them has no effect
    • Rewrite rules and scraper rules
    • Custom User-Agent strings
    • The disabled, ignore_http_cache, and fetch_via_proxy flags
    • Changing the URL, username, or password of a feed
    • Manually refreshing feeds
  • Titles and types are not available during feed discovery and are filled with generic data
  • Reading time is not calculated and will always be zero
  • Only the first enclosure of an article is retained
  • Comment URLs of articles are not exposed

Differences

  • Various error codes and messages differ due to significant implementation differences
  • The "All" category is treated specially (see below for details)
  • Feed and category titles consisting only of whitespace are rejected along with the empty string
  • Filtering rules may not function identically (see below for details)
  • The checked_at field of feeds indicates when the feed was last updated rather than when it was last checked
  • Creating a feed with the scrape property set to true might not return scraped content for the initial synchronization
  • Querying articles for both read/unread and removed statuses will not return all removed articles
  • Search strings will match partial words
  • OPML import either succeeds or fails atomically: if one feed fails, no feeds are imported

Behaviour of filtering (block and keep) rules

The Miniflux documentation gives only a brief example of a pattern for its filtering rules; the allowed syntax is described in full in Google's documentation for RE2. Being a PHP application, The Arsse instead accepts PCRE syntax (or since PHP 7.3 PCRE2 syntax), specifically in UTF-8 mode. Delimiters should not be included, and slashes should not be escaped; anchors may be used if desired. For example ^(?i)RE/MAX$ is a valid pattern.

For convenience the patterns are tested after collapsing whitespace. Unlike Miniflux, The Arsse tests the patterns against an article's author-supplied categories if they do not match its title. Also unlike Miniflux, when filter rules are modified they are re-evaluated against all applicable articles immediately.

Special handling of the "All" category

Nextcloud News' root folder and Tiny Tiny RSS' "Uncategorized" catgory are mapped to Miniflux's initial "All" category. This Miniflux category can be renamed, but it cannot be deleted. Attempting to do so will delete the child feeds it contains, but not the category itself.

Because the root folder does not existing in the database as a separate entity, it will always sort first when ordering by category_id or category_title.

Interaction with nested categories

Tiny Tiny RSS is unique in allowing newsfeeds to be grouped into categories nested to arbitrary depth. When newsfeeds are placed into nested categories, they simply appear in the top-level category when accessed via the Miniflux protocol. This does not affect OPML exports, where full nesting is preserved.