An OSRS Discord bot for Clan Quest.
Project description
Growlery - The Clan Quest OSRS Discord Bot
Ever since the untimely demise of RuneInfo, there's been a lack of OSRS support in the Discord bot department. While RuneScape 3 has Elenora, it doesn't support OSRS.
The Council of Elders looked about them and saw regression, not progress. The decision was made by the wisest: a new bot would be hardened and removed from the cycle. Its power would herald a new era.
Type | Badges |
---|---|
PyPI | |
Tests | |
Activity | |
QA | |
Other |
Installation
The project is currently as source code, via PyPI
pip install growlery
and as GitHub releases.
Installation requires Python 3.10 or newer. Platform-independent.
To run the bot, either manually execute growlery/main.py
or, for future releases, you can attempt to run it via
python -m growlery
in case the functionality has been implemented.
Usage
The bot expects a Discord authentication token to be given via an environmental variable called DISCORD_TOKEN
. It can alternatively be provided by writing it to a file called .env
and placing that inside the growlery
folder. An example file could look like this:
DISCORD_TOKEN=MzA5NzY3Njg0NzcwMTg1NzIy.V89mA1.9R8aoZ4vwhCUbIEd20BtzkVquLG
Note that the example token is just a dummy.
If you need to generate a token, go to the Discord developers page and create a new bot. This tutorial may prove useful.
The only required permissions are:
- Read Messages/View Channels
- Send Messages
- Use Slash Commands
But for future-proofing, the following are recommended:
- Manage Messages
- Manage Threads
- Embed Links
- Attach Files
- Read Message History
- Add Reactions
Features
- Minimal dependencies
- Supports fetching and printing hiscores, minigame scores, and boss kills as formatted text tables on Discord
- Graceful handling of invalid usernames
- List of supported commands:
/07hs <username>
- Prints a table with the given user's stat hiscores, if available
/07hs-minigames <username>
- Prints a table with the given user's minigame hiscores, if available
/07hs-bosses <username>
- Prints a table with the given user's boss kills, if available
- The hiscores commands support additional postfixes for different kinds of rankings. Aside from the default, you can fetch the ranks for:
- Ironmen (eg.
/07hs-im <username>
) - Hardcore Ironmen (eg.
/07hs-hcim <username>
) - Ultimate Ironmen (eg.
/07hs-uim <username>
) - Skillers (eg.
/07hs-skiller <username>
) - 1-defence pures (eg.
/07hs-def <username>
)
- Ironmen (eg.
Planned features
- Fetching skill hiscores
- Fetching minigame hiscores
- Fetching boss hiscores
- Player comparisons
- Storing usernames for Discord IDs
- Support for the new Slash Commands
Caught a Bug?
- Fork this repository to your own GitHub account and then clone it to your local device
- Install
poetry
(if it isn't already installed) - Run
poetry install
in the project directory. This fetches development dependencies likepytest
and sets up everything for you to start debugging
As always, you can run the tests using: poetry run pytest
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.