<feed xmlns='http://www.w3.org/2005/Atom'>
<title>FreshRSS (Customized)/lib/lib_rss.php, branch 1.24.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.24.0</id>
<link rel='self' href='https://git.rdnlsmith.com/fresh-rss-custom/atom?h=1.24.0'/>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/'/>
<updated>2024-05-15T06:57:58+00:00</updated>
<entry>
<title>PHPStan 1.11 + minor update dev dependencies (#6459)</title>
<updated>2024-05-15T06:57:58+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2024-05-15T06:57:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=2d17c020b6695d47debda065804db4e2d2f92e55'/>
<id>urn:sha1:2d17c020b6695d47debda065804db4e2d2f92e55</id>
<content type='text'>
* PHPStan 1.11 + minor update dev dependencies
https://github.com/phpstan/phpstan/releases/tag/1.11.0

* Comment style</content>
</entry>
<entry>
<title>SimplePie replace iframe allow attribute (#6274)</title>
<updated>2024-04-11T06:48:50+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2024-04-11T06:48:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=7aaed6092f09b73b2deb7e32a1fed9b776c0202d'/>
<id>urn:sha1:7aaed6092f09b73b2deb7e32a1fed9b776c0202d</id>
<content type='text'>
* SimplePie strip iframe allow attribute
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#allow

Besides security, the `allow autoplay` atttribute is especially problematic on mobile (Firefox on Android) as it asks to open the YouTube app as soon as the article is opened.

Example of code before:

```html
&lt;iframe data-original="https://www.youtube.com/embed/??????feature=oembed" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" sandbox="allow-scripts allow-same-origin"&gt;&lt;/iframe&gt;
```

* Replace allow attribute

* Allow more</content>
</entry>
<entry>
<title>HTTP Get allow UTF-8 even when charset is far from top (#6271)</title>
<updated>2024-04-06T21:02:50+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2024-04-06T21:02:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=e3c86a164d9903a99f10affae095f350e4075287'/>
<id>urn:sha1:e3c86a164d9903a99f10affae095f350e4075287</id>
<content type='text'>
* HTTP Get allow UTF-8 even when charset is far from top
fix https://github.com/FreshRSS/FreshRSS/issues/5586

The case was an HTML document with 15k whitespace then 1.2k of scripts before the `&lt;meta charset="utf-8"&gt;` (far from the 1024 bytes suggested by the spec..., and too far for DOMDocument)

* Rewording

* Trim also vertical tab + comment</content>
</entry>
<entry>
<title>Refactor some cURL options and use CURLOPT_USERPWD (#6177)</title>
<updated>2024-03-10T22:04:17+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2024-03-10T22:04:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=d0072b9fb73a6582c98c7b5a44daf2d6ca39636e'/>
<id>urn:sha1:d0072b9fb73a6582c98c7b5a44daf2d6ca39636e</id>
<content type='text'>
* Refactor some cURL options and use CURLOPT_USERPWD
fix https://github.com/FreshRSS/FreshRSS/issues/6176

* Fixes</content>
</entry>
<entry>
<title>Reduce API memory consumption (#6137)</title>
<updated>2024-03-01T09:08:25+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2024-03-01T09:08:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=5e54d5bc58dd815a84d12da1218c09e2c200b6eb'/>
<id>urn:sha1:5e54d5bc58dd815a84d12da1218c09e2c200b6eb</id>
<content type='text'>
`echo json_encode(...)` is very memory demanding for large responses, so optimised.
Contributes to https://github.com/FreshRSS/FreshRSS/issues/6136
https://github.com/FreshRSS/FreshRSS/pull/6013#discussion_r1506779881</content>
</entry>
<entry>
<title>Web scraping support encodings such as EUC-JP (#6112)</title>
<updated>2024-02-18T09:53:44+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2024-02-18T09:53:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=7d6a64a52243838e37ed47289b73574cfcd3b356'/>
<id>urn:sha1:7d6a64a52243838e37ed47289b73574cfcd3b356</id>
<content type='text'>
* Web scraping support encodings such as EUC-JP
fix https://github.com/FreshRSS/FreshRSS/issues/6106

* Typo</content>
</entry>
<entry>
<title>composer update (#6075)</title>
<updated>2024-01-30T11:57:14+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2024-01-30T11:57:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=06570b30f0af1b4e4b4f1723bbb2ad0a4b83db6c'/>
<id>urn:sha1:06570b30f0af1b4e4b4f1723bbb2ad0a4b83db6c</id>
<content type='text'>
Update PHPStan, fixing some bugs needed for https://github.com/FreshRSS/FreshRSS/pull/6052
(One syntax fix caught by new version)
Update also PHPUnit</content>
</entry>
<entry>
<title>PHPStan prepare exceptions (#6037)</title>
<updated>2024-01-15T09:36:30+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2024-01-15T09:36:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=314077a457f04cc2f0472e036af029e2676fbf02'/>
<id>urn:sha1:314077a457f04cc2f0472e036af029e2676fbf02</id>
<content type='text'>
Take advantage of
https://phpstan.org/blog/bring-your-exceptions-under-control

Minimum changes to pass `tooWideThrowType` and `implicitThrows`.

Revert some mistakes from:
https://github.com/FreshRSS/FreshRSS/pull/5504
Preparation needed before new PRs of the same type:
https://github.com/FreshRSS/FreshRSS/pull/5962

Fix several wrong PHPDocs and catches:

&gt; Method ... has ...Exception in PHPDoc @throws tag but it's not thrown.

&gt; Dead catch - ...Exception is never thrown in the try block.</content>
</entry>
<entry>
<title>JSONFeeds, JSON scraping, and POST requests for feeds (#5662)</title>
<updated>2024-01-10T07:23:45+00:00</updated>
<author>
<name>eta-orionis</name>
<email>3466670+eta-orionis@users.noreply.github.com</email>
</author>
<published>2024-01-10T07:23:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=9c97d8ca729e3cfb067445c0d3c9ad8284132aeb'/>
<id>urn:sha1:9c97d8ca729e3cfb067445c0d3c9ad8284132aeb</id>
<content type='text'>
* allow POST requests for feeds

* added json dotpath and jsonfeed subscriptions. No translation strings yet

* debug and fix jsonfeed parser

* bugfix params saved when editing feed

* added translations for JSON features

* Update docs for web scraping

* make fix-all
and revert unrelated changes, plus a few manual fixes, but there are still several type errors

* Fix some i18n

* refactor json parsing for both feed types

* cleanup unnecessary comment

* refactored generation of SimplePie for XPath and JSON feeds

* Fix merge error

* Update to newer FreshRSS code

* A bit of refactoring

* doc, whitespace

* JSON Feed is in two words

* Add support for array syntax

* Whitespace

* Add OPML export/import

* Work on i18n

* Accept application/feed+json

* Rework POST

* Fix update

* OPML for cURL options

* Fix types

* Fix Typos

---------

Co-authored-by: Erion Elmasllari &lt;elmasllari@factorsixty.com&gt;
Co-authored-by: Alexandre Alapetite &lt;alexandre@alapetite.fr&gt;</content>
</entry>
<entry>
<title>Pass PHPStan level 8 (#5946)</title>
<updated>2023-12-18T16:59:16+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2023-12-18T16:59:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=a80a5f48a16e7d232168a7aaa68e9a1804235ce1'/>
<id>urn:sha1:a80a5f48a16e7d232168a7aaa68e9a1804235ce1</id>
<content type='text'>
* 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</content>
</entry>
</feed>
