Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jadc/redpin
A Discord app for pinning messages and comparing stats, powered by Go.
https://github.com/jadc/redpin
api async database discord discord-bot discordgo go golang routing sqlite
Last synced: 15 days ago
JSON representation
A Discord app for pinning messages and comparing stats, powered by Go.
- Host: GitHub
- URL: https://github.com/jadc/redpin
- Owner: jadc
- License: gpl-3.0
- Created: 2024-08-02T23:23:47.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-08-14T02:55:48.000Z (6 months ago)
- Last Synced: 2024-08-14T04:20:24.080Z (6 months ago)
- Topics: api, async, database, discord, discord-bot, discordgo, go, golang, routing, sqlite
- Language: Go
- Homepage:
- Size: 23.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 📌 redpin
A [Discord app](https://support.discord.com/hc/en-us/articles/21334461140375-Using-Apps-on-Discord#h_01J7CJ994TKKMGYMG1ZZQ9T3S5) for saving messages and comparing stats, powered by the [Go programming language](https://go.dev).
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](https://github.com/jadc/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.
## TODO
- [x] Implement core functionality
- [x] Message detection
- [x] Automatic webhook creation and usage
- [x] Message pinning
- [x] Message pinning with replies
- [x] Command-based interface for per-guild configuration
- [x] Pin Channel
- [x] Reaction Count to Pin (each or sum)
- [x] Allow pins from NSFW channels
- [x] Allow self-pins
- [x] Select which emojis pin messages
- [x] Pins preserve attachments when possible
- [ ] Implement nice-to-haves
- [ ] Emoji-themed pin channels
- [ ] Per-user leaderboard for how many of their messages have been pinned (toggleable)
- [ ] Pin score: ratio between pins given and pins received (toggleable)
- [ ] Write tests
- [x] Write CI/CD pipeline for automatic building and running tests
- [ ] Write Dockerfile for production deployment
- [x] Write Nix Shell for development environment
- [ ] Showcase bot in [Tour](#Tour)