<feed xmlns='http://www.w3.org/2005/Atom'>
<title>FreshRSS (Customized)/app/Controllers, branch 1.21.0</title>
<subtitle>Customized version of FreshRSS, a self-hosted RSS feed aggregator</subtitle>
<id>https://git.rdnlsmith.com/fresh-rss-custom/atom?h=1.21.0</id>
<link rel='self' href='https://git.rdnlsmith.com/fresh-rss-custom/atom?h=1.21.0'/>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/'/>
<updated>2023-02-09T12:57:20+00:00</updated>
<entry>
<title>XML+XPath (#5076)</title>
<updated>2023-02-09T12:57:20+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2023-02-09T12:57:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=05ae1b0d2684cea4eda664c5ea1a995cb9f0c4b9'/>
<id>urn:sha1:05ae1b0d2684cea4eda664c5ea1a995cb9f0c4b9</id>
<content type='text'>
* 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</content>
</entry>
<entry>
<title>Fix disabling proxy (#5082)</title>
<updated>2023-02-08T16:52:51+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2023-02-08T16:52:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=64d68a691c031a235631589e8af2f3dc6c7eddf3'/>
<id>urn:sha1:64d68a691c031a235631589e8af2f3dc6c7eddf3</id>
<content type='text'>
#fix https://github.com/FreshRSS/FreshRSS/issues/5081
Allow disabling curl proxy for specific feed, when proxy is defined globally</content>
</entry>
<entry>
<title>More robust application of access permissions (#5062)</title>
<updated>2023-02-06T14:42:53+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2023-02-06T14:42:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=e899e4edd97c296a29b2a8da2c2e3b598622c36e'/>
<id>urn:sha1:e899e4edd97c296a29b2a8da2c2e3b598622c36e</id>
<content type='text'>
* 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.</content>
</entry>
<entry>
<title>Remove -x on some files not needing it (#5065)</title>
<updated>2023-02-03T13:34:47+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2023-02-03T13:34:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=9b5de54a9c96110b42f71681aa635e2e2c3b8756'/>
<id>urn:sha1:9b5de54a9c96110b42f71681aa635e2e2c3b8756</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix error handling when updating URL (#5039)</title>
<updated>2023-01-26T07:59:34+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2023-01-26T07:59:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=07efaf71eac19934d858df678576823da131d1bb'/>
<id>urn:sha1:07efaf71eac19934d858df678576823da131d1bb</id>
<content type='text'>
Fix 3 related error handling when updating the feed URL with an invalid URL. Previously leading to unclear 500 page with additional PHP errors.</content>
</entry>
<entry>
<title>statsController at phpStan level 9 (#5028)</title>
<updated>2023-01-21T22:20:44+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2023-01-21T22:20:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=1c434971d4148e752e749835bb9acdf252e8d501'/>
<id>urn:sha1:1c434971d4148e752e749835bb9acdf252e8d501</id>
<content type='text'>
Follow up of https://github.com/FreshRSS/FreshRSS/pull/5024

```
vendor/bin/phpstan analyse --level 9 app/Controllers/statsController.php
```

Contributes to https://github.com/FreshRSS/FreshRSS/issues/4112</content>
</entry>
<entry>
<title>type hinting javascriptController (#5032)</title>
<updated>2023-01-21T22:19:26+00:00</updated>
<author>
<name>Luc SANCHEZ</name>
<email>4697568+ColonelMoutarde@users.noreply.github.com</email>
</author>
<published>2023-01-21T22:19:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=2216940f008807f8335f66da18edbc5c32176e9f'/>
<id>urn:sha1:2216940f008807f8335f66da18edbc5c32176e9f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Type hinting statsController.php (#5024)</title>
<updated>2023-01-20T22:37:41+00:00</updated>
<author>
<name>Luc SANCHEZ</name>
<email>4697568+ColonelMoutarde@users.noreply.github.com</email>
</author>
<published>2023-01-20T22:37:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=75a203fff233901b0276beccdf2f64c34ef53f40'/>
<id>urn:sha1:75a203fff233901b0276beccdf2f64c34ef53f40</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use paramBoolean consistently (#5025)</title>
<updated>2023-01-20T22:14:10+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2023-01-20T22:14:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=c13f1de13969d6ab012520d621d4aba2a888532e'/>
<id>urn:sha1:c13f1de13969d6ab012520d621d4aba2a888532e</id>
<content type='text'>
* Use paramBoolean consistently
So that we have cleaner values (true booleans) everywhere in user's config.php</content>
</entry>
<entry>
<title>tec: Update the lib_opml (#4403)</title>
<updated>2023-01-18T09:12:21+00:00</updated>
<author>
<name>berumuron</name>
<email>dev@marienfressinaud.fr</email>
</author>
<published>2023-01-18T09:12:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=daaa391e33c5d92e3dd91bb0b81ac420abed7097'/>
<id>urn:sha1:daaa391e33c5d92e3dd91bb0b81ac420abed7097</id>
<content type='text'>
* fix: Fix undefined GLOB_BRACE on Alpine

The manual states that:

&gt; Note: The GLOB_BRACE flag is not available on some non GNU systems,
&gt; like Solaris or Alpine Linux.

This generated an error on Alpine.

Reference: https://www.php.net/manual/function.glob.php

* fix: List details of feeds for OPML exportation

The details are necessary to export the XPath information, the CSS full
content path and read actions filters.

* Update LibOpml to 0.4.0

* Refactor OPML importation to be more robust

First, it fixes two regressions introduced by the update of lib_opml:

- title attribute is used when text attribute is missing;
- the OPML category attribute is used as a fallback for feeds categories.

In a related way, if also fixes a problem when a feed had both a parent
category outline and a category attribute. Before, it only considered the
attribute as its category, but now it considers the parent outline.

Then, it counts category limit correctly by not increasing
`$nb_categories` if the category already exists.

* Exclude lib_opml from the CodeSniffer

* Fix variable names when logging some errors

* Fix catch of LibOpml Exception

* Make sure to declare the category

* Exclude lib_opml from PHPStan analyze

* Disable markdownlint for lib_opml

* Fix typos

* Use auto-loading and allow updates via Composer

* Fix broken links to lib_opml

* Bring back the ability to import the OPML frss:opmlUrl attribute

* Refactor the logs of OPML errors

* Update lib_opml to the version 0.5.0

Co-authored-by: Alexandre Alapetite &lt;alexandre@alapetite.fr&gt;</content>
</entry>
</feed>
