bugfixes multipart werkte niet meer en hoop debugging meuk

This commit is contained in:
Ward Wouts 2004-10-15 13:48:04 +00:00
parent bf26a4e7de
commit 39aae3d4e0

View file

@ -1,4 +1,4 @@
# $Dwarf: article.rb,v 1.91 2004/10/14 21:47:06 ward Exp $ # $Dwarf: article.rb,v 1.92 2004/10/14 21:54:51 ward Exp $
# $Source$ # $Source$
# #
@ -125,7 +125,7 @@ end
def preselect(subject) def preselect(subject)
@preselectpatterns.collect{|regexp| @preselectpatterns.collect{|regexp|
if regexp.match(subject) != nil if subject =~ regexp
return true return true
end end
} }
@ -318,6 +318,7 @@ def get_groupname
end end
def get_body(server, message) def get_body(server, message)
p "get_body"
timedout = 0 timedout = 0
retries = 0 retries = 0
resp = "" resp = ""
@ -362,6 +363,7 @@ def get_body(server, message)
end end
def get_group_body(subj) def get_group_body(subj)
p "get_group_body"
result = [] result = []
group_subject_sort(subj) group_subject_sort(subj)
# puts @groups[subj].to_yaml # puts @groups[subj].to_yaml
@ -383,7 +385,7 @@ def get_group_body(subj)
end end
if resp == false if resp == false
if Debuglevel > 1 if Debuglevel > 1
print "mess-id i: #{@groups[subj]["messages"][i]}\n" print "mess-id i: #{@groups[subj]["messageinfo"][i][:messid]}\n"
# XXX dit moet netter kunnen # XXX dit moet netter kunnen
print "mess-id i+1: #{@groups[subj]["messageinfo"][i+1][:messid]}\n" if @groups[subj]["messageinfo"][i+1] != nil print "mess-id i+1: #{@groups[subj]["messageinfo"][i+1][:messid]}\n" if @groups[subj]["messageinfo"][i+1] != nil
end end
@ -404,24 +406,27 @@ def get_group_body(subj)
end end
def get_group_body_first(subj) def get_group_body_first(subj)
p "get_group_body_first"
group_subject_sort(subj) group_subject_sort(subj)
i = 0 i = 0
unless @groups[subj]["messageinfo"] != nil && @groups[subj]["messageinfo"][0][:messid] unless @groups[subj]["messageinfo"] != nil && @groups[subj]["messageinfo"][0][:messid]
p "ieks komt niet door lame check heen"
return false return false
end end
p "komt wel door lame check heen"
while @gotten.has_key?(@groups[subj]["messageinfo"][0][:messid]) == false while @gotten.has_key?(@groups[subj]["messageinfo"][0][:messid]) == false
print "getting article: #{subj}\n" if Debuglevel > 0 print "getting article: #{subj}\n" if Debuglevel > 0
print "full subject: #{@groups[subj]["messageinfo"][0][:subject]}\n" if Debuglevel > 0 print "full subject: #{@groups[subj]['messageinfo'][0][:subject]}\n" if Debuglevel > 0
print "message id: #{@groups[subj]["messageinfo"][i][:messid]}\n" if Debuglevel > 1 print "message id: #{@groups[subj]['messageinfo'][i][:messid]}\n" if Debuglevel > 1
print "id: #{@groups[subj]["messageinfo"][i][:id]}\n" if Debuglevel > 1 print "id: #{@groups[subj]['messageinfo'][i][:id]}\n" if Debuglevel > 1
print "server: #{@groups[subj]["messageinfo"][0][:server]}\n" if Debuglevel > 0 print "server: #{@groups[subj]['messageinfo'][0][:server]}\n" if Debuglevel > 0
resp = false resp = false
while resp == false while resp == false
resp, id, messid, list = get_body(@groups[subj]["messageinfo"][i][:server], @groups[subj]["messageinfo"][i][:messid]) resp, id, messid, list = get_body(@groups[subj]["messageinfo"][i][:server], @groups[subj]["messageinfo"][i][:messid])
if resp == false if resp == false
print "mess-id i: #{@groups[subj]["messageinfo"][i][:messid]}\n" print "mess-id i: #{@groups[subj]['messageinfo'][i][:messid]}\n"
# XXX dit moet netter kunnen # XXX dit moet netter kunnen
print "mess-id i+1: #{@groups[subj]["messageinfo"][i+1][:messid]}\n" if @groups[subj]["messageinfo"][i+1] != nil print "mess-id i+1: #{@groups[subj]['messageinfo'][i+1][:messid]}\n" if @groups[subj]["messageinfo"][i+1] != nil
if (i+1 < @groups[subj]["messageinfo"].length) and if (i+1 < @groups[subj]["messageinfo"].length) and
(@groups[subj]["messageinfo"][i][:messid] == @groups[subj]["messageinfo"][i+1][:messid]) (@groups[subj]["messageinfo"][i][:messid] == @groups[subj]["messageinfo"][i+1][:messid])
print "Trying next server...\n" print "Trying next server...\n"
@ -437,18 +442,19 @@ def get_group_body_first(subj)
end end
def get_group_body_rest(subj, file=nil) def get_group_body_rest(subj, file=nil)
p "get_group_body_rest"
result = [] result = []
for i in (1...@groups[subj]["messageinfo"].length) for i in (1...@groups[subj]["messageinfo"].length)
unless @gotten.has_key?(@groups[subj]["messageinfo"][i][:messid]) unless @gotten.has_key?(@groups[subj]["messageinfo"][i][:messid])
print "getting article: #{i}\n" if Debuglevel > 1 print "getting article: #{i}\n" if Debuglevel > 1
print "getting article: #{subj}\n" if Debuglevel > 1 print "getting article: #{subj}\n" if Debuglevel > 1
print "full subject: #{@groups[subj]["messageinfo"][i][:subject]}\n" if Debuglevel > 0 print "full subject: #{@groups[subj]['messageinfo'][i][:subject]}\n" if Debuglevel > 0
print "message id: #{@groups[subj]["messageinfo"][i][:messid]}\n" if Debuglevel > 1 print "message id: #{@groups[subj]['messageinfo'][i][:messid]}\n" if Debuglevel > 1
print "id: #{@groups[subj]["messageinfo"][i][:id]}\n" if Debuglevel > 1 print "id: #{@groups[subj]['messageinfo'][i][:id]}\n" if Debuglevel > 1
print "server: #{@groups[subj]["messageinfo"][i][:server]}\n" if Debuglevel > 0 print "server: #{@groups[subj]['messageinfo'][i][:server]}\n" if Debuglevel > 0
resp = false resp = false
while resp == false while resp == false
resp, id, messid, list = get_body(@groups[subj]["messageinfo"][i][:server], @groups[subj]["messages"][i]) resp, id, messid, list = get_body(@groups[subj]["messageinfo"][i][:server], @groups[subj]["messageinfo"][i][:messid])
if resp == false if resp == false
print "mess-id i: #{@groups[subj]["messageinfo"][i][:messid]}\n" print "mess-id i: #{@groups[subj]["messageinfo"][i][:messid]}\n"
# print "mess-id i+1: #{@groups[subj]["messageinfo"][i+1][:messid]}\n" # print "mess-id i+1: #{@groups[subj]["messageinfo"][i+1][:messid]}\n"
@ -487,6 +493,7 @@ def group_is_complete(subj)
@groups[subj]["messageinfo"].each {|x| @groups[subj]["messageinfo"].each {|x|
messids.push(x[:messid]) messids.push(x[:messid])
} }
#p "group complete?: #{messids}"
umessids = messids.uniq umessids = messids.uniq
if (umessids.length ) >= @groups[subj]["total"].to_i if (umessids.length ) >= @groups[subj]["total"].to_i
return true return true
@ -569,7 +576,9 @@ p Time.now
@connections[server]["skip_ids"].elements.collect!{|x| excludes[server][x]=true} @connections[server]["skip_ids"].elements.collect!{|x| excludes[server][x]=true}
if FileTest.directory?( cachedir) and FileTest.file?( "#{filename}.#{server}" ) and FileTest.readable?( "#{filename}.#{server}" ) if FileTest.directory?( cachedir) and FileTest.file?( "#{filename}.#{server}" ) and FileTest.readable?( "#{filename}.#{server}" )
file = File.new( "#{filename}.#{server}" ) file = File.new( "#{filename}.#{server}" )
file.each{|line| lines = file.readlines
#file.each{|line|
lines.collect{|line|
# id | messageid | subject # id | messageid | subject
#if line =~ /^(\d+)\|(.*?)\|(.*)$/ #if line =~ /^(\d+)\|(.*?)\|(.*)$/
if line =~ lineregexp if line =~ lineregexp
@ -671,12 +680,14 @@ def group_subject_sort(subj)
for i in (0...@serverlist.length) for i in (0...@serverlist.length)
serverhash[@serverlist[i]] = i serverhash[@serverlist[i]] = i
end end
total = @groups[subj]["total"]
sort_arr = [] sort_arr = []
p "pre sort length: #{@groups[subj]['messageinfo'].length}"
for i in (0...@groups[subj]["messageinfo"].length) for i in (0...@groups[subj]["messageinfo"].length)
print "subj sort #{@groups[subj]["messageinfo"][i][:subject]}\n" if Debuglevel > 2 print "subj sort #{@groups[subj]['messageinfo'][i][:subject]}\n" if Debuglevel > 2
print "subj sort #{@groups[subj]["messageinfo"][i][:messid]}\n" if Debuglevel > 2 print "subj sort #{@groups[subj]['messageinfo'][i][:messid]}\n" if Debuglevel > 2
print "subj sort #{@groups[subj]["messageinfo"][i][:id]}\n" if Debuglevel > 2 print "subj sort #{@groups[subj]['messageinfo'][i][:id]}\n" if Debuglevel > 2
print "subj sort #{@groups[subj]["messageinfo"][i][:server]}\n" if Debuglevel > 2 print "subj sort #{@groups[subj]['messageinfo'][i][:server]}\n" if Debuglevel > 2
sort_arr.push( sort_arr.push(
@groups[subj]["messageinfo"][i].dup @groups[subj]["messageinfo"][i].dup
) if serverhash[@groups[subj]["messageinfo"][i][:server]] != nil ) if serverhash[@groups[subj]["messageinfo"][i][:server]] != nil
@ -696,12 +707,11 @@ def group_subject_sort(subj)
r r
} }
# XXX hmmmm lijkt er op dat @groups[x]["total"] hier wel gesloopt wordt...
# XXX maakt blijkbaar niet uit, maar is niet netjes
@groups[subj].clear @groups[subj].clear
@groups[subj]["total"] = total
p "sort_arr length: #{sort_arr.length}"
sort_arr.collect{|i| sort_arr.collect{|i|
if @groups[subj].has_key?("messages") if @groups[subj].has_key?("messageinfo")
@groups[subj]["messageinfo"].push(i) @groups[subj]["messageinfo"].push(i)
else else
@groups[subj]["messageinfo"] = [ i ] @groups[subj]["messageinfo"] = [ i ]
@ -709,6 +719,7 @@ def group_subject_sort(subj)
print "subject sort: #{i[:subject]}\n" if Debuglevel > 2 print "subject sort: #{i[:subject]}\n" if Debuglevel > 2
print "server: #{i[:server]}\n" if Debuglevel > 2 print "server: #{i[:server]}\n" if Debuglevel > 2
} }
p "post sort length: #{@groups[subj]['messageinfo'].length}"
#print "Done sorting\n" #print "Done sorting\n"
end end