From a98b42d4081a67ea8c5a0c171715986a4993bcf1 Mon Sep 17 00:00:00 2001 From: Ward Wouts Date: Mon, 21 Aug 2006 19:41:29 +0000 Subject: [PATCH] user and pass working --- trunk/ripnews/net/nntp.rb | 3 ++ trunk/ripnews/news/article.rb | 34 +++++++++++++++++++-- trunk/ripnews/ripnews.rb | 56 +++++++++++++++++++---------------- 3 files changed, 65 insertions(+), 28 deletions(-) diff --git a/trunk/ripnews/net/nntp.rb b/trunk/ripnews/net/nntp.rb index 7590d76..56808c8 100644 --- a/trunk/ripnews/net/nntp.rb +++ b/trunk/ripnews/net/nntp.rb @@ -84,6 +84,9 @@ class NNTP def putline(line) puts '*put* '+line+'\r\n' if @debuglevel > 1 + if ! @socket + puts '*put* '+line+'\r\n' + end @socket.send "#{line}\r\n", 0 end diff --git a/trunk/ripnews/news/article.rb b/trunk/ripnews/news/article.rb index f1a0cc0..556b698 100644 --- a/trunk/ripnews/news/article.rb +++ b/trunk/ripnews/news/article.rb @@ -110,8 +110,34 @@ def initialize(nntpservers, groupname, newsrc="~/.newsrc") @group = groupname @preselectpattern = Regexp.new('^') @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 = {} @serverlist.collect{|server| @connections[server] = {} @@ -121,9 +147,11 @@ def initialize(nntpservers, groupname, newsrc="~/.newsrc") # p Time.now begin 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 resp = @connections[server]["nntp"].mode_reader +p resp rescue TimeoutError, Errno::ECONNRESET sleep 3 retry @@ -150,7 +178,7 @@ def reconnect(server) sleep 3 #timeout(180) 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 resp = @connections[server]["nntp"].mode_reader rescue SocketError, Errno::EINVAL, EOFError, Errno::ETIMEDOUT, TimeoutError, Errno::ECONNREFUSED diff --git a/trunk/ripnews/ripnews.rb b/trunk/ripnews/ripnews.rb index 2aad8ab..8a1cdab 100755 --- a/trunk/ripnews/ripnews.rb +++ b/trunk/ripnews/ripnews.rb @@ -103,35 +103,41 @@ def save_file(dir, name, data) nname.gsub!(/ï/, "\"i") nname.gsub!(/ö/, "\"o") nname.gsub!(/ü/, "\"u") + nname.gsub!(/ñ/, "~n") + nname.gsub!(/#{151.chr}/, " ") + nname.gsub!(/#{243.chr}/, "L") + nname.gsub!(/#{247.chr}/, "S") end # shit that gets through... nname.gsub!('#{146.chr}', "") end -### nname.gsub!(/Ä/, "A"); nname.gsub!(/ä/, "a") -### nname.gsub!(/Á/, "A"); nname.gsub!(/á/, "a") -### nname.gsub!(/À/, "A"); nname.gsub!(/à/, "a") -### nname.gsub!(/Â/, "A"); nname.gsub!(/â/, "a") -### -### nname.gsub!(/Ë/, "E"); nname.gsub!(/ë/, "e") -### nname.gsub!(/É/, "E"); nname.gsub!(/é/, "e") -### nname.gsub!(/È/, "E"); nname.gsub!(/è/, "e") -### nname.gsub!(/Ê/, "E"); nname.gsub!(/ê/, "e") -### -### nname.gsub!(/Ï/, "I"); nname.gsub!(/ï/, "i") -### nname.gsub!(/Í/, "I"); nname.gsub!(/í/, "i") -### nname.gsub!(/Ì/, "I"); nname.gsub!(/ì/, "i") -### nname.gsub!(/Î/, "I"); nname.gsub!(/î/, "i") -### -### nname.gsub!(/Ö/, "O"); nname.gsub!(/ö/, "o") -### nname.gsub!(/Ó/, "O"); nname.gsub!(/ó/, "o") -### nname.gsub!(/Ò/, "O"); nname.gsub!(/ò/, "o") -### nname.gsub!(/Ô/, "O"); nname.gsub!(/ô/, "o") -### -### nname.gsub!(/Ú/, "U"); nname.gsub!(/ú/, "u") -### nname.gsub!(/Ü/, "U"); nname.gsub!(/ü/, "u") -### nname.gsub!(/Ù/, "U"); nname.gsub!(/ù/, "u") -### nname.gsub!(/Û/, "U"); nname.gsub!(/û/, "u") -### + nname.gsub!(/Ä/, "A"); nname.gsub!(/ä/, "a") + nname.gsub!(/Á/, "A"); nname.gsub!(/á/, "a") + nname.gsub!(/À/, "A"); nname.gsub!(/à/, "a") + nname.gsub!(/Â/, "A"); nname.gsub!(/â/, "a") + + nname.gsub!(/Ë/, "E"); nname.gsub!(/ë/, "e") + nname.gsub!(/É/, "E"); nname.gsub!(/é/, "e") + nname.gsub!(/È/, "E"); nname.gsub!(/è/, "e") + nname.gsub!(/Ê/, "E"); nname.gsub!(/ê/, "e") + + nname.gsub!(/Ï/, "I"); nname.gsub!(/ï/, "i") + nname.gsub!(/Í/, "I"); nname.gsub!(/í/, "i") + nname.gsub!(/Ì/, "I"); nname.gsub!(/ì/, "i") + nname.gsub!(/Î/, "I"); nname.gsub!(/î/, "i") + + nname.gsub!(/Ö/, "O"); nname.gsub!(/ö/, "o") + nname.gsub!(/Ó/, "O"); nname.gsub!(/ó/, "o") + nname.gsub!(/Ò/, "O"); nname.gsub!(/ò/, "o") + nname.gsub!(/Ô/, "O"); nname.gsub!(/ô/, "o") + + nname.gsub!(/Ú/, "U"); nname.gsub!(/ú/, "u") + nname.gsub!(/Ü/, "U"); nname.gsub!(/ü/, "u") + nname.gsub!(/Ù/, "U"); nname.gsub!(/ù/, "u") + nname.gsub!(/Û/, "U"); nname.gsub!(/û/, "u") + + nname.gsub!(/§/, "S"); nname.gsub!(/£/, "L") + ### nname.gsub!('#{160.chr}', "") ### if nname.match(/([#{128.chr}-#{255.chr}])/) ### puts "replacing #{$1] with '*' in '#{nname}'"