diff --git a/trunk/ripnews/README b/trunk/ripnews/README index 7805ead..7dc6512 100644 --- a/trunk/ripnews/README +++ b/trunk/ripnews/README @@ -150,6 +150,8 @@ DELEXT= Set extension "mark read" pattern. OPT_MD= Set DELEXT just for multi part messages. OPT_SD= Set DELEXT just for single part messages. INCLUDEFILE= Include another file, only works in main config. +PRIMARYTHRES= At least this percentage of the post has to be found + on the first server. Ruby patterns: -------------- diff --git a/trunk/ripnews/news/article.rb b/trunk/ripnews/news/article.rb index 0612c18..8a45a02 100644 --- a/trunk/ripnews/news/article.rb +++ b/trunk/ripnews/news/article.rb @@ -641,6 +641,19 @@ def group_is_complete(subj) end end +def group_percentage_primary(subj) + group_subjects unless @grouped + groupsize = @groups[subj]["messageinfo"].length + primarycount = 0 + @groups[subj]["messageinfo"].each {|x| + if x[:server] == @serverlist[0] + primarycount += 1 + end + } + percentage = ((100.0/groupsize)*primarycount).to_i + return percentage +end + def group_is_singlepart(subj) @groups[subj]["total"].to_i == 1 end diff --git a/trunk/ripnews/ripnews.rb b/trunk/ripnews/ripnews.rb index 1f17f46..50c52da 100755 --- a/trunk/ripnews/ripnews.rb +++ b/trunk/ripnews/ripnews.rb @@ -698,18 +698,23 @@ def main elsif !(@config[group].has_key?("-X") and i =~ /#{@config[group]["-X"]}/) and i =~ /#{@config[group]["-I"]}/ print "Match: #{i}\n" if Debuglevel > 0 - if @articles.group_is_complete(i) && @articles.group_percentage_primary(i) - begin - if @articles.group_is_singlepart(i) - get_single(i, group) - elsif @articles.group_is_multipart(i) - get_multi(i, group) + if @articles.group_is_complete(i) + if @articles.group_percentage_primary(i) >= ( @config[group].has_key?("PRIMARYTHRES") ? + @config[group]["PRIMARYTHRES"].to_i : 0 ) + begin + if @articles.group_is_singlepart(i) + get_single(i, group) + elsif @articles.group_is_multipart(i) + get_multi(i, group) + end + rescue TempError, PermError, YencError + print "#{$!}\n" + print " Skipping article...\n" + #print "Caught #{$!.class}\n" + #print "Error: #{$!}\n" end - rescue TempError, PermError, YencError - print "#{$!}\n" - print " Skipping article...\n" - #print "Caught #{$!.class}\n" - #print "Error: #{$!}\n" + else + print "Only #{@articles.group_percentage_primary(i)}% of post on primary server, skipping #{i}\n" end else print "Not complete: #{i}\n"