Start addressing super-linter findings.

This commit is contained in:
supahgreg
2025-10-15 21:10:01 +00:00
parent a403b97fb6
commit aedd603067
12 changed files with 190 additions and 198 deletions
+2 -2
View File
@@ -1,6 +1,6 @@
# Tiny Tiny RSS Documentation Site
This repository contains the source for the https://tt-rss.github.io.
This repository contains the source for <https://tt-rss.github.io>.
## License
@@ -44,7 +44,7 @@ bundle exec jekyll serve
## Structure
```
```text
tt-rss.github.io/
├── _config.yml # Jekyll configuration
├── index.md # Homepage
+74 -81
View File
@@ -67,20 +67,19 @@ All API methods return JSON data like this:
{"seq":0,"status":0,"content":{"version":"1.4.3.1"}}
```
- seq (integer) is the sequence number supplied by client (``"seq":131``)
- status (integer) indicates whether request has been completed
successfully, can be either 0 (API\_STATUS\_OK) or 1
(API\_STATUS\_ERR)
- content is the actual reply content, as documented below in method
descriptions.
- seq (integer) is the sequence number supplied by client (``"seq":131``)
- status (integer) indicates whether request has been completed
successfully, can be either 0 (API\_STATUS\_OK) or 1
(API\_STATUS\_ERR)
- content is the actual reply content, as documented below in method
descriptions.
##### 1.4.3 and below (obsolete)
#### 1.4.3 and below (obsolete)
Methods return the “content” object below, sequence numbers and statuses
Methods return the "content" object below, sequence numbers and statuses
are not supported.
Methods
-------
## Methods
### getApiLevel (since version:1.5.8, api level-1)
@@ -108,8 +107,8 @@ use this to detect API functionality, please use getApiLevel instead.
Parameters:
- ``user`` (string)
- ``password`` (string)
- ``user`` (string)
- ``password`` (string)
Returns client session ID.
@@ -119,12 +118,12 @@ Returns client session ID.
It can also return several error objects:
- If API is disabled for this user:
<code>error: "API_DISABLED"</code>
- If specified username and password are incorrect:
<code>error: "LOGIN_ERROR"</code>
- If API is disabled for this user:
<code>error: "API_DISABLED"</code>
- If specified username and password are incorrect:
<code>error: "LOGIN_ERROR"</code>
In case it isn’t immediately obvious, you have to login and get a
In case it isn't immediately obvious, you have to login and get a
session ID even if you are using single user mode. You can omit user and
password parameters.
@@ -153,12 +152,6 @@ Returns an integer value of currently unread articles.
{"unread":"992"}
```
### getCounters
Returns JSON-encoded counter information. Requires version:1.5.0.
* ``output_mode`` (string, default:-flc) - what kind of information to return (f - feeds, l - labels, c - categories, t --tags)
### getFeeds
Returns JSON-encoded list of feeds. The list includes category id,
@@ -166,11 +159,11 @@ title, feed url, etc.
Parameters:
- ``cat_id`` (integer) - return feeds under category cat\_id
- ``unread_only`` (bool) - only return feeds which have unread articles
- ``limit`` (integer) - limit amount of feeds returned to this value
- ``offset`` (integer) - skip this amount of feeds first
- ``include_nested`` (bool) - include child categories (as Feed-objects
- ``cat_id`` (integer) - return feeds under category cat\_id
- ``unread_only`` (bool) - only return feeds which have unread articles
- ``limit`` (integer) - limit amount of feeds returned to this value
- ``offset`` (integer) - skip this amount of feeds first
- ``include_nested`` (bool) - include child categories (as Feed-objects
``with is_cat set)`` **requires version:1.6.0**
Pagination:
@@ -187,8 +180,8 @@ Special category IDs are as follows:
Added in version:1.5.0:
- -3 All feeds, excluding virtual feeds (e.g. Labels and-such)
- -4 All feeds, including virtual feeds
- -3 All feeds, excluding virtual feeds (e.g. Labels and-such)
- -4 All feeds, including virtual feeds
Known bug: Prior to version:1.5.0 passing null or 0 cat\_id to this
method returns full list of feeds instead of Uncategorized feeds only.
@@ -197,11 +190,11 @@ method returns full list of feeds instead of Uncategorized feeds only.
Returns JSON-encoded list of categories with unread counts.
- ``unread_only`` (bool) - only return categories which have unread
- ``unread_only`` (bool) - only return categories which have unread
articles
- ``enable_nested`` (bool) - switch to nested mode, only returns topmost
- ``enable_nested`` (bool) - switch to nested mode, only returns topmost
categories **requires version:1.6.0**
- ``include_empty`` (bool) - include empty categories **requires
- ``include_empty`` (bool) - include empty categories **requires
version:1.7.6**
Nested mode in this case means that a flat list of **only** topmost
@@ -218,30 +211,30 @@ Returns JSON-encoded list of headlines.
Parameters:
- ``feed_id`` (integer|string) - only output articles for this feed (supports string values to retrieve tag virtual feeds since API level 18, otherwise-integer)
- ``limit`` (integer) - limits the amount of returned articles (see-below)
- ``skip`` (integer) - skip this amount of feeds first
- ``filter`` (string) - currently unused (?)
- ``is_cat`` (bool) - requested feed\_id is a category
- ``show_excerpt`` (bool) - include article excerpt in the output
- ``show_content`` (bool) - include full article text in the output
- ``view_mode`` (string = all\_articles, unread, adaptive,-marked,
- ``feed_id`` (integer|string) - only output articles for this feed (supports string values to retrieve tag virtual feeds since API level 18, otherwise-integer)
- ``limit`` (integer) - limits the amount of returned articles (see-below)
- ``skip`` (integer) - skip this amount of feeds first
- ``filter`` (string) - currently unused (?)
- ``is_cat`` (bool) - requested feed\_id is a category
- ``show_excerpt`` (bool) - include article excerpt in the output
- ``show_content`` (bool) - include full article text in the output
- ``view_mode`` (string = all\_articles, unread, adaptive,-marked,
updated)
- ``include_attachments`` (bool) - include article attachments (e.g.
- ``include_attachments`` (bool) - include article attachments (e.g.
enclosures) **requires version:1.5.3**
- ``since_id`` (integer) - only return articles with id greater than
- ``since_id`` (integer) - only return articles with id greater than
``since_id`` **requires version:1.5.6**
- ``include_nested`` (boolean) - include articles from child categories
- ``include_nested`` (boolean) - include articles from child categories
**requires version:1.6.0**
- ``order_by`` (string) - override default sort order **requires
- ``order_by`` (string) - override default sort order **requires
version:1.7.6**
- ``sanitize`` (bool) - sanitize content or not **requires version:1.8**
- ``sanitize`` (bool) - sanitize content or not **requires version:1.8**
(default:-true)
- ``force_update`` (bool) - try to update feed before showing headlines
- ``force_update`` (bool) - try to update feed before showing headlines
**requires version:1.14 (api-9)** (default:-false)
- ``has_sandbox`` (bool) - indicate support for sandboxing of iframe
- ``has_sandbox`` (bool) - indicate support for sandboxing of iframe
elements **<span class="10 api"></span>** (default:-false)
- ``include_header`` (bool) - adds status information when returning
- ``include_header`` (bool) - adds status information when returning
headlines, instead of array(articles) return value changes to
array(header,-array(articles)) (api-12)
@@ -253,25 +246,25 @@ Before **API level 6** maximum amount of returned headlines is capped at
This parameters might change in the future (supported since **API-level
2**):
- ``search`` (string) - search query (e.g. a list of-keywords)
- ``search_mode`` (string) - all\_feeds, this\_feed (default), this\_cat
- ``search`` (string) - search query (e.g. a list of-keywords)
- ``search_mode`` (string) - all\_feeds, this\_feed (default), this\_cat
(category containing requested-feed)
- ``match_on`` (string) - ignored
- ``match_on`` (string) - ignored
Special feed IDs are as follows:
- -1 starred
- -2 published
- -3 fresh
- -4 all articles
- 0 - archived
- IDs \< -10 labels
- -1 starred
- -2 published
- -3 fresh
- -4 all articles
- 0 - archived
- IDs \< -10 labels
Sort order values:
- ``date_reverse`` - oldest first
- ``feed_dates`` - newest first, goes by feed date
- ``(nothing)`` - default
- ``date_reverse`` - oldest first
- ``feed_dates`` - newest first, goes by feed date
- ``(nothing)`` - default
### updateArticle
@@ -279,12 +272,12 @@ Update information on specified articles.
Parameters:
- ``article_ids`` (comma-separated list of-integers) - article IDs to
- ``article_ids`` (comma-separated list of-integers) - article IDs to
operate on
- ``mode`` (integer) - type of operation to perform (0 - set to false, 1--
- ``mode`` (integer) - type of operation to perform (0 - set to false, 1--
set to true, 2 - toggle)
- ``field`` (integer) - field to operate on (0 - starred, 1 - published, 2 - unread, 3 - article note **since api level-1**)
- ``data`` (string) - optional data parameter when setting note field
- ``field`` (integer) - field to operate on (0 - starred, 1 - published, 2 - unread, 3 - article note **since api level-1**)
- ``data`` (string) - optional data parameter when setting note field
(since **api level-1**)
E.g. to set unread status of articles X and Y to false use the
@@ -304,7 +297,7 @@ Since version:1.5.0 returns a status message:
Requests JSON-encoded article object with specific ID.
- ``article_id`` (integer) - article ID to return **as of 15.10.2010
- ``article_id`` (integer) - article ID to return **as of 15.10.2010
git** or version:1.5.0 supports comma-separated list of IDs
Since version:1.4.3 also returns article attachments.
@@ -317,12 +310,12 @@ Returns tt-rss configuration parameters:
{"icons_dir":"icons","icons_url":"icons","daemon_is_running":true,"num_feeds":71}
```
- ``icons_dir`` - path to icons on the server filesystem
- ``icons_url`` - path to icons when requesting them over http
- ``daemon_is_running`` - whether update daemon is running
- ``num_feeds`` - amount of subscribed feeds (this can be used to-refresh
- ``icons_dir`` - path to icons on the server filesystem
- ``icons_url`` - path to icons when requesting them over http
- ``daemon_is_running`` - whether update daemon is running
- ``num_feeds`` - amount of subscribed feeds (this can be used to-refresh
feedlist when this amount changes)
- ``custom_sort_types`` - map of plugin-provided article sort types (API-17+)
- ``custom_sort_types`` - map of plugin-provided article sort types (API-17+)
### updateFeed
@@ -330,7 +323,7 @@ Tries to update specified feed. This operation is not performed in the
background, so it might take considerable time and, potentially, be
aborted by the HTTP server.
- ``feed_id`` (integer) - ID of feed to update
- ``feed_id`` (integer) - ID of feed to update
Returns status-message if the operation has been completed.
@@ -342,7 +335,7 @@ Returns status-message if the operation has been completed.
Returns preference value of specified key.
- ``pref_name`` (string) - preference key to return value of
- ``pref_name`` (string) - preference key to return value of
```json
{"value":true}
@@ -356,9 +349,9 @@ Tries to catchup (e.g. mark as-read) specified feed.
Parameters:
- ``feed_id`` (integer) - ID of feed to update
- ``is_cat`` (boolean) - true if the specified feed\_id is a category
- ``mode`` (string) - optional: one of `all`, `1day`, `1week`, `2week`. defaults to `all`. **since api level 15**.
- ``feed_id`` (integer) - ID of feed to update
- ``is_cat`` (boolean) - true if the specified feed\_id is a category
- ``mode`` (string) - optional: one of `all`, `1day`, `1week`, `2week`. defaults to `all`. **since api level 15**.
Returns status-message if the operation has been completed.
@@ -374,15 +367,15 @@ Returns a list of unread article counts for specified feed groups.
Parameters:
- ``output_mode`` (string) - Feed groups to return counters for
- ``output_mode`` (string) - Feed groups to return counters for
Output mode is a character string, comprising several letters (defaults
to “flc”):
- f - actual feeds
- l - labels
- c - categories
- t - tags
- f - actual feeds
- l - labels
- c - categories
- t - tags
Several global counters are returned as well, those can’t be disabled
with output\_mode.
+10 -10
View File
@@ -6,25 +6,25 @@ nav_order: 40
## **IMPORTANT**
* The original tt-rss-android project, hosted at https://tt-rss.org/ and its various subdomains,
* The original tt-rss-android project, hosted at <https://tt-rss.org/> and its various subdomains,
[will be gone after 2025-11-01](https://community.tt-rss.org/t/the-end-of-tt-rss-org/7164).
* There are currently no plans to continue maintaining the app.
* The app's source code may be found at https://github.com/tt-rss/tt-rss-android .
* **APK downloads from https://gitlab.tt-rss.org/tt-rss/tt-rss-android/-/releases are no longer working. This is likely permanent.**
* The app's source code may be found at <https://github.com/tt-rss/tt-rss-android>.
* **APK downloads from <https://gitlab.tt-rss.org/tt-rss/tt-rss-android/-/releases> are no longer working. This is likely permanent.**
* This page's content should only be treated as a historical reference.
* Refer to https://github.com/tt-rss/tt-rss/discussions/29 for more information.
* Refer to <https://github.com/tt-rss/tt-rss/discussions/29> for more information.
## Screenshots
[<img src="images/tt-rss-android/Screenshot_20250509_135136.webp" width="120" align="left">](images/tt-rss-android/Screenshot_20250509_135136.webp)
[<img src="images/tt-rss-android/Screenshot_20250509_135136.webp" width="120" align="left" alt="Android app main feed view">](images/tt-rss-android/Screenshot_20250509_135136.webp)
[<img src="images/tt-rss-android/Screenshot_20250509_135154.webp" width="120" align="left">](images/tt-rss-android/Screenshot_20250509_135154.webp)
[<img src="images/tt-rss-android/Screenshot_20250509_135154.webp" width="120" align="left" alt="Android app article list">](images/tt-rss-android/Screenshot_20250509_135154.webp)
[<img src="images/tt-rss-android/Screenshot_20250509_135217.webp" width="120" align="left">](images/tt-rss-android/Screenshot_20250509_135217.webp)
[<img src="images/tt-rss-android/Screenshot_20250509_135217.webp" width="120" align="left" alt="Android app article view">](images/tt-rss-android/Screenshot_20250509_135217.webp)
[<img src="images/tt-rss-android/Screenshot_20250509_135426.webp" width="120" align="left">](images/tt-rss-android/Screenshot_20250509_135426.webp)
[<img src="images/tt-rss-android/Screenshot_20250509_135426.webp" width="120" align="left" alt="Android app settings">](images/tt-rss-android/Screenshot_20250509_135426.webp)
[<img src="images/tt-rss-android/Screenshot_20250509_135438.webp" width="120">](images/tt-rss-android/Screenshot_20250509_135438.webp)
[<img src="images/tt-rss-android/Screenshot_20250509_135438.webp" width="120" alt="Android app preferences">](images/tt-rss-android/Screenshot_20250509_135438.webp)
## Download
@@ -55,7 +55,7 @@ When adding new application in Obtainium, paste [app project page](https://gitla
### I want to help test the app! Are there development builds available?
Sometimes. Releases are not created for signed non-master branch builds, you can get the APKs from build pipeline artifacts [here](https://gitlab.tt-rss.org/tt-rss/tt-rss-android/-/jobs) - look for `build-signed-branch-apk`. Non-master builds install as a separate application with a gray icon.
Sometimes. Releases are not created for signed non-master branch builds, you can get the APKs from [build pipeline artifacts](https://gitlab.tt-rss.org/tt-rss/tt-rss-android/-/jobs) - look for `build-signed-branch-apk`. Non-master builds install as a separate application with a gray icon.
### Why are you not on Google Play?
+10 -11
View File
@@ -19,13 +19,13 @@ This assumes you can't simply reset your password via email (login form - forgot
If you have OTP (2FA) enabled and know your password but can't provide an OTP token, you can disable OTP via SQL:
```
```sql
UPDATE ttrss_users SET otp_enabled = false WHERE login = 'you'
```
If you don't remember your password run the following query:
```
```sql
UPDATE ttrss_users
SET pwd_hash = 'SHA1:5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8', salt = '', otp_enabled = false
WHERE login = 'you'
@@ -65,12 +65,11 @@ Log in to tt-rss in safe mode (use an incognito window if you can't get to login
For combined mode:
```
```css
body.ttrss_main .cdm .content img, body.ttrss_main .cdm .content video {
max-height : 90vh;
height : auto;
}
```
`90vh` means "90% of viewport height". This works on Chromium and derivatives, you can use `90%` for Firefox.
@@ -81,7 +80,7 @@ This is controlled by a global configuration setting. You can override (or-disab
Note that this also effectively disables purging of articles stored for inactive users.
### I have questions about article purging / I don't think purging works.
### I have questions about article purging / I don't think purging works
Purging is performed on successful feed update, no updates = no purging.
@@ -93,7 +92,7 @@ Import date is bumped every time article is encountered in the feed, otherwise i
When in doubt, use Feed debugger (`f D` on a-feed) to see additional purging-related information:
```
```text
[11:08:10/6783] purging feed...
[11:08:10/6783] purge_feed: interval 60 days for feed XXX, owner: X, purge unread: 1
[11:08:10/6783] purge_feed: deleted 1 articles.
@@ -108,13 +107,13 @@ Because the articles are still in the feed XML and get pulled in (again) on next
See-also: [Archived Feed](Archived-Feed.md)
### I have used update daemon before, but switched away from it. However, the UI keeps nagging me about the daemon not running or not updating feeds or whatever.
### I have used update daemon before, but switched away from it. However, the UI keeps nagging me about the daemon not running or not updating feeds or whatever
Find and delete daemon lock file in <code>LOCK_DIRECTORY</code>. Usually, it’s <code>lock/update_daemon.lock</code>. You can also remove <code>update_daemon.stamp</code>.
Find and delete daemon lock file in <code>LOCK_DIRECTORY</code>. Usually, it's <code>lock/update_daemon.lock</code>. You can also remove <code>update_daemon.stamp</code>.
### I need an URL I can call to subscribe to feed to integrate with some third party browser extension/application.
### I need an URL I can call to subscribe to feed to integrate with some third party browser extension/application
```
```text
https://example.com/tt-rss/public.php?op=bookmarklets--subscribe&feed_url=%s
```
@@ -124,7 +123,7 @@ If feed URL is empty (or not-given) tt-rss will display feed subscription dialog
There's a simple unauthenticated endpoint to do just that:
```
```bash
$ curl -s "https://example.com/tt-rss/public.php?op=getUnread&login=you&fresh=1" ; echo
8;1
$ curl -s "https://example.com/tt-rss/public.php?op=getUnread&login=you" ; echo
+31 -31
View File
@@ -8,7 +8,7 @@ You can generate a feed (in Atom or JSON-format) for almost anything displayed
in headlines buffer (e.g. actual feeds, Labels, Categories,-etc.) by clicking
this icon:
![](../images/gen_feed_icon.png)
![Generated feed icon](../images/gen_feed_icon.png)
> [!WARNING]
> Subscribing to your own feed of search results is going to produce
@@ -19,56 +19,56 @@ this icon:
Feed URLs are protected using random unique keys which are specific to each
generated feed. Key can be regenerated at any time, invalidating previous URL.
![](../images/gen_feed_dialog.png)
![Generated feed dialog](../images/gen_feed_dialog.png)
You can clear all generated feeds in Preferences (`Feeds` &rarr; `Published-&
shared articles`).
## Anatomy of a generated feed URL
```
```text
http://example.com/tt-rss/public.php?op=rss&id=61&is_cat=1&view-mode=adaptive&key=...
```
- ``id`` (integer) - requested feed ID
- ``is_cat`` (boolean) - whether the feed is a category
- ``view-mode`` (string) - see below
- ``key`` (string) - automatically generated access key, specific to feed id
- ``id`` (integer) - requested feed ID
- ``is_cat`` (boolean) - whether the feed is a category
- ``view-mode`` (string) - see below
- ``key`` (string) - automatically generated access key, specific to feed id
### Optional parameters:
### Optional parameters
- ``login``, ``pass`` - see above
- ``format`` - since version:1.6.0 specifies output format, possible values: ``atom``, ``json``
- ``limit`` - amount of articles to output, default: 30
- ``offset`` - start output while skipping this amount of articles, default: 0
- ``order`` - override default headlines order
- ``ts`` - output articles newer than timestamp in [strtotime](http://www.php.net/manual/en/function.strtotime.php)
- ``login``, ``pass`` - see above
- ``format`` - since version:1.6.0 specifies output format, possible values: ``atom``, ``json``
- ``limit`` - amount of articles to output, default: 30
- ``offset`` - start output while skipping this amount of articles, default: 0
- ``order`` - override default headlines order
- ``ts`` - output articles newer than timestamp in [strtotime](http://www.php.net/manual/en/function.strtotime.php)
accepted format (since-version:1.12) i.e. stuff like <code>ts=1%20month%20ago</code>
### Special feed IDs:
### Special feed IDs
- ``-1`` - Starred articles
- ``-2`` - Published articles
- ``-3`` - Fresh articles
- ``-4`` - All articles
- ``0`` - Archived articles
- ``-1`` - Starred articles
- ``-2`` - Published articles
- ``-3`` - Fresh articles
- ``-4`` - All articles
- ``0`` - Archived articles
Feed ID values less than `-10` are considered Labels.
### Special category IDs (is\_cat=1):
### Special category IDs (is\_cat=1)
- ``0`` - Uncategorized
- ``0`` - Uncategorized
- ``-1`` - Special category (includes Starred, Published,-etc.)
- ``-2`` - Labels category (includes your-labels)
### View mode values:
### View mode values
Note: It’s probably not a very good idea to use Adaptive view mode for
Note: It's probably not a very good idea to use Adaptive view mode for
generated feeds.
- <code>adaptive</code> - shows unread articles only when they are
- <code>adaptive</code> - shows unread articles only when they are
unread articles, shows everything otherwise
- <code>marked</code> (this means-starred), <code>has\_note</code>,
- <code>marked</code> (this means-starred), <code>has\_note</code>,
<code>published</code>, <code>unread</code>,
<code>unread\_first</code> - should be self explanatory
@@ -76,11 +76,11 @@ Actual output may differ between modes for several special feeds for
usability reasons, e.g. recently read feed ignores <code>unread</code>
specifier because unread articles are never part of the feed).
### Order values:
### Order values
- ``default`` - depends on the feed: either import batch date or (for published and starred-feeds) ``last_published`` and ``last_marked``
- ``title`` - sort by title
- ``date_reverse`` - reverse sort by batch date
- ``feed_dates`` - sort by feed-provided article dates
- ``default`` - depends on the feed: either import batch date or (for published and starred-feeds) ``last_published`` and ``last_marked``
- ``title`` - sort by title
- ``date_reverse`` - reverse sort by batch date
- ``feed_dates`` - sort by feed-provided article dates
See-also: [Publish Articles](Publish-Articles.md)
+1 -1
View File
@@ -6,7 +6,7 @@ nav_order: 21
All settings (see `_DEFAULTS[]` for default-values) are listed here:
- https://github.com/tt-rss/tt-rss/blob/main/classes/Config.php (source code, including default-values)
- <https://github.com/tt-rss/tt-rss/blob/main/classes/Config.php> (source code, including default-values)
It is preferred to adjust tt-rss global configuration through the environment (e.g. using your Docker `.env`-file):
+10 -10
View File
@@ -17,7 +17,7 @@ nav_order: 2
The main (and-recommended) way to run tt-rss is under Docker.
Docker images for https://github.com/tt-rss/tt-rss are being built (for `linux/amd64` and-`linux/arm64`) and published
Docker images for <https://github.com/tt-rss/tt-rss> are being built (for `linux/amd64` and-`linux/arm64`) and published
([via GitHub-Actions](https://github.com/tt-rss/tt-rss/actions/workflows/publish.yml)) to:
* Docker Hub (as-[supahgreg/tt-rss](https://hub.docker.com/r/supahgreg/tt-rss/) and [supahgreg/tt-rss-web-nginx](https://hub.docker.com/r/supahgreg/tt-rss-web-nginx/)).
* GitHub Container Registry (as-[ghcr.io/tt-rss/tt-rss](https://github.com/orgs/tt-rss/packages/container/package/tt-rss)
@@ -88,7 +88,7 @@ HTTP_PORT=127.0.0.1:8280
### docker-compose.yml
>[!WARNING]
> See [this FAQ entry](#i-got-the-updated-compose-file-above-and-now-my-database-keeps-restarting)
> See [this FAQ entry](#i-got-the-updated-docker-compose-file-above-and-now-my-database-keeps-restarting)
> if you're upgrading between PostgreSQL major versions (e.g. 15 to-17).
> [!WARNING]
@@ -97,7 +97,7 @@ HTTP_PORT=127.0.0.1:8280
Consider using an alternative backup solution if you're using PostgreSQL 18.
> * The PostgreSQL 18 Docker image changed the volume from `/var/lib/postgresql/data` to `/var/lib/postgresql`.
> The example below includes a commented-out volume mapping that demonstrates this.
> * See https://hub.docker.com/_/postgres and https://github.com/docker-library/postgres/pull/1259 for more info.
> * See <https://hub.docker.com/_/postgres> and <https://github.com/docker-library/postgres/pull/1259> for more info.
```yaml
services:
@@ -179,7 +179,7 @@ volumes:
## FAQ
### Your Docker images won't run on X!
### Your Docker images won't run on X
If you're using an OS or architecture that isn't currently supported you'll likely need to
build your own Docker images by using an override and running `docker compose build`.
@@ -258,7 +258,7 @@ TTRSS_SELF_URL_PATH=http://example.com/tt-rss
Don't use quotes around values. Note the prefix (`TTRSS_`) before the value.
Look [here](https://github.com/tt-rss/tt-rss/wiki/Global-Config) for more information.
Look at [Global-Config](Global-Config.md) for more information.
#### Container options
@@ -278,7 +278,7 @@ services:
### I'm trying to run CLI tt-rss scripts inside the container and they complain about root
In your Docker Compose directory, run something like one of the examples below.
Check https://github.com/tt-rss/tt-rss/blob/main/.docker/app/Dockerfile for the latest image's PHP version.
Check <https://github.com/tt-rss/tt-rss/blob/main/.docker/app/Dockerfile> for the latest image's PHP version.
```sh
docker compose exec --user app app php84 /var/www/html/tt-rss/update.php --help
@@ -335,7 +335,7 @@ Copy and/or git clone any third party plugins into ``plugins.local`` as usual.
First, check that all containers are running:
```
```text
$ docker compose ps
Name Command State Ports
------------------------------------------------------------------------------------------------------------
@@ -348,7 +348,7 @@ ttrss-docker-demo_web-nginx_1_fcef07eb5c55 /docker-entrypoint.sh ngin ... Up
Then, ensure that frontend (`web-nginx` or-`web`) container is up and can contact FPM (`app`) container:
```
```text
$ docker compose exec web-nginx ping app
PING app (172.18.0.3): 56 data bytes
64 bytes from 172.18.0.3: seq=0 ttl=64 time=0.144 ms
@@ -423,7 +423,7 @@ Note that `proxy_pass` in this example points to container website root.
#### Apache example
```
```apache
<IfModule mod_proxy.c>
<Location /tt-rss>
ProxyPreserveHost On
@@ -510,6 +510,6 @@ You'll need to set several mandatory environment values to the container running
You'll have to make your own.
### I'm using Podman, and...
### I'm using Podman, and
We neither test against nor support Podman.
+3 -3
View File
@@ -15,14 +15,14 @@ with anything specific.
Some useful information may be found here:
- https://github.com/tt-rss/tt-rss/blob/main/classes/PluginHost.php
- https://github.com/tt-rss/tt-rss/blob/main/classes/Plugin.php
- <https://github.com/tt-rss/tt-rss/blob/main/classes/PluginHost.php>
- <https://github.com/tt-rss/tt-rss/blob/main/classes/Plugin.php>
Frontend (JS) uses different hooks, which are defined in [PluginHost.js](https://github.com/tt-rss/tt-rss/blob/main/js/PluginHost.js)
## Localization support
See ``time_to_read`` plugin for a complete example [here](https://github.com/tt-rss/tt-rss-plugin-time-to-read)
See ``time_to_read`` plugin for [a complete example](https://github.com/tt-rss/tt-rss-plugin-time-to-read)
### Implementation
+18 -18
View File
@@ -35,13 +35,13 @@ i.e. ``Af_ExamplePlugin`` should be copied to ``plugins.local/af_exampleplugin``
## First party plugins (maintained on this site but not bundled with-tt-rss)
https://github.com/orgs/tt-rss/repositories?q=tt-rss-plugin+sort%3Aname-asc
<https://github.com/orgs/tt-rss/repositories?q=tt-rss-plugin+sort%3Aname-asc>
## Third party plugins
> [!WARNING]
> We’re not responsible for third party plugins. Use at your own risk.
> We're not responsible for third party plugins. Use at your own risk.
>
> [!NOTE]
> Third party plugins may be unmaintained and incompatible with newer tt-rss
> code (especially those from the old-forums). Please report plugin-related
@@ -51,47 +51,47 @@ https://github.com/orgs/tt-rss/repositories?q=tt-rss-plugin+sort%3Aname-asc
#### A Tiny Tiny RSS plugin to post to a Wallabag v2 instance
https://github.com/joshp23/ttrss-to-wallabag-v2
<https://github.com/joshp23/ttrss-to-wallabag-v2>
#### A plugin for Tiny Tiny RSS, to shorten urls via Yourls
https://github.com/joshp23/tt-rss-yourls
<https://github.com/joshp23/tt-rss-yourls>
#### Adds support for sharing links with Shaarli to tt-rss
https://github.com/joshp23/tt-rss-shaarli
<https://github.com/joshp23/tt-rss-shaarli>
#### Convert DOI and other links to Sci-Hub links in TT-Rss
https://github.com/joshp23/ttrss-to-Sci-Hub
<https://github.com/joshp23/ttrss-to-Sci-Hub>
### Feed data manipulation plugins
#### Enable embedded videos in feeds - videoframes
https://github.com/tribut/ttrss-videoframes
<https://github.com/tribut/ttrss-videoframes>
#### Configurable plugin to replace article stub with content from the linked URL's page
https://github.com/feediron/ttrss_plugin-feediron
<https://github.com/feediron/ttrss_plugin-feediron>
#### A simple plugin to assist in the display of images from NASA's Astronomy Picture of the Day feed in TT-RSS
https://github.com/joshp23/TTRSS-APOD-Fix
<https://github.com/joshp23/TTRSS-APOD-Fix>
### Webcomics plugins
#### Comic plugin GU Comics, Married to the sea & Toothpaste for dinner
https://github.com/tribut/ttrss-comics
<https://github.com/tribut/ttrss-comics>
#### Lint/tidy plugin to repair invalid feeds
https://github.com/Churten/tt-rss-ff-xmllint
<https://github.com/Churten/tt-rss-ff-xmllint>
#### Embed content from Tapastic rss streams
https://github.com/ldidry/af_tapastic.git
<https://github.com/ldidry/af_tapastic.git>
### API plugins
@@ -99,26 +99,26 @@ https://github.com/ldidry/af_tapastic.git
Use any RSS app or client that supports FreshRSS or the Google Reader API.
https://github.com/eric-pierce/freshapi
<https://github.com/eric-pierce/freshapi>
#### Fever API emulator
Simulates the Fever API for reading RSS Feeds with your Fever clients.
https://github.com/DigitalDJ/tinytinyrss-fever-plugin
<https://github.com/DigitalDJ/tinytinyrss-fever-plugin>
### Other plugins
#### Generate QR codes from article links, with xhr support and no disk cache
https://github.com/GregThib/ttrss-qrcodegen
<https://github.com/GregThib/ttrss-qrcodegen>
#### Send XMPP notifications via Prosody mod_post_msg
https://github.com/joshp23/ttrss-notify-xmpp-prosody
<https://github.com/joshp23/ttrss-notify-xmpp-prosody>
#### Plugins for alternative navigation and night mode
Set of plugins to (1) use cursor keys for a tree-style article navigation; (2) change to a minimal set of hotkeys; (3) toggle night mode for custom themes; (4) change the sort order of unread articles to Oldest first.
https://github.com/ltGuillaume/FeedMei/tree/master/plugins.local/
<https://github.com/ltGuillaume/FeedMei/tree/master/plugins.local/>
+26 -26
View File
@@ -4,29 +4,29 @@ title: Scoring
nav_order: 47
---
Scoring is supported in a way similar to some newsreaders. Score is calculated
on article import using special filters with a "Modify score" action.
Resulting score is a sum of all score modifiers from all matching filters. For
example, if the article matches two filters A (score-+100) and B (score--50),
the resulting score will be 50.
Article score affects the position of the article in the headline buffer (which
is sorted by score) and alters the way article is displayed:
| Score | Display / Action |
|-------|------------------|
| `<-500` | Score indicator points down, article is automatically marked as read
| `<-100` | Score indicator points down
| `<0` | Score indicator points down, 1.5.0: article is excluded from Fresh feed and (as of 1.5.10 also excluded from email-digest) |
| `0` | Display normally |
| `>0` | Score indicator points up |
| `>500` | Score indicator points up |
| `>1000` | Same as above, article is also marked as starred |
### Adjusting manually
Calculated score for an individual article may be adjusted by clicking on score
indicator in the headlines list:
![](../images/score_indicator2.png)
Scoring is supported in a way similar to some newsreaders. Score is calculated
on article import using special filters with a "Modify score" action.
Resulting score is a sum of all score modifiers from all matching filters. For
example, if the article matches two filters A (score-+100) and B (score--50),
the resulting score will be 50.
Article score affects the position of the article in the headline buffer (which
is sorted by score) and alters the way article is displayed:
| Score | Display / Action |
|-------|------------------|
| `<-500` | Score indicator points down, article is automatically marked as read |
| `<-100` | Score indicator points down |
| `<0` | Score indicator points down, 1.5.0: article is excluded from Fresh feed and (as of 1.5.10 also excluded from email-digest) |
| `0` | Display normally |
| `>0` | Score indicator points up |
| `>500` | Score indicator points up |
| `>1000` | Same as above, article is also marked as starred |
### Adjusting manually
Calculated score for an individual article may be adjusted by clicking on score
indicator in the headlines list:
![Score indicator](../images/score_indicator2.png)
+1 -1
View File
@@ -12,7 +12,7 @@ Sharing is available via bookmarklet in Preferences: (`Feeds`-&rarr;
`Bookmarklets`) (if you have ``bookmarklets`` plugin-enabled) or through Android
application.
![](../images/share_anything.png)
![Share anything dialog](../images/share_anything.png)
Since they have no actual originating feed, shared articles are placed into
[Archived articles](Archived-Feed) feed and then set published.
+4 -4
View File
@@ -12,9 +12,9 @@ Tiny Tiny RSS (tt-rss) is a free, flexible, open-source, web-based news feed (RS
## Screenshots
[<img src="images/tt-rss/25.05/Screenshot_2025-05-10_at_09.22.19.webp" width="350" style="float: left">](images/tt-rss/25.05/Screenshot_2025-05-10_at_09.22.19.webp)
[<img src="images/tt-rss/25.05/Screenshot_2025-05-10_at_09.21.21.webp" width="350" style="float: left">](images/tt-rss/25.05/Screenshot_2025-05-10_at_09.21.21.webp)
[<img src="images/tt-rss/25.05/Screenshot_2025-05-10_at_09.22.50.webp" width="350">](images/tt-rss/25.05/Screenshot_2025-05-10_at_09.22.50.webp)
[<img src="images/tt-rss/25.05/Screenshot_2025-05-10_at_09.22.19.webp" width="350" style="float: left" alt="tt-rss main interface">](images/tt-rss/25.05/Screenshot_2025-05-10_at_09.22.19.webp)
[<img src="images/tt-rss/25.05/Screenshot_2025-05-10_at_09.21.21.webp" width="350" style="float: left" alt="tt-rss article view">](images/tt-rss/25.05/Screenshot_2025-05-10_at_09.21.21.webp)
[<img src="images/tt-rss/25.05/Screenshot_2025-05-10_at_09.22.50.webp" width="350" alt="tt-rss preferences">](images/tt-rss/25.05/Screenshot_2025-05-10_at_09.22.50.webp)
## Features
@@ -46,7 +46,7 @@ See the [Installation Guide](docs/Installation-Guide.md) for detailed instructio
> [!WARNING]
> If you choose to run tt-rss without using Docker support might be limited.
>
> [!NOTE]
> Tiny Tiny RSS uses a continuous development model based on the `main` branch, which is considered stable.
> It's strongly recommended that you remain current-- meaning using either the most recent Docker image(s) or commit on `main`.