<feed xmlns='http://www.w3.org/2005/Atom'>
<title>FreshRSS (Customized)/tests/app/Models/SearchTest.php, branch 1.28.1-custom</title>
<subtitle>Customized version of FreshRSS, a self-hosted RSS feed aggregator</subtitle>
<id>https://git.rdnlsmith.com/fresh-rss-custom/atom?h=1.28.1-custom</id>
<link rel='self' href='https://git.rdnlsmith.com/fresh-rss-custom/atom?h=1.28.1-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>Use native PHP #[Deprecated] (#8325)</title>
<updated>2025-12-17T09:11:18+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-12-17T09:11:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=00cd5df294c875ea1e00ab2f645a338a6bd92c8e'/>
<id>urn:sha1:00cd5df294c875ea1e00ab2f645a338a6bd92c8e</id>
<content type='text'>
https://php.watch/versions/8.4/Deprecated
And enfore it with PHPUnit + PHPStan.
Especially useful for extensions.</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>PostgreSQL: compatibility with PCRE word boundary (#8141)</title>
<updated>2025-10-22T19:21:17+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-10-22T19:21:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=1282d3a2709064cb847b8757409a7153449faa9d'/>
<id>urn:sha1:1282d3a2709064cb847b8757409a7153449faa9d</id>
<content type='text'>
Allow the use of regex `\b` for word boundary (and `\B` for the opposite) even when using PostgreSQL.
Follow up of:
* https://github.com/FreshRSS/FreshRSS/pull/6706

For instance, `intitle:/\bnew\B/` will find *newest* but not *new* nor *renewal*.

Useful in particular to minimise the differences between PHP and database in:
* https://github.com/FreshRSS/FreshRSS/pull/7959
</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>Implement search form (#8103)</title>
<updated>2025-10-14T22:08:40+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-10-14T22:08:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=e070c3ed2bec4ea4a6c2a216a5c836d1e02ab381'/>
<id>urn:sha1:e070c3ed2bec4ea4a6c2a216a5c836d1e02ab381</id>
<content type='text'>
* Add UI for advanced search
To help users with the seach operators.
Obviously not as powerful as a manually-written search query.
Lack in particular negation and logical *and* for now, but I might try to do something about it.

&lt;img width="939" height="1438" alt="image" src="https://github.com/user-attachments/assets/0bcad39b-eff3-4f44-876b-a2552af2af00" /&gt;

* Consistency: allow multiple user queries like S:1,2

* Fix user query and add tests
</content>
</entry>
</feed>
