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 '