aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-12-04ChangelogGravatar Alexandre Alapetite
2025-12-04Implement button for toggling sidebar on all views (#8201)Gravatar Inverle
* Implement button for toggling sidebar on all views Closes https://github.com/FreshRSS/FreshRSS/issues/7673, https://github.com/FreshRSS/FreshRSS/issues/7100, https://github.com/FreshRSS/FreshRSS/issues/6119, https://github.com/FreshRSS/FreshRSS/issues/5338, https://github.com/FreshRSS/FreshRSS/issues/2792, https://github.com/FreshRSS/FreshRSS/issues/4224, https://github.com/FreshRSS/FreshRSS/issues/4136 https://github.com/user-attachments/assets/0629e465-6450-440e-b38b-430e9ff73ef9 Keyboard shortcut for doing the same: <kbd>t</kbd> * Partially fix other views Repartition page looks broken on Swage * Correction `close-aside` wasn't meant to be removed * i18n(conf): fr Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> * make fix-all * Fix settings slider not opening in reader view * make readme --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-12-04Improve anonymous authentication logic (#8165)Gravatar Inverle
* Improve anonymous authentication logic * forgot to git add * Fix incorrect token check Because an empty parameter could be just passed if token for the user wasn't set: `&token=`
2025-12-04Fix HTML encoding in preview filters (alternative) (#8259)Gravatar Alexandre Alapetite
Alternative to https://github.com/FreshRSS/FreshRSS/pull/8222 Follow-up of https://github.com/FreshRSS/FreshRSS/pull/8222 Co-authored-by: Inverle <inverle@proton.me>
2025-12-03Fix MySQL / MariaDB database size calculation (#8282)Gravatar Alexandre Alapetite
The `_` is a special character in the SQL `LIKE` expression and was not escaped, leading to users counting for other users size. Stats for `freshrss` user included users `freshrss1` and `freshrss2` (but not vice versa). Discovered during https://github.com/FreshRSS/FreshRSS/pull/8277
2025-12-03Fix CLI user creation warning when language is not given (#8283)Gravatar Alexandre Alapetite
Discovered during https://github.com/FreshRSS/FreshRSS/pull/8277
2025-12-02Update phpmailer/phpmailer requirement from 7.0.0 to 7.0.1 in /lib (#8272)Gravatar dependabot[bot]
* Update phpmailer/phpmailer requirement from 7.0.0 to 7.0.1 in /lib Updates the requirements on [phpmailer/phpmailer](https://github.com/PHPMailer/PHPMailer) to permit the latest version. - [Release notes](https://github.com/PHPMailer/PHPMailer/releases) - [Changelog](https://github.com/PHPMailer/PHPMailer/blob/master/changelog.md) - [Commits](https://github.com/PHPMailer/PHPMailer/compare/v7.0.0...v7.0.1) --- updated-dependencies: - dependency-name: phpmailer/phpmailer dependency-version: 7.0.1 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> * composer update --no-autoloader --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-12-02Bump phpstan/phpstan-phpunit from 2.0.7 to 2.0.8 (#8274)Gravatar dependabot[bot]
Bumps [phpstan/phpstan-phpunit](https://github.com/phpstan/phpstan-phpunit) from 2.0.7 to 2.0.8. - [Release notes](https://github.com/phpstan/phpstan-phpunit/releases) - [Commits](https://github.com/phpstan/phpstan-phpunit/compare/2.0.7...2.0.8) --- updated-dependencies: - dependency-name: phpstan/phpstan-phpunit dependency-version: 2.0.8 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> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-12-02Bump phpstan/phpstan from 2.1.31 to 2.1.32 (#8275)Gravatar dependabot[bot]
* Bump phpstan/phpstan from 2.1.31 to 2.1.32 --- updated-dependencies: - dependency-name: phpstan/phpstan dependency-version: 2.1.32 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * Ignore --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-12-02Bump markdownlint-cli from 0.45.0 to 0.46.0 (#8271)Gravatar dependabot[bot]
* Bump markdownlint-cli from 0.45.0 to 0.46.0 Bumps [markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli) from 0.45.0 to 0.46.0. - [Release notes](https://github.com/igorshubovych/markdownlint-cli/releases) - [Commits](https://github.com/igorshubovych/markdownlint-cli/compare/v0.45.0...v0.46.0) --- updated-dependencies: - dependency-name: markdownlint-cli dependency-version: 0.46.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * Disable table-column-style for now https://github.com/DavidAnson/markdownlint/blob/main/doc/md060.md --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-12-01Bump squizlabs/php_codesniffer from 4.0.0 to 4.0.1 (#8273)Gravatar dependabot[bot]
Bumps [squizlabs/php_codesniffer](https://github.com/PHPCSStandards/PHP_CodeSniffer) from 4.0.0 to 4.0.1. - [Release notes](https://github.com/PHPCSStandards/PHP_CodeSniffer/releases) - [Changelog](https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/4.x/CHANGELOG-4.x.md) - [Commits](https://github.com/PHPCSStandards/PHP_CodeSniffer/compare/4.0.0...4.0.1) --- updated-dependencies: - dependency-name: squizlabs/php_codesniffer dependency-version: 4.0.1 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>
2025-12-01Bump actions/checkout from 5 to 6 (#8276)Gravatar dependabot[bot]
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' 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>
2025-12-01Bump stylelint from 16.26.0 to 16.26.1 in the stylelint group (#8270)Gravatar dependabot[bot]
Bumps the stylelint group with 1 update: [stylelint](https://github.com/stylelint/stylelint). Updates `stylelint` from 16.26.0 to 16.26.1 - [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/16.26.0...16.26.1) --- updated-dependencies: - dependency-name: stylelint dependency-version: 16.26.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: stylelint ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-30Web scraping support date format epoch milliseconds (#8266)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/discussions/8264 Auto detect whether a `U` date format should be in seconds or milliseconds.
2025-11-27Better merging of custom HTTP headers (#8251)Gravatar Alexandre Alapetite
Alternative to https://github.com/FreshRSS/FreshRSS/pull/8246 See https://github.com/FreshRSS/FreshRSS/issues/8189#issuecomment-3569434305
2025-11-26Fix MariaDB updateCachedValues (#8255)Gravatar Alexandre Alapetite
Changed syntax for an even wider compatibility. Follow-up of https://github.com/FreshRSS/FreshRSS/pull/8254 Regression from https://github.com/FreshRSS/FreshRSS/pull/6957 MariaDB images on Docker Hub go back to 10.6, so changed documentation to indicate support from that version, as I cannot easily test even older versions.
2025-11-26Fix MariaDB for updates (#8254)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/issues/8252 regression from https://github.com/FreshRSS/FreshRSS/pull/6957 The current code works with MySQL 8+ (as well as PostgreSQL and SQLite), but not with MariaDB, because MariaDB does not support CTE (Common Table Expression) fully (which I was not aware of)...
2025-11-26Add `data:` to CSP in `subscriptionController` (#8253)Gravatar Inverle
Quick fix for https://github.com/FreshRSS/FreshRSS/issues/8250 Regression from https://github.com/FreshRSS/FreshRSS/pull/7646 It seems the CSP is too permissive on some pages though (`img-src *`), so should fix that too later
2025-11-25More visible selected article (#8230)Gravatar Alexandre Alapetite
There was not enough difference between selected and not-selected articles, especially not due to hovering using the same style. Already relevant as is, and more relevant for a future feature depending on selected article. Additional help welcome to further improve the styling, in this PR or a future one, also for the other themes. In this example, the third article is the one selected: <img width="443" height="189" alt="image" src="https://github.com/user-attachments/assets/06168e9f-1b91-47e2-9b64-4fd8ca6c7186" /> * Compensate the increased border-left-width * Implement in Pafat * Implement in Nord * Shorten comment * Implement in Alternative Dark * Implement for Flat * Implement for Swage * Implement in Ansum and Mapco * Call stylelint_fix before rtlcss So that RTLCSS includes the fixes from previous step
2025-11-24OPML export/import of unicity criteria (#8243)Gravatar Alexandre Alapetite
Found during https://github.com/FreshRSS/FreshRSS/discussions/8242#discussioncomment-15052838
2025-11-24Update hungarian translation (#8244)Gravatar Horváth Zsolt
* Update hungarian translation * Change translation to make it consistent Co-authored-by: András Marczinkó <andris155@users.noreply.github.com>
2025-11-23Use native CSS instead of SCSS (#8241)Gravatar Alexandre Alapetite
I was tired of having to handle the SCSS themes differently. fix https://github.com/FreshRSS/FreshRSS/issues/7611 Follow-up of https://github.com/FreshRSS/FreshRSS/pull/8200 Convert Ansum and Mapco themes from SCSS to native CSS. The changes are actually quite limited (mostly changing the syntax of the variables and a few other things) Require support for: * https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Nesting * https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors/Nesting_selector * https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/color-mix SCSS and SAAS tools and references are also removed. Tests welcome. The styles are left as individual CSS files as designed originally in SCSS. I expect proper HTTP caching and HTTP/2 to be sufficient instead of aggregating back to a single CSS, but might be done in another PR if needed. At the same time, fixed the fact that we had various whitespace styles in our JSON files, in particular in those themes, sometimes with 2 spaces, or 4 spaces, or tabs. Use tabs everywhere as defined in editorconfig. I would like to merge this one first to complete https://github.com/FreshRSS/FreshRSS/pull/8230 * RTLCSS stringMap https://github.com/FreshRSS/FreshRSS/pull/8241#discussion_r2553175514 https://github.com/MohammadYounes/rtlcss/issues/108#issuecomment-347033134
2025-11-20Catch lack of exec function for git update (#8228)Gravatar Alexandre Alapetite
2025-11-20Misc API: better REST semantics (#8232)Gravatar Alexandre Alapetite
To allow minimal diagnostic from client side
2025-11-18Fix link to Minz docs in 05_Extensions.md (#8229)Gravatar matthew-neavling
The link to the Minz docs works on GitHub but 404's on the [live site](https://freshrss.github.io/FreshRSS/en/developers/03_Backend/05_Extensions.html). Replacing the absolute path with a relative path should correct the 404.
2025-11-17Fix search form for regex (#8226)Gravatar Alexandre Alapetite
Wrongly quoted Cherry-picked from https://github.com/FreshRSS/FreshRSS/pull/8131
2025-11-17Show search query in the page title (#8217)Gravatar Inverle
* Show search query in the page title * Simplify encoding --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-11-17Change SQL update query (#6957)Gravatar Alexandre Alapetite
* Change SQL update query for MariaDB / MySQL fix https://github.com/FreshRSS/FreshRSS/issues/5707 * No change for SQLite * Fix merge error * Update MySQL version on the model of PostgreSQL Performance to be tested * Fix LEFT JOIN, also for PostgreSQL / SQLite * Fix alias * Reduce MySQL deadlock * Fix compatibility with SQLite * Back to identical SQL for all databases
2025-11-17Fix MySQL commitNewEntries (#8223)Gravatar Alexandre Alapetite
I just realised that `commitNewEntries()` was not sorting articles properly before insertion in database when using MySQL: Articles were not sorted by publication date as expected from the temporary table before insertion in the final table. MySQL was not picking the correct field, so fixed with an explicit alias. Discovered because I did some tests with MySQL in https://github.com/FreshRSS/FreshRSS/pull/6957 At the same time, I did the same change for PostgreSQL and SQLite although those were not affected.
2025-11-17Fix Docker for PostgreSQL (#8224)Gravatar Alexandre Alapetite
Better fix instead of https://github.com/FreshRSS/FreshRSS/pull/8216 Based on error message: Error: in 18+, these Docker images are configured to store database data in a format which is compatible with "pg_ctlcluster" (specifically, using major-version-specific directory names). This better reflects how PostgreSQL itself works, and how upgrades are to be performed. See also https://github.com/docker-library/postgres/pull/1259 Counter to that, there appears to be PostgreSQL data in: /var/lib/postgresql/data (unused mount/volume) This is usually the result of upgrading the Docker image without upgrading the underlying database using "pg_upgrade" (which requires both versions). The suggested container configuration for 18+ is to place a single mount at /var/lib/postgresql which will then place PostgreSQL data in a subdirectory, allowing usage of "pg_upgrade --link" without mount point boundary issues. See https://github.com/docker-library/postgres/issues/37 for a (long) discussion around this process, and suggestions for how to do so.
2025-11-16Add new translate action: `move`, `make i18n-move-key` (#8214)Gravatar Inverle
So that renaming something like `conf.shortcut.toggle_sidebar` to `conf.shortcut.toggle_aside` can be done easily even after already having added `conf.shortcut.toggle_sidebar` and translated it in multiple languages. Example of usage: ```console ./cli/manipulate.translation.php -a move -k conf.shortcut.toggle_sidebar -n conf.shortcut.toggle_aside ``` ```console make i18n-move-key key="conf.shortcut.toggle_sidebar" new-key="conf.shortcut.toggle_aside" ``` The key will be moved and all values/states will be kept.
2025-11-16Rework saving of configuration files (#8220)Gravatar Inverle
* Attempt to restore user config if `file_put_contents()` fails * Second approach * Minor preference: `.tmp.php` Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> * Change boolean compare syntax Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> * fix?
2025-11-16Fix undefined array key CURLOPT_PROXY (#8218)Gravatar Alexandre Alapetite
> PHP Warning: Undefined array key 10004 in ./FreshRSS/app/Utils/httpUtil.php on line 276
2025-11-15force correct index for MySQL when listing entries (#8211)Gravatar Martin Hartmann
* force correct index for MySQL when listing entries * Make special case for MySQL / MariaDB --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-11-15Change PostgreSQL data volume path in Docker Compose (#8216)Gravatar FollowTheWizard
adjusted to v18 change in DATA path db container will not start and freshrss will complain fix https://github.com/FreshRSS/FreshRSS/issues/8215
2025-11-15SQL: Optimise speed of updateCachedValues() (#8207)Gravatar Alexandre Alapetite
For PostgreSQL and SQLite fix https://github.com/FreshRSS/FreshRSS/issues/8206
2025-11-15Bump js-yaml from 4.1.0 to 4.1.1 (#8210)Gravatar dependabot[bot]
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1. - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1) --- updated-dependencies: - dependency-name: js-yaml dependency-version: 4.1.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-13ChangelogGravatar Alexandre Alapetite
2025-11-13Exclude local networks for domain-wide Retry-After (#8195)Gravatar Alexandre Alapetite
* Exclude local networks for domain-wide Retry-After Retry-After will be applied by URL and not by domain for local networks. fix https://github.com/FreshRSS/FreshRSS/issues/7880 * Improved logic for detection of local domains * Support ip6-localhost and a couple more variants * On more: .lan * Resolve IP address * Add .intranet
2025-11-11Reduce SCSS: rewrite Swage as CSS (#8200)Gravatar Alexandre Alapetite
* Reduce unused SCSS * Rename Swage .scss to .css * Convert from SCSS to native CSS Contribute to https://github.com/FreshRSS/FreshRSS/issues/7611 Taking advantage of: * https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Nesting * https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors/Nesting_selector * https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Colors/Using_relative_colors#using_math_functions This was mostly to get started and get a better idea of the difficulties. I am happy to see that the differences between the original SCSS and the native CSS are limited. The relevant diff to look at is: https://github.com/FreshRSS/FreshRSS/pull/8200/commits/dd1bc7c663cf7afdde7af3161ddc213d360247ef The main remaining issue is that the *CSS Color Module Level 4, Relative Color* is not mainstream yet, so a small compatibility section is needed with precomputed colour values.
2025-11-11Fix duplicate semicolon in entry_header (#8203)Gravatar András Marczinkó
* Fix duplicate semicolon in entry_header * Fix some more redundant syntax Co-authored-by: Inverle <inverle@proton.me> --------- Co-authored-by: Inverle <inverle@proton.me>
2025-11-11Housekeeping lib_rss.php (#8193)Gravatar Alexandre Alapetite
* Housekeeping lib_rss.php `lib_rss.php` had become much too large, especially after https://github.com/FreshRSS/FreshRSS/pull/7924 Moved most functions to other places. Mostly no change of code otherwise (see comments). * Extension: composer run-script phpstan-third-party
2025-11-09Rename Extensions branch from master to main (#8194)Gravatar Alexandre Alapetite
For uniformity with other repos https://github.com/FreshRSS/Extensions/commit/dd20c6003e9c4fbcfb7b8e96317aa6e17ec120ea I made a tag https://github.com/FreshRSS/Extensions/releases/tag/master for back compatibility
2025-11-09i18n(ru): 100% complete (#8197)Gravatar McFev
* i18n(ru): 100% complete * make fix-all --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-11-08less margin - wrapper div deleted (#8196)Gravatar maTh
Follow up https://github.com/FreshRSS/FreshRSS/pull/8190 and https://github.com/FreshRSS/FreshRSS/pull/8152 before: <img width="1090" height="449" alt="grafik" src="https://github.com/user-attachments/assets/ee6a54a2-3602-4f2c-8eb2-cb186287e245" /> After: <img width="907" height="452" alt="grafik" src="https://github.com/user-attachments/assets/3a3066e5-90e1-4b65-a1c4-18964494f644" />
2025-11-06Replace arrow navigation in theme switcher with `<select>` (#8190)Gravatar Inverle
Follow-up (or replacement) of https://github.com/FreshRSS/FreshRSS/pull/8167 ![gif](https://github.com/user-attachments/assets/96cdeaff-36bc-4d0b-9b75-97bd7ff78ba1)
2025-11-05Fix 7307 - Scroll after load (#7962)Gravatar Tommaso Ferrari
* Fix 7307 - Scroll after load Closes https://github.com/FreshRSS/FreshRSS/issues/7307 - Wrap the body of `loadDynamicTags()` into a Promise - inside `mylabels()`, wait for the promise to complete, then scroll - when `loadDynamicTags()` is not being called, return a self-resolving promise How to test the feature manually: 1. Click on an long article 2. press keyboard shortcut `l` to go to "My labels" 3. page should scroll down 4. the `My labels` popup should be fully visible * Rewritten as async/await * Explicit HTTP Accept application/json --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-11-05Custom favicons async/await (#8182)Gravatar Alexandre Alapetite
Rewrote the last Promise pattern of our code-base with an async/await pattern: [custom feed favicons](https://github.com/FreshRSS/FreshRSS/pull/7646) Related to: * https://github.com/FreshRSS/FreshRSS/pull/7962
2025-11-05[i18n] updated Italian translation (#8186)Gravatar scollovati
2025-11-04Better transitions between groups of articles (#8174)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/issues/7520 fix https://github.com/FreshRSS/FreshRSS/issues/8168 fix https://github.com/FreshRSS/FreshRSS/discussions/8172