From 9b6281e83d0c4b7bc48fdc828aebd7c5105bf909 Mon Sep 17 00:00:00 2001 From: Ward Wouts Date: Tue, 7 May 2002 11:48:18 +0000 Subject: [PATCH] ask smaller header chunks from server. 200 lines max --- trunk/ripnews/news/article.rb | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/trunk/ripnews/news/article.rb b/trunk/ripnews/news/article.rb index d97a79d..92131ff 100644 --- a/trunk/ripnews/news/article.rb +++ b/trunk/ripnews/news/article.rb @@ -65,8 +65,8 @@ def get_articles(cachedir=false) for server in @connections.keys print "reading articles from server: #{server}\n" range = Set::IntSpan.new("#{@connections[server]["first"]}-#{@connections[server]["last"]}") - rangelist = range.diff(@connections[server]["skip_ids"]).run_list - print "rangelist: #{rangelist}\n" if Debuglevel >1 + rangelist = rechunk_runlist(range.diff(@connections[server]["skip_ids"]).run_list) + print "rangelist: #{rangelist}\n"# if Debuglevel >1 print "rangelist: #{rangelist.type.to_s}\n" if Debuglevel >1 print "rangelsit elements: #{range.diff(@connections[server]["skip_ids"]).elements}\n" if Debuglevel >1 unless rangelist == nil or rangelist =~ /^$/ @@ -830,6 +830,27 @@ def ward_sort(a, b) return 0 end +def rechunk_runlist(runlist) + blalist = runlist.split(',') + blalist.collect!{|x| + result = "" + if x =~ /(.*)-(.*)/ + a = $1 + while ($2.to_i - a.to_i) > 200 + result += "#{a}-#{a.to_i+199}," + a = a.to_i + 200 + end + result += "#{a}-#{$2}" + else + x + end + blup = blalist.join(",") + return blup +} + + return +end + def quit for server in @connections.keys @connections[server]["nntp"].quit