Skip to content

jadc/redpin

Repository files navigation

📌 redpin

A Discord app for saving messages and comparing stats, powered by the Go programming language.

Unlike most pin bots, redpin is highly configurable and flexible, supporting any number of emojis to pin messages; in addition, the bot uses webhooks and modern Discord features for much more minimal aesthetics compared to other options.

Tour

TODO

Motive

This repository contains the modern rewrite and expansion of redpin in the Go. If you are looking for the original Python version, see redpin-py; I rewrote this bot to practice interfacing with databases and APIs, routing packets, responding to asynchronous events, and generally extend the features of this bot significantly past its current form and existing (free and paid) offerings.

Installation

Docker

The recommended way of hosting is using Docker.

  1. Clone this repository.

    git clone https://github.com/jadc/redpin.git
  2. Create an environment file named .env with the following contents.

    DISCORD_TOKEN=<discord token here>
    DB_FILE=[optional, path to database file]
    
  3. Run the container using Docker Compose.

    docker compose up

Manual

The latest build of redpin can be found in the Actions tab.

Simply run ./redpin with at least the DISCORD_TOKEN environmental variable set.

DISCORD_TOKEN="<discord token here>" ./redpin

Contributing

See CONTRIBUTING.md.

TODO

  • Implement core functionality
    • Message detection
    • Automatic webhook creation and usage
    • Message pinning
    • Message pinning with replies
    • Command-based interface for per-guild configuration
      • Pin Channel
      • Reaction Count to Pin (each or sum)
      • Allow pins from NSFW channels
      • Allow self-pins
      • Select which emojis pin messages
    • Pins preserve attachments when possible
    • Leaderboard for users with most pins (and emojis used)
  • Write tests
  • Write CI/CD pipeline for automatic building and running tests
  • Write Dockerfile for production deployment
  • Write Nix Shell for development environment
  • Showcase bot in Tour

About

A Discord app for pinning messages and comparing stats, powered by Go.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Languages