From fa0b219c345657ab1ac180562d3eea4d71d5fd4f Mon Sep 17 00:00:00 2001 From: ModulatingForce <116608425+modulatingforce@users.noreply.github.com> Date: Mon, 29 Jan 2024 11:09:33 -0500 Subject: [PATCH] (cont) work on identity module --- src/core/botinstance.rs | 2 +- src/core/botmodules.rs | 3 +++ src/core/identity.rs | 49 ++++++++++++++++++++++++++++++++++---- src/modules/experiments.rs | 2 ++ 4 files changed, 51 insertions(+), 5 deletions(-) diff --git a/src/core/botinstance.rs b/src/core/botinstance.rs index 19596bf..0ec8541 100644 --- a/src/core/botinstance.rs +++ b/src/core/botinstance.rs @@ -222,7 +222,7 @@ impl BotInstance while let Some(message) = self.incoming_messages.recv().await { // Below can be used to debug if I want to capture all messages - //println!("Received message: {:?}", message); + println!("Received message: {:?}", message); match message { ServerMessage::Notice(msg) => { diff --git a/src/core/botmodules.rs b/src/core/botmodules.rs index b06858a..ae50cb7 100644 --- a/src/core/botmodules.rs +++ b/src/core/botmodules.rs @@ -3,6 +3,8 @@ use std::error::Error; use std::collections::HashMap; +use crate::core::identity; + /* @@ -89,6 +91,7 @@ pub struct BotCommand { // bot_prefix : char, // although should be global? pub exec_body : bot_actions::actions_util::ExecBody, pub help : String, + pub required_roles : Vec, } impl BotCommand diff --git a/src/core/identity.rs b/src/core/identity.rs index eca2243..3ad3b68 100644 --- a/src/core/identity.rs +++ b/src/core/identity.rs @@ -1,12 +1,53 @@ use std::collections::HashMap; + +use crate::core::botmodules::{ModulesManager,Listener,BotModule,BotActionTrait, BotCommand}; +use crate::core::botmodules::bot_actions::actions_util; + +use crate::core::botinstance::{self}; +use twitch_irc::message::PrivmsgMessage; + fn adminvector() -> Vec { vec![String::from("ModulatingForce")] } -enum userRole { +pub fn init(mgr:&mut ModulesManager) +{ + + BotCommand { + module : BotModule(String::from("identity")), + command : String::from("promote"), // command call name + alias : vec![], // String of alternative names + exec_body : actions_util::asyncbox(cmd_promote) , + help : String::from("promote"), + required_roles : vec![], + }.add_to_modmgr(mgr); + + async fn cmd_promote(mut _chat:botinstance::Chat,_msg:PrivmsgMessage) { + //println!("(#{}) {}: {}", msg.channel_login, msg.sender.name, msg.message_text); + } + + BotCommand { + module : BotModule(String::from("identity")), + command : String::from("demote"), // command call name + alias : vec![], // String of alternative names + exec_body : actions_util::asyncbox(cmd_demote) , + help : String::from("demote"), + required_roles : vec![], + }.add_to_modmgr(mgr); + + + async fn cmd_demote(mut _chat:botinstance::Chat,_msg:PrivmsgMessage) { + + } + + +} + + +pub enum UserRole { Chatter, Mod(String), // String specifies Channel SupMod(String), // String specifies Channel @@ -16,7 +57,7 @@ enum userRole { pub struct IdentityManager { - specialRolesUsers : HashMap>, + special_roles_users : HashMap>, } @@ -25,11 +66,11 @@ impl IdentityManager { pub fn init() -> IdentityManager { let mut a = HashMap::new(); for admn in adminvector() { - a.insert(admn.to_lowercase(),vec![userRole::BotAdmin]); + a.insert(admn.to_lowercase(),vec![UserRole::BotAdmin]); }; IdentityManager { - specialRolesUsers : a, + special_roles_users : a, } } } diff --git a/src/modules/experiments.rs b/src/modules/experiments.rs index 2d761d3..79cd388 100644 --- a/src/modules/experiments.rs +++ b/src/modules/experiments.rs @@ -30,6 +30,7 @@ pub fn init(mgr:&mut ModulesManager) alias : vec![String::from("tester1"),String::from("testy1")], // String of alternative names exec_body : actions_util::asyncbox(testy) , help : String::from("DUPCMD4 tester"), + required_roles : vec![], }.add_to_modmgr(mgr); @@ -39,6 +40,7 @@ pub fn init(mgr:&mut ModulesManager) alias : vec![String::from("tester2"),String::from("testy2")], // String of alternative names exec_body : actions_util::asyncbox(testy) , help : String::from("DUPCMD4 tester"), + required_roles : vec![], }.add_to_modmgr(mgr);