new Mark Remaining Read option
This commit is contained in:
parent
e827c94393
commit
6c92fcd40b
3 changed files with 34 additions and 19 deletions
|
|
@ -1,6 +1,10 @@
|
||||||
# $Dwarf: CHANGELOG,v 1.37 2005/02/05 08:29:36 ward Exp $
|
# $Dwarf: CHANGELOG,v 1.38 2005/02/09 09:14:35 ward Exp $
|
||||||
# $Source$
|
# $Source$
|
||||||
|
|
||||||
|
from 0.5.2 to ...
|
||||||
|
- fix the occasional deadlock
|
||||||
|
- implement Mark Remaining Read option
|
||||||
|
|
||||||
from 0.5.1 to 0.5.2
|
from 0.5.1 to 0.5.2
|
||||||
- major improvement in memory usage
|
- major improvement in memory usage
|
||||||
- speed ups
|
- speed ups
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# $Dwarf: README,v 1.19 2005/02/24 09:02:24 ward Exp $
|
# $Dwarf: README,v 1.20 2005/03/01 09:18:25 ward Exp $
|
||||||
# $Source$
|
# $Source$
|
||||||
|
|
||||||
Ripnews is a bulk downloader for usenet. It's quite flexible in terms of
|
Ripnews is a bulk downloader for usenet. It's quite flexible in terms of
|
||||||
|
|
@ -118,13 +118,21 @@ Supported config options:
|
||||||
OPT_I=<pattern> Set include pattern.
|
OPT_I=<pattern> Set include pattern.
|
||||||
OPT_L=<bool> Set long filenames.
|
OPT_L=<bool> Set long filenames.
|
||||||
OPT_C=<bool> Sets combined filenames.
|
OPT_C=<bool> Sets combined filenames.
|
||||||
OPT_X=<pattern> Set exclude pattern. Ripnews will read articles matching this pattern but it will not attempt
|
OPT_X=<pattern> Set exclude pattern. Ripnews will read articles
|
||||||
|
matching this pattern but it will not attempt
|
||||||
to download them.
|
to download them.
|
||||||
OPT_MR=<pattern> Set "mark read" pattern. Ripnews will place
|
OPT_MR=<pattern> Set "mark read" pattern. Ripnews will place
|
||||||
articles matching this pattern in your newsrc,
|
articles matching this pattern in your newsrc,
|
||||||
afterwards they will never be present in memory
|
afterwards they will never be present in memory
|
||||||
again. Great for reducing memory usage when
|
again. Great for reducing memory usage when
|
||||||
checking a group for the first time.
|
checking a group for the first time.
|
||||||
|
OPT_MRR=<bool> Mark Remaining Read. If this is set to
|
||||||
|
true and the article doesn't match an exclude or
|
||||||
|
include pattern, the article will be
|
||||||
|
marked as read. The purpose of this is
|
||||||
|
to keep the caches of extremely large
|
||||||
|
groups small as to make processing
|
||||||
|
quicker.
|
||||||
OPT_T=<bool> Set test mode. Newsrc files will not be written
|
OPT_T=<bool> Set test mode. Newsrc files will not be written
|
||||||
to.
|
to.
|
||||||
TEMPDIR=<dir> Set tempdir location.
|
TEMPDIR=<dir> Set tempdir location.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#!/usr/local/bin/ruby -w
|
#!/usr/local/bin/ruby -w
|
||||||
|
|
||||||
# $Dwarf: ripnews.rb,v 1.102 2005/03/01 09:18:50 ward Exp $
|
# $Dwarf: ripnews.rb,v 1.103 2005/03/01 19:56:56 ward Exp $
|
||||||
# $Source$
|
# $Source$
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
@ -428,9 +428,9 @@ def get_multi(subj, group)
|
||||||
end
|
end
|
||||||
|
|
||||||
@decode_threads << Thread.new(body, file, fileout, subj) do |tbody, tfile, tfileout, tsubj|
|
@decode_threads << Thread.new(body, file, fileout, subj) do |tbody, tfile, tfileout, tsubj|
|
||||||
puts "inside thread pre pass\n"
|
# puts "inside thread pre pass\n"
|
||||||
Thread.pass
|
Thread.pass
|
||||||
puts "inside thread post pass\n"
|
# puts "inside thread post pass\n"
|
||||||
if UUEncode.is_uuencoded(tbody)
|
if UUEncode.is_uuencoded(tbody)
|
||||||
print " UUDecoding...\n"
|
print " UUDecoding...\n"
|
||||||
if tfile
|
if tfile
|
||||||
|
|
@ -478,7 +478,7 @@ def get_multi(subj, group)
|
||||||
output_data(tsubj, tmode, tfilename, tbody)
|
output_data(tsubj, tmode, tfilename, tbody)
|
||||||
end # thread end
|
end # thread end
|
||||||
|
|
||||||
puts "ouside thread\n"
|
# puts "ouside thread\n"
|
||||||
|
|
||||||
return true
|
return true
|
||||||
else
|
else
|
||||||
|
|
@ -488,7 +488,7 @@ def get_multi(subj, group)
|
||||||
end
|
end
|
||||||
|
|
||||||
def fill_preselector(group)
|
def fill_preselector(group)
|
||||||
if @config[group].has_key?("-I")
|
if @config[group].has_key?("-I") and !(@config[group].has_key?("-MRR") and @config[group]["-MRR"])
|
||||||
@articles.set_preselect_pattern(Regexp.new(@config[group]["-I"]))
|
@articles.set_preselect_pattern(Regexp.new(@config[group]["-I"]))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -652,12 +652,12 @@ def main
|
||||||
end
|
end
|
||||||
for i in @articles.get_group_subjects.sort{|a, b| ward_sort(a, b)}
|
for i in @articles.get_group_subjects.sort{|a, b| ward_sort(a, b)}
|
||||||
print "#{i}\n" if Debuglevel > 2
|
print "#{i}\n" if Debuglevel > 2
|
||||||
|
# explicitly mark as read
|
||||||
if @config[group].has_key?("-MR") and i =~ /#{@config[group]["-MR"]}/
|
if @config[group].has_key?("-MR") and i =~ /#{@config[group]["-MR"]}/
|
||||||
print "Marking '#{i}' as read\n"
|
print "Marking '#{i}' as read\n"
|
||||||
@articles.group_update_newsrc(i)
|
@articles.group_update_newsrc(i)
|
||||||
next
|
# get the juicy bits
|
||||||
end
|
elsif !(@config[group].has_key?("-X") and i =~ /#{@config[group]["-X"]}/) and
|
||||||
if !(@config[group].has_key?("-X") and i =~ /#{@config[group]["-X"]}/) and
|
|
||||||
i =~ /#{@config[group]["-I"]}/
|
i =~ /#{@config[group]["-I"]}/
|
||||||
print "Match: #{i}\n" if Debuglevel > 0
|
print "Match: #{i}\n" if Debuglevel > 0
|
||||||
if @articles.group_is_complete(i)
|
if @articles.group_is_complete(i)
|
||||||
|
|
@ -667,21 +667,24 @@ def main
|
||||||
elsif @articles.group_is_multipart(i)
|
elsif @articles.group_is_multipart(i)
|
||||||
get_multi(i, group)
|
get_multi(i, group)
|
||||||
end
|
end
|
||||||
#rescue Article::TempError, Article::PermError
|
|
||||||
rescue TempError, PermError
|
rescue TempError, PermError
|
||||||
print "#{$!}\n"
|
print "#{$!}\n"
|
||||||
print " Skipping article...\n"
|
print " Skipping article...\n"
|
||||||
#print "Caught #{$!.class}\n"
|
#print "Caught #{$!.class}\n"
|
||||||
#print "Error: #{$!}\n"
|
#print "Error: #{$!}\n"
|
||||||
next
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
print "Not complete: #{i}\n"
|
print "Not complete: #{i}\n"
|
||||||
end
|
end
|
||||||
|
# if Mark Remaining Read is set do so
|
||||||
|
elsif @config[group].has_key?("-MRR") and @config[group]["-MRR"] and
|
||||||
|
!(@config[group].has_key?("-X") and i =~ /#{@config[group]["-X"]}/)
|
||||||
|
print "Marking remaining '#{i}' as read\n"
|
||||||
|
@articles.group_update_newsrc(i)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# hier wachten op evt. threads...
|
# wait for threads if there are any
|
||||||
if ! @decode_threads.empty?
|
if ! @decode_threads.empty?
|
||||||
@articles.disconnect
|
@articles.disconnect
|
||||||
puts "Waiting for decode threads..."
|
puts "Waiting for decode threads..."
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue