<feed xmlns='http://www.w3.org/2005/Atom'>
<title>FreshRSS (Customized)/app/Models/Search.php, branch custom</title>
<subtitle>Customized version of FreshRSS, a self-hosted RSS feed aggregator</subtitle>
<id>https://git.rdnlsmith.com/fresh-rss-custom/atom?h=custom</id>
<link rel='self' href='https://git.rdnlsmith.com/fresh-rss-custom/atom?h=custom'/>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/'/>
<updated>2026-01-03T15:52:33+00:00</updated>
<entry>
<title>Fix unwanted expansion of user queries in some cases (#8395)</title>
<updated>2026-01-03T15:52:33+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2026-01-03T15:52:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=252703305758e2ed0e6257ae94fdb3b4b90f7184'/>
<id>urn:sha1:252703305758e2ed0e6257ae94fdb3b4b90f7184</id>
<content type='text'>
fix https://github.com/FreshRSS/FreshRSS/issues/8378</content>
</entry>
<entry>
<title>Fix serialisation of dates in searches (#8341)</title>
<updated>2025-12-24T00:19:06+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-12-24T00:19:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=00c61cf34c3f9a59b4dc16a4accd7cf85945a5a6'/>
<id>urn:sha1:00c61cf34c3f9a59b4dc16a4accd7cf85945a5a6</id>
<content type='text'>
Dates should not be expanded/resolved in string serialisations of search expressions, as it otherwise break relative user queries such as `P30D`.
Fix of https://github.com/FreshRSS/FreshRSS/pull/8293
</content>
</entry>
<entry>
<title>Fix parsing of literal "or" in regex (#8338)</title>
<updated>2025-12-23T10:58:51+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-12-23T10:58:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=6d57a9de47be4bb80a2121b6c4b8ebf278b93d70'/>
<id>urn:sha1:6d57a9de47be4bb80a2121b6c4b8ebf278b93d70</id>
<content type='text'>
fix https://github.com/FreshRSS/FreshRSS/issues/7879
</content>
</entry>
<entry>
<title>Rework encoding of search filters (#8324)</title>
<updated>2025-12-17T09:07:52+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-12-17T09:07:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=4bd503591469f47e710f1afbf0b5883f7770065d'/>
<id>urn:sha1:4bd503591469f47e710f1afbf0b5883f7770065d</id>
<content type='text'>
Rework:
* https://github.com/FreshRSS/FreshRSS/pull/8222

now that we have:
* https://github.com/FreshRSS/FreshRSS/pull/8293

Follow-up of:
* https://github.com/FreshRSS/FreshRSS/pull/8311

* More simplification

* Deprecate getRawInput
</content>
</entry>
<entry>
<title>Fix search encoding and quoting (#8311)</title>
<updated>2025-12-13T10:31:34+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-12-13T10:31:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=a8a544a2a205b42d2009b5c52d8939e8bc36263c'/>
<id>urn:sha1:a8a544a2a205b42d2009b5c52d8939e8bc36263c</id>
<content type='text'>
Revised the encoding approach for searches: the HTML encoding is done just before its use for DB search.
Fix also some cases with wrong quoting.
Fix https://github.com/FreshRSS/FreshRSS/pull/8306#issuecomment-3643865439
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/8293
</content>
</entry>
<entry>
<title>Add functions to modify a search expression (#8293)</title>
<updated>2025-12-10T21:41:45+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-12-10T21:41:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=394411677ea9b3e5bb520c39db6e39f751c35e28'/>
<id>urn:sha1:394411677ea9b3e5bb520c39db6e39f751c35e28</id>
<content type='text'>
* Allows easier modifications of the search expression.
* Add proper `__toString()` instead of just returning the raw input string. Allows in particular showing the result of the actual parsing of the raw input string in the UI.

Needed for https://github.com/FreshRSS/FreshRSS/pull/8294
</content>
</entry>
<entry>
<title>Bump phpstan/phpstan from 2.1.31 to 2.1.32 (#8275)</title>
<updated>2025-12-02T09:44:39+00:00</updated>
<author>
<name>dependabot[bot]</name>
<email>49699333+dependabot[bot]@users.noreply.github.com</email>
</author>
<published>2025-12-02T09:44:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=6431520ae56dea84ee4caac9f87e6f76d54a1e26'/>
<id>urn:sha1:6431520ae56dea84ee4caac9f87e6f76d54a1e26</id>
<content type='text'>
* Bump phpstan/phpstan from 2.1.31 to 2.1.32

---
updated-dependencies:
- dependency-name: phpstan/phpstan
  dependency-version: 2.1.32
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] &lt;support@github.com&gt;

* Ignore

---------

Signed-off-by: dependabot[bot] &lt;support@github.com&gt;
Co-authored-by: dependabot[bot] &lt;49699333+dependabot[bot]@users.noreply.github.com&gt;
Co-authored-by: Alexandre Alapetite &lt;alexandre@alapetite.fr&gt;</content>
</entry>
<entry>
<title>Mark as read 1 or 7 days based on publication date (#8163)</title>
<updated>2025-10-28T18:07:14+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-10-28T18:07:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=49a92c2437d3be9fba8c6af2d3f328ae525d81c6'/>
<id>urn:sha1:49a92c2437d3be9fba8c6af2d3f328ae525d81c6</id>
<content type='text'>
Allow the UI for marking as read articles older than 1 or 7 days to also work when sorting by publication date (in which case, the publication date is used).

&lt;img width="382" height="229" alt="image" src="https://github.com/user-attachments/assets/a630dec8-1e18-4766-8392-59fb593dd73d" /&gt;
</content>
</entry>
<entry>
<title>Filter on last user modified (#8093)</title>
<updated>2025-10-14T22:12:19+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-10-14T22:12:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=7e72033859f60f529d4d985da1e9cac0a691b2dc'/>
<id>urn:sha1:7e72033859f60f529d4d985da1e9cac0a691b2dc</id>
<content type='text'>
Example: `userdate:PT1H` to select only articles modified by user during the last hour
Fix https://github.com/FreshRSS/FreshRSS/issues/4280#issuecomment-3393078024

Useful for instance to bulk mark as unread recently marked articles by error:
1. Click on the toggle button to show the read articles (making sure the toggle for the unread articles is off)
2. Sort by *User modified 9→1*
3. Filter by *user modified date*, for instance to the last 3 hours by typing `userdate:PT3H`
4. Click in the drop-down menu *Mark selection as unread*

P.S.: I have added at the same time a bunch of unit tests for date-related logic
</content>
</entry>
<entry>
<title>Change how files are included (#7916)</title>
<updated>2025-09-05T13:56:46+00:00</updated>
<author>
<name>Alexis Degrugillier</name>
<email>aledeg@users.noreply.github.com</email>
</author>
<published>2025-09-05T13:56:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=23ba48c71f0d41bbe012d668349f6516dad527b4'/>
<id>urn:sha1:23ba48c71f0d41bbe012d668349f6516dad527b4</id>
<content type='text'>
1. `include`, `include_once`, `require` and `require_once` are expressions not functions, parentheses are not necessary.
2. to move up the directory tree, it's better to use the `dirname` function instead of relying on `/..`.</content>
</entry>
</feed>
