<feed xmlns='http://www.w3.org/2005/Atom'>
<title>FreshRSS (Customized)/app/Services, 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>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>
<entry>
<title>Fix path_entries encoding (#4823)</title>
<updated>2022-11-07T07:34:12+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2022-11-07T07:34:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=5897487f2f29cd3f29b538919c57988f118461e7'/>
<id>urn:sha1:5897487f2f29cd3f29b538919c57988f118461e7</id>
<content type='text'>
* Fix path_entries encoding
#fix https://github.com/FreshRSS/FreshRSS/issues/4815

* Fix preview</content>
</entry>
<entry>
<title>Add support for custom XPath date/time format (#4703)</title>
<updated>2022-10-09T13:43:30+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2022-10-09T13:43:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=648a876d77a7591eac6c4ad5f14b30988e18ce20'/>
<id>urn:sha1:648a876d77a7591eac6c4ad5f14b30988e18ce20</id>
<content type='text'>
* 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</content>
</entry>
<entry>
<title>Workaround invalid OPMLs (#4591)</title>
<updated>2022-09-09T20:56:34+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2022-09-09T20:56:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=0c472402f22816daa66982a815febc464c4856c8'/>
<id>urn:sha1:0c472402f22816daa66982a815febc464c4856c8</id>
<content type='text'>
* Workaround invalid OPMLs
#fix https://github.com/FreshRSS/FreshRSS/issues/4590
Accept OPML files lacking text attributes

* Tolerate missing head element</content>
</entry>
<entry>
<title>Use keyword "static" (#4436)</title>
<updated>2022-08-21T20:41:31+00:00</updated>
<author>
<name>Luc SANCHEZ</name>
<email>4697568+ColonelMoutarde@users.noreply.github.com</email>
</author>
<published>2022-08-21T20:41:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=85991d1c5ca1b29503e11be65a33da9a7e0c154a'/>
<id>urn:sha1:85991d1c5ca1b29503e11be65a33da9a7e0c154a</id>
<content type='text'>
static closure</content>
</entry>
<entry>
<title>XPath ability to define the UID manually (#4507)</title>
<updated>2022-08-18T10:10:55+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2022-08-18T10:10:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=1603c10bbab61b4a84380c8a9d5aa77536a4f1c7'/>
<id>urn:sha1:1603c10bbab61b4a84380c8a9d5aa77536a4f1c7</id>
<content type='text'>
* XPath ability to define the UID manually

* Fix error in i18n</content>
</entry>
<entry>
<title>Article css filtering (#4501)</title>
<updated>2022-08-15T19:01:18+00:00</updated>
<author>
<name>papaschloss</name>
<email>11808509+papaschloss@users.noreply.github.com</email>
</author>
<published>2022-08-15T19:01:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=8587efa62189a30e3e47075739382d52ecc34cb6'/>
<id>urn:sha1:8587efa62189a30e3e47075739382d52ecc34cb6</id>
<content type='text'>
* 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 &lt;alexandre@alapetite.fr&gt;

* Update app/i18n/fr/sub.php

Co-authored-by: Alexandre Alapetite &lt;alexandre@alapetite.fr&gt;

* Update p/scripts/feed.js

Co-authored-by: Alexandre Alapetite &lt;alexandre@alapetite.fr&gt;

* Update app/Controllers/feedController.php

* make fix-all

* Update documentation

* css_path_filter help message

* i18n en-us ignore

Co-authored-by: Alexandre Alapetite &lt;alexandre@alapetite.fr&gt;</content>
</entry>
<entry>
<title>Refactor entry-to-GReader API format (#4490)</title>
<updated>2022-08-08T10:04:02+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2022-08-08T10:04:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=82ac1d1e676f93b1567eba608c00c6edaf401a9e'/>
<id>urn:sha1:82ac1d1e676f93b1567eba608c00c6edaf401a9e</id>
<content type='text'>
* Refactor entry to GReader API format
Some code was copied in two locations and not completely uniform.
Cleaning of related variables and functions (e.g. better types for entries and categories as objects vs. as IDs).
Usecase: I need to call the same GReader-compatible serialization from an extension

* Fixed some edge cases

* Keep summary instead of content
`summary` and `content` seems to be used interchangeably in the Google Reader API. We have been using `summary` for our client API and  `content` in our export/import, so stick to that.</content>
</entry>
<entry>
<title>@tempnam in ExportService.php #4304 (#4489)</title>
<updated>2022-08-05T13:11:58+00:00</updated>
<author>
<name>harshad389</name>
<email>harshad.389@gmail.com</email>
</author>
<published>2022-08-05T13:11:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=9ef849eb27075b30bc144a9f8a3baa040196c563'/>
<id>urn:sha1:9ef849eb27075b30bc144a9f8a3baa040196c563</id>
<content type='text'>
* @tempnam in ExportService.php #4304

* Update CREDITS.md

Change Name in alphabetic order

Co-authored-by: Harshad &lt;harshad@topsoinfosolutions.com&gt;</content>
</entry>
</feed>
