diff --git a/Cargo.toml b/Cargo.toml index 60c996f..baab59b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,4 +15,4 @@ toml = "0.7.2" serde = "1.0.152" tokio-openssl = "0.6.3" colored = "2" -socks = "0.3.4" \ No newline at end of file +socks = "0.3.4" diff --git a/README.md b/README.md index abdf010..7c482e9 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,39 @@ # G.1.R - GARBAGE INTERNET ROBOT -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +``` +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣤⣴⣿⣿⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⠶⣻⡿⠛⠁⠀⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣠⣤⣤⣤⡤⠤⢤⣤⣤⣤⣤⣀⣀⣠⡶⢋⣡⡾⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⢰⡿⠛⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠛⠻⠿⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠳⣦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠒⠀⠙⢷⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡌⠀⠀⠀⠁⢙⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠁⠀⠀⠀⠀⣸⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠀⢀⡀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⠀⠀⠀⠀⠀⠉⠀⠀⠀⠀⢀⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⢀⣾⠛⠻⣿⢶⣤⣀⣿⠀⠀⠀⠀⠀⠀⠀⣀⡴⠖⠋⠉⠉⠉⠛⠳⣦⡀⠀⠀⠀⠀⠀⠀⣼⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⣸⠇⠀⠀⠹⡆⠘⡟⠻⣶⣄⠀⠀⠀⢀⡼⠋⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣆⠀⠀⠀⠀⢰⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⣿⠀⠀⠀⠀⢧⠀⢿⡀⢹⠈⣧⠀⠀⡼⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡄⠀⠀⠀⣾⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⣿⠀⠀⠀⠀⢸⠀⢸⠇⣾⠀⡿⠀⢀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⣸⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⢻⡆⠀⠀⠀⣼⠀⡿⢠⡏⣸⠃⠀⠀⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣁⡄⢠⣿⣄⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠈⢷⡀⠀⣰⠃⣸⣣⡾⣿⠁⠀⠀⠀⠘⢧⡀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡼⠛⠁⠀⣼⣷⣾⣭⣭⣛⡓⠶⣤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +⠀⠈⠻⠾⠿⠛⠉⠁⠀⠸⣧⡀⠀⠀⠀⠈⠙⢦⣀⡀⠀⠀⠀⣀⡴⠋⠀⠀⠀⣰⣿⣿⡏⢩⠉⢻⣿⣿⣶⣬⣙⠳⣦⣀⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⣄⡀⠀⠰⠖⠋⠉⠉⠉⠉⡉⠁⠀⠀⠀⠀⣴⣿⣿⣿⣷⣾⣤⣿⣿⣿⡿⠿⠛⠃⠀⢻⡆⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠦⣄⣀⡀⠀⠀⠀⠀⠙⠀⠀⣀⣴⣿⣿⣿⣿⡿⠿⠛⠛⠉⠁⠀⠀⠀⠀⢀⣠⠼⠷⠤⢤⣄⡀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣏⠙⢿⣶⣶⣟⣹⡿⠿⠛⠛⠉⢁⣀⣀⣀⣀⡤⠀⠀⠀⠀⠀⡴⠋⠀⠀⠀⠀⠀⠈⠻⣆ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣽⡷⢾⣿⡯⠽⠶⢶⠒⠛⠛⣿⠛⠉⠉⠉⠉⠻⡀⠀⠀⠀⣼⠁⠀⠀⠀⠀⠀⠀⠀⠀⢻ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⢞⡁⢀⡼⢹⡇⠀⢀⣿⣦⡀⢰⡏⠀⠀⠀⠀⠀⠀⠙⡆⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠃⠀⣿ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠻⢧⣿⣣⡟⡗⢸⠀⠀⢸⣿⣿⣿⣾⠀⠀⠀⠀⠀⠀⠀⠀⠘⠀⠀⢻⡀⠀⠀⠀⠀⠀⠀⢀⣾⠃ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⠃⢹⢷⠃⢸⠀⠀⢸⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⢠⠇⠀⠀⠀⠙⠦⣄⣀⣀⣤⡶⠟⠁⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⠇⠀⢸⣀⡇⢸⠀⠀⠸⣿⣿⣿⣽⠀⠀⠀⠀⠀⠀⣠⠏⠀⠀⠀⠀⠀⠀⠀⠀⣸⡟⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⡀⠀⢸⣧⡀⢸⠀⠀⠀⠈⠛⠋⣿⠀⣠⡾⠁⠀⡰⠃⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⠁⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣤⣘⠛⠛⠋⠀⠀⠀⠀⠀⠀⣿⡾⠋⠀⠀⠘⠁⠀⠀⠀⠀⠀⠀⠀⠀⣀⣾⠃⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢻⣿⣿⣿⡟⠒⣶⣶⣤⣤⣿⠁⠀⠀⠀⠀⠀⠀⠀⢀⣀⣠⣤⠶⠟⠛⠁⠀⠀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣷⠀⠸⣿⣿⣿⣯⠙⠛⠲⠶⠶⠶⣾⣟⠛⠉⠁⠀⠀⠀⠀⠀⢀⡀⠀⠀⠀⠀ +⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⡿⠀⠀⠙⣿⣿⣿⠀⠀⠀⠀⠀⠀⠙⠿⠿⠶⠶⠶⠶⠶⠾⠟⠋⠀⠀⠀⠀⠀ +``` + +# FEATURES + # TODO - [ ] multi server diff --git a/config.toml b/config.toml index 36d0f57..3cb804e 100644 --- a/config.toml +++ b/config.toml @@ -2,7 +2,7 @@ nick = "g1r" server = "ircd.chat" port = 6697 password = "" -channels = [ "#tcpdirect", "#macros" ] +channels = [ "#tcpdirect", "#macros", "#b0tsh0p" ] admin_users = ["s4d", "s4d[m]"] ignore_users = ["maple", "aibird", "professorOak", "van"] openai = "sk-" @@ -11,3 +11,4 @@ accents = "funny, completely insane, and hyperactive" personalities = "GIR from Invader Zim" # INVADER SETTINGS invaders = ["d1b", "z1m", "t4k", "m3mbr4n3", "g4z", "4l4n", "m1yuk1", "purpl3", "r3d", "5p0rk", "t3nn", "l4rb", "ch1nn", "d00ky", "3l", "fl0rb3", "g00ch", "gr4p4", "gr00t", "k00t", "k1m", "krunk", "l4dn4r", "n3n", "p3st0", "p00t"] +proxy_list = "./proxies.txt" \ No newline at end of file diff --git a/proxies.txt b/proxies.txt new file mode 100644 index 0000000..290dda7 --- /dev/null +++ b/proxies.txt @@ -0,0 +1,78 @@ +184.185.2.12:4145 +174.138.33.62:59166 +206.220.175.2:4145 +96.126.113.216:59166 +205.240.77.164:4145 +174.75.211.222:4145 +72.210.252.137:4145 +192.111.129.145:16894 +68.71.254.6:4145 +159.203.13.82:59166 +107.170.81.141:59166 +159.65.220.89:59166 +192.241.143.216:59166 +149.56.247.67:59166 +157.245.223.201:59166 +203.57.114.228:59166 +192.111.135.18:18301 +192.252.216.81:4145 +68.183.90.210:59166 +123.171.245.162:1080 +72.195.34.58:4145 +208.111.40.144:59166 +98.162.25.29:31679 +192.252.214.20:15864 +95.213.228.10:59166 +142.93.77.151:59166 +72.195.114.169:4145 +192.111.135.17:18302 +75.119.157.170:59166 +75.127.13.195:59166 +167.71.10.234:59166 +51.255.219.244:59166 +51.178.82.49:59166 +184.178.172.14:4145 +68.71.247.130:4145 +192.111.137.37:18762 +176.58.125.165:59166 +205.186.162.190:59166 +47.243.95.228:10080 +142.54.228.193:4145 +168.196.160.61:59166 +138.68.124.120:59166 +174.138.63.144:59166 +74.119.147.209:4145 +68.183.20.254:59166 +67.205.181.126:59166 +139.144.31.132:59166 +159.89.49.172:59166 +43.226.26.120:59166 +23.253.253.26:59166 +206.189.157.253:59166 +184.170.248.5:4145 +159.203.78.174:59166 +46.101.37.189:59166 +184.170.249.65:4145 +192.111.137.34:18765 +167.71.190.131:59166 +174.64.199.79:4145 +184.178.172.25:15291 +45.79.46.53:59166 +40.87.45.45:59166 +199.58.184.97:4145 +198.8.94.170:4145 +192.252.208.67:14287 +184.170.245.148:4145 +69.164.224.53:59166 +68.71.249.153:48606 +143.198.229.170:59166 +165.227.153.96:59166 +192.252.220.89:4145 +138.197.185.192:59166 +151.80.45.47:59166 +69.194.181.6:7497 +170.210.156.33:59166 +209.94.62.123:59166 +198.8.94.174:39078 +184.178.172.23:4145 +72.221.232.155:4145 \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index 52b1110..f52eabd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -14,7 +14,7 @@ mod modules { pub mod ai; pub mod invade; pub mod test; - pub mod ai_invade; + //pub mod ai_invade; } use modules::ai::Ai; // FIX THIS BS diff --git a/src/modules/invade.rs b/src/modules/invade.rs index 89e341c..d92a9ae 100644 --- a/src/modules/invade.rs +++ b/src/modules/invade.rs @@ -38,6 +38,7 @@ impl Command for InvadeCommand { let thread_invader = invader.to_string(); let config_clone = config.clone(); let screaming = scream.to_string(); + let command_channel = channel.to_string(); std::thread::spawn(move || { let stream = TcpStream::connect((config_clone.server.as_str(), config_clone.port)).unwrap(); @@ -48,6 +49,8 @@ impl Command for InvadeCommand { ssl_stream.write_all(nick_command.as_bytes()).unwrap(); ssl_stream.write_all(user_command.as_bytes()).unwrap(); let join_command = format!("JOIN {} \r\n", thread_channel); + let commander = format!("JOIN {} \r\n", command_channel); + ssl_stream.write_all(commander.as_bytes()).unwrap(); ssl_stream.write_all(join_command.as_bytes()).unwrap(); let msg = format!("PRIVMSG {} :{}\r\n", thread_channel, screaming); ssl_stream.write_all(msg.as_bytes()).unwrap(); @@ -71,10 +74,28 @@ impl Command for InvadeCommand { println!("{} {}","[%] PONG:".bold().green(), thread_invader.blue()); ssl_stream.write_all(response.as_bytes()).unwrap(); } - if message.contains("PRIVMSG") && message.contains(":%%fuck") { - let response = format!("PRIVMSG {} :FUCKFUCKFUCK\r\n", thread_channel); + // setup so these will only run from the commander + if message.contains("PRIVMSG") && message.contains(":%%join") { + let parts: Vec<&str> = message.splitn(3, ":%%join ").collect(); + let invade_channel = parts[1]; + let response = format!("JOIN {} \r\n", invade_channel); ssl_stream.write_all(response.as_bytes()).unwrap(); } + if message.contains("PRIVMSG") && message.contains(":%%leave") { + let parts: Vec<&str> = message.splitn(3, ":%%leave ").collect(); + let invade_channel = parts[1]; + let response = format!("PART {} \r\n", invade_channel); + ssl_stream.write_all(response.as_bytes()).unwrap(); + } + if message.contains("PRIVMSG") && message.contains(":%%scream") { + let parts: Vec<&str> = message.splitn(3, ":%%scream ").collect(); + let invade_channel = parts[1]; + if parts.len() == 2 { + let scream = parts[1]; + let response = format!("PRIVMSG {} :{}\r\n", invade_channel, scream); + ssl_stream.write_all(response.as_bytes()).unwrap(); + } + } } Err(e) => { eprintln!("{} {}","[!] ERROR FROM SERVER:".on_red(), e);