This allows users to DRY up their config a bit and avoid
specifying altid twice when reusing the NNTP-centric msgmap
for [ruby-*:\d+] serial numbers.

My current work-in-progress ~/.public-inbox/config entry
for the ruby-core list is:

------8<-------
[publicinbox "ruby-core"]
        address = [email protected]
        url = //public-inbox.org/ruby-core
        mainrepo = /path/to/ruby-core.git
        newsgroup = inbox.comp.lang.ruby.core
        watchheader = List-Id:<ruby-core.ruby-lang.org>
        altid = serial:ruby-core:file=msgmap.sqlite3
        watch = maildir:/path/to/Maildir/.INBOX.ruby
        filter = PublicInbox::Filter::RubyLang
---
 lib/PublicInbox/Filter/RubyLang.pm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/lib/PublicInbox/Filter/RubyLang.pm 
b/lib/PublicInbox/Filter/RubyLang.pm
index ec4bc32..5240e8d 100644
--- a/lib/PublicInbox/Filter/RubyLang.pm
+++ b/lib/PublicInbox/Filter/RubyLang.pm
@@ -15,10 +15,13 @@ sub new {
        my ($class, %opts) = @_;
        my $altid = delete $opts{-altid};
        my $self = $class->SUPER::new(%opts);
+       my $ibx = $self->{-inbox};
        # altid = serial:ruby-core:file=msgmap.sqlite3
+       if (!$altid && $ibx && $ibx->{altid}) {
+               $altid ||= $ibx->{altid}->[0];
+       }
        if ($altid) {
                require PublicInbox::MID; # mid_clean
-               my $ibx = $self->{-inbox};
                require PublicInbox::AltId;
                $self->{-altid} = PublicInbox::AltId->new($ibx, $altid, 1);
        }
-- 
EW


Reply via email to