Telegram bot to fix social media link previews
Find a file
renovate[bot] ccdd52bd6d
Some checks are pending
Check Rust code / check (push) Waiting to run
chore(deps): lock file maintenance
2025-08-20 03:46:39 +00:00
.github chore(deps): update actions/checkout action to v5 2025-08-11 17:15:10 +00:00
src refactor(instagram): use instagramez.com 2025-08-18 09:34:18 +05:30
.env.sample Revert "feat: wire up inputs for a persistent volume" 2024-12-30 18:20:43 +05:30
.envrc chore: add .envrc 2024-09-23 18:22:00 +05:30
.git-blame-ignore-revs chore: add reformat to git-blame-ignore-revs 2024-12-17 00:44:56 +05:30
.gitignore Revert "feat: wire up inputs for a persistent volume" 2024-12-30 18:20:43 +05:30
Cargo.lock chore(deps): lock file maintenance 2025-08-20 03:46:39 +00:00
Cargo.toml chore(release): bump linkleaner to version 2.8.1 2025-08-18 09:48:21 +05:30
CHANGELOG.md chore(release): bump linkleaner to version 2.8.1 2025-08-18 09:48:21 +05:30
cliff.toml chore(release): add automatic changelog 2025-03-01 21:26:28 +05:30
default.nix chore: reformat all files with nixfmt-rfc-style 2024-12-17 00:44:42 +05:30
flake.lock flake.lock: Update 2025-08-17 00:50:29 +00:00
flake.nix fix(rust): upgrade to Rust 1.88.0 2025-06-27 02:54:21 +05:30
fly.toml refactor(build): only deploy images to ghcr.io 2025-03-23 01:02:29 +05:30
LICENSE-APACHE License under MIT/ASL 2.0 2020-02-20 23:23:05 +05:30
LICENSE-MIT Fix license text 2020-03-11 23:47:31 +05:30
README.md refactor(instagram): use instagramez.com 2025-08-18 09:34:18 +05:30
release.toml chore(release): update changelog before release 2025-03-02 00:13:25 +05:30
rust-toolchain.toml fix(rust): upgrade to Rust 1.88.0 2025-06-27 02:54:21 +05:30
shell.nix chore: reformat all files with nixfmt-rfc-style 2024-12-17 00:44:42 +05:30

linkleaner No Maintenance Intended

Telegram bot to replace social media links with their improved preview variants. The mapping of supported link types to what services are used to "fix" these links is given below.

Link type Fix mechanism
Accelerated Mobile Pages (AMP) AmputatorBot
Instagram instagramez (embedez)
Medium LibMedium
Reddit FxReddit
TikTok fxTikTok
Twitter / X TweetFix
YouTube Shorts Rewrite URL to normal YouTube player

Development

There are no external dependencies other than a nightly Rust compiler.

I personally use Nix to manage my development environment, but the repository also contains a rust-toolchain.toml for use with Rustup containing the exact version of Rust nightly the project is tested with.

Deployment

My personal copy of linkleaner is hosted on fly.io and the release workflow is designed to facilitate that.

To get set up, refer to the environment variables defined in the .env.sample file and set them on fly.io itself with the real values.

The bundled fly.toml is not a template and refers to my own deployment, make sure to swap out app for your own unique name. You can keep the image the same if you wish to keep in sync with upstream releases, or push your own Docker image.

Docker

The release CI pushes the ghcr.io/msfjarvis/linkleaner:latest image to GitHub Container Registry which can be pulled periodically for the latest code. You can run this image directly with the environment variables from .env.sample since it has a configured entrypoint.