Privacy Policy
Trovu does not log your personal information.
In particular:
- We do not record IP addresses.
- We do not record search queries.
- We do not serve cookies.
Your search queries are not even sent to the Trovu server; the entire processing happens in your browser.
How a Query is Processed
Every query is attempted to be matched with a shortcut. Shortcuts are organized by Namespaces: Each shortcut belongs exactly to one namespace.
Namespace Setting
When calling Trovu without query parameters, three default namespaces will be set based on the browser's language settings. For instance, if the browser's language is de-DE
, these namespaces and their shortcut files will be used:
Processing a Query
Let's look at the processing of a query:
- A query comes in, e.g.,
g foobar
. - The current namespace setting is
o,de,.de
. - Given the namespaces, all the shortcuts are fetched from a precompiled JSON file (based on the data in the GitHub repo) into a JavaScript variable in the client.
- The
fetch()
call also checks if the JSON is already in the browser cache, and only requests it from remote if is not cached yet. - To reload the shortcuts, use the
reload
command (see below).
- The
- The query is parsed – in the client by JavaScript – into
- keyword:
g
- argument:
foobar
- keyword:
- Based on the query and the namespace settings, the loaded shortcuts are searched whether they match a query with the keyword
g
and one argument, i.e., if they contain a shortcut keyed withg 1
. - We find two matches:
- From the found matches, the results are evaluated in namespace order.
- Since namespace
.de
has higher priority thano
, its URL is used for further processinghttps://www.google.de/search?hl=<$language>&q=<query>&ie=utf-8
- The
<$language>
placeholder is replaced with the variablede
. - The
<query>
placeholder is replaced with the query argumentfoobar
. - A redirect to the URL is made.
Reloading Shortcuts
Since shortcuts are cached in the browser cache, you may want to reload them once they are updated. Do so by
- either prefixing a query:
reload:g foobar
- or only calling
reload
.