Go to file
Olivier 'reivilibre' 6a68757e30
continuous-integration/drone the build failed Details
Use a non-readabilitised copy of the document for reference extraction
Fixes #7.
2022-03-29 22:43:31 +01:00
.ci Remove .cargo config (set it per-computer instead) 2022-03-25 19:14:17 +00:00
docs STASH notes about seeds 2022-03-20 15:20:13 +00:00
quickpeep Fix the seed dump script 2022-03-28 23:17:45 +01:00
quickpeep_densedoc Don't store images whilst raking, for now 2022-03-28 23:17:40 +01:00
quickpeep_index Store icons in the icon store 2022-03-27 22:06:06 +01:00
quickpeep_indexer Fix antifeature tag push 2022-03-28 19:31:47 +01:00
quickpeep_moz_readability Sort through TODO items 2022-03-20 22:23:12 +00:00
quickpeep_raker Use a non-readabilitised copy of the document for reference extraction 2022-03-29 22:43:31 +01:00
quickpeep_seed_parser Load tags and index them as necessary 2022-03-27 21:03:55 +01:00
quickpeep_static Add proof-of-concept search UI page 2022-03-25 23:39:27 +00:00
quickpeep_structs Emit icons from the raker 2022-03-27 19:40:12 +01:00
quickpeep_utils Move get_reduced_domain 2022-03-27 20:49:20 +01:00
scripts Clean-ups and support pulling out references 2022-03-14 23:01:19 +00:00
.env Initial working version of the seed collection service 2022-03-16 19:53:08 +00:00
.gitignore Prepare indexer 2022-03-24 23:19:32 +00:00
Cargo.lock Support network filter checking 2022-03-28 23:43:01 +01:00
Cargo.toml Move the indexer around 2022-03-24 19:50:20 +00:00
README.md Write up a README for the project 2022-03-14 20:33:02 +00:00
book.toml Add CI config 2022-03-17 23:52:41 +00:00
qp_indexer.sample.toml Store icons in the icon store 2022-03-27 22:06:06 +01:00
qp_raker.sample.toml Some bugfixes that get the raker mostly going 2022-03-21 19:24:20 +00:00
qp_web.sample.ron Initial working version of the seed collection service 2022-03-16 19:53:08 +00:00

README.md

QuickPeep

Small-scale 'artisanal web' search engine project, favouring quality over completeness.

Motivation

Modern web search can be rubbish. It feels like I'm getting the same websites time and time again, and that I rarely manage to come across small, independent websites instead of content/SEO mills.

Typical modern websites are rubbish. They bother you with adverts, annoying nagging pop-ups (often loaded with dark patterns), privacy-disregarding trackers and slow-loading content that relies on needless amounts of JavaScript to display plain rich text that has been possible with pure HTML for decades.

QuickPeep aims to index good-quality websites, favouring small personal sites (such as blogs), whilst cutting out the rubbish. Websites that don't care about the reader's experience are not welcome; QuickPeep will detect pop-up nags, adverts and privacy issues in order to keep them away.

As a separate issue, many websites decide to use CloudFlare to intercept their traffic. This is not in the spirit of the decentralised web; CloudFlare becomes a single party that, if compromised or dishonest, could exert a disproportional amount of power over users. One notable example of this is that they bombard privacy-seeking users on VPNs or Tor with needless CAPTCHAs, giving them a worse experience on a lot of the web. These websites will be detected so that they can be filtered out at will.

QuickPeep will follow the trade-off of preferring not to provide any results rather than to provide results laced with rubbish. If you need to fall back to a conventional search engine, this will eventually be possible to do right within QuickPeep...

Features

Crossed-out things are aspirational and not yet implemented.

  • Shareable 'rakepacks', so that anyone can run their own search instance without needing to rake (crawl) themselves
    • Dense encoding to minimise disk space usage; compressed with Zstd?
  • Raking (crawling) support for
    • HTML (including redirecting to Canonical URLs)
      • Language detection
    • Redirects
    • Gemtext over Gemini
    • RSS, Atom and JSON feeds
    • XML Sitemaps
  • Detection of anti-features, with ability to block or downrate as desired:
    • CloudFlare
    • Adverts
    • Nagging pop-ups
    • Trackers
  • Article content extraction, to provide more weight to words found within the article content (based on a Rust version of Mozilla's Readability engine)
  • (Misc)
    • Use of the Public Suffix List
    • Tagging URL patterns; e.g. to mark documentation as 'old'.
  • Page duplicate content detection (e.g. to detect / and /index.html, or non-HTTPS and HTTPS, or non-www and www...)
  • Language detection for pages that don't have that metadata available.

Limitations

  • Only supports English (and English dialects) for now.
    • Should hopefully be customisable later on, but even though I can speak some foreign languages, I don't know any communities to start with to seed non-English search.
  • Websites have to be manually allowed and tagged.
    • It's otherwise difficult to know how to detect good-quality sites automatically, or to tag what they are.
    • There may be ways to improve this; e.g. with machine learning techniques or crowdsourcing of data.
  • The search index needs to remain small enough to be usable on modest hardware, so there's no way we can hope to index everything.

Architecture

Not written yet.

Development and Running

Not written yet.

Helper scripts

scripts contains some helper scripts, which you probably need to run before operating QuickPeep:

  • get_cf_ips.sh: fetches IP addresses ued for CloudFlare detection.
  • get_adblock_filters.sh: fetches adblock filters used to detect nags/adverts/trackers.