Giter VIP home page Giter VIP logo

rtiw-bot's Introduction

RTIW Bot

Random Things I Want

js-badgenode-badgemongodb-badge

What is this?

This is a Discord bot originally designed for random features I wanted for my personal server I use to keep notes, but is now completely usable as a foundation.

Features for users:

  • RSS feed auto updater
  • Changeable notification channel
  • YouTube channel auto updater
  • Slash commands for configuration options

Features for devs:

  • Completely server-agnostic (took a lot more time than you'd think 🙃)
  • Very easily extensible
  • Custom-made RSS feed auto updater (use it please I enjoyed making it)
  • Scripts to help you change things
  • Uses MongoDB for backend storage!

It's a good base for your own bot if you have a database!

Fork repo

There are two versions:

master branch which is a solid foundation for a custom bot, includes every feature listed above

custom branch which is my own custom bot with more features (some features may not be server agnostic! Eventually I'll refactor for that, but it's not a priority and can take time)

Why?

It was fun!

I've never really worked with the Discord API before, and this was also a great way to further familiarize myself with Node's event structure and overall usage. I learned a lot, especially about using third party APIs and understanding documentation.

I absolutely could've just used any of the many bots available out there, but I'm happy to have made it myself 🙂

How To Host (if you want to)

This can be built from source normally, just make sure you have a Mongo database. The only extra step is the .env file necessary with private keys.

  • Clone the repo, and make a new file in the folder called ".env"
  • In .env, paste the following:
    BOT_TOKEN=""
    BOT_ID=""
    DB_URL=""
  • Put your values into the quotes. BOT_TOKEN and BOT_ID are obtained from your Discord Developer page, and DB_URL is the URL to your MongoDB database.
  • Subscribe to your RSS/YT feed (if you don't want the defaults)
  • Run npm init as usual

❤️ Hope you enjoy, I know I enjoyed making it! ❤️

rtiw-bot's People

Contributors

royaltwo avatar

Stargazers

J Artis avatar Laine Taffin Altman avatar

Watchers

J Artis avatar  avatar

Forkers

jartis

rtiw-bot's Issues

README is too plain

Perhaps adding more emojis would add some color, or research other ways to make READMEs stand out.

It's just very grey at the moment.

CSGO Updater should be separate event - not in index

Every other event is handled in the correct way besides this.

Implementation would probably be best if I make a new class for the updater, to maintain uniformity with the other events. Then just make an event file. This also would allow me to extend the updater with other CSGO events, or perhaps even make it an agnostic RSS updater.

Extraneous README info

As referenced in #12, README really does not need a lot of that text. It'd be much more succinct and just overall better to remove a lot of it.

Some parts that could be removed:

Right now, it tracks updates for a game called CS:GO, and tracks YouTube uploads for a YouTuber named EthosLab. Very random things, but they're what I want at the moment!

Not very configurable at the moment!!! I'm working on it next :D

^ Needs to be updated with a feature list, and the final paragraph is outdated.

Also, some parts should be rewritten in my opinion. Cut down on exclamation points perhaps?

New commands outside of /config/ will not be auto-registered

Currently the loop is only reading inside the /commands/config folder, but eventually there will most likely be other commands that aren't related to config.

Recursively gathering the files in a folder would probably be the solution, I'll have to look into how to do that. Perhaps fs has a native way?

README should contain features of the bot

Right now it doesn't actually say much. Well, correction, it has a lot of words, but not many of them are important or necessary.

Listing features and cutting down on some of that would probably help.

Feature: auto sort messages into notes categories

Have a channel where you can type a message with a prefix, and the bot will automatically copy your message into the channel corresponding to that prefix.

Could work like this:

/notes auto prefix <prefix> <channel> | This would set a specific prefix to a specific channel

&Mi "make cow farm" | usage example, showing a prefix and a message. Generic version below:

&<prefix> <message>

testCommand file causes issues rarely

It's really not needed, although it does serve as a good test for error messages. However, unit tests would probably be a much better way to check that, since the file seems to cause some issues rarely.

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.