Skip to content
Georg Jähnig edited this page Jun 24, 2018 · 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 pull request to add or edit them.
  • Freedom: Optionally, create personal shortcuts in your own repository (or anywhere on the web). Simpy tell trovu in the settings where to look for them.

Step-by-step: How a query is processed

First, lets look at the (example) settings:

  • Namespace URL templates: For every namespace, the template defines where to look for its shortcuts. For site namespaces they point to the repository trovu-data. Optionally, for user namespaces they can point anywhere.
    • o: https://raw.githubusercontent.com/trovu/trovu-data/master/shortcuts/o/{%keyword}/{%argumentCount}.txt
    • de: https://raw.githubusercontent.com/trovu/trovu-data/master/shortcuts/de/{%keyword}/{%argumentCount}.txt
    • .de: https://raw.githubusercontent.com/trovu/trovu-data/master/shortcuts/.de/{%keyword}/{%argumentCount}.txt
    • johndoe: https://example.com/trovu/{%keyword}.{%argumentCount}.txt

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,johndoe.

  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.

Demo

https://trovu.net/

Clone this wiki locally