add some commands to count.rs

This commit is contained in:
2021-08-05 18:05:54 +05:30
parent 156871bac9
commit 7f0f85a7ad
4 changed files with 197 additions and 45 deletions

View File

@@ -1,18 +1,9 @@
use regex::Regex;
use serenity::model::channel::Message;
use std::collections::HashMap;
use std::env;
use tokio_postgres::NoTls;
pub async fn count(msg: Message) {
let words: HashMap<&str, Regex> = [
("nword", Regex::new(r"(?i)(nig+(er|a)|nig{2,})").unwrap()),
("acha", Regex::new(r"(?i)a(c+?h+?|6+?)a+").unwrap()),
("sus", Regex::new(r"(?i)sus|(?i)amon??g\s??us").unwrap()),
]
.iter()
.cloned()
.collect();
let db: String = env::var("DB_URL").expect("bhay DB_URL daal na");
let (client, conn) = tokio_postgres::connect(&db, NoTls)
.await
@@ -41,8 +32,14 @@ pub async fn count(msg: Message) {
.await
.expect("cant create table");
for name in ["nword", "acha", "sus"] {
let count = words[name].captures_iter(&msg.content).count();
for row in client
.query("SELECT name, reg FROM words", &[])
.await
.expect("can't get the words to count")
{
let name: &str = row.get(0);
let regex: Regex = Regex::new(row.get(1)).unwrap();
let count = regex.captures_iter(&msg.content).count();
if count > 0 {
let query_result = client
.query(