Commit Graph
96 Commits
Author SHA1 Message Date
Alexandre Alapetite 5368f38753 Reduce undeeded use of elvis operator ?: (#7204) 2025-01-10 08:13:09 +01:00
Alexandre Alapetite 50adb55982 Add some missing PHP native types (#7191)
* Add some missing PHP native types
Replaces https://github.com/FreshRSS/FreshRSS/pull/7184

* Clean some types
2025-01-08 13:26:09 +01:00
Alexandre Alapetite b1d24fbdb7 PHPStan 2.0 (#7131)
* PHPStan 2.0
fix https://github.com/FreshRSS/FreshRSS/issues/6989
https://github.com/phpstan/phpstan/releases/tag/2.0.0
https://github.com/phpstan/phpstan/blob/2.0.x/UPGRADING.md

* More

* More

* Done

* fix i18n CLI

* Restore a PHPStan Next test
For work towards PHPStan Level 10

* 4 more on Level 10

* fix getTagsForEntry

* API at Level 10

* More Level 10

* Finish Minz at Level 10

* Finish CLI at Level 10

* Finish Controllers at Level 10

* More Level 10

* More

* Pass bleedingEdge

* Clean PHPStan options and add TODOs

* Level 10 for main config

* More

* Consitency array vs. list

* Sanitize themes get_infos

* Simplify TagDAO->getTagsForEntries()

* Finish reportAnyTypeWideningInVarTag

* Prepare checkBenevolentUnionTypes and checkImplicitMixed

* Fixes

* Refix

* Another fix

* Casing of __METHOD__ constant
2024-12-27 12:12:49 +01:00
15745d42b7 Upgrade code to php 8.1 (#6748)
* revert
Fix code indentation
Fix code

Upgrade code to php 8.1

* fix remarques

* code review

* code review

* code review

* Apply suggestions from code review

* code review

* Fixes

* Many remainging updates of array syntax

* Lost case 'reading-list'

* Uneeded PHPDoc

---------

Co-authored-by: Luc Sanchez <l.sanchez-prestataire@alptis.fr>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2024-11-28 17:11:04 +01:00
Alexandre Alapetite a81656c3ed Upgrade to PHP 8.1 (#6711)
* Upgrade to PHP 8.1
As discussed in https://github.com/FreshRSS/FreshRSS/discussions/5474

https://www.php.net/releases/8.0/en.php
https://www.php.net/releases/8.1/en.php

Upgrade to available native type declarations
https://php.net/language.types.declarations

Upgrade to https://phpunit.de/announcements/phpunit-10.html which requires PHP 8.1+ (good timing, as version 9 was not maintained anymore)

Upgrade `:oldest` Docker dev image to oldest Alpine version supporting PHP 8.1: Alpine 3.16, which includes PHP 8.1.22.

* Include 6736
https://github.com/FreshRSS/FreshRSS/pull/6736
2024-09-06 09:06:46 +02:00
Alexandre Alapetite 0f395dad43 Initial support for PHP 8.4 (#6615)
* Initial support for PHP 8.4
Sole fix needed so far seems to be related to https://wiki.php.net/rfc/deprecate-implicitly-nullable-types

See also upstream PR https://github.com/PhpGt/CssXPath/pull/227

We are also hitting was seems to be a PHP bug https://github.com/php/php-src/issues/14873

* Fix return type

* Disable OPCache while waiting for PHP fix
2024-07-09 15:57:26 +02:00
f99c8d5f54 Modernize code to php7.4 (#6043)
* Modernize code to php7.4

* Modernize code to php7.4

* Modernize code to php7.4

* Modernize code to php7.4

* Modernize code to php7.4

* Modernize code to php7.4

* Modernize code to php7.4

* Modernize code to php7.4

* Modernize code to php7.4

* Modernize code to php7.4

* Modernize code to php7.4

* Modernize code to php7.4

* Modernize code to php7.4

* Consistency

---------

Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2024-06-05 22:04:06 +02:00
Alexandre Alapetite 350edf398c PHP 8.3 #[\Override] (#6273)
* PHP 8.3 #[\Override]
https://php.watch/versions/8.3/override-attr

With PHPStan `checkMissingOverrideMethodAttribute` https://phpstan.org/config-reference#checkmissingoverridemethodattribute

And modified the call to phpstan-next on the model of https://github.com/FreshRSS/Extensions/pull/228 (more robust than the find method, which gave some strange errors)

* Update extension example accordingly
2024-04-10 15:33:43 +02:00
Kasimir Cash 9b1f971333 Fixes reversed behaviour by ignore (#6041) 2024-01-17 08:45:11 +01:00
Alexandre Alapetite a80a5f48a1 Pass PHPStan level 8 (#5946)
* Pass PHPStan level 8
And prepare for PHPStan level 9 https://phpstan.org/user-guide/rule-levels

* Revert wrong replace in comment

* Fix PHPStan level 8

* Update PHPStan and other dev dependencies

* Remove obsolete comment

* noVariableVariables and towards bleedingEdge
https://github.com/phpstan/phpstan-strict-rules
https://phpstan.org/blog/what-is-bleeding-edge

* More bleedingEdge

* A bit more PHPStan level 9

* More PHPStan level 9

* Prepare for booleansInConditions
Ignore int and null

* Revert wrong line

* More fixes

* Fix keep_max_n_unread

* Stricter attribute functions

* Stricter callHooks and more PHPStan level 9

* More typing

* A tiny more
2023-12-18 17:59:16 +01:00
30c7a61a9b Use strict_types (#5830)
* Little's optimisations and booleans in conditions

* Apply strict type

* Apply strict type

* Apply strict type

* Fix multiple bugs with PHP 8.2 and 8.3

* Many declares missing, more errors fixed

* Apply strict type

* Another approach

* Stronger typing for Minz_Session

* Fix case of SQLite

---------

Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-11-16 22:43:00 +01:00
Alexandre Alapetite 06d0099504 Require PHP 7.4+ (#5720)
* Require PHP 7.4+
https://github.com/FreshRSS/FreshRSS/discussions/5474

* Update Docker oldest
Alpine 3.13 with PHP 7.4.26

* Add missing packets to Docker oldest

* Update to typed properties
https://php.net/migration74.new-features#migration74.new-features.core.typed-properties

* More types
2023-10-30 20:47:27 +01:00
7f9594b8c7 fix many "Only booleans are allowed in an if condition" (#5501)
* fix many "Only booleans are allowed in an if condition"

* Update cli/create-user.php

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

* Update cli/i18n/I18nUsageValidator.php

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

* Fix several regressions and other minor things

* Fix another regression

* Update lib/http-conditional.php

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

---------

Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-07-07 21:53:17 +02:00
Alexandre Alapetite 6e2f2f1c1e A few additional PHPStan rules (#5388)
A subset of
https://github.com/phpstan/phpstan-strict-rules
2023-05-11 13:02:04 +02:00
Alexandre Alapetite 115724622f PHPStan Level 7 for ten more files (#5327)
* PHPStan Level 7 for nine more files

* Minor syntax

* One more
2023-04-23 11:58:15 +02:00
Alexandre Alapetite f3760f138d Complete PHPStan Level 6 (#5305)
* Complete PHPStan Level 6
Fix https://github.com/FreshRSS/FreshRSS/issues/4112
And initiate PHPStan Level 7

* PHPStan Level 6 for tests
* Use phpstan/phpstan-phpunit
* Update to PHPStan version 1.10

* Fix mixed bug

* Fix mixed return bug

* Fix paginator bug

* Fix FreshRSS_UserConfiguration

* A couple more Minz_Configuration bug fixes

* A few trivial PHPStan Level 7 fixes

* A few more simple PHPStan Level 7

* More files passing PHPStan Level 7
Add interface to replace removed class from https://github.com/FreshRSS/FreshRSS/pull/5251

* A few more PHPStan Level 7 preparations

* A few last details
2023-04-17 08:30:21 +02:00
a19b56064d PHPstan level 6 for Category.php (#5298)
* PHPstan level 6 for Category.php

* Fix a few things

* Minor fixes

* A few more fixes

---------

Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-04-15 01:19:22 +02:00
b8662f8899 PHPstan level 6 for I18nFile.php (#5291)
* PHPstan level 6 for I18nFile.php

* Minor syntax

* PHPstan level 6 for I18nFiles

* PHPstan level 6 for I18nFiles

* PHPstan level 6 for I18n Files

* PHPstan level 6 for I18n Files

* Fix several type errors

---------

Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-04-14 23:08:38 +02:00
Alexandre Alapetite 288ed04ccc PHPStan level 6 for all PDO and Exception classes (#5239)
* PHPStan level 6 for all PDO and Exception classes
Contributes to https://github.com/FreshRSS/FreshRSS/issues/4112

* Fix type

* Now also our remaining own librairies

* Motivation for a few more files

* A few more DAO classes

* Last interface
2023-03-31 08:23:39 +02:00
Alexandre Alapetite e899e4edd9 More robust application of access permissions (#5062)
* More robust application of access permissions
We were in particular missing directory traversal `+X` in our current recommendations.
Extracted to own shell script so it can easily be invoked.
Update access permissions in Docker to account to be more robust.
#fix https://github.com/FreshRSS/FreshRSS/discussions/5037

* Minor simplification

* Restrict mkdir permissions
Default mkdir permissions are 0777, which is not good for security, so downgrade to 0770.
2023-02-06 15:42:53 +01:00
Alexis Degrugillier 1f4e347cae Add tests on i18n classes (#4756) 2022-10-20 23:42:47 +02:00
Alexis Degrugillier 6fd063fa58 Fix i18n tool when adding parent translation (#4742)
See #4737
2022-10-18 23:25:04 +02:00
Alexandre Alapetite e28a2e320e i18n CLI improve parsing (#4197)
https://github.com/FreshRSS/FreshRSS/pull/3932#discussion_r800043744
2022-02-05 13:23:44 +01:00
Alexandre Alapetite 66912420a1 i18n CLI compat PHP 7.0 (#4184)
Minor syntax change to pass the linting in PHP 7.0
2022-01-31 14:22:50 +01:00
Alexandre Alapetite 1acd3ab09b Use typographic quotes (#4133)
* Use typographic quotes

* A few fixes

* Fix

* Fix not saved

* Implement feedback

* Detail

* Revert spoken English fixes
Left for a future dedicated discussion

* More reverts

* Final reverts

* Final minor
2022-01-08 21:58:55 +01:00
Alexis Degrugillier 127b7f0a3a Change i18n process (#4131)
Before, the ignore info were stored in a different file which was a bit cumbersome
for new comers. Now, this info is stored directly in the translation file as a
comment.

Before, there was no way of telling translators that a previously translated string
was in need of a new translation. Now, the dirty information is there to convey that
info.
2022-01-08 14:00:26 +01:00
Alexandre Alapetite 1335a0e3cf PHPStan level 5 (#4110)
* Fix most PHPDocs errors
Contributes to https://github.com/FreshRSS/FreshRSS/issues/4103
https://phpstan.org/writing-php-code/phpdoc-types

* Avoid func_get_args
Use variadic syntax instead https://php.net/manual/functions.arguments#functions.variable-arg-list
And avoid dynamic functions names when possible to more easily identify calls and unused functions.
Contributes to https://github.com/FreshRSS/FreshRSS/issues/4103

* PHPStan level 3

* PHPStand level 4

* Update default to PHPStan level 4

* Towards level 5

* Fix level 4 regression

* Towards level 5

* Pass PHPStan level 5

* Towards level 6

* Remove erronenous regression from changelog
https://github.com/FreshRSS/FreshRSS/pull/4116
2022-01-04 13:59:09 +01:00
Frans de Jonge f1e4b980fb [i18n] Add Dutch translation for new strings (#3928)
References #3898.
2021-10-24 11:37:54 +02:00
maThandAlexandre Alapetite cba304c352 i18n German (#3913)
* i18n

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-10-23 13:24:27 +02:00
NainorandAlexandre Alapetite 8c6b3f8655 Update PT-BR Translation (#3908)
* Update PT-BR Translation

* i18n fix syntax

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-10-23 12:36:50 +02:00
c484746a88 Updated Spanish translations (#3916)
* Updated Spanish translations

Co-authored-by: Natalie Stroud <stroudn1@nku.edu>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-10-23 12:32:39 +02:00
OctopusETandAlexandre Alapetite 1f8fd53c3f Update Korean Translation with language code fix (#3914)
* Update Korean Translation

* Fix Korean language code following IETF BCP 47

* Fix Korean language code in i18n/*/gen.php

* Fix Korean language code in cli/i18n/*

* Fix Korean language code in docs

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-10-23 12:14:16 +02:00
Alexandre Alapetite 401af448cc i18n minor en-US 2021-10-21 11:24:51 +02:00
Alexandre Alapetite af57c456df i18n automatic syntax fixes
Forgotten from https://github.com/FreshRSS/FreshRSS/pull/3899
2021-10-21 10:40:31 +02:00
id-konstantin-stepanovandAlexandre Alapetite c053d77479 Update Russian Translation (#3907)
* Update Russian Translation

* Update Russian Translation

* Update Russian Translation

* Update Russian Translation

* Update Russian Translation

* Minor syntax

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-10-21 10:28:10 +02:00
stysebaeandAlexandre Alapetite 85b898c623 Add shortcut to jump to next unread article (issue #3393) (#3891)
* Add shortcut to jump to next unread article

* phpcbf

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-10-19 10:46:39 +02:00
maThandAlexandre Alapetite c23702eaa5 Fix #3835: theme switcher broken when theme is not available (#3874)
* FIx the function: add an error slide

* i18n for the error message

* fix the message

* i18n: nl

* phpcbf

* Typographic quotation marks
+fr +en-US

* Unicode instead of entities

* Whitespace

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-10-16 12:44:02 +02:00
Alexandre Alapetite a7aca6c0ab Improved feed action filters (#3303)
* Re-order some feed options
* Option to auto mark as read existing titles
* Option to keep at max n unread articles per feed
2021-09-19 10:56:38 +02:00
maThandAlexandre Alapetite 8b80c4cc8f Settings: User queries - layout upgrade (#3827)
* draft

* deleted the out commeted code

* improved alert messages

* Update queries.phtml

* Theme base-theme/template.css

* fixed theme: Origin

* Fixed: Theme Adark

* Fixed: Theme Ansum

* Fix: Theme BlueLagoon

* Fix: Theme Dark

* Fix: Theme Flat

* Fix: Theme Mapco

* Fix: Theme Mapco (SCSS)

* Fix: Theme Origine-compact

* Fix: Theme Pafat

* Fix: Theme Screwdriver

* Fix: Theme Swage

* Lint CSS, RTL, and i18n

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-09-12 12:06:29 +02:00
Alexandre Alapetite fe295f50d0 Lint i18n files (#3841)
Translations had quite a lot of cleaning in late:
* Removed some unused keys
* Added some ignores
* Applied a `cli/manipulate.translation.php -a format`
2021-09-12 11:37:15 +02:00
312kandAlexandre Alapetite 0489b2c722 japanese translation (#3828)
* Make japanese directory

* Translate admin.php

* finish translate conf.php

* finish transtlate feedback.php

* finish transtlate gen.php

* finish transtlate index.php

* finish transtlate index.php

* finish transtlate sub.php

* finish transtlate user.php

* Fix mistaken translation

* Remove // TODO - Translation

* Translation linting

* Lint Pinboard

* Wrong todo

* Fix missing translation

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-09-08 08:37:02 +02:00
ORelioandAlexandre Alapetite 50ba6bbe07 UI: Add optional thumbnail and summary on feed items (#3805)
* UI: Add optional thumbnail and summary on feed items

Implements #561

* UI: Thumbnail: Own column, Custom size, Lazy load

* UI: Thumbnail: Remove unnecessary CSS rule

Remove rule already defined in base theme, no override needed

* CSS lint + RTL

* Improve thumbail and summary generation

* Support img alt

* Missing htmlspecialchars

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-08-30 10:58:06 +02:00
d170934fb7 Added Raindrop.io as sharing option (#3717)
* Added Raindrop.io as sharing option

* Added entires to i18n ignore files

* Fix TODOs

Co-authored-by: Michael Miller <commits@rain.bz>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-08-04 11:28:39 +02:00
Cem KOÇandAlexandre Alapetite 5160bc62d8 Update Turkish lang (#3604)
* Update Turkish lang

* Ignore unmodified

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-05-05 11:10:48 +02:00
berumuron cc6c529562 tec: Remove data/do-install.txt (#3555)
* Remove file data/do-install.txt

This file was painful during update because we had to remember to delete
it each time. It added a security issue by allowing an attacker to
reinstall FreshRSS during the update process.

The (more powerful) file data/applied_migrations.txt has been introduced
in 8619cf6fa to replace do-install.txt. We had to wait for at least one
release in order to make sure existing instances of FreshRSS created the
migration file. It should be ok now.

* Replace i18n install.not_deleted key

* Update documentation to update FreshRSS
2021-03-26 19:41:33 +01:00
berumuron dd80445d69 Readd sub.feed.auth.configuration i18n key (#3554)
I thought the key was useless after 2c4f169, but it’s still used on
update feed page.

Reference: https://github.com/FreshRSS/FreshRSS/pull/3516#issuecomment-804306448
2021-03-23 10:35:50 +01:00
Alexis Degrugillier 4f4ce3c71b Remove shortcut validation (#3548)
Before, only standard shortcuts were supported. When other shortcuts were
configured, they were filtered out.
Now, those shortcuts are stored in the configuration and an alert message
is displayed to alert the user that he is using non-standard shortcuts.

See #3481
2021-03-21 15:42:27 +01:00
berumuronandAlexandre Alapetite 2c4f169f0a Hide advanced options in new feed form (#3516)
* Hide new feed advanced options in a details tag

The form was huge and hard to process for beginners. Most of the fields
are optional 99% of time, there is no need to have them so proeminently.

* Remove sub.feed.auth.configuration i18n key

* Sync RTL css files

* Fix stylelint

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

* Fix "for" attributes in add feed form

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

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-03-13 18:55:43 +01:00
MejansandAlexandre Alapetite 184ab6bc85 i18n Update for Occitan language (#3511)
* Update conf.php

* Update feedback.php

* Update gen.php

* Update index.php

* Update install.php

* Update sub.php

* Update sub.php

* Update install.php

* Update gen.php

* Update oc.php

* Fix ignore

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-03-10 20:28:42 +01:00
800a42172d Add an option to set a custom user agent to retrieve individual feeds (#3494)
* Add an option to set a custom user agent to retrieve individual feeds

This allows retrieving the original RSS feed when websites use services like FeedBurner.

* Use !== instead of != in subscriptionController.php

* Add proxy and user-agent to subscription/add

Co-authored-by: Georgelemental <georgelemental@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-03-09 20:51:09 +01:00