growlery


Namegrowlery JSON
Version 0.3.1 PyPI version JSON
download
home_pagehttps://pypi.org/project/clan-quest-osrs-discord-bot/
SummaryAn OSRS Discord bot for Clan Quest.
upload_time2023-12-22 13:06:56
maintainerLari Liuhamo
docs_urlNone
authorLari Liuhamo
requires_python>=3.10,<4.0
licenseMIT
keywords python3 discord runescape osrs oldschool
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Growlery - The Clan Quest OSRS Discord Bot

![CQ Logo](./docs/assets/cq_logo_wide.png)

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](https://img.shields.io/pypi/pyversions/growlery?logo=python) ![PyPI - Implementation](https://img.shields.io/pypi/implementation/growlery) ![Wheel](https://img.shields.io/pypi/wheel/growlery?logo=pypi) ![Downloads](https://img.shields.io/pypi/dm/growlery?logo=pypi) [![Version](https://img.shields.io/pypi/v/growlery)](https://pypi.org/project/growlery/) |
| Tests        | [![codecov](https://codecov.io/gh/Diapolo10/clan-quest-osrs-discord-bot/branch/main/graph/badge.svg?token=N3JOBzERqP)](https://codecov.io/gh/Diapolo10/clan-quest-osrs-discord-bot) ![Unit tests](https://github.com/diapolo10/clan-quest-osrs-discord-bot/workflows/Unit%20tests/badge.svg) ![Pylint](https://github.com/diapolo10/clan-quest-osrs-discord-bot/workflows/Pylint/badge.svg) ![Flake8](https://github.com/diapolo10/clan-quest-osrs-discord-bot/workflows/Flake8/badge.svg) ![Deploy to PyPI](https://github.com/diapolo10/clan-quest-osrs-discord-bot/workflows/Deploy%20to%20PyPI/badge.svg) |
| Activity     | ![GitHub contributors](https://img.shields.io/github/contributors/diapolo10/clan-quest-osrs-discord-bot) ![Last commit](https://img.shields.io/github/last-commit/diapolo10/clan-quest-osrs-discord-bot?logo=github) ![GitHub all releases](https://img.shields.io/github/downloads/diapolo10/clan-quest-osrs-discord-bot/total?logo=github) ![GitHub issues](https://img.shields.io/github/issues/diapolo10/clan-quest-osrs-discord-bot) ![GitHub closed issues](https://img.shields.io/github/issues-closed/diapolo10/clan-quest-osrs-discord-bot) ![GitHub pull requests](https://img.shields.io/github/issues-pr/diapolo10/clan-quest-osrs-discord-bot) ![GitHub closed pull requests](https://img.shields.io/github/issues-pr-closed/diapolo10/clan-quest-osrs-discord-bot) |
| QA           | [![CodeFactor](https://www.codefactor.io/repository/github/diapolo10/clan-quest-osrs-discord-bot/badge?logo=codefactor)](https://www.codefactor.io/repository/github/diapolo10/clan-quest-osrs-discord-bot) [![Rating](https://img.shields.io/librariesio/sourcerank/pypi/growlery)](https://libraries.io/github/Diapolo10/clan-quest-osrs-discord-bot/sourcerank) |
| Other        | [![License](https://img.shields.io/github/license/diapolo10/clan-quest-osrs-discord-bot)](https://opensource.org/licenses/MIT) ![Repository size](https://img.shields.io/github/repo-size/diapolo10/clan-quest-osrs-discord-bot?logo=github) ![Code size](https://img.shields.io/github/languages/code-size/diapolo10/clan-quest-osrs-discord-bot?logo=github) ![Lines of code](https://img.shields.io/tokei/lines/github/diapolo10/clan-quest-osrs-discord-bot?logo=github) |

## Installation

The project is currently available both as a source release, and as a wheel,
via PyPI

```sh
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

```sh
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:

```txt
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][Discord Developers]
and create a new bot. [This tutorial][Discord bot 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

- [x] Fetching skill hiscores
- [x] Fetching minigame hiscores
- [x] Fetching boss hiscores
- [ ] Player comparisons
- [ ] Storing usernames for Discord IDs
- [ ] Support for the new Slash Commands

## Caught a Bug?

1. [Fork][Forking a repository] this repository to your own GitHub account and
   then [clone][Cloning a repository] 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`

[Discord Developers]: https://discord.com/developers
[Discord bot tutorial]: https://www.freecodecamp.org/news/create-a-discord-bot-with-python/
[Forking a repository]: https://help.github.com/articles/fork-a-repo/
[Cloning a repository]: https://help.github.com/articles/cloning-a-repository/

<!-- markdownlint-configure-file {
    "MD022": false,
    "MD024": false,
    "MD030": false,
    "MD032": false,
    "MD033": false
} -->
<!--
    MD022: Blanks around headings
    MD024: No duplicate headings
    MD030: Spaces after list markers
    MD032: Blanks around lists
    MD033: No inline HTML
-->

            

Raw data

            {
    "_id": null,
    "home_page": "https://pypi.org/project/clan-quest-osrs-discord-bot/",
    "name": "growlery",
    "maintainer": "Lari Liuhamo",
    "docs_url": null,
    "requires_python": ">=3.10,<4.0",
    "maintainer_email": "lari.liuhamo+pypi@gmail.com",
    "keywords": "python3,discord,runescape,osrs,oldschool",
    "author": "Lari Liuhamo",
    "author_email": "lari.liuhamo+pypi@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/85/26/58d97ef3ca4f213d31665af91d3d9d7fa48a29ea48ecf729f38e3bdaf70b/growlery-0.3.1.tar.gz",
    "platform": null,
    "description": "# Growlery - The Clan Quest OSRS Discord Bot\n\n![CQ Logo](./docs/assets/cq_logo_wide.png)\n\nEver since the untimely demise of RuneInfo, there's been a lack of OSRS support\nin the Discord bot department. While RuneScape 3 has Elenora, it doesn't\nsupport OSRS.\n\nThe Council of Elders looked about them and saw regression, not progress. The\ndecision was made by the wisest: a new bot would be hardened and removed from\nthe cycle. Its power would herald a new era.\n\n| Type         | Badges |\n|--------------|---|\n| PyPI         | ![Python versions](https://img.shields.io/pypi/pyversions/growlery?logo=python) ![PyPI - Implementation](https://img.shields.io/pypi/implementation/growlery) ![Wheel](https://img.shields.io/pypi/wheel/growlery?logo=pypi) ![Downloads](https://img.shields.io/pypi/dm/growlery?logo=pypi) [![Version](https://img.shields.io/pypi/v/growlery)](https://pypi.org/project/growlery/) |\n| Tests        | [![codecov](https://codecov.io/gh/Diapolo10/clan-quest-osrs-discord-bot/branch/main/graph/badge.svg?token=N3JOBzERqP)](https://codecov.io/gh/Diapolo10/clan-quest-osrs-discord-bot) ![Unit tests](https://github.com/diapolo10/clan-quest-osrs-discord-bot/workflows/Unit%20tests/badge.svg) ![Pylint](https://github.com/diapolo10/clan-quest-osrs-discord-bot/workflows/Pylint/badge.svg) ![Flake8](https://github.com/diapolo10/clan-quest-osrs-discord-bot/workflows/Flake8/badge.svg) ![Deploy to PyPI](https://github.com/diapolo10/clan-quest-osrs-discord-bot/workflows/Deploy%20to%20PyPI/badge.svg) |\n| Activity     | ![GitHub contributors](https://img.shields.io/github/contributors/diapolo10/clan-quest-osrs-discord-bot) ![Last commit](https://img.shields.io/github/last-commit/diapolo10/clan-quest-osrs-discord-bot?logo=github) ![GitHub all releases](https://img.shields.io/github/downloads/diapolo10/clan-quest-osrs-discord-bot/total?logo=github) ![GitHub issues](https://img.shields.io/github/issues/diapolo10/clan-quest-osrs-discord-bot) ![GitHub closed issues](https://img.shields.io/github/issues-closed/diapolo10/clan-quest-osrs-discord-bot) ![GitHub pull requests](https://img.shields.io/github/issues-pr/diapolo10/clan-quest-osrs-discord-bot) ![GitHub closed pull requests](https://img.shields.io/github/issues-pr-closed/diapolo10/clan-quest-osrs-discord-bot) |\n| QA           | [![CodeFactor](https://www.codefactor.io/repository/github/diapolo10/clan-quest-osrs-discord-bot/badge?logo=codefactor)](https://www.codefactor.io/repository/github/diapolo10/clan-quest-osrs-discord-bot) [![Rating](https://img.shields.io/librariesio/sourcerank/pypi/growlery)](https://libraries.io/github/Diapolo10/clan-quest-osrs-discord-bot/sourcerank) |\n| Other        | [![License](https://img.shields.io/github/license/diapolo10/clan-quest-osrs-discord-bot)](https://opensource.org/licenses/MIT) ![Repository size](https://img.shields.io/github/repo-size/diapolo10/clan-quest-osrs-discord-bot?logo=github) ![Code size](https://img.shields.io/github/languages/code-size/diapolo10/clan-quest-osrs-discord-bot?logo=github) ![Lines of code](https://img.shields.io/tokei/lines/github/diapolo10/clan-quest-osrs-discord-bot?logo=github) |\n\n## Installation\n\nThe project is currently available both as a source release, and as a wheel,\nvia PyPI\n\n```sh\npip install growlery\n```\n\nand as GitHub releases.\n\nInstallation requires Python 3.10 or newer. The project is platform-independent\nand should work fine on all major operating systems. Each release has been\nautomatically tested to run on Windows, Ubuntu, and Mac OS.\n\nTo run the bot, either manually execute `growlery/main.py` or, alternatively,\nyou may run it as an executable package\n\n```sh\npython -m growlery\n```\n\nas long as the needed environmental variables have been set.\n\n## Usage\n\nThe bot expects a Discord authentication token to be given via an environmental\nvariable called `DISCORD_TOKEN`. It can alternatively be provided by writing it\nto a file called `.env` and placing that inside the `growlery` folder. An\nexample file could look like this:\n\n```txt\nDISCORD_TOKEN=MzA5NzY3Njg0NzcwMTg1NzIy.V89mA1.9R8aoZ4vwhCUbIEd20BtzkVquLG\n```\n\nNote that the example token is just a dummy.\n\nIf you need to generate a token, go to the [Discord developers page][Discord Developers]\nand create a new bot. [This tutorial][Discord bot tutorial] may prove useful.\n\nThe only required permissions are:\n\n- Read Messages/View Channels\n- Send Messages\n- Use Slash Commands\n\nBut for future-proofing, the following are recommended:\n\n- Manage Messages\n- Manage Threads\n- Embed Links\n- Attach Files\n- Read Message History\n- Add Reactions\n\n## Features\n\n- Minimal dependencies\n- Supports fetching and printing hiscores, minigame scores, and boss kills as formatted text tables on Discord\n- Graceful handling of invalid usernames\n- List of supported commands:\n  - `/07hs <username>`\n    - Prints a table with the given user's stat hiscores, if available\n  - `/07hs-minigames <username>`\n    - Prints a table with the given user's minigame hiscores, if available\n  - `/07hs-bosses <username>`\n    - Prints a table with the given user's boss kills, if available\n  - The hiscores commands support additional postfixes for different kinds of rankings. Aside from the default, you can fetch the ranks for:\n    - Ironmen (eg. `/07hs-im <username>`)\n    - Hardcore Ironmen (eg. `/07hs-hcim <username>`)\n    - Ultimate Ironmen (eg. `/07hs-uim <username>`)\n    - Skillers (eg. `/07hs-skiller <username>`)\n    - 1-defence pures (eg. `/07hs-def <username>`)\n\n## Planned features\n\n- [x] Fetching skill hiscores\n- [x] Fetching minigame hiscores\n- [x] Fetching boss hiscores\n- [ ] Player comparisons\n- [ ] Storing usernames for Discord IDs\n- [ ] Support for the new Slash Commands\n\n## Caught a Bug?\n\n1. [Fork][Forking a repository] this repository to your own GitHub account and\n   then [clone][Cloning a repository] it to your local device\n2. Install `poetry` (if it isn't already installed)\n3. Run `poetry install --with dev,linters,tests` in the project directory. This fetches development\n   dependencies like `pytest` and sets up everything for you to start debugging\n\nAs always, you can run the tests using: `poetry run pytest`\n\n[Discord Developers]: https://discord.com/developers\n[Discord bot tutorial]: https://www.freecodecamp.org/news/create-a-discord-bot-with-python/\n[Forking a repository]: https://help.github.com/articles/fork-a-repo/\n[Cloning a repository]: https://help.github.com/articles/cloning-a-repository/\n\n<!-- markdownlint-configure-file {\n    \"MD022\": false,\n    \"MD024\": false,\n    \"MD030\": false,\n    \"MD032\": false,\n    \"MD033\": false\n} -->\n<!--\n    MD022: Blanks around headings\n    MD024: No duplicate headings\n    MD030: Spaces after list markers\n    MD032: Blanks around lists\n    MD033: No inline HTML\n-->\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "An OSRS Discord bot for Clan Quest.",
    "version": "0.3.1",
    "project_urls": {
        "Changelog": "https://github.com/Diapolo10/clan-quest-osrs-discord-bot/blob/main/CHANGELOG.md",
        "Documentation": "https://github.com/Diapolo10/clan-quest-osrs-discord-bot/tree/main/docs",
        "Homepage": "https://pypi.org/project/clan-quest-osrs-discord-bot/",
        "Repository": "https://github.com/Diapolo10/clan-quest-osrs-discord-bot",
        "Tracker": "https://github.com/Diapolo10/clan-quest-osrs-discord-bot/issues"
    },
    "split_keywords": [
        "python3",
        "discord",
        "runescape",
        "osrs",
        "oldschool"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1e723bddc3bdfe7d7957dda0c2e50996a573cb78878f341b003d205fb6a4e5b8",
                "md5": "4ee0f9ddd5930b799cb8d0ed5b3aed4c",
                "sha256": "82ebdbf88de1a521a2439bc6199b4a5cee4ba5a40b51f7907db7ec7f5f66d310"
            },
            "downloads": -1,
            "filename": "growlery-0.3.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4ee0f9ddd5930b799cb8d0ed5b3aed4c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10,<4.0",
            "size": 15001,
            "upload_time": "2023-12-22T13:06:54",
            "upload_time_iso_8601": "2023-12-22T13:06:54.488928Z",
            "url": "https://files.pythonhosted.org/packages/1e/72/3bddc3bdfe7d7957dda0c2e50996a573cb78878f341b003d205fb6a4e5b8/growlery-0.3.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "852658d97ef3ca4f213d31665af91d3d9d7fa48a29ea48ecf729f38e3bdaf70b",
                "md5": "90a6f7942b0ec3502f28c43a41145cf1",
                "sha256": "c5161d8449f8553cc25277d681187f72069340efcf7d8322961268397f7300ec"
            },
            "downloads": -1,
            "filename": "growlery-0.3.1.tar.gz",
            "has_sig": false,
            "md5_digest": "90a6f7942b0ec3502f28c43a41145cf1",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10,<4.0",
            "size": 15817,
            "upload_time": "2023-12-22T13:06:56",
            "upload_time_iso_8601": "2023-12-22T13:06:56.276888Z",
            "url": "https://files.pythonhosted.org/packages/85/26/58d97ef3ca4f213d31665af91d3d9d7fa48a29ea48ecf729f38e3bdaf70b/growlery-0.3.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-12-22 13:06:56",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Diapolo10",
    "github_project": "clan-quest-osrs-discord-bot",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "growlery"
}
        
Elapsed time: 0.17736s