Giter VIP home page Giter VIP logo

bosco's Introduction

Bosco

Bosco Bot Logo

 

Invite

Platform Language Python Version Code Size License

CodeQL Pytest Pylint Issues Pull Requests


Table of Contents

About

Bosco is a free, open-source Discord bot and companion for Deep Rock Galactic players. It can fetch weekly Deep Dives, provide random DRG trivia, and more!

Usage

Once Bosco has been invited to your server, it supports the following slash commands:

/ping

  • Description: Ping Bosco and get latency.
  • Options: None
  • Syntax:
    /ping
    
  • Example:

Ping Example

/deep-dive

  • Description: Get weekly Deep Dive details.
  • Options:
    • variant: An optional enum indicating which Deep Dive to fetch details for. Enum values: ALL (default), DEEP_DIVE, and ELITE_DEEP_DIVE.
  • Syntax:
    /deep-dive variant=ELITE_DEEP_DIVE
    
  • Example:

Deep Dive Example

/rock-and-stone

  • Description: You already know what this does.
  • Options: None
  • Syntax:
    /rock-and-stone
    
  • Example:

Rock and Stone Example

/trivia

  • Description: Get a random piece of DRG trivia.
  • Options: None
  • Syntax:
    /trivia
    
  • Example:

Trivia Example

/invite

  • Description: Invite Bosco to your server.
  • Options: None
  • Syntax:
    /invite
    
  • Example:

Invite Example

/help

  • Description: View the command list and helpful links.
  • Options: None
  • Syntax:
    /help
    
  • Example:

Help Example

Local Development

In order to run Bosco locally, you will need to install Python 3 and perform some initial setup.

Registering

Go to the Discord Developer Portal and create a new application. Then, click on the "Bot" tab and copy your bot token which will be used in the next step.

Configuring

Create a file called .env within the src/ directory to hold your environment variables, and add the following (replacing <VALUE> with the real value):

DISCORD_TOKEN=<VALUE>

Installing

Install dependencies by executing the install.sh script with the -d flag. Alternatively, you can use the -i option while executing the lint.sh, test.sh, or run.sh scripts to install dependencies in a single step:

./src/scripts/install.sh -d

Linting

Run the linter by executing the lint.sh script:

./src/scripts/lint.sh [-i,-h]

Testing

Run the unit tests by executing the test.sh script:

./src/scripts/test.sh [-i,-h]

Executing

Start Bosco by executing the run.sh script:

./src/scripts/run.sh [-i,-h]

Dependencies

Dependencies are automatically scanned and updated with Dependabot every weekday at 10am UTC, as configured in dependabot.yml. For questions about security, please reference the Security Policy.

Deployment

The bot is automatically deployed to the DigitalOcean App Platform whenever a push is made to the main branch.

Contributing

Contributions are welcome! If you found a bug or have a feature request, please open an issue. If you would like to contribute changes, please fork this repository, open a pull request with your changes, and link the PR with an issue. All contributions must adhere to the Code of Conduct. PRs must pass all status checks (linting, code quality, etc.) and recieve codeowner approval before they will be merged.

Special Thanks

Disclaimer

Neither this project nor its contributors are associated with Deep Rock Galactic or Ghost Ship Games in any way whatsoever.

Legal

Copyright © 2023 Hayden Moritz

bosco's People

Contributors

dependabot[bot] avatar hynrey avatar moritzhayden avatar mrbartusek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

hynrey mrbartusek

bosco's Issues

Automated deep dive report

Would it be possible for bosco to automatically announce the deep dives as they drop? That would be cool.

Setup instructions are not Windows or MacOS frendly

Hey! Current setup guide assumes that developer uses Linux-based system which is usually not the case. While it is not a technical limitation merely seems to me it's only a desire to use shell scripts for some reason.

For example setup script can just be a set of commands:

pip install pipenv
cd src # this can even be removed if Pipfile is not in src, because why would it even not be in root?
pipenv install --dev

And run script can just be:

pipenv run python src/bot.py

These shell scripts are nice simplification but only for Linux users

Mineral Trade Daily Deals

Any possibility of adding the mineral trade daily deal to the bot? Would be super handy to see what the deal is without having to launch daily if it ends up being not worth it. Autoposting on reset would be nice to see as well

Create DRGService

Per this Reddit comment, the poster of the weekly deep dive Reddit thread is retiring from their duties. This means the format and/or method of consumption of the weekly deep dive information may change. There are discussions of who will be the new poster, and one commenter even asked if GSG could expose a dedicated DRG API for fetching this information directly.

Depending on which method is used moving forward, the Reddit Service in this project may be impacted and/or a new service may need to be created.

Now that DRG API is live, refactor the services (RedditService, SaluteService, TriviaService) to a single DRGService which calls this API (docs).

Add slash commands to Bosco's BIO

Feature

Add slash commands to Bosco's BIO for quick recall of commands without having to type them.
Not to be confused with "try my commands" section, because the bot must be verified (be on 70+ servers) in order to use it.

Implementation

To do this, in the Discord Developer Portal, add commands and their IDs to the bot description. To get ID of command needs to type command and then click on it with right mouse button and copy ID

copy

Example:
</(command-name):(command-ID)>

**TRY MY COMMANDS**

</play:938016496168932622> | </help:938012345242127927>

example

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.