From f41fa7e09b1acc044d8146d1e1d99896a51cfd61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Czy=C5=BC?= Date: Mon, 12 Aug 2024 13:36:36 +0200 Subject: [PATCH] updated README.md --- Cargo.lock | 51 ++++++++++++++++--------------------- Cargo.toml | 6 ++--- README.md | 75 +++++++++++++++++++++++++++++++++++++++++------------- 3 files changed, 82 insertions(+), 50 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8e6a53d..413562a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -90,13 +90,32 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" +[[package]] +name = "audiopus" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3743519567e9135cf6f9f1a509851cb0c8e4cb9d66feb286668afb1923bec458" +dependencies = [ + "audiopus_sys 0.1.8", +] + [[package]] name = "audiopus" version = "0.3.0-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab55eb0e56d7c6de3d59f544e5db122d7725ec33be6a276ee8241f3be6473955" dependencies = [ - "audiopus_sys", + "audiopus_sys 0.2.2", +] + +[[package]] +name = "audiopus_sys" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "927791de46f70facea982dbfaf19719a41ce6064443403be631a85de6a58fff9" +dependencies = [ + "log", + "pkg-config", ] [[package]] @@ -149,21 +168,6 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" -[[package]] -name = "bit-set" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - [[package]] name = "bitflags" version = "1.3.2" @@ -642,17 +646,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af9673d8203fcb076b19dfd17e38b3d4ae9f44959416ea532ce72415a6020365" -[[package]] -name = "fancy-regex" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531e46835a22af56d1e3b66f04844bed63158bc094a628bec1d321d9b4c44bf2" -dependencies = [ - "bit-set", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", -] - [[package]] name = "fastrand" version = "2.1.0" @@ -1351,8 +1344,8 @@ dependencies = [ name = "lyra" version = "0.10.0" dependencies = [ + "audiopus 0.2.0", "dotenv", - "fancy-regex", "json", "lib-spotify-parser", "once_cell", @@ -2832,7 +2825,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "338dd182f9f084f583c4c0db38588e28a34778ecec288208cf0b61c378ac90d1" dependencies = [ "async-trait", - "audiopus", + "audiopus 0.3.0-rc.0", "byteorder", "bytes", "crypto_secretbox", diff --git a/Cargo.toml b/Cargo.toml index 6d0503c..3826a28 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ version = "0.10.0" authors = ["Michał Czyż "] edition = "2021" description = "A featureful Discord bot written in Rust." -documentation = "https://lyra.c2yz.com/docs" +documentation = "https://github.com/eRgo35/lyra" readme = "README.md" homepage = "https://lyra.c2yz.com" license-file = "LICENSE.md" @@ -13,9 +13,7 @@ keywords = ["discord", "bot", "rust", "music", "featureful"] [dependencies] lib-spotify-parser = { path = "./libs/spotify-parser" } dotenv = "0.15.0" -fancy-regex = "0.13.0" json = "0.12.4" -openssl = { version = "0.10.66", features = ["vendored"] } owoify = "0.1.5" poise = { default-features = true, version = "0.6.1" } rand = "0.8.5" @@ -49,6 +47,8 @@ tracing-futures = "0.2.5" tracing-subscriber = "0.3.18" url = "2.5.2" once_cell = "1.19.0" +openssl = { version = "0.10.66", features = ["vendored"] } +audiopus = "0.2.0" [patch.crates-io.serenity-voice-model] git = "https://github.com/serenity-rs/serenity" diff --git a/README.md b/README.md index 3960186..d25d50f 100644 --- a/README.md +++ b/README.md @@ -1,52 +1,82 @@ -# Lyra - -![](assets/lyra-256.png) - -Lyra is a music bot written in Rust. - -## Getting Started +

+ + Lyra + +
+ Lyra: a discord music bot written in Rust :crab: +

Lyra is an open source, discord music bot written in Rust. - The idea behind this project is to allow a user to self-host one's own instance of the bot. +User no longer has to rely on 3rd-parties to provide them a service. +The bot can be run on a desktop, a vps or a phone as it's just a simple binary. -User no longer has to rely on 3rd parties to provide them an invite link. +Currently bot is still heavily in development! -The bot can be run even on a desktop or a phone because after compilation, it's just a simple binary. +## Getting started -As of now, the bot supports spotify url track recognition through a separate nodejs script. I plan to write the actual parser inside the bot iteself but as of now I postponed it into future release. +Before you start, you need to create a discord bot and get a token. +You can do it [here](https://discord.com/developers/applications). -Slash commands are still work in progress! Currently bot is still heavily in development! +After you create a bot, you need to invite it to your server. -## Setting up +Then, head to download section and download the latest release (or compile it yourself). + +After you download the binary, you need to create a `.env` file in the same directory as the binary. +Example can be found in `.env.example` file. + +``` +DISCORD_TOKEN= +PREFIX= +``` + +DISCORD_TOKEN is the token you got from discord developers page and PREFIX is the prefix you want to use for your bot. + +Bot by default reacts only to the prefix. To enable slash commands, while the bot is running type `:register` in the chat (where `:` is your bot prefix). + +## Features + +- Music playback +- Audio effects (soon) +- Some multipurpose commands +- Slash commands +- Self-hosted + +## Compilation To compile the source code on your own, you need `rust` and `cargo` -To run a dev version use +To run a dev version, `cd` into the project directory and type + ```bash $ cargo run ``` To build a production version use + ```bash $ cargo build --release ``` -If you need an ARM version and just don't want to wait for ages for the program to compile, use +If you need a version for a different system or architecture, you can use `cross` crate + ```bash $ cross build -r --target aarch64-unknown-linux-gnu ``` To run a program, just type + ```bash $ ./lyra ``` -if you want to disown it from the shell, I recommend using the script I provided in `scripts` folder +Remember to provide a `.env` file in the same directory as the binary. + +If you want to disown the bot from the shell, I recommend using the script I provided in `scripts` folder ## Commands -As of now, working commands are: +As of now, the commands are: ``` Music: @@ -60,7 +90,7 @@ Music: /repeat Loops currently playing song provided amount of times; aliases: repeat, loop, while, for /resume Resumes currently paused song /seek Seeks a track by provided seconds - /skip Skips the currently playing song + /skip Skips the currently playing song; aliases: skip, :skipper: /stop Stops playback and destroys the queue; aliases: stop, end /volume Changes output volume /effect Plays one of available audio effects @@ -69,13 +99,22 @@ Music: Tools: /ai Asks AI /dice Rolls a dice + /dictionary Explains provided query + /ip Shows IP information + /metar Prints metar for provided airport /owoify Owoifies whatever you want uwu /ping Pings you backs with a response time /posix Prints current time in POSIX format /qr Creates a qr code from text + /taf Returns taf for provided airport + /uptime Checks how long the bot has been running /verse Reference Bible by verse + /weather Shows weather for provided location Help: /help Prints this help message; aliases: help, huh, welp +Use /help command for more info on a command. +You can edit you message to the bot and the bot will edit its response. + ```