Coder Social home page Coder Social logo

b1ue-dev / articuno Goto Github PK

View Code? Open in Web Editor NEW
9.0 1.0 4.0 3.39 MB

A fun (parody) Discord Bot, written with interactions.py.

Home Page: https://blue.is-a.dev/Articuno/

License: GNU General Public License v3.0

Python 99.79% Dockerfile 0.21%
discord discord-bot bot python interactions-py discord-py-interactions discord-py-slash-command interactions hacktoberfest

articuno's Introduction

Articuno wakatime

A fun (parody) Discord Bot, written with interactions.py.

ℹ️ In maintenance mode. Articuno has finished its purpose, and since I'm lacking of time to continue development due to studies and work in real life, the development can be considered as half-ceased. I will continue to fix existing bug (if any), but there will not be any new feature. Thank you so much for supporting Articuno for the last 3 years.

banner.png

Invite link

Feature

Articuno is a multi-purpose Discord Bot that can do a wide variety of jobs, mostly with fun commands. It has a tag system (text) allows you to store and send multiple tags that suit with your server. Featuring an emoji management system, where you can steal and add emojis from other servers (Nitro or image url), remove and look up for the information about an emoji in your server. There is an image search command (powered by Google Images) allows you to look up for different images. And, Articuno also does its job as a Pokemon named bot, by having a must-have /pokedex command and the famous game from the franchise, Who's that Pokemon. Beside those features, Articuno offers a wide range variety of random fun command, more as a parody, that can hype up the current chat in your server.

Highlight commands:

  • /img: Look up for images from Google Images. 🖼

  • /tag: A message tag system (view, create, edit, info, delete, list). 📜

  • /emoji: An emoji management system (info, steal, add, remove). Those emojis from another look fancy, right? Add them to your own server with Articuno. 🏡

  • /snipe: Want to see the most recent deleted message in the chat (to expose someone)? Articuno has you covered, but in 5 minutes - and 5 message, he can't remember a lot. 🤒

  • /trivia: A trivia game. See how much you know about this world. 🌐

  • /truth_dare: You all know the Truth n Dare game that you usually play with your friend group? Looking no more, as Articuno now simulate it on Discord. 👨‍👨‍👧‍👦

  • /hangman: The classic Hangman, now on Discord. 🧶

  • /whos_that_pokemon: The famous Who's that Pokemon game. Let's see your knowledge about Pokemon. ⚡

Misc commands

Articuno has a good range of miscellaneous commands, such as amogus, flip, hug, ship, /clownrate, /uwu, /amogus, sanitycheck, /gay, etc. You can have a look more at the bot command list after adding Articuno to your server.

For Pokemon

  • There is a /pokedex command so you can look up for information about a Pokemon. What is special about this Pokedex command compared to the others is a featured called auto-complete, so you can look up for information about your Pokemon easier.

  • /who_is_that_pokemon The famous "Who's that Pokemon" game from the franchise.

  • /poketwo For guessing the Pokemon from Poketwo's hint.

  • $<pokemon_name> Send a sprite of a Pokemon.

  • $shiny <pokemon_name> Send a shiny sprite of a Pokemon.

How to use Articuno

It is very simple. Just add him to your server, select a command from the Articuno list after typing the / symbol, read the command description and you are good to go.

Beside slash command, Articuno also has some commands that have prefixed message command support. (You may wonder what is a prefixed message command? Remember the old time when slash command wasn't a thing yet? You use bots with symbol and name like $, ., h!, ?.)

Type /help to see a list of available slash commands.

Type $help to see a list of available prefixed message commands.

Contribution

Contribution is welcomed. However, we require you to follow our set of rules:

  • Follow the repository schema. (Breaking it will result in your Pull Request get closed)
  • PRs are enforced under black black, flake8 and Conventional Commits.
  • Must work with Python version requirement >=3.10.0, <3.11.
  • Breaking change/new feature implementation must be documented precisely.
  • We do not accept abstraction-based requests. (e.g. colour for color)
  • You must be willing to change/adhere to reviews from participants where necessary. (Pull Request/Issues may be closed if we do not feel it is necessary to be added)

articuno's People

Contributors

b1ue-dev avatar nattadasu avatar thrzl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

articuno's Issues

About your `/help` command...

Heya! I noticed while exploring some interactions.py repos to look some inspiration on how implementing help command... your /help command wouldn't index last commands since you're using multiples of 10 in your i var, so it'd orphan some commands, like if you have 36 commands, embed only shows 30 commands instead. Then those commands aren't sorted alphabetically globally, but per pages.

I tried to patch using what I've wrote similarly, but with languages index, and it works properly. Below is my patch, feel free to use it :D

@interactions.slash_command(
    name="help",
    description="Get a list of all available commands."
)
async def help(self, ctx: interactions.SlashContext) -> None:
    """Get a list of all available commands."""
    help_list = []
    commands = sorted(self.client.application_commands,
                      key=lambda x: str(x.name))

    for i in range(0, len(commands), 10):
        listed = []
        for command in commands[i:i + 10]:
            cmd_name = f"/{command.name}"
            group_name = f" {command.group_name}" if command.group_name else ""
            sub_cmd_name = f" {command.sub_cmd_name}" if command.sub_cmd_name else ""
            name = f"{cmd_name}{group_name}{sub_cmd_name}"
            description = command.sub_cmd_description if command.sub_cmd_name else command.description
            listed.append(interactions.EmbedField(name=name, value=description))

        help_list.append(
            interactions.Embed(
                title="List of available commands.",
                color=0x7CB7D3,
                thumbnail=interactions.EmbedAttachment(
                    url=self.client.user.avatar.url),
                fields=listed
            )
        )

    paginator = Paginator.create_from_embeds(
        self.client, *help_list, timeout=30)
    await paginator.send(ctx)

For this, I used range() as it will do the same job with i = 0; i +=1 stuff, but better and makes the code even smaller.

[ISSUE] GitHub

GitHub and Microsoft, thanks for the down time so it is not possible for me to solve the issue #1.

Thanks for the down time at a very best moment.

To do:

  • Wait until GitHub is fully operate again.
  • GitHub Codespaces (Cloud deployment/building).
  • Git Operations (local git usage).
  • GitHub Pages (pages for projects).
  • Issues (How could this be made?).
  • Pull Requests (Again?).

image

Rewrite `exts.core`

Rewrite exts.core.

Current planned:

  • eval.py
    • Support autocomplete when using slash command.
    • Remove codeblock on response.
    • Strip codeblock when using prefixed $eval.

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.