]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/Inbox.pm
inbox: msg_by_*: remove $(size)ref args
[public-inbox.git] / lib / PublicInbox / Inbox.pm
index 617b692b14ca10688c57ce84c9148a56a1340940..38abdfe584752c0a5123816fcd899bfa2890b45e 100644 (file)
@@ -102,7 +102,7 @@ sub _set_limiter ($$$) {
 
 sub new {
        my ($class, $opts) = @_;
-       my $v = $opts->{address} ||= 'public-inbox@example.com';
+       my $v = $opts->{address} ||= [ 'public-inbox@example.com' ];
        my $p = $opts->{-primary_address} = ref($v) eq 'ARRAY' ? $v->[0] : $v;
        $opts->{domain} = ($p =~ /\@(\S+)\z/) ? $1 : 'localhost';
        my $pi_config = delete $opts->{-pi_config};
@@ -223,6 +223,7 @@ sub description {
                my $desc = try_cat("$self->{inboxdir}/description");
                local $/ = "\n";
                chomp $desc;
+               utf8::decode($desc);
                $desc =~ s/\s+/ /smg;
                $desc eq '' ? undef : $desc;
        }) // '($INBOX_DIR/description missing)';
@@ -309,30 +310,36 @@ sub nntp_usable {
 }
 
 # for v1 users w/o SQLite only
-sub msg_by_path ($$;$) {
-       my ($self, $path, $ref) = @_;
-       git($self)->cat_file('HEAD:'.$path, $ref);
+sub msg_by_path ($$) {
+       my ($self, $path) = @_;
+       git($self)->cat_file('HEAD:'.$path);
 }
 
-sub msg_by_smsg ($$;$) {
-       my ($self, $smsg, $ref) = @_;
+sub msg_by_smsg ($$) {
+       my ($self, $smsg) = @_;
 
        # ghosts may have undef smsg (from SearchThread.node) or
        # no {blob} field
        return unless defined $smsg;
        defined(my $blob = $smsg->{blob}) or return;
 
-       git($self)->cat_file($blob, $ref);
+       git($self)->cat_file($blob);
 }
 
 sub smsg_mime {
-       my ($self, $smsg, $ref) = @_;
-       if (my $s = msg_by_smsg($self, $smsg, $ref)) {
+       my ($self, $smsg) = @_;
+       if (my $s = msg_by_smsg($self, $smsg)) {
                $smsg->{mime} = PublicInbox::Eml->new($s);
                return $smsg;
        }
 }
 
+sub smsg_eml {
+       my ($self, $smsg) = @_;
+       my $bref = msg_by_smsg($self, $smsg) or return;
+       PublicInbox::Eml->new($bref);
+}
+
 sub mid2num($$) {
        my ($self, $mid) = @_;
        my $mm = mm($self) or return;
@@ -348,14 +355,14 @@ sub smsg_by_mid ($$) {
        PublicInbox::Smsg::psgi_cull($smsg);
 }
 
-sub msg_by_mid ($$;$) {
-       my ($self, $mid, $ref) = @_;
+sub msg_by_mid ($$) {
+       my ($self, $mid) = @_;
 
        over($self) or
-               return msg_by_path($self, mid2path($mid), $ref);
+               return msg_by_path($self, mid2path($mid));
 
        my $smsg = smsg_by_mid($self, $mid);
-       $smsg ? msg_by_smsg($self, $smsg, $ref) : undef;
+       $smsg ? msg_by_smsg($self, $smsg) : undef;
 }
 
 sub recent {