Giter VIP home page Giter VIP logo

liara's Introduction

Liara

A Discord bot written by Pandentia and contributors

Python Discord Waffle.io - Issues in progress

What is Liara, exactly?

Liara is a fully-modular, expandable and flexible framework for creating efficient Discord bots.

  • Full modularity
    • In contrast to some other frameworks, Liara is completely modular. Everything is removeable and tweakable.
    • Liara lets you replace the bootloader and core cog, core.py, so you can make her work the way you want should you feel inclined to do so.
    • Instead of using a settings.json file for settings, Liara uses command-line flags.
    • Environment variables can be used to substitute command-line flags, making bot hosting easier for hosting providers.
  • Multiple owner support
    • This lets you share Liara with friends and your hosting provider easily.
  • Sharding support
    • Uses Redis as a backend, meaning you can easily hook third-party applications into the database and have them update configuration settings on-the-fly.
    • Dedicated and built-in cog for managing shards.
    • Cross-shard communication and remote control using Redis Pub/Sub.
    • The entire system can be spanned across multiple hosts seamlessly.
      • This means if you wanted to build a Raspberry Pi cluster running Liara, there would be nothing stopping you.
  • Selfbot mode
    • This lets you run Liara as a selfbot, so that you can take the benefits of a fully modular bot to any server (within reason).
  • No JSON files anywhere in sight.
  • Logs are stored in a compressed format (.bz2), so that you don't have to waste any disk space.
  • Modular message-processing preconditions.
    • This lets you change the message processing behavior to your liking. You can, for example, set up a whitelist of who can use Liara with this.
    • You can also set up a blacklist of people who should never be able to use Liara.

Donations

No. I don't feel like making money off of my community would be morally correct, since it's fairly simple code for what it's worth.

However, if this project has helped you, feel free to โญ it.

Join our Discord server!

Discord

This is where you can ask for help setting Liara up, and we try to keep a friendly community. You can also discuss writing cogs for Liara.

Final words

Of course, all these features come at a cost: Windows support. We have chosen not to support Windows users, because setting up Liara on Windows usually proves to be difficult. This doesn't mean it's impossible, but Liara's official support channel is only for Linux/UNIX support. You can, however, ask in the #windows-support channel in the aforementioned Discord server for Windows support.

Disclaimer

Liara is still in very active development, so things might change at any time without prior notice.

liara's People

Contributors

sapphiccode avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

liara's Issues

Rework Pub/Sub between shards

This should happen after #3, utilizing the asynchronous Redis wrapper for that.

Current gripes:

  • Loading / Unloading / Reloading cogs
  • Easy communication between all shards

Eval's large output failsafe broken.

With Gist's public API shutdown, Output for large evals greater than 2000 characters is now broken and will raise an error, currently looking for an alternative to Gist which has a proper API. (I'm looking at you Hastebin.)

Overhaul RedisDict

RedisDict is a hacky way to synchronize data with Redis, originally built with backwards-compatability with Red in mind. Given that it has always behaved somewhat weirdly and doesn't fit in with its surroundings, and also given that we're ditching direct support for Red cogs, I think it's a fitting change to get rid of it and put something better in its place (perhaps even supporting many key-value stores).

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.