A rust terminal program for searching DuckDuckGo

Tyler Hallada 1e3cbe2972 Switch from shelling out to w3m to using html2text 3 years ago
doc Add README with images 4 years ago
src Switch from shelling out to w3m to using html2text 3 years ago
.gitignore Initial commit of ferret: command-line search 4 years ago
Cargo.lock Switch from shelling out to w3m to using html2text 3 years ago
Cargo.toml Switch from shelling out to w3m to using html2text 3 years ago
README.md Fix readme links 4 years ago

README.md

ferret

Search DuckDuckGo in your terminal.

Run ferret and enter a search query:

dialog box for entering search query

Ferret will display the first page of results:

list of results scraped from DuckDuckGo

Press Enter on a result and it will open the result in a terminal text-based web browser (w3m):

viewing a search result in the w3m terminal web browser

Why DuckDuckGo

Not only does it respect your privacy, but they are also pretty lenient about not blocking scrapers. Google will eventually detect scrapers and force you to fill out a captcha.

Bugs

There's an issue with launching a sub program in Cursive, the Rust terminal UI library I'm using, where keyboard input doesn't quite go through and the cursor does not show up.

Todo

  • Allow pressing 0-9 take you to that Nth result (0 == 10)
  • Allow configuring colors
  • Allow configuring web browser
  • Error if screen is too small
  • Display DuckDuckGo instant answers
  • Support other search engines
  • Add search history (press up arrow to get previous search entered)
  • Cache search results
  • Add autocompletion
  • Refactor out scraping code into a separate module from the UI code
  • Add tests