]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/LeiInspect.pm
lei inspect: integerize "bytes" and "lines" fields
[public-inbox.git] / lib / PublicInbox / LeiInspect.pm
index 8e1285808fa35a3dd9093bbafa0984a38fac7d6c..f18e31c5c8f494059bb7fd9f5544ae89b0f937fe 100644 (file)
@@ -13,6 +13,12 @@ use PublicInbox::Config;
 use PublicInbox::MID qw(mids);
 use PublicInbox::NetReader qw(imap_uri nntp_uri);
 
+sub _json_prep ($) {
+       my ($smsg) = @_;
+       $smsg->{$_} += 0 for qw(bytes lines); # integerize
+       +{ %$smsg } # unbless and scalarize
+}
+
 sub inspect_blob ($$) {
        my ($lei, $oidhex) = @_;
        my $ent = {};
@@ -143,7 +149,7 @@ sub inspect_num ($$) {
        }
        if ($ibx && $ibx->over) {
                my $smsg = $ibx->over->get_art($num);
-               $ent->{smsg} = { %$smsg } if $smsg;
+               $ent->{smsg} = _json_prep($smsg) if $smsg;
        }
        defined($docid) ? inspect_docid($lei, $docid, $ent) : $ent;
 }
@@ -164,7 +170,7 @@ sub inspect_mid ($$) {
        if ($ibx && $ibx->over) {
                my ($id, $prev);
                while (my $smsg = $ibx->over->next_by_mid($mid, \$id, \$prev)) {
-                       push @{$ent->{smsg}}, { %$smsg }
+                       push @{$ent->{smsg}}, _json_prep($smsg);
                }
        }
        $ent;
@@ -269,10 +275,9 @@ no args allowed on command-line with --stdin
 }
 
 sub _complete_inspect {
-       my ($lei, @argv) = @_;
-       my $lms = $lei->lms or return;
-       my $match_cb = $lei->complete_url_prepare(\@argv);
-       map { $match_cb->($_) } $lms->folders;
+       require PublicInbox::LeiRefreshMailSync;
+       PublicInbox::LeiRefreshMailSync::_complete_refresh_mail_sync(@_);
+       # TODO: message-ids?, blobs? could get expensive...
 }
 
 1;