1
1
Fork 0
mirror of https://code.mensbeam.com/MensBeam/Arsse.git synced 2024-12-23 17:12:41 +00:00
Arsse/docs/en/030_Supported_Protocols/005_Miniflux.md

60 lines
3.8 KiB
Markdown
Raw Normal View History

2020-11-06 18:08:53 +00:00
[TOC]
# About
<dl>
<dt>Supported since</dt>
<dd>0.9.0</dd>
<dt>Base URL</dt>
<dd>/</dd>
<dt>API endpoint</dt>
<dd>/v1/</dd>
<dt>Specifications</dt>
2020-12-15 01:09:38 +00:00
<dd><a href="https://miniflux.app/docs/api.html">API Reference</a>, <a href="https://miniflux.app/docs/rules.html#filtering-rules">Filtering Rules</a></dd>
2020-11-06 18:08:53 +00:00
</dl>
2021-02-05 14:22:10 +00:00
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.
2020-11-06 18:08:53 +00:00
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
2021-02-05 14:22:10 +00:00
- Manually refreshing feeds
2021-01-20 04:17:03 +00:00
- Titles and types are not available during feed discovery and are filled with generic data
2021-02-03 18:06:36 +00:00
- 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
2020-11-06 18:08:53 +00:00
# Differences
2021-01-20 04:17:03 +00:00
- Various error codes and messages differ due to significant implementation differences
2020-12-12 04:47:13 +00:00
- The "All" category is treated specially (see below for details)
2021-01-25 01:28:00 +00:00
- Feed and category titles consisting only of whitespace are rejected along with the empty string
2020-12-15 01:09:38 +00:00
- Filtering rules may not function identically (see below for details)
2021-01-17 18:02:31 +00:00
- The `checked_at` field of feeds indicates when the feed was last updated rather than when it was last checked
2021-01-20 04:17:03 +00:00
- Creating a feed with the `scrape` property set to `true` might not return scraped content for the initial synchronization
- Search strings will match partial words
2021-02-06 01:29:41 +00:00
- OPML import either succeeds or fails atomically: if one feed fails, no feeds are imported
2020-12-15 01:09:38 +00:00
# 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](https://github.com/google/re2/wiki/Syntax). Being a PHP application, The Arsse instead accepts [PCRE syntax](http://www.pcre.org/original/doc/html/pcresyntax.html) (or since PHP 7.3 [PCRE2 syntax](https://www.pcre.org/current/doc/html/pcre2syntax.html)), 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.
2021-01-13 19:43:29 +00:00
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.
2020-11-06 18:08:53 +00:00
2020-12-12 04:47:13 +00:00
# Special handling of the "All" category
2020-11-06 18:08:53 +00:00
2020-12-12 04:47:13 +00:00
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`.
2020-12-12 04:47:13 +00:00
# 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.