Giter Club home page Giter Club logo

trixiebot's Introduction

TrixieBot

Using the Official TrixieBot

Add TrixieBot to your server now and enjoy it's full set of features with low latency on machines it was specifically designed for.


Trixie is an all-in-one Discord Bot for pony lovers

She offers a variety of great features, many of which to satisfy the needs of My Little Pony fans and server admins.

Top Features

  • Powerful Custom Commands
  • Full custom low-latency Soundboard
  • A giant set of image commands
  • Picarto, Twitch and Smashcast Stream announcer
  • User- / Server Stats and Analytics
  • Role management
  • 100% customizable (disable / enable everything)
  • Utility and fun stuff
  • Constantly worked on
  • Supports multiple languages
  • and much more...

Creating your copy of TrixieBot

WARNING: The owner of TrixieBot does not recommend building Trixie as it's not documented and most builds here will be extremely unstable, potentially untested and including unfinished features. If you however still want to build your own instance of Trixie or would like to help out improving Trixie and fixing bugs or issueing bug reports, you are very welcome to do so.

Preparing

Trixie is dependant on:

  • node.js v12.x
  • graphicsmagick
  • ffmpeg
  • mongodb 4.2

so make sure to have those installed before working with Trixie.

Also, this should be obvious, but for Trixie to work you will need a Discord API key and a bot user account.

Now clone the repository to your machine, install the dependencies and transpile the source files.

git clone https://github.com/LonelessCodes/trixiebot.git
cd trixiebot
npm install
npm run build

This might take one or more minutes, depending on your internet connection and the speed of your machine.

Setting up

In the config folder there's a template.yaml file that includes all settings Trixie needs to run properly. You must create a copy of that file as default.yaml or create files for specific NODE_ENV values and fill out all info, or remove optional properties so they won't use the XXXX placeholder keys. Not providing optional values will disable those features though.

Trixie creates the database automatically when starting.

Running

To run in development mode (beware: development means development. Don't run in public servers!) go npm run start:dev or npm run start:watch to compile at runtime and reload on src changes.

If you want to use pm2 for crash savety and restart on reboot, run npm run pm2 or npm run pm2:dev for development.

Editing

If you're going to edit the code, make sure you're using a proper IDE for code editing. Your best bet might be VS Code.

License

TrixieBot is licensed under the GNU General Public License v3.0

Copyright (C) 2018-2020 Christian Schäfer / Loneless

Permissions of this strong copyleft license are conditioned on making available complete source code of licensed works and modifications, which include larger works using a licensed work, under the same license. Copyright and license notices must be preserved. Contributors provide an express grant of patent rights.

trixiebot's People

Contributors

dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

trixiebot's Issues

[ Bug ] Endless redirect loop on trixiebot.com when visiting via HTTP (not HTTPS)

Before submitting I have:

  • Made sure this is actual unintended behaviour.
  • Double checked !help <command name> (if this is command related) for potential misunderstandings.

Describe the bug
Not strictly related to the bot, but visiting http://trixiebot.com on Firefox 77 or Chromium 81 will cause the URL bar to turn into this, while displaying an empty page:

image

This doesn't occur when browsing https://trixiebot.com.

To Reproduce
Visit http://trixiebot.com (not https://trixiebot.com, which works correctly).

Expected behavior
http://trixiebot.com should redirect to https://trixiebot.com.

[ Question ] Examples of public servers using TrixieBot

Before submitting I have:

  • [ ] Checked !help <command name> (if this is command related) to make sure my question is not answered there N/A
  • Checked the README.md
  • Checked the site https://trixiebot.com

Question:

What are some examples of public servers using TrixieBot? I'd just like to try out what I can do with her as a user, but I didn't find any list of public Discord servers I could join to meet her (it?).

As a follow up, I guess such a list could also be added the README.md or the website.

[ Bug ] Bot runs into an issue when trying to attach files without permissions

Before submitting I have:

  • Made sure this is actual unintended behaviour.
  • Double checked !help <command name> (if this is command related) for potential misunderstandings.

Describe the bug
Someone in a server said lone pone, which triggered trixiebot to post an image, however bot didn't have Attach Files permission in that channel and ran into an issue.

To Reproduce

  1. Make a channel, where bot doesn't haveAttach Files permission.
  2. Send lone pone.

Expected behavior
Handle this edge case properly and check for permissions (and don't try to send a message) instead of catching an error...

Additional context
https://i.nuuls.com/T12TG.jpeg

[ Feature Req. ] Add a self analyser to hunt conflicts in guilds

Before submitting I have
(Simply replace the space inside the brackets with an X for the things you have done)

  • Double checked existing Issues/Pull Requests for a similar feature.

Describe what you would like us to add
Add a self analysis register that analyses guilds for permission conflicts, etc. on demand through a command or the web dashboard. This would be useful for server owners to find out why a feature isn't working as intended or to help set up Trixie properly when she joins the server.

[ Feature Req. ] Group features, commands, etc into "Feature Sets"

Describe the change you would like to see
Adding "feature sets" - essentially groups of commands, keywords, behaviours that can easily be integrated and disabled.

Why should we change it that way?
Features like the alert system (example above) still send alerts in servers where the "alert" command has been disabled. As well as that, keyword commands still struggle with proper integration into Trixie, because by themselves they just fit nowhere into the commands enable/disable scheme, are difficult to address as they are RegExps instead of unique short strings as is the case with normal commands and require separate Maps and logic in the CommandRegistry, which always bothered me and isn't very elegant.

[ Feature Req. ] Let mods set member birthdays

Before submitting I have
(Simply replace the space inside the brackets with an X for the things you have done)

  • [X ] Double checked existing Issues/Pull Requests for a similar feature.

Describe what you would like us to add
I have a calendar of member birthdays I have been manually maintaining. It would be handy to be the birthday command could also be passed a member name and set that member's birthday.

[ BC in Discord API ] Stop sending duplicate audio packets.

Before submitting I have\

  • Double checked existing Issues/Pull Requests for a similar suggestion.

Describe the change you would like to see
Trixie should no longer send duplicate audio packets.

Why should we change it that way?
Discord removed support for sending duplicate audio packets which was useful for reducing packet loss rate and improve audio quality.

[ Enhancement ] Migrate to using Typescript

Describe the change you would like to see
Slowly migrate the entire project to Typescript. It'll be a lot more code, but it could be worth it.

Why should we change it that way?
Migrating from Discord.js v11 to v12 was a pain. There are probably many changes I simply don't see, with Typescript I could see the changes I need to make instead of guessing.

Trixie can't join any servers right now

After half a year, Discord still hasn't approved Trixie for use in more than 100 servers and priviledged intents, like server members and presence. Maybe I have gotten an email from a developer, I'm sure it landed in the spam folder and has already been automatically removed and now Trixie is in the limbo of "awaiting approval" and there's no UI way to abort and request another review so I'll probably have to hit up the support.

However I won't do so yet, because she's just that much broken right now and I'm still working on the API and website rewrite. Once that's done I can request another approval.

So until then no one can add Trixie to their server... which sucks, but there's no other way. I'm trying to get this dealt with asap.

[ Feature Req. ] Expand l10n functionality with timezones and hour formats

Before submitting I have
(Simply replace the space inside the brackets with an X for the things you have done)

  • Double checked existing Issues/Pull Requests for a similar feature.

Describe what you would like us to add
Add configuration functionality of server timezones and date and time formatting. Make these configurations accessible to Resolvables, especially to new classes for formatting dates and times.

[ Enhancement ] Add an option to disable "lone pone" keyword

Before submitting I have

  • Double checked existing Issues/Pull Requests for a similar suggestion.

Describe the change you would like to see
From what I've checked, there's no way to disable that keyword in a config and disabling it can be actually useful.

Why should we change it that way?
Not everyone wants to have their channels clogged with images while having a conversation, especially when there's no cooldown or anything which would prevent bot from being spammy. Most of the members/bots are not allowed to post images anyway and we want it to stay that way.

Additional context
Kinda offtopic, but you seem to have an unnecessary \ in your issue templates (near the checklist).

[ Enhancement ] New i18n infrastructure

Before submitting I have

  • Double checked existing Issues/Pull Requests for a similar suggestion.

Describe the change you would like to see
Rewrite i18n stuff to supply a more universal and cleaner approach to translating TrixieBot.

Why should we change it that way?
Currently i18n required manipulation of built-in discord.js class prototypes, adding properties to discord.js Objects and having the translation phrases in the code be exactly the same as in the translations, which reduced readibility of the locale files, increased junk and didn't make it clear what is translatable and what is not.

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.