Hydrilla&Haketilo
Haketilo is a tool to modify pages being opened in a web browser. It can block pages' scripts and optionally inject user-specified ones.
Haketilo started as a browser extension (a WebExtension) with a dedicated user scripts repository server, Hydrilla. It has since been rewritten as an HTTP proxy. This repository contains the Python code of Hydrilla and Haketilo.
Installation and running
Head on to the relevant wiki article for usage instructions for casual users.
Hacking
At the moment the recommended method of hacking Haketilo and Hydrilla's codebase is through the GNU Guix package manager.
A Guix version of at least 1.1.0 is expected. Most development tasks have been
automated through Makefile. Rules use the guix time-machine
command under the
hood to pull and run a fixed Guix version that is known to work with the
code. The most important make rules are described below.
make wheel
Builds the project and put a source tarbal and a Python wheel under dist/
.
make dist
Generates a source tarbal under dist/
.
make release
Produces a standalone, relocatable, binary release tarball that should work on
most GNU/Linux systems. The tarball is written as
./haketilo-and-hydrilla-bin-<VERSION>-<ARCHITECTURE>.tar.gz
.
make shell
Spawns a development shell with project's all dependencies and dev dependencies available.
make shell-with-haketilo
Spawns a shell with Haketilo and Hydrilla built and available by means of a Guix profile.
make catalogs
Rebuilds GNU gettext message catalogs used for localization.
make refresh-catalogs
Extracts messages form source files, refreshes the GNU gettext message catalog source files and rebuilds the catalogs.
make test
Runs the automated test suite.
make run-haketilo
Runs haketilo
program from sources.
mypy-lint
Runs mypy static type checker over source files of the project.
mypy-lint-server
, mypy-lint-builder
, mypy-lint-haketilo
Runs mypy static type checker over source files used in the relevant part of the project.
make clean
Removes generated files.
Contributing, asking for help, giving feedback, reporting bugs
Development occurs on our issue tracker. You can also write directly to Wojtek if you prefer.
Copying
Hydrilla is Copyright (C) 2021-2022 Wojtek Kosior and contributors, entirely available under the GNU Affero General Public License version 3 or later. Some files might also give you broader permissions, see comments inside them.
I, Wojtek Kosior, thereby promise not to sue for violation of this project's license. Although I request that you do not make use of this code in a proprietary program, I am not going to enforce this in court.