Skip to main content

An OSRS Discord bot for Clan Quest.

Project description

Growlery - The Clan Quest OSRS Discord Bot

CQ Logo

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 Python versions PyPI - Implementation Wheel Downloads Version
Tests codecov Unit tests Pylint Flake8 Deploy to PyPI
Activity GitHub contributors Last commit GitHub all releases GitHub issues GitHub closed issues GitHub pull requests GitHub closed pull requests
QA CodeFactor Rating
Other License Repository size Code size Lines of code

Installation

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.

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>)

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?

  1. Fork this repository to your own GitHub account and then clone it to your local device
  2. Install poetry (if it isn't already installed)
  3. Run poetry install --with dev,linters,tests in the project directory. This fetches development dependencies like pytest 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.

Source Distribution

growlery-0.3.1.tar.gz (15.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

growlery-0.3.1-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file growlery-0.3.1.tar.gz.

File metadata

  • Download URL: growlery-0.3.1.tar.gz
  • Upload date:
  • Size: 15.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.0 Linux/6.2.0-1018-azure

File hashes

Hashes for growlery-0.3.1.tar.gz
Algorithm Hash digest
SHA256 c5161d8449f8553cc25277d681187f72069340efcf7d8322961268397f7300ec
MD5 90a6f7942b0ec3502f28c43a41145cf1
BLAKE2b-256 852658d97ef3ca4f213d31665af91d3d9d7fa48a29ea48ecf729f38e3bdaf70b

See more details on using hashes here.

File details

Details for the file growlery-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: growlery-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.0 Linux/6.2.0-1018-azure

File hashes

Hashes for growlery-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 82ebdbf88de1a521a2439bc6199b4a5cee4ba5a40b51f7907db7ec7f5f66d310
MD5 4ee0f9ddd5930b799cb8d0ed5b3aed4c
BLAKE2b-256 1e723bddc3bdfe7d7957dda0c2e50996a573cb78878f341b003d205fb6a4e5b8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page