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 |
The project is currently available both as a source release, and as a wheel, via PyPI
pip install growlery
and as GitHub releases.
Installation requires Python 3.10 or newer. The project is platform-independent and should work fine on all major operating systems. Each release has been automatically tested to run on Windows, Ubuntu, and Mac OS.
To run the bot, either manually execute growlery/main.py
or, alternatively,
you may run it as an executable package
python -m growlery
as long as the needed environmental variables have been set.
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
- 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.
- Fetching skill hiscores
- Fetching minigame hiscores
- Fetching boss hiscores
- Player comparisons
- Storing usernames for Discord IDs
- Support for the new Slash Commands
- 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 --with dev,linters,tests
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