All Projects → tgsachse → lion

tgsachse / lion

Licence: other
A simple, modular Discord bot from scratch

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to lion

ctx
🍭Ctx (Context) 是一个服务模块化上下文框架。
Stars: ✭ 38 (+153.33%)
Mutual labels:  service, modularity
gps-permission-checks-livedata
Sample project to demonstrate how GPS and Runtime Location Permission checks can be done on UI and Background Service using LiveData
Stars: ✭ 37 (+146.67%)
Mutual labels:  service
airad
Beego based Restful API service
Stars: ✭ 63 (+320%)
Mutual labels:  service
InitWare
The InitWare Suite of Middleware allows you to manage services and system resources as logical entities called units. Its main component is a service management ("init") system.
Stars: ✭ 164 (+993.33%)
Mutual labels:  service
ex aws sns
No description or website provided.
Stars: ✭ 19 (+26.67%)
Mutual labels:  service
background-service-lib
Essential classes for reliable background services.
Stars: ✭ 24 (+60%)
Mutual labels:  service
Coyote
Framework providing operating system abstractions and a range of shared networking (RDMA, TCP/IP) and memory services to common modern heterogeneous platforms.
Stars: ✭ 80 (+433.33%)
Mutual labels:  service
colony
Implementation of the colony specification for python
Stars: ✭ 23 (+53.33%)
Mutual labels:  modularity
ember-contextual-services
Services in Ember are scoped to the app as a whole and are singletons. Sometimes you don't want that. :) This addon provides ephemeral route-based services.
Stars: ✭ 20 (+33.33%)
Mutual labels:  service
api
Core service used to handle events from clients
Stars: ✭ 36 (+140%)
Mutual labels:  service
easemesh
A service mesh implementation for connecting, control, and observe services in spring-cloud.
Stars: ✭ 454 (+2926.67%)
Mutual labels:  service
service-tree
[ABANDONED] A tree that stores services in its node for a given key, and allows traversing them.
Stars: ✭ 33 (+120%)
Mutual labels:  service
WPWatcher
Wordpress Watcher is a wrapper for WPScan that manages scans on multiple sites and reports by email and/or syslog. Schedule scans and get notified when vulnerabilities, outdated plugins and other risks are found.
Stars: ✭ 34 (+126.67%)
Mutual labels:  service
FactoryOrchestrator
A cross-platform system service which provides a simple way to run and manage factory line validation, developer inner-loop, diagnostics, and fault analysis workflows.
Stars: ✭ 36 (+140%)
Mutual labels:  service
springboot-microservice-with-spring-cloud-netflix
msa backend service example with springboot REST API
Stars: ✭ 36 (+140%)
Mutual labels:  service
angular-odata-es5
OData Service for Angular.io (es5 version)
Stars: ✭ 45 (+200%)
Mutual labels:  service
senlin
Clustering service for managing homogeneous objects in OpenStack. Mirror of code maintained at opendev.org.
Stars: ✭ 43 (+186.67%)
Mutual labels:  service
acikseminer2020
servis ve süreçlerle ilgili basit örnekler
Stars: ✭ 41 (+173.33%)
Mutual labels:  service
chrly
Lightweight implementation of Minecraft skins system server. It's packaged and distributed as a Docker image.
Stars: ✭ 23 (+53.33%)
Mutual labels:  service
tower-lsp
Language Server Protocol implementation written in Rust
Stars: ✭ 455 (+2933.33%)
Mutual labels:  service

lion

This simple and lightweight Discord bot is built by and for UCF CS students. Its heavily modular architecture is highly extensible and is meant to scale to large audiences. Writing cogs (plugins) for Lion is easy, too!

Here are some of Lion's cool features:

  • create timed, automatic polls
  • filter messages
  • check the weather
  • create memes
  • check the status of UCF garages
  • hide class-related channels on a per-user basis
  • automatically assign permission roles

Take a look at the installation procedure to get started, or learn how to contribute by following the link at the bottom of this page.

installation

This software is only supported on Linux systems that use systemd and have python3 installed, (like Ubuntu/Debian/Fedora/Arch/etc). To download and install Lion on your Linux server run these commands:

cd /tmp && wget https://github.com/tgsachse/lion/archive/v2.0.0.tar.gz
tar -xzf v2.0.0.tar.gz && cd lion-2.0.0
sudo bash install.sh --handle-dependencies

The --handle-dependencies flag tells the installation script to download and install Lion's dependencies for you, however this will only work if you're on a system that uses apt (like Ubuntu or Debian). If you're using a different distribution of Linux, you should check out the dependencies portion of the installation script and use this to install the dependencies manually.

Before you can start the Lion service you must add your Discord API token. Create an application and obtain a bot token, then run this command:

sudo lion --token "your token"

Next, you'll probably want to enable some (or all) of the cogs that Lion ships with by default, otherwise Lion won't have any skills! Enable all of the cogs like this:

sudo lion --cogs enable all

Finally, start the service with this command:

sudo lion --service start

All that's left to do is invite Lion to your server!

usage

Lion runs as a systemd service/daemon. Once you've properly installed the software, the service can be controlled from the command line with the lion command like this:

lion [--flag [parameters...]]

All of the script's available flags are listed and described below:

--service <directive>
Send a directive to the service. Directives include start, stop, restart, status, enable, and disable. enable and disable force the service to start or stop at system startup. The rest of the directives do what you'd think they do. All of these directives except for status must be run as root or with sudo.
--token <token>
Add a Discord API token to Lion. If you never add a token, Lion cannot communicate with Discord! This flag must be run as root or with sudo.
--cogs <directive [parameters...]>

Manage Lion's cogs. Potential directives include enable, disable, install, uninstall, and list.

enable <cogs...> | disable <cogs...> | uninstall <cogs...>
Enable, disable, or uninstall a list of cogs from the system. Your list of cog names should be space-separated. These directives must all be run as root or with sudo.
install <tarballs...>
Install new cogs from a list of tarballs onto your system. Your list of tarballs should be space-separated. This directive must be run as root or with sudo.
list [enabled | disabled]
List cogs on the system. An optional parameter allows you to only list enabled or disabled cogs.
--version
Display version information.
--log
Display the most recent logs from the service.
--help
Show a small help menu.

examples

Here are some examples of Lion's control script in action:

# Start the service.
sudo lion --service start

# Check the service's status.
lion --service status

# Enable the 'example' and 'administration' cogs.
sudo lion --cogs enable example administration

# Install and enable new cogs 'weather' and 'poll' from tarballs.
sudo lion --cogs install weather.tar.gz poll.tar.gz
sudo lion --cogs enable weather poll

# View all enabled cogs.
lion --list enabled

# Disable all cogs.
sudo lion --cogs disable all

# Restart the service.
sudo lion --service restart

contributing

We welcome new contributors who want to help make this project better! Take a look at the API reference before you get started.

information

License
MIT
Version
2.0.0
Authors
Tiger Sachse and several contributors
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].