Skip to content
Georg Jähnig edited this page Mar 3, 2019 · 36 revisions

trovu.net – Web shortcuts, social, private.

trovu is a spin-off from Serchilo / FindFind.it. Read about the differences.

trovu allows you to define shortcuts for URLs / websites and then quickly access them in a command-line way, e.g.

  • g berlin – search Google for "berlin".
  • w berlin – Wikipedia article for "berlin" in your language.
  • gd london, liverpool – find a route on Google Maps from London to Liverpool.

Key features

  • Privacy: Queries are processed in the client, not server.
  • Social: Shortcuts are kept in text and YAML files in a public Github repository. Send a pull request to add or edit them.
  • Freedom: Optionally, create personal shortcuts in your own repository (or anywhere on the web).

Step-by-step: How a query is processed

First, lets look at the (example) settings:

  • Namespaces: Site namespaces point to the repository trovu-data.
    • o: https://raw.githubusercontent.com/trovu/trovu-data/master/shortcuts/o/{%keyword}/{%argumentCount}.yml
    • de: https://raw.githubusercontent.com/trovu/trovu-data/master/shortcuts/de/{%keyword}/{%argumentCount}.yml
    • .de: https://raw.githubusercontent.com/trovu/trovu-data/master/shortcuts/.de/{%keyword}/{%argumentCount}.yml

(Optionally, user namespaces can point to forks of trovu-data-user).

Now, lets look at a processing of a query:

  1. A query comes in, e.g. g foobar.

  2. The current namespace setting is o,de,.de.

  3. The query is parsed – in the client by Javascript – into

    • keyword: g
    • argument: foobar
  4. Based on the query and the namespace settings, the client Javascript tries to fetch 4 URLs:

  5. From the fetches that succeeded, the results are evaluated in namespace order.

  6. Since already the first text file exists, its URL is used for further processing

    • https://www.google.de/search?hl={$language}&q={%query}&ie=utf-8
  7. The {$language} placeholder is being replaced with the variable de.

  8. The {%query} placeholder is being replaced with the query argument foobar.

  9. A redirect to the URL is made.

Repositories

This repository contains all the data, e.g.

  • shortcuts
  • mappings (later)

Fork this repository to add or edit shortcuts (and send then a pull request).

This repository contains the web frontend.

trovu-android / trovu-ios / trovu-gtk

Future plans.

Live web version

https://trovu.net/

Clone this wiki locally