user and pass working

This commit is contained in:
Ward Wouts 2006-08-21 19:41:29 +00:00
parent 860fb9312d
commit a98b42d408
3 changed files with 65 additions and 28 deletions

View file

@ -84,6 +84,9 @@ class NNTP
def putline(line) def putline(line)
puts '*put* '+line+'\r\n' if @debuglevel > 1 puts '*put* '+line+'\r\n' if @debuglevel > 1
if ! @socket
puts '*put* '+line+'\r\n'
end
@socket.send "#{line}\r\n", 0 @socket.send "#{line}\r\n", 0
end end

View file

@ -110,8 +110,34 @@ def initialize(nntpservers, groupname, newsrc="~/.newsrc")
@group = groupname @group = groupname
@preselectpattern = Regexp.new('^') @preselectpattern = Regexp.new('^')
@cache_buf = {} @cache_buf = {}
@serverlist = []
@serverpasses = {}
tmplist = nntpservers.split('|')
tmplist.each{ |server|
if server.match(/([^@]*)@(.*)/)
userpass = $1
server = $2
@serverlist.push(server)
@serverpasses[server] = {}
if userpass.match(/([^:]*):(.*)/)
@serverpasses[server]['user'] = $1
@serverpasses[server]['pass'] = $2
else
@serverpasses[server]['user'] = userpass
@serverpasses[server]['pass'] = nil
end
else
@serverlist.push(server)
@serverpasses[server] = {}
@serverpasses[server]['user'] = nil
@serverpasses[server]['pass'] = nil
end
}
p @serverlist
p @serverpasses
#@serverlist = nntpservers.split('|')
@serverlist = nntpservers.split('|')
@connections = {} @connections = {}
@serverlist.collect{|server| @serverlist.collect{|server|
@connections[server] = {} @connections[server] = {}
@ -121,9 +147,11 @@ def initialize(nntpservers, groupname, newsrc="~/.newsrc")
# p Time.now # p Time.now
begin begin
timeout(60) do timeout(60) do
@connections[server]["nntp"] = Net::KANNTP.new(server) p "connecting"
@connections[server]["nntp"] = Net::KANNTP.new(server, 119, @serverpasses[server]['user'], @serverpasses[server]['pass'])
end end
resp = @connections[server]["nntp"].mode_reader resp = @connections[server]["nntp"].mode_reader
p resp
rescue TimeoutError, Errno::ECONNRESET rescue TimeoutError, Errno::ECONNRESET
sleep 3 sleep 3
retry retry
@ -150,7 +178,7 @@ def reconnect(server)
sleep 3 sleep 3
#timeout(180) do #timeout(180) do
timeout(60) do timeout(60) do
@connections[server]["nntp"] = Net::KANNTP.new(server) @connections[server]["nntp"] = Net::KANNTP.new(server, 119, @serverpasses[server]['user'], @serverpasses[server]['pass'])
end end
resp = @connections[server]["nntp"].mode_reader resp = @connections[server]["nntp"].mode_reader
rescue SocketError, Errno::EINVAL, EOFError, Errno::ETIMEDOUT, TimeoutError, Errno::ECONNREFUSED rescue SocketError, Errno::EINVAL, EOFError, Errno::ETIMEDOUT, TimeoutError, Errno::ECONNREFUSED

View file

@ -103,35 +103,41 @@ def save_file(dir, name, data)
nname.gsub!(/ï/, "\"i") nname.gsub!(/ï/, "\"i")
nname.gsub!(/ö/, "\"o") nname.gsub!(/ö/, "\"o")
nname.gsub!(/ü/, "\"u") nname.gsub!(/ü/, "\"u")
nname.gsub!(/<EFBFBD>/, "~n")
nname.gsub!(/#{151.chr}/, " ")
nname.gsub!(/#{243.chr}/, "L")
nname.gsub!(/#{247.chr}/, "S")
end end
# shit that gets through... # shit that gets through...
nname.gsub!('#{146.chr}', "") nname.gsub!('#{146.chr}', "")
end end
### nname.gsub!(/Ä/, "A"); nname.gsub!(/ä/, "a") nname.gsub!(/<EFBFBD>/, "A"); nname.gsub!(/<EFBFBD>/, "a")
### nname.gsub!(/Á/, "A"); nname.gsub!(/á/, "a") nname.gsub!(/<EFBFBD>/, "A"); nname.gsub!(/<EFBFBD>/, "a")
### nname.gsub!(/À/, "A"); nname.gsub!(/à/, "a") nname.gsub!(/<EFBFBD>/, "A"); nname.gsub!(/<EFBFBD>/, "a")
### nname.gsub!(/Â/, "A"); nname.gsub!(/â/, "a") nname.gsub!(/<EFBFBD>/, "A"); nname.gsub!(/<EFBFBD>/, "a")
###
### nname.gsub!(/Ë/, "E"); nname.gsub!(/ë/, "e") nname.gsub!(/<EFBFBD>/, "E"); nname.gsub!(/<EFBFBD>/, "e")
### nname.gsub!(/É/, "E"); nname.gsub!(/é/, "e") nname.gsub!(/<EFBFBD>/, "E"); nname.gsub!(/<EFBFBD>/, "e")
### nname.gsub!(/È/, "E"); nname.gsub!(/è/, "e") nname.gsub!(/<EFBFBD>/, "E"); nname.gsub!(/<EFBFBD>/, "e")
### nname.gsub!(/Ê/, "E"); nname.gsub!(/ê/, "e") nname.gsub!(/<EFBFBD>/, "E"); nname.gsub!(/<EFBFBD>/, "e")
###
### nname.gsub!(/Ï/, "I"); nname.gsub!(/ï/, "i") nname.gsub!(/<EFBFBD>/, "I"); nname.gsub!(/<EFBFBD>/, "i")
### nname.gsub!(/Í/, "I"); nname.gsub!(/í/, "i") nname.gsub!(/<EFBFBD>/, "I"); nname.gsub!(/<EFBFBD>/, "i")
### nname.gsub!(/Ì/, "I"); nname.gsub!(/ì/, "i") nname.gsub!(/<EFBFBD>/, "I"); nname.gsub!(/<EFBFBD>/, "i")
### nname.gsub!(/Î/, "I"); nname.gsub!(/î/, "i") nname.gsub!(/<EFBFBD>/, "I"); nname.gsub!(/<EFBFBD>/, "i")
###
### nname.gsub!(/Ö/, "O"); nname.gsub!(/ö/, "o") nname.gsub!(/<EFBFBD>/, "O"); nname.gsub!(/<EFBFBD>/, "o")
### nname.gsub!(/Ó/, "O"); nname.gsub!(/ó/, "o") nname.gsub!(/<EFBFBD>/, "O"); nname.gsub!(/<EFBFBD>/, "o")
### nname.gsub!(/Ò/, "O"); nname.gsub!(/ò/, "o") nname.gsub!(/<EFBFBD>/, "O"); nname.gsub!(/<EFBFBD>/, "o")
### nname.gsub!(/Ô/, "O"); nname.gsub!(/ô/, "o") nname.gsub!(/<EFBFBD>/, "O"); nname.gsub!(/<EFBFBD>/, "o")
###
### nname.gsub!(/Ú/, "U"); nname.gsub!(/ú/, "u") nname.gsub!(/<EFBFBD>/, "U"); nname.gsub!(/<EFBFBD>/, "u")
### nname.gsub!(/Ü/, "U"); nname.gsub!(/ü/, "u") nname.gsub!(/<EFBFBD>/, "U"); nname.gsub!(/<EFBFBD>/, "u")
### nname.gsub!(/Ù/, "U"); nname.gsub!(/ù/, "u") nname.gsub!(/<EFBFBD>/, "U"); nname.gsub!(/<EFBFBD>/, "u")
### nname.gsub!(/Û/, "U"); nname.gsub!(/û/, "u") nname.gsub!(/<EFBFBD>/, "U"); nname.gsub!(/<EFBFBD>/, "u")
###
nname.gsub!(/<EFBFBD>/, "S"); nname.gsub!(/<EFBFBD>/, "L")
### nname.gsub!('#{160.chr}', "") ### nname.gsub!('#{160.chr}', "")
### if nname.match(/([#{128.chr}-#{255.chr}])/) ### if nname.match(/([#{128.chr}-#{255.chr}])/)
### puts "replacing #{$1] with '*' in '#{nname}'" ### puts "replacing #{$1] with '*' in '#{nname}'"