printer/plainprinter.go
changeset 194 660233815ca8
parent 192 be28c23ace0e
child 203 71455784278b
equal deleted inserted replaced
193:4a1e3b57fd0f 194:660233815ca8
    10 	"io"
    10 	"io"
    11 	"os"
    11 	"os"
    12 	"reflect"
    12 	"reflect"
    13 	"time"
    13 	"time"
    14 
    14 
    15 	"github.com/m0t0k1ch1/gomif"
       
    16 
       
    17 	"github.com/McKael/madon"
    15 	"github.com/McKael/madon"
    18 	"github.com/McKael/madonctl/printer/html2text"
    16 	"github.com/McKael/madonctl/printer/html2text"
    19 )
    17 )
    20 
    18 
    21 // PlainPrinter is the default "plain text" printer
    19 // PlainPrinter is the default "plain text" printer
    45 	case []madon.Account, []madon.Attachment, []madon.Card, []madon.Context,
    43 	case []madon.Account, []madon.Attachment, []madon.Card, []madon.Context,
    46 		[]madon.Emoji, []madon.Instance, []madon.InstancePeer,
    44 		[]madon.Emoji, []madon.Instance, []madon.InstancePeer,
    47 		[]madon.List, []madon.Mention, []madon.Notification,
    45 		[]madon.List, []madon.Mention, []madon.Notification,
    48 		[]madon.Relationship, []madon.Report, []madon.Results,
    46 		[]madon.Relationship, []madon.Report, []madon.Results,
    49 		[]madon.Status, []madon.StreamEvent, []madon.Tag,
    47 		[]madon.Status, []madon.StreamEvent, []madon.Tag,
    50 		[]madon.DomainName, []*gomif.InstanceStatus:
    48 		[]madon.DomainName:
    51 		return p.plainForeach(o, w, initialIndent)
    49 		return p.plainForeach(o, w, initialIndent)
    52 	case *madon.DomainName:
    50 	case *madon.DomainName:
    53 		return p.plainPrintDomainName(o, w, initialIndent)
    51 		return p.plainPrintDomainName(o, w, initialIndent)
    54 	case madon.DomainName:
    52 	case madon.DomainName:
    55 		return p.plainPrintDomainName(&o, w, initialIndent)
    53 		return p.plainPrintDomainName(&o, w, initialIndent)
   107 		return p.plainPrintStatus(&o, w, initialIndent)
   105 		return p.plainPrintStatus(&o, w, initialIndent)
   108 	case *madon.UserToken:
   106 	case *madon.UserToken:
   109 		return p.plainPrintUserToken(o, w, initialIndent)
   107 		return p.plainPrintUserToken(o, w, initialIndent)
   110 	case madon.UserToken:
   108 	case madon.UserToken:
   111 		return p.plainPrintUserToken(&o, w, initialIndent)
   109 		return p.plainPrintUserToken(&o, w, initialIndent)
   112 	case *gomif.InstanceStatus:
       
   113 		return p.plainPrintInstanceStatistics(o, w, initialIndent)
       
   114 	case gomif.InstanceStatus:
       
   115 		return p.plainPrintInstanceStatistics(&o, w, initialIndent)
       
   116 	}
   110 	}
   117 	// TODO: Mention
   111 	// TODO: Mention
   118 	// TODO: StreamEvent
   112 	// TODO: StreamEvent
   119 	// TODO: Tag
   113 	// TODO: Tag
   120 
   114 
   366 		indentedPrint(w, indent, false, true, "Timestamp", "%v", time.Unix(s.CreatedAt, 0))
   360 		indentedPrint(w, indent, false, true, "Timestamp", "%v", time.Unix(s.CreatedAt, 0))
   367 	}
   361 	}
   368 	indentedPrint(w, indent, false, true, "Scope", "%s", s.Scope)
   362 	indentedPrint(w, indent, false, true, "Scope", "%s", s.Scope)
   369 	return nil
   363 	return nil
   370 }
   364 }
   371 
       
   372 func (p *PlainPrinter) plainPrintInstanceStatistics(is *gomif.InstanceStatus, w io.Writer, indent string) error {
       
   373 	if is == nil {
       
   374 		return nil
       
   375 	}
       
   376 	indentedPrint(w, indent, true, false, "Instance", "%s", is.InstanceName)
       
   377 	indentedPrint(w, indent, false, false, "Users", "%d", is.Users)
       
   378 	indentedPrint(w, indent, false, false, "Statuses", "%d", is.Statuses)
       
   379 	indentedPrint(w, indent, false, false, "Open Registrations", "%v", is.OpenRegistrations)
       
   380 	indentedPrint(w, indent, false, false, "Up", "%v", is.Up)
       
   381 	indentedPrint(w, indent, false, false, "Date", "%s", time.Unix(is.Date, 0))
       
   382 	return nil
       
   383 }