2016-09-25 19:04:58 +00:00
|
|
|
#!/usr/bin/ruby
|
|
|
|
# mblow - post an article via NNTP
|
|
|
|
|
|
|
|
require 'socket'
|
|
|
|
require 'optparse'
|
|
|
|
|
|
|
|
params = ARGV.getopts("s:")
|
|
|
|
|
|
|
|
port = 119
|
|
|
|
if params["s"] =~ /(.*):(.*)/
|
|
|
|
params["s"] = $1
|
|
|
|
port = Integer($2)
|
|
|
|
end
|
|
|
|
|
|
|
|
SERVER = params["s"] || ENV["NNTPSERVER"] || "news"
|
|
|
|
|
|
|
|
nntp = TCPSocket.new SERVER, port
|
|
|
|
|
|
|
|
msg = nntp.gets
|
|
|
|
abort msg unless msg =~ /^200 /
|
|
|
|
|
|
|
|
nntp.write "POST\r\n"
|
|
|
|
msg = nntp.gets
|
|
|
|
|
|
|
|
abort msg unless msg =~ /^340 /
|
|
|
|
|
|
|
|
while line = gets
|
|
|
|
line.chomp!
|
|
|
|
line.sub!(/\A\./, '..')
|
|
|
|
nntp.write(line + "\r\n")
|
|
|
|
end
|
|
|
|
|
|
|
|
nntp.write(".\r\n")
|
|
|
|
msg = nntp.gets
|
|
|
|
|
|
|
|
abort msg unless msg =~ /^240 /
|
2016-09-25 19:29:39 +00:00
|
|
|
puts msg
|