Created
March 15, 2022 18:30
-
-
Save icelander/1815ebb06a3f93e8bb640aca50acc38f to your computer and use it in GitHub Desktop.
Sends IRC messages as quickly as possible, used for testing Matterbridge relays
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
require 'socket' | |
require 'net/http' | |
require 'uri' | |
require 'json' | |
num_messages=100 | |
uri = URI.parse("https://mattermost.example.com/hooks/hazopetx1iym5d1trtezo6e4ow") | |
request = Net::HTTP::Post.new(uri) | |
request.content_type = "application/json" | |
request.body = JSON.dump({ | |
"text" => "Sending #{num_messages} IRC messages" | |
}) | |
req_options = { | |
use_ssl: uri.scheme == "https", | |
} | |
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http| | |
http.request(request) | |
end | |
server='192.168.0.218' | |
port='6667' | |
user='user' | |
pass='password' | |
channel='#irc-bridge' | |
connection = TCPSocket.open(server, port) | |
connection.puts("NICK #{user}") | |
loop do | |
r = connection.gets | |
puts r | |
break if r.end_with?("hostname\r\n") | |
end | |
connection.puts("PASS #{user}:#{pass}") | |
loop do | |
r = connection.gets | |
puts r | |
break if r.end_with?("successful\r\n") | |
end | |
connection.puts("USER #{user} 8 * :#{user}") | |
loop do | |
r = connection.gets | |
puts r | |
break if r.end_with?("disconnect.\r\n") | |
end | |
connection.puts("JOIN #{channel}") | |
loop do | |
r = connection.gets | |
puts r | |
break if r.end_with?("list\r\n") | |
end | |
for i in 1..num_messages do | |
time = Time.now.strftime('%Y-%m-%d %H:%M:%S.%N') | |
puts "Message ##{i} - #{time}" | |
connection.puts("PRIVMSG #{channel} : Message ##{i} - #{time}") | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment