mirror of
https://github.com/Noratrieb/widetom.git
synced 2026-01-14 08:55:02 +01:00
auto responses and hentai 😳
This commit is contained in:
parent
8c66cd8e31
commit
85f9572c5b
5 changed files with 91 additions and 6 deletions
56
Cargo.lock
generated
56
Cargo.lock
generated
|
|
@ -6,6 +6,15 @@ version = "0.2.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
|
checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "aho-corasick"
|
||||||
|
version = "0.7.18"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
|
||||||
|
dependencies = [
|
||||||
|
"memchr",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ansi_term"
|
name = "ansi_term"
|
||||||
version = "0.11.0"
|
version = "0.11.0"
|
||||||
|
|
@ -71,6 +80,21 @@ version = "0.13.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
|
checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bit-set"
|
||||||
|
version = "0.5.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de"
|
||||||
|
dependencies = [
|
||||||
|
"bit-vec",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bit-vec"
|
||||||
|
version = "0.6.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bitflags"
|
name = "bitflags"
|
||||||
version = "1.2.1"
|
version = "1.2.1"
|
||||||
|
|
@ -195,6 +219,16 @@ dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "fancy-regex"
|
||||||
|
version = "0.5.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "fe09872bd11351a75f22b24c3769fc863e8212d926d6db46b94ad710d14cc5cc"
|
||||||
|
dependencies = [
|
||||||
|
"bit-set",
|
||||||
|
"regex",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "flate2"
|
name = "flate2"
|
||||||
version = "1.0.20"
|
version = "1.0.20"
|
||||||
|
|
@ -532,9 +566,9 @@ checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "memchr"
|
name = "memchr"
|
||||||
version = "2.3.4"
|
version = "2.4.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
|
checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mime"
|
name = "mime"
|
||||||
|
|
@ -810,6 +844,23 @@ dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "regex"
|
||||||
|
version = "1.5.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ce5f1ceb7f74abbce32601642fcf8e8508a8a8991e0621c7d750295b9095702b"
|
||||||
|
dependencies = [
|
||||||
|
"aho-corasick",
|
||||||
|
"memchr",
|
||||||
|
"regex-syntax",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "regex-syntax"
|
||||||
|
version = "0.6.25"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "reqwest"
|
name = "reqwest"
|
||||||
version = "0.11.0"
|
version = "0.11.0"
|
||||||
|
|
@ -1460,6 +1511,7 @@ name = "widertom"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
|
"fancy-regex",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
"serenity",
|
"serenity",
|
||||||
"tokio",
|
"tokio",
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ uwuify = "^0.2"
|
||||||
async-trait = "0.1.50"
|
async-trait = "0.1.50"
|
||||||
lazy_static = "1.4.0"
|
lazy_static = "1.4.0"
|
||||||
toml = "0.5.8"
|
toml = "0.5.8"
|
||||||
|
fancy-regex = "0.5.0"
|
||||||
|
|
||||||
[dependencies.serenity]
|
[dependencies.serenity]
|
||||||
version = "0.10.2"
|
version = "0.10.2"
|
||||||
|
|
|
||||||
|
|
@ -9,3 +9,9 @@ emotes = [
|
||||||
["tom", 811324632082415626],
|
["tom", 811324632082415626],
|
||||||
["thomas", 803607136000802827],
|
["thomas", 803607136000802827],
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# if a message is a trigger (equals, not contains) then respond with the answer
|
||||||
|
responses = [
|
||||||
|
["tom", "<:tom:811324632082415626>"],
|
||||||
|
["hui", "PRAISE hUI, THE ALMIGHTY OR PERISH AS FOOLS!!!"],
|
||||||
|
]
|
||||||
31
src/lib.rs
31
src/lib.rs
|
|
@ -7,6 +7,7 @@ use serenity::framework::standard::{macros::hook};
|
||||||
use serenity::model::channel::{Message, ReactionType};
|
use serenity::model::channel::{Message, ReactionType};
|
||||||
use serenity::model::id::EmojiId;
|
use serenity::model::id::EmojiId;
|
||||||
use toml::Value;
|
use toml::Value;
|
||||||
|
use fancy_regex::Regex;
|
||||||
|
|
||||||
lazy_static! {
|
lazy_static! {
|
||||||
static ref REACTION_EMOTES: HashMap<String, EmojiId> = {
|
static ref REACTION_EMOTES: HashMap<String, EmojiId> = {
|
||||||
|
|
@ -24,13 +25,39 @@ lazy_static! {
|
||||||
}
|
}
|
||||||
m
|
m
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static ref RESPONSES: HashMap<String, String> = {
|
||||||
|
let err = "Invalid config file";
|
||||||
|
let mut m = HashMap::new();
|
||||||
|
|
||||||
|
let config = fs::read_to_string("config.toml").expect("Config file not found. Add 'config.toml' to this directory");
|
||||||
|
let value = config.parse::<Value>().expect(err);
|
||||||
|
let emotes = value.get("responses").expect(err);
|
||||||
|
|
||||||
|
for v in emotes.as_array().expect(err) {
|
||||||
|
let trigger = v[0].as_str().expect(err).to_string();
|
||||||
|
let response = v[1].as_str().expect(err).to_string();
|
||||||
|
m.insert(trigger, response);
|
||||||
|
}
|
||||||
|
m
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#[hook]
|
#[hook]
|
||||||
pub async fn normal_message(ctx: &Context, msg: &Message) {
|
pub async fn normal_message(ctx: &Context, msg: &Message) {
|
||||||
if msg.content.to_lowercase() == "tom" {
|
lazy_static! {
|
||||||
reply(" <:tom:811324632082415626>", &msg, &ctx).await;
|
static ref TOM_REGEX: Regex = Regex::new(r"(?<=^|\D)(\d{6})(?=\D|$)").unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
if let Some(m) = TOM_REGEX.find(&msg.content).unwrap() {
|
||||||
|
reply(&*format!("<https://nhentai.net/g/{}/>", m.as_str()), &msg, &ctx).await;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (trigger, answer) in RESPONSES.iter() {
|
||||||
|
if msg.content.to_lowercase() == *trigger {
|
||||||
|
reply(answer, &msg, &ctx).await;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (name, id) in REACTION_EMOTES.iter() {
|
for (name, id) in REACTION_EMOTES.iter() {
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,7 @@ use serenity::{
|
||||||
prelude::*,
|
prelude::*,
|
||||||
};
|
};
|
||||||
use serenity::client::Context;
|
use serenity::client::Context;
|
||||||
use serenity::framework::standard::{Args, CommandGroup, CommandResult, help_commands, HelpOptions, macros::{command, group, help},
|
use serenity::framework::standard::{Args, CommandGroup, CommandResult, help_commands, HelpOptions, macros::{command, group, help}};
|
||||||
};
|
|
||||||
use serenity::framework::StandardFramework;
|
use serenity::framework::StandardFramework;
|
||||||
use serenity::http::Http;
|
use serenity::http::Http;
|
||||||
use serenity::model::id::UserId;
|
use serenity::model::id::UserId;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue