Commit Graph

7100 Commits

Author SHA1 Message Date
Alexandre Alapetite
08942074d7 Return more info and status from httpGet()
Useful for extensions and core code needing HTTP status information
2026-04-17 12:38:11 +02:00
Alexandre Alapetite
075101fa66 New extension methods to get typed configuration values (#8696)
And also correctly scoped in a sub-key per extension, instead of risking collisions between extensions.
2026-04-17 09:12:00 +02:00
Rasmus
814d8ccdb3 Fix greader JSON encoding on malformed UTF-8 (#8697)
### Motivation
- The GReader API enabled `JSON_THROW_ON_ERROR` globally and streams items with `json_encode()` without catching `JsonException`, so malformed UTF-8 in feed-derived fields could trigger an uncaught exception and abort streaming responses (resulting in 500/partial responses). 

### Description
- Add `JSON_INVALID_UTF8_SUBSTITUTE` to `JSON_OPTIONS` in `p/api/greader.php` so `json_encode()` substitutes invalid UTF-8 bytes instead of failing while keeping `JSON_THROW_ON_ERROR` and other flags unchanged. 

### Testing
- Ran a syntax check with `php -l p/api/greader.php`, which completed successfully.

------
[Codex Task](https://chatgpt.com/codex/cloud/tasks/task_e_69b8831ec0c48324810ea9ec05c16493)
2026-04-16 16:03:39 +02:00
pe1uca
6d76dfe822 Improve add feed (#8683)
* Reorder add feed and add category

Implements some suggestions made in https://github.com/FreshRSS/FreshRSS/issues/2014

Changes proposed in this pull request:

- Move "Add feed" as the first section of the Subscriptions add page.  
- Add checkbox "Keep adding feeds" to stay on the "add" page.  

How to test the feature manually:

1. Navigate to the page "Add a feed or category"  
2. See new order.  
3. Type URL of a new feed, select a category, and check "Keep adding feeds "  
4. See FreshRSS confirm the feed was added while staying in the same page.  

* Add checkbox to stay in the add feed page

* Update i18n

* PHP CS

* Manually set i18n progress

* Change i18n

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-04-16 08:23:43 +02:00
Christian Weiske
bf4dcb3ddb Fix German "timeago" translation (#8689)
Related: https://github.com/FreshRSS/FreshRSS/pull/8670
2026-04-09 20:55:10 +02:00
Alexandre Alapetite
d16af9f7df Fix change sorting during paging (#8688)
Continuation ID should be reset when changing sorting order, especially between DESC and ASC but also the other variants.
2026-04-09 09:07:14 +02:00
dependabot[bot]
18683bda2b Bump addressable in /docs in the bundler group across 1 directory (#8685)
Bumps the bundler group with 1 update in the /docs directory: [addressable](https://github.com/sporkmonger/addressable).


Updates `addressable` from 2.8.8 to 2.9.0
- [Changelog](https://github.com/sporkmonger/addressable/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sporkmonger/addressable/compare/addressable-2.8.8...addressable-2.9.0)

---
updated-dependencies:
- dependency-name: addressable
  dependency-version: 2.9.0
  dependency-type: indirect
  dependency-group: bundler
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-08 12:12:25 +02:00
Alexandre Alapetite
295266adf6 i18n:fr 8672 (#8682)
Not in time for https://github.com/FreshRSS/FreshRSS/pull/8672
2026-04-07 23:16:32 +02:00
Timon Klinkert
5f712072f7 Added DenuxPlays to credits list (#8680)
* Added DenuxPlays to credits list

Ref: https://github.com/FreshRSS/FreshRSS/pull/8669#issuecomment-4185158932

* Alphabetic

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-04-07 23:06:43 +02:00
pe1uca
d5230ca0d2 Feed list hook traversable (#8675)
* Refactor FeedsListBeforeActualize to accept Traversable as a response.

* Fix returning the first feed

* Fix object not being updated with all changes to the DB.

* Update app/Controllers/feedController.php

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-04-07 22:59:54 +02:00
Christian Weiske
1acc646222 Show time since when a feed has problems + new timeago() method and i18n plurals (#8670)
Closes https://github.com/FreshRSS/FreshRSS/issues/8508

Changes proposed in this pull request:

- Use an integer for `Feed::error` everywhere (follow up to #8646)
- Extract `Entry::machineReadableDate()` into function for use in HTML templates
- Add `timeago()` function that converts a unix timestamp into a "4 weeks ago" string
- Show the last successful feed update, and the last erroneous update

How to test the feature manually:

1. Update a feed
2. Modify the feed URL in the database and set it to a non-existing URL
3. Update the feed again
4. Open the "Manage feed" and see the expanded error message:

>  Blast! This feed has encountered a problem. If this situation persists, please verify that it is still reachable.
> Last successful update 3 hours ago, last erroneous update 1 hour ago. 

You can hover the relative dates to see the timestamp.

* Make Feed::error an int everywhere

Related: https://github.com/FreshRSS/FreshRSS/pull/8646

* Extract timestamptomachinedate()

.. for later usage in the feed error time display.

* Show time since when a feed has problems

We add our own "timeago" function that converts a unix timestamp
into a "4 weeks ago" string.

Resolves: https://github.com/FreshRSS/FreshRSS/issues/8508

* Add new translation keys

* i18n fr, en-US

* Minor XHTML preference

* Slightly shorter rewrite, also hopefully easier to read

* Rewrite to allow (simple) plural
I also moved some functions around for hopefully a more generic and better structure.
I made some changes for the sake of speed (e.g. second-based logic instead of datetime intervals).
Note: I used automatic translation as I was worried it would be too complicated to explain to translators... I proofread the few languages I have some familiarity with.

* Add reference to CLDR

* Slightly more compact syntax

* Always show last update, fix case of unknown error date

* Remove forgotten span

* No need for multi-lines anymore

* Fix error date thresshold

* plurals forms

* Extract gettext formula conversion script to cli

* Simplify a bit

* Escort excess parentheses to the door

* Simplify

* Avoid being too clever in localization

* Fix German

* Fix plural TODO parsing

* Ignore en-US translation

* make fix-all

* git update-index --chmod=+x cli/compile.plurals.php

* Heredoc indent PHP 7.3+

* compileAll: Continue on error

* PHP strict comparisons

* Light logical simplification

* Cache plural_message_families

* Avoid case of empty value

* A bit of documentation

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Co-authored-by: Frans de Jonge <frans@clevercast.com>
Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2026-04-07 22:56:02 +02:00
Inverle
cc64991c16 Implement setting for iframe referrer allowlist (#8672)
* Implement setting for iframe referrer allowlist

* Improve config label
2026-04-07 18:29:27 +02:00
pe1uca
c44cd2b08f Category autoread by guid (#8673)
* Add configuration to mark same GUID as read in category.

Implement suggestion mentioned in #8641

Changes proposed in this pull request:

- Add a configuration to the categories to automatically mark entries as read if the same GUID is present in recent entries.  

How to test the feature manually:

1. Create a category. Check the option "Mark an article as read… if an identical GUID already exists [...]"  
2. Enable debug logs, or add an extension which registers to the hook `Minz_HookType::EntryAutoRead`.  
3. Add feeds which might have the same GUID.  
  For example: https://www.reddit.com/r/technology/hot.rss, https://www.reddit.com/r/technology/rising.rss, https://www.reddit.com/r/technology/best.rss, and https://www.reddit.com/r/technology/new.rss
4. See the logs "Mark GUID as read[...]", or the effect of the extension.  

* Implement behavior to mark same GUID as read in category.

* Update documentation

* Update i18n

* Fix PHP CS report

* Fix missing argument

* Fixes

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-04-05 19:41:37 +02:00
Timon Klinkert
d5f3126d6c Also push to github registry (#8669)
Closes https://github.com/FreshRSS/FreshRSS/issues/8647

Changes proposed in this pull request:

- add push to ghcr
2026-04-03 22:34:05 +02:00
Inverle
57471eda19 Don't mark as read if middle click is outside of article link (#8553)
* Don't mark as read if middle click is outside of article link

Closes https://github.com/FreshRSS/FreshRSS/issues/6451

https://developer.mozilla.org/en-US/docs/Web/API/Element/auxclick_event

> The auxclick event is fired at an [Element](https://developer.mozilla.org/en-US/docs/Web/API/Element) when a non-primary pointing device button (any mouse button other than the primary—usually leftmost—button) has been pressed and released both within the same element.

> auxclick is fired after the [mousedown](https://developer.mozilla.org/en-US/docs/Web/API/Element/mousedown_event) and [mouseup](https://developer.mozilla.org/en-US/docs/Web/API/Element/mouseup_event) events have been fired, in that order.

* Split up `onmouseup` and `onauxclick` logic

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>

---------

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2026-04-03 22:32:19 +02:00
Matheus Roberson
cf5cfeff58 Add a form to create new user queries on the User Queries page (#8623)
* Add form to create user queries
Closes https://github.com/FreshRSS/FreshRSS/issues/6361

Changes proposed in this pull request:

- Add a form to create new user queries on the User Queries page
- Fix the controller to properly handle request data

How to test the feature manually:

1. Open FreshRSS
2. Open Settings
3. Click User queries
4. Create new user query 

* Add tranlation key for title in create new user query
* Fix 'for' conflict with aside in labels
* Fix input widths

* i18n: fr

* make fix-all

* Fix conditions in configureController

* Remove token condition

* Fix ctype_digits condition

* Fix errors

* Fix phpStan error

* Fix syntax and state for checkboxes

* Add new way to create user queries in docs

* Compress image more

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-04-03 22:29:44 +02:00
Alexandre Alapetite
3fac1bdf20 Fix entry->lastSeen in case of feed errors (#8646)
* Fix entry->lastSeen in case of feed errors
Fix https://github.com/FreshRSS/FreshRSS/issues/8643
Fix lastSeen and feed's lastUpdate going out of sync

Previous related PRs:
* https://github.com/FreshRSS/FreshRSS/pull/5404
* https://github.com/FreshRSS/FreshRSS/pull/5382
* https://github.com/FreshRSS/FreshRSS/pull/5315

* Minor uneeded change
2026-04-02 12:30:51 +02:00
Alexandre Alapetite
b523cef71b Manual npm update (waiting for ESLint 10 support) (#8668)
* Manual npm update (waiting for ESLint 10 support)
Instead of https://github.com/FreshRSS/Extensions/pull/448
While waiting for https://github.com/neostandard/neostandard/issues/350

* Bump min node version based on dependencies
Needed for e.g. CSSTools
2026-04-02 12:07:15 +02:00
dependabot[bot]
bbf772af53 Bump docker/setup-qemu-action from 3 to 4 (#8664)
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3 to 4.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 11:24:35 +02:00
dependabot[bot]
cb497e4055 Bump actions/deploy-pages from 4 to 5 (#8665)
Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 4 to 5.
- [Release notes](https://github.com/actions/deploy-pages/releases)
- [Commits](https://github.com/actions/deploy-pages/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/deploy-pages
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 10:49:42 +02:00
dependabot[bot]
6d1736d398 Bump docker/build-push-action from 6 to 7 (#8662)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6 to 7.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6...v7)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 09:32:59 +02:00
dependabot[bot]
d04aee71cc Bump phpstan/phpstan from 2.1.44 to 2.1.46 (#8663)
---
updated-dependencies:
- dependency-name: phpstan/phpstan
  dependency-version: 2.1.46
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 09:27:52 +02:00
dependabot[bot]
48a6275620 Bump docker/login-action from 3 to 4 (#8666)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3 to 4.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 09:27:33 +02:00
dependabot[bot]
00018239b0 Bump markdownlint-cli from 0.47.0 to 0.48.0 (#8661)
Bumps [markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli) from 0.47.0 to 0.48.0.
- [Release notes](https://github.com/igorshubovych/markdownlint-cli/releases)
- [Commits](https://github.com/igorshubovych/markdownlint-cli/compare/v0.47.0...v0.48.0)

---
updated-dependencies:
- dependency-name: markdownlint-cli
  dependency-version: 0.48.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 09:26:09 +02:00
dependabot[bot]
4a95e800f8 Bump the stylelint group with 3 updates (#8660)
Bumps the stylelint group with 3 updates: [stylelint](https://github.com/stylelint/stylelint), [stylelint-order](https://github.com/hudochenkov/stylelint-order) and [@stylistic/stylelint-plugin](https://github.com/stylelint-stylistic/stylelint-stylistic).


Updates `stylelint` from 17.4.0 to 17.6.0
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/17.4.0...17.6.0)

Updates `stylelint-order` from 7.0.1 to 8.1.1
- [Release notes](https://github.com/hudochenkov/stylelint-order/releases)
- [Changelog](https://github.com/hudochenkov/stylelint-order/blob/master/CHANGELOG.md)
- [Commits](https://github.com/hudochenkov/stylelint-order/compare/7.0.1...8.1.1)

Updates `@stylistic/stylelint-plugin` from 5.0.1 to 5.1.0
- [Release notes](https://github.com/stylelint-stylistic/stylelint-stylistic/releases)
- [Changelog](https://github.com/stylelint-stylistic/stylelint-stylistic/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint-stylistic/stylelint-stylistic/compare/v5.0.1...v5.1.0)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-version: 17.6.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: stylelint
- dependency-name: stylelint-order
  dependency-version: 8.1.1
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: stylelint
- dependency-name: "@stylistic/stylelint-plugin"
  dependency-version: 5.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: stylelint
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 09:25:41 +02:00
dependabot[bot]
c7bd02a933 Bump ruby/setup-ruby from 1.288.0 to 1.299.0 (#8667)
Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.288.0 to 1.299.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb)
- [Commits](09a7688d3b...3ff19f5e2b)

---
updated-dependencies:
- dependency-name: ruby/setup-ruby
  dependency-version: 1.299.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 09:21:53 +02:00
pe1uca
bca9a5586e Hook to modify the list of feeds to actualize (#8655)
* Add FeedsListBeforeActualize hook.

Closes #8650
Implement new hook to allow extensions to modify the list of feeds to actualize.  

How to test the feature manually:

1. Add several feeds from a single site (e.g. reddit and YT).  
2. Add feeds to other sites.  
3. Add and enable the extension https://github.com/pe1uca/xExtension-Declumping  
4. Call `php app/actualize_script.php` to update feeds with a different order.  

A log like this one is needed to properly see the behavior.  
```php
foreach ($feeds as $key => $value) {
    syslog(LOG_INFO, "$key: {$value->name()} ({$value->url()})");
}
```

Sort in alphabetical order.

* Implement call to hook

* Remove duplicate return

* Fix PHPStan error

* Update documentation

* Sanitize hook response

* Markdown cleaning

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-04-02 09:21:18 +02:00
Alexandre Alapetite
1a337ecdfb Fix composer reference to our SimplePie fork (#8659)
Forgotten from https://github.com/FreshRSS/FreshRSS/pull/8633
https://github.com/FreshRSS/simplepie/pull/73
2026-04-01 12:11:56 +02:00
Bowen
3df523fee7 update contributors list (#8656)
* update contributors list

* Alphabetic

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-03-31 10:45:49 +02:00
Michael
ef57d48408 Add Michael to CREDITS (#8657)
https://github.com/FreshRSS/FreshRSS/pull/8631
2026-03-31 10:41:01 +02:00
Bowen
ae2d0d7fe8 feat(favicon): Use feed-provided icon URL (<image><url>, Atom icon/logo, JSON Feed icon) (#8633)
* prefer feed.icon
Closes #5518

Changes proposed in this pull request:

- When a feed provides an icon URL (<image><url> in RSS 2.0/1.0, <atom:icon>/<atom:logo> in Atom, icon/favicon fields in JSON Feed), that URL is stored as a feedIconUrl attribute on the feed and used as the primary source for favicon downloads, instead of scraping the feed's website for <link rel="icon"> tags.
- If the feed-provided icon URL fails to return a valid image, the existing fallback chain (website HTML favicon search → /favicon.ico) is preserved.
Custom favicons uploaded by users always take priority and are never overridden.

How to test the feature manually:

1. Add an RSS feed that includes a <image><url> element (e.g. an RSSHub feed: `https://rsshub.app/youtube/channel/UC2cRwTuSWxxEtrRnT4lrlQA`). After actualization, confirm the feed's favicon matches the avatar image from the feed, not the Bilibili site favicon.
2. Add an Atom feed containing <atom:icon> or <atom:logo> Confirm the feed icon is used.
3. Add a JSON Feed (spec: icon field). Confirm icon is preferred over favicon when both are present.
4. Temporarily point a feed's <image><url> to a broken URL. Confirm FreshRSS falls back to the website favicon silently.
5. Upload a custom favicon for a feed, then actualize it. Confirm the custom favicon is not replaced.

<img width="470" height="317" alt="image" src="https://github.com/user-attachments/assets/17445154-d94c-44d6-b7e7-019bf24c5767" />

* fix(favicon): use htmlspecialchars_decode for feed image URL

* Decode quotes as well

* New function in our SimplePie fork
https://github.com/FreshRSS/simplepie/pull/73

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-03-31 09:57:06 +02:00
Michael
61f3151f7f Convert feed view into grid where appropriate (#8631)
* Convert feed view into grid where appropriate
This makes the feed view prettier on mobile, if thumbnails and summary are shown, as discussed in https://github.com/FreshRSS/FreshRSS/discussions/8629

**Changes proposed in this pull request:**

- Converts Feed Item list into multiple lines
- But only if both thumbnails and summaries are shown

The code is quite different from what I had done in my own hack: There I had used `display: flex` and then counted items, but that only works for my own hack: here we don't know how many items a given user may have, so we use `display:grid` instead with name grid areas.

**How to test the feature manually:**

1. Ensure you enable both thumbnails and summaries
2. Check out the feed view on mobile
3. Play around with enabling and disabling bookmarks, share button, etc.

**Pull request checklist:**

- [x] clear commit messages
- [x] code manually tested
- [ ] unit tests written (optional if too hard)
- [ ] documentation updated

**Screenshots:**

<img width="458" height="1173" alt="SCR-20260324-jnte" src="https://github.com/user-attachments/assets/1d5c1615-961a-4953-8157-f9f8a5470545" />
<img width="459" height="1172" alt="SCR-20260324-jnwf" src="https://github.com/user-attachments/assets/96ffcea3-384f-4de9-9c50-3366022713d8" />


* remove gap

* fix lint errors

* fix style errors

* remove whitespaces

* Reduce use of slow `:has()` CSS selector

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-03-31 09:53:09 +02:00
zanivann
160c579737 Translate sorting criteria to Portuguese (#8649)
* Translate sorting criteria to Portuguese

* make fix-all

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-03-30 10:13:41 +02:00
Alexandre Alapetite
3171107628 Add legacy rules PHPCS 3 (#8645)
Some tools are not yet supporting PHPCS 4 such as:
https://github.com/valeryan/vscode-phpsab/issues/168
451cfdb306/README.md (L15-L17)
2026-03-29 18:35:37 +02:00
Alexandre Alapetite
eba59a8c7c Fix for PHPStan 2.1.44 (#8644)
https://github.com/phpstan/phpstan/releases/tag/2.1.44
2026-03-29 14:34:45 +02:00
Alexandre Alapetite
37c8f1f466 CSSXPath 1.5.0 (#8642)
https://github.com/phpgt/CssXPath/releases/tag/v1.5.0
2026-03-29 11:39:52 +02:00
Alexandre Alapetite
71c26f5512 Fix duplicates in the user labels when sorting randomly (#8626)
DISTINCT does not work in this case, so use GROUP BY instead
2026-03-28 13:06:36 +01:00
Alexandre Alapetite
72b72f8d28 Docker / CLI: allow chown/chmod to fail with warning (#8635)
Docker / CLI: allow chown/chmod to fail with warning
fix https://github.com/FreshRSS/FreshRSS/issues/8632
Seems needed for some NFS share
2026-03-27 13:56:21 +01:00
dependabot[bot]
45c156cf6b Bump picomatch (#8638)
Bumps  and [picomatch](https://github.com/micromatch/picomatch). These dependencies needed to be updated together.

Updates `picomatch` from 4.0.3 to 4.0.4
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/picomatch/compare/4.0.3...4.0.4)

Updates `picomatch` from 2.3.1 to 2.3.2
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/picomatch/compare/4.0.3...4.0.4)

---
updated-dependencies:
- dependency-name: picomatch
  dependency-version: 4.0.4
  dependency-type: indirect
- dependency-name: picomatch
  dependency-version: 2.3.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-25 23:06:30 +01:00
Alexandre Alapetite
04c750defd SimplePie: Fix Undefined array key "" in get_thumbnail() (#8634)
https://github.com/simplepie/simplepie/pull/970
https://github.com/FreshRSS/simplepie/pull/72
fix https://github.com/FreshRSS/FreshRSS/issues/8614

Solve warning in the case of `<media:thumbnail />`
2026-03-25 10:04:48 +01:00
Alexandre Alapetite
ed18aba733 SimplePie bump upstream (#8628)
https://github.com/FreshRSS/simplepie/pull/71
2026-03-24 08:36:53 +01:00
Alexandre Alapetite
1f614e5b46 Fixes for PHPStan 2.1.42 (#8627) 2026-03-24 08:27:41 +01:00
Inverle
ebaac787e0 Fix wrong error redirect in subscription management (#8625)
Was supposed to show feeds with errors on redirect, only if they were being shown before, not when you modify a feed with an error.
2026-03-23 11:29:57 +01:00
maTh
1ed2c38c3f do not show dot, if no unread number is shown (#8624)
* do not show dot, if no unread number is shown

* Update app/Controllers/indexController.php

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-03-21 23:01:55 +01:00
Alexandre Alapetite
25ee11fd66 Changelog 2026-03-21 17:32:55 +01:00
Alexandre Alapetite
1b90c40fd6 New automatic feed visibility/priority during search (#8609)
When the search query includes some feed IDs or category IDs, adjust feed visibility/priority filter to include at minimum feed or category visibility.
Fix: https://github.com/FreshRSS/FreshRSS/issues/8602
2026-03-21 17:15:07 +01:00
dependabot[bot]
b19060aa1f Bump flatted from 3.3.3 to 3.4.2 (#8621)
Bumps [flatted](https://github.com/WebReflection/flatted) from 3.3.3 to 3.4.2.
- [Commits](https://github.com/WebReflection/flatted/compare/v3.3.3...v3.4.2)

---
updated-dependencies:
- dependency-name: flatted
  dependency-version: 3.4.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-21 00:16:33 +01:00
Alexandre Alapetite
0257ba9051 Fix CSS padding of .content pre code (#8620)
fix https://github.com/FreshRSS/FreshRSS/discussions/8618
And also duplicated `.box .box-content .item.feed`
2026-03-20 23:04:20 +01:00
dependabot[bot]
94b2a66f7e Bump json in /docs in the bundler group across 1 directory (#8617)
Bumps the bundler group with 1 update in the /docs directory: [json](https://github.com/ruby/json).


Updates `json` from 2.18.1 to 2.19.2
- [Release notes](https://github.com/ruby/json/releases)
- [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md)
- [Commits](https://github.com/ruby/json/compare/v2.18.1...v2.19.2)

---
updated-dependencies:
- dependency-name: json
  dependency-version: 2.19.2
  dependency-type: indirect
  dependency-group: bundler
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-19 14:25:12 +01:00
Inverle
815b97017b Improve consistency of slider behavior after submitting form (#8612)
Closes https://github.com/FreshRSS/FreshRSS/issues/8529

* Preserve `error` parameter after submitting form in subscription management
2026-03-18 00:10:53 +01:00