Commit Graph

69 Commits

Author SHA1 Message Date
maTh
2b8b80a5a9 Docs: How to contribute new theme (#5863)
* Update 05_Configuration.md

* Update 11_Themes.md

* Update contributing.md

* Update 02_Design.md

* fix

---------

Co-authored-by: math-gh <>
2023-11-12 21:56:14 +01:00
Benjamin Reich
8f07199777 add multi arch docker build (#5808)
* Add multi arch container build

Co-authored-by: EdJoPaTo <rfc-conform-git-commit-email@funny-long-domain-label-everyone-hates-as-it-is-too-long.edjopato.de>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* using label from github action

* dont remove static labels and split docker readme in seperate action

* pin 3rd party action to a commit

* enable pushing to dockerhub

* Update .github/workflows/build-images.yml

Co-authored-by: EdJoPaTo <github@edjopato.de>

* remove not needed checkout

* set github token permissions

* Update .github/workflows/push-dockerhub-readme.yml

* update docker readme to match new tags

* Apply suggestions from code review

* fix suffix for alpine image

* fix suffix for alpine image

* push images only at upstream repo

* push images only at upstream repo

* push images only at upstream repo

* tag latest-alpine as alpine

* tag latest-alpine as alpine

* remove no needed falvor

* keep falvor for build

* Clean more things

* Rename action
To use same default name than https://github.com/actions/starter-workflows/blob/main/ci/docker-publish.yml

* Rename readme action
To use same default name than https://github.com/peter-evans/dockerhub-description/blob/main/.github/workflows/dockerhub-description.yml

* Use default name for dockerhub-description
https://github.com/peter-evans/dockerhub-description/blob/main/.github/workflows/dockerhub-description.yml
Plus minor wording

* Experiment with build-args

* Debug

* Add checkout back

* Revert back to metadata-action

* Remove quotes in version

* Try to fix variables

* Experiment with automatic label values again

* Delete last Docker Hub hooks

* Use only git SHA for org.opencontainers.image.revision
https://specs.opencontainers.org/image-spec/annotations/#pre-defined-annotation-keys

* Comment out semver for now
Might be enabled later if desired

* Enable major semver

---------

Co-authored-by: EdJoPaTo <rfc-conform-git-commit-email@funny-long-domain-label-everyone-hates-as-it-is-too-long.edjopato.de>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Co-authored-by: EdJoPaTo <github@edjopato.de>
2023-11-05 22:46:01 +01:00
Alexandre Alapetite
1db606bc1b New extension hook entry_auto_read (#5505)
* New extension hook entry_auto_read
For extensions to be notified of articles being automatically marked as read for various reasons

* Documentation + entry_auto_unread
2023-07-05 11:00:26 +02:00
Alexandre Alapetite
8bf362838e Update dev dependencies (#5478) 2023-06-18 23:05:28 +02:00
maTh
2343f0ded1 Docs: delete 04_Changing_source_code.md (#5391)
* delete 04_Changing_source_code.md

* make pot

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-05-11 08:32:19 +02:00
Alexandre Alapetite
6c01e4e7d6 Use typed access to request parameters (#5267)
* Use typed access to request parameters
This was a big source of mixed datatypes in many places

* Fix notifications

* Fix bookmarkAction
2023-04-07 00:13:49 +02:00
maTh
859c48383a docs: Minz Framwork (#5102)
* done

* Update docs/fr/developers/Minz/index.md

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-02-23 22:20:36 +01:00
mincerafter42
60edc28528 Corrected frss:xPathItemTitle definition (#5140) 2023-02-23 20:14:55 +01:00
Alexandre Alapetite
05ae1b0d26 XML+XPath (#5076)
* XML+XPath
#fix https://github.com/FreshRSS/FreshRSS/issues/5075
Implementation allowing to take an XML document as input using an XML parser (instead of an HTML parser for HTML+XPath)

* Remove noise from another PR

* Better MIME for XML

* And add glob *.xml for cache cleaning

* Minor syntax

* Add glob json for clean cache
2023-02-09 13:57:20 +01:00
Alexandre Alapetite
1d9d4e3e3c Update dev dependencies (#4993)
Related to https://github.com/FreshRSS/FreshRSS/pull/4991
Required a few changes in code to pass the tests
2023-01-09 12:59:30 +01:00
Alexandre Alapetite
5e71669589 GReader API doc and improvements (#4763)
* GReader API doc and improvements
#fix https://github.com/FreshRSS/FreshRSS/issues/4762

* Minor slash

* HTTPS for web.archive.org
2022-10-23 12:47:27 +02:00
Jan Lukas Gernert
500d2e4902 Update NewsFlash app entry (#4650)
* Update NewsFlash app entry

* update fr readme & remove FeedReader

* Tested

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2022-10-16 14:25:25 +02:00
Alexandre Alapetite
648a876d77 Add support for custom XPath date/time format (#4703)
* Add support for custom XPath date/time format
#fix https://github.com/FreshRSS/FreshRSS/issues/4701
Improvement of https://github.com/FreshRSS/FreshRSS/pull/4220

* Format is not XPath

* Remove TODOs in en-GB
2022-10-09 15:43:30 +02:00
Alexis Degrugillier
60e723435e Add documentation to work with feed snapshots (#4598) 2022-10-03 16:58:33 +02:00
maTh
fedbda4f6a Rename template.css (#4644)
* Fix conflicts

* Update doc

* Misses

* Update prefix in CSS

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2022-09-29 12:40:50 +02:00
Alexandre Alapetite
eb850b7a01 Add Fluent Reader Lite (#4595)
#fix https://github.com/FreshRSS/FreshRSS/issues/3418
2022-09-10 15:17:49 +02:00
Matt Sephton
23bf530639 lire app (#4523)
* Update README.md

Add lire, sort alphabetically

* Mix conflict

* English

* GReader

* Duplicate line Reeder

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2022-08-22 23:18:50 +02:00
Alexandre Alapetite
1603c10bba XPath ability to define the UID manually (#4507)
* XPath ability to define the UID manually

* Fix error in i18n
2022-08-18 12:10:55 +02:00
Alexandre Alapetite
4f111c5b30 Easier full-text search possibility (#4505)
* Easier full-text search possibility
Contributes to https://github.com/FreshRSS/FreshRSS/issues/1331
Avoid concats in searches to make text indexes easier to build

* Fix tests

* Documentation
2022-08-18 12:06:31 +02:00
papaschloss
8587efa621 Article css filtering (#4501)
* Update feedController.php

* Update subscriptionController.php

* Update DatabaseDAO.php

* Update Entry.php

* Update Feed.php

* Update FeedDAO.php

* Update install.sql.mysql.php

* Update install.sql.pgsql.php

* Update install.sql.sqlite.php

* Update sub.php

* Update opml.phtml

* Update ImportService.php

* Update update.phtml

* Update feed.js

* Update install.sql.mysql.php

* Update install.sql.pgsql.php

* Update install.sql.sqlite.php

* Update sub.php

* Update sub.php

* Update sub.php

* Update sub.php

* Update sub.php

* Update sub.php

* Update sub.php

* Update sub.php

* Update sub.php

* Update sub.php

* Update sub.php

* Update sub.php

* Update sub.php

* Update sub.php

* Update sub.php

* Update sub.php

* Update sub.php

* Update FeedDAO.php

* Update feedController.php

* Update subscriptionController.php

* Update Entry.php

* Update Feed.php

* Update feedController.php

* Update subscriptionController.php

* Update ImportService.php

* Update opml.phtml

* Update update.phtml

* Update update.phtml

* Update update.phtml

* Update DatabaseDAO.php

* Update app/Models/Entry.php

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

* Update app/i18n/fr/sub.php

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

* Update p/scripts/feed.js

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

* Update app/Controllers/feedController.php

* make fix-all

* Update documentation

* css_path_filter help message

* i18n en-us ignore

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2022-08-15 21:01:18 +02:00
Alexandre Alapetite
e86c10e2f5 Composer require php extensions (#4497)
#fix https://github.com/FreshRSS/FreshRSS/discussions/4494
2022-08-10 09:36:54 +02:00
Alexandre Alapetite
509c8cae63 Dynamic OPML (#4407)
* Dynamic OPML draft
#fix https://github.com/FreshRSS/FreshRSS/issues/4191

* Export dynamic OPML
http://opml.org/spec2.opml#1629043127000

* Restart with simpler approach

* Minor revert

* Export dynamic OPML also for single feeds

* Special category type for importing dynamic OPML

* Parameter for excludeMutedFeeds

* Details

* More draft

* i18n

* Fix update

* Draft manual import working

* Working manual refresh

* Draft automatic update

* Working Web refresh + fixes

* Import/export dynamic OPML settings

* Annoying numerous lines in SQL logs

* Fix minor JavaScript error

* Fix auto adding new columns

* Add require

* Add missing 🗲

* Missing space

* Disable adding new feeds to dynamic categories

* Link from import

* i18n typo

* Improve theme icon function

* Fix pink-dark
2022-07-04 09:53:26 +02:00
Alexandre Alapetite
238e55b2fd Document fixes & tests (#4418)
* Document fixes & tests
#fix https://github.com/FreshRSS/FreshRSS/issues/4213
Help https://github.com/FreshRSS/FreshRSS/pull/4400#issuecomment-1159347683

* Link to tests.yml

* sudo

* Link to GitHub Actions

* Add Fedora and Alpine
2022-06-19 20:05:46 +02:00
Alexandre Alapetite
da0a333b94 Refactor OPML export categories (#4356)
* Refactor OPML export categories
Simplify code to comply with types hints.
And renamed a property to plural.

* Link to OPML namespace
2022-05-12 22:31:31 +02:00
Alexandre Alapetite
4a87206f28 OPML export/import of some proprietary FreshRSS attributes (#4342)
* OPML export/import of some proprietary FreshRSS attributes
#fix https://github.com/FreshRSS/FreshRSS/issues/4077
And one of the TODOs of https://github.com/FreshRSS/FreshRSS/pull/4220
XPath options, CSS Selector, and action filters

* Bump library patch version

* OPML namespace + documentation

* Add example
2022-05-12 22:15:10 +02:00
maTh
c7790bc59a Documentation: added information about code checks (#4266)
* Update 02_First_steps.md

* Update 02_First_steps.md

* Update 02_First_steps.md

* Update 02_First_steps.md

* Update 02_First_steps.md
2022-03-08 08:42:12 +01:00
Alexandre Alapetite
d27cf13248 News+ use GitHub links (#4262)
Google Play links do not work anymore
2022-03-06 21:32:00 +01:00
Alexandre Alapetite
7c74653cc2 Update markdownlint-cli dev dependency (#4241)
* Update markdownlint-cli dev dependency
And fix https://github.com/advisories/GHSA-6vfc-qv3f-vr6c

* npm ci
2022-02-28 20:50:39 +01:00
maTh
639f8eea84 Documentation improved: mobile access (#4235)
* Update 06_Mobile_access.md

* Readme: Windows + MacOS

* fix markdown

* Update docs/en/users/06_Mobile_access.md

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

* Update docs/en/users/06_Mobile_access.md

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

* MacOS -> macOS

* Update 06_Mobile_access.md

* Update docs/en/users/06_Mobile_access.md

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

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2022-02-27 21:50:28 +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
Thomas Renes
916df412f5 Fix various typos and spelling errors in documentation, comments and code. (#4134) 2022-01-08 16:25:17 +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
Alexandre Alapetite
0d31f89dd8 Remove remains of Travis (#3941)
* Remove remains of Travis
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/3920

* Update docs/en/developers/03_Running_tests.md

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

* Apply suggestions from code review

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
Co-authored-by: Alexis Degrugillier <aledeg@users.noreply.github.com>
2021-11-02 23:46:26 +01:00
Alexandre Alapetite
acbba9adb2 Improved markdownlint (#3918)
* Improved markdownlint
* Relaxed rules slighlty
* `npm run markdownlint` for automatic tests
* `npm run markdownlint_fix` for automatic syntax fixing
* Applied the fixes on all our Markdown files
2021-10-23 13:43:24 +02:00
Felix Bühler
915dcc3ccc Split fever & greader into two separate pages. (#3905)
* [docs] add newsflash to fever-clients

* [docs] split fever&greader-apis into two pages and make the more consistent
2021-10-23 13:32:20 +02:00
Alexis Degrugillier
714b40e2de Add system configuration for extension (#3626)
Before, only the user configuration was supported by extensions. But it was
limiting if one has to create a system extension with configuration.
Now, both user and system configuration are supported.
2021-07-11 15:11:10 +02:00
Strubbl
7a350bf3ac Update README.md (#3601)
* Update README.md

Readably is not available anymore

* More lines to remove

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-05-04 21:49:36 +02:00
Alexandre Alapetite
1c3159058f Quick update the doc for master renaming to edge 2021-03-15 00:00:25 +01:00
Alexis Degrugillier
787e8fa463 Add user maintenance hooks (#3440)
The new hook allows to add maintenance extensions at the user level.

See #3398
2021-02-17 16:34:54 +01:00
Lukas Vacula
a3f07d7d5e Theme Documentation (#3415)
* adding self CREDITS.md

* add "theme" to link for easier navigation

* add documentation about themes and the files that go in them

* add admin documentation for themes

* fix markdown styling

* fix CSSJanus usage
2021-02-06 16:46:03 +01:00
Alexis Degrugillier
8285f1df43 Add comprehensive user configuration in extensions (#3397)
Before, the extension configuration was handled by its author. There
was discrepancies between extensions on how the configuration was
stored.
Now, we could rely on a single way of storing configuration. This won't
invalidate how the extensions are storing their configuration but will
allow authors to focus on what is important.
2021-02-02 00:03:09 +01:00
Alexis Degrugillier
b43b94dff8 Update extension documentation (#3352)
Before the extension documentation was not very clear about the methods
in the extension and how to use them. I hope that now it makes more
sense.
2021-01-13 18:42:57 +01:00
ldv8434
bf344cd302 Update and add to documentation (#3348)
* remove outdated mailing list information

* add information about normal view

* add information about global and reader view

* fix import section header

* reorder documentation to reflect menu's order

* clarify setting as default in normal view

* add info about reading section for config

* fix heading levels, add info about archive + profile sections

* unfix heading levels

* move section on feed-specific settings to the subscription management page

* update information about adding feeds, add information about feed management

* fix link to security page in installation

* fix broken links

* fix broken link to install page

* add lighttpd from project readme

* add php modules to step 4, add horizontal line to better separate steps from footnotes visually

* fix broken link

* add index page for easier access of other pages

* move first steps document

* make dedicated bug reporting page

* make index page for linking to other pages

* moved fever API to relevant location, linked to index

* remove outdated mailing list information

* add information about normal view

* add information about global and reader view

* fix import section header

* reorder documentation to reflect menu's order

* clarify setting as default in normal view

* add info about reading section for config

* fix heading levels, add info about archive + profile sections

* unfix heading levels

* move section on feed-specific settings to the subscription management page

* update information about adding feeds, add information about feed management

* fix link to security page in installation

* fix broken links

* fix broken link to install page

* add lighttpd from project readme

* add php modules to step 4, add horizontal line to better separate steps from footnotes visually

* fix broken link

* add index page for easier access of other pages

* move first steps document

* make dedicated bug reporting page

* make index page for linking to other pages

* moved fever API to relevant location, linked to index

* re-fix link

* remove mention of defunct mailing list

* grammar fix

* replace stream with feed

* add optional items, replace stream with feed

* replace stream with feed

* fix word choice

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

* fix word choice

better reflect age of project

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

* grammar fixes

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

* remove double headings

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

* change single quote to double quote for consistency

* add subreddit link

* change php module list to Dockerfile link

* fix link to developer index, change html links to md for consistency

* update css selector terms

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

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2021-01-10 20:50:54 +01:00
Alexis Degrugillier
f5fdbb9e82 Add class autoload for extension (#3350)
When an extension defines an `autoload` method, it will be registered
automatically before enabling the extension.
For the extension creator, it's easier because there is no need to
register it manually.
2021-01-09 20:49:45 +01:00
Clemens Neubauer
ef458992c1 two new hooks (#3342)
* add two new hooks

I develop a new extension and i need 2 new hooks for it

* update EN documentation

* Correct typing errors

* Update app/views/helpers/javascript_vars.phtml

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-01-07 21:45:48 +01:00
Alexis Degrugillier
3f4c86f80f Add a file for each PDO class (#3301)
Before, we had 5 classes in the ModelPdo file. It was bad for 2 reasons.
The first reason is that it is considered bad practice to have multiple
class in one file. This is especially true when using autoloading. On top
of that it is less readable considering the size of the file. The second
reason is that so far we were lucky. Everytime we needed to access the
database, it was through the ModelPdo class which loads all the other
classes. If we want to access directly the connection, it wont be loaded.
On top of that, the system is configured to work on a single database,
but as we have every connection definition in a single file, all classes
were loaded at the same time. Thus using memory and processing time for
nothing.
Now, we have a file for each class. To work with autoloading, classes
were slightly renamed to match autoloading rules.
2020-12-29 00:11:34 +01:00
Alexandre Alapetite
0a2d9b3b54 Revert "Add a file for each PDO class (#3297)"
This reverts commit e1ee58816b.
2020-12-28 19:53:55 +01:00
Alexis Degrugillier
e1ee58816b Add a file for each PDO class (#3297)
Before, we had 5 classes in the ModelPdo file. It was bad for 2 reasons.
The first reason is that it is considered bad practice to have multiple
class in one file. This is especially true when using autoloading. On top
of that it is less readable considering the size of the file. The second
reason is that so far we were lucky. Everytime we needed to access the
database, it was through the ModelPdo class which loads all the other
classes. If we want to access directly the connection, it wont be loaded.
On top of that, the system is configured to work on a single database,
but as we have every connection definition in a single file, all classes
were loaded at the same time. Thus using memory and processing time for
nothing.
Now, we have a file for each class. To work with autoloading, classes
were slightly renamed to match autoloading rules.
2020-12-28 16:44:08 +01:00
Marien Fressinaud
8619cf6fa6 Add a migration system (#2760)
* Add a Minz_Migrator class

Until now, we updated the database structure somewhere in the code but
it wasn't always consistent and somehow complicated to find. Also, this
code was always checked for nothing.

The Migrator aims to improve and ease the creation of migrations. It
should improve the way we apply the updates, making the update server
almost useless.

References:

- example of migration (before Migrator): cc0db9af4f (diff-11a53443fa81512b128c66b065df0679R10)
- update server: https://github.com/FreshRSS/update.freshrss.org
- PR moving the code of the update server to the core: https://github.com/FreshRSS/FreshRSS/pull/1760

* Automatically apply migrations

For now, administrators are used to have nothing to do during an update
else than getting the new code. I suggest to keep this behaviour and
automatically apply migrations if we detect new ones.

Another solution would be to create a CLI command and ask admins to call
it after getting the new code. It could hide migrations errors to end
users, but admin can forget to apply migrations since there are not used
to it.

* Add documentation for Minz Migrator

* Execute migrations even if next ones are applied

* Change mechanism to prevent multiple update at once

* Use mkdir to create the lock and to test it exists

Reference: https://stackoverflow.com/a/731634

* Append .lock to applied_migrations_path

There are no needs to define another file to serve as a lock.

* Change migrations naming convention

* Apply suggestions from code review

Co-Authored-By: Alexandre Alapetite <alexandre@alapetite.fr>

* Perform a low-cost migration versions comparaison

* Clarify version numbers concerning the migration system

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2020-07-08 12:11:55 +02:00
Alexis Degrugillier
0910cf34c7 Add support for extensions in Docker environment (#3042)
By default, the container starts without extensions. But if for some reasons,
you need to add them without copying or moving some code, you can embed them
while starting the container. The syntax is:
```
make start extensions="/full/path/to/extension/1 /full/path/to/extension/2"
```
2020-06-10 23:16:14 +02:00