General
Developers
Legal
Almost all UI for Pinefore surrounds the query engine. The query expression is specified in the URL, like where=<expr>.
The most basic usage of the query engine is <col><oper><val>. Different expressions work on different columns.
For instance, &where=title=hello, or where=public.
Parentheses can be used to group expressions. Expressions are joined with + for AND and | for logical OR. For instance, where=(title=hello+desc=world)|tags=tag1. You must use exclusively use + or | in a group.
You can also use ! for NOT. For instance, where=!(title=hello+desc=world)|tags=tag1.
If you wish, you may view the implementation here
| Type | Columns | Notes |
|---|---|---|
| Text | title, desc | Text types may be quoted. Please ensure the string is URL encoded. To use the following chars: +|&(), wrap the entire string in ' |
| Date | date | Dates must be in the format YYYY-MM-DD |
| Number | ||
| Bool | private, public, read, unread | To represent true, omit the expr and value. For instance, just state private. |
| Text[] | tags | Text arrays must be in the format tag1,tag2,tag3. Commas mean AND. = denotes strict equality. |
| Type | Columns | Notes |
|---|---|---|
| Text | colour, url, domain |
The filter engine only works on the /posts endpoint, not on the feeds list. This is because the feeds list is short.
| Type | Columns | Notes |
|---|---|---|
| Number | feed_id | |
| Text[] | tags |
| Expression | Description |
|---|---|
= | Strict equality, unless in the case of text |
== | Strict equality for text |
!= | Not equal |
> | Greater than |
>= | Greater than or equal |
< | Less than |
<= | Less than or equal |
^= | Starts with (use !(col^=...) to invert) |
$= | Ends with |
!$&'()*+,-./:;=?@_~ are valid.
"<>[\]^{|} are not valid HOWEVER chrome and firefox do not encode \^{|}[] (and the backtick)
Browsers encode '