83 lines
2.2 KiB
Markdown
83 lines
2.2 KiB
Markdown
# URL Eater
|
|
Clean unnecessary parameters from URLs copied to clipboard
|
|
|
|
## Usage
|
|
Run with a filter file that specifies which parameters should be removed:
|
|
```
|
|
url-eater denylist.kdl
|
|
```
|
|
An example filter file:
|
|
```d
|
|
category "Spotify" {
|
|
params "context@open.spotify.com" "si@open.spotify.com"
|
|
}
|
|
category "Campaign tracking (itm)" {
|
|
params "itm_*"
|
|
}
|
|
category "Campaign tracking (stm)" disabled=true {
|
|
params "stm_*"
|
|
}
|
|
```
|
|
Categories are used to structure filter lists and allow disabling/enabling filters in groups.
|
|
Each parameter applies to all URLs, unless a domain like `@example.com` is specified at the end.
|
|
Both the parameter and the domain parts can contain wildcards. Use `*` to match 0 or more characters, and `?` to match exactly one character.
|
|
The structure is based on [NeatURL's format](https://github.com/Smile4ever/Neat-URL/#default-blocked-parameters), with a few differences (aside from a different file format):
|
|
- Single character matching (`?`) is supported.
|
|
- `$` and `!` rules are currently unsupported.
|
|
|
|
The intended use case is running the program as a background service.
|
|
|
|
## Example
|
|
Before:
|
|
```
|
|
https://open.spotify.com/track/0ibuggkWTSDXHo25S0Qqvj?si=e4c675cbaee94c3a
|
|
```
|
|
After:
|
|
```
|
|
https://open.spotify.com/track/0ibuggkWTSDXHo25S0Qqvj
|
|
```
|
|
|
|
## Usage example
|
|
This repository also contains a Nix flake. It can be used in a NixOS configuration like this:
|
|
1. Add flake to inputs:
|
|
```nix
|
|
url-eater.url = "github:AgathaSorceress/url-eater";
|
|
url-eater.inputs.nixpkgs.follows = "nixpkgs"; # optional
|
|
```
|
|
2. Adding output:
|
|
```nix
|
|
outputs = inputs@{ self, nixpkgs, url-eater, ... }:
|
|
```
|
|
3. Import NixOS module
|
|
```nix
|
|
imports = [ url-eater.nixosModules.default ];
|
|
```
|
|
4. Configure the module:
|
|
```nix
|
|
{ ... }: {
|
|
services.url-eater = {
|
|
enable = true;
|
|
filters = ''
|
|
category "Spotify" {
|
|
params "context@open.spotify.com" "si@open.spotify.com"
|
|
}
|
|
category "Twitter" {
|
|
params "cxt@*.twitter.com" "ref_*@*.twitter.com" "s@*.twitter.com" "t@*.twitter.com" "twclid"
|
|
}
|
|
'';
|
|
};
|
|
}
|
|
```
|
|
|
|
## Building from source
|
|
Clone this repository, then run:
|
|
```sh
|
|
cargo build --release
|
|
```
|
|
The output binary will be in `target/release/url-eater`
|
|
|
|
Alternatively,
|
|
```sh
|
|
nix build github:AgathaSorceress/url-eater
|
|
```
|