/*
   "0" or article number (see below)
   Subject header content
   From header content
   Date header content
   Message-ID header content
   References header content
   :bytes metadata item
   :lines metadata item
*/
"0" or article number
Subject header content
From header content
Date header content
Message-ID header content
References header content
:bytes metadata item
:lines metadata item
/ * " 0 " or article number ( see below ) Subject header content From header content Date header content Message - ID header content References header content : bytes metadata item : lines metadata item * /
func handleOver(args []string, s *session, c *textproto.Conn) error {
	arg0 := ""
	if len(args)>0 {arg0 = args[0]}
	single,nogroup := analiyzeArticleID(arg0)
	if s.group == nil && !nogroup {
		return ErrNoGroupSelected
	}
	if single {
		var a *nntp.Article
		var e error
		if nogroup{
			a,e = s.backend.GetArticleWithNoGroup(arg0)
		}else{
			a,e = s.backend.GetArticle(s.group,arg0)
		}
		if e!=nil { return e }
		dw := c.DotWriter()
		defer dw.Close()
		fmt.Fprintf(dw, "%d\t%s\t%s\t%s\t%s\t%s\t%d\t%d\n", 0,
			a.Header.Get("Subject"),
			a.Header.Get("From"),
			a.Header.Get("Date"),
			a.Header.Get("Message-Id"),
			a.Header.Get("References"),
			a.Bytes, a.Lines)
		return nil
	}
	from, to := parseRange(arg0)
	articles, err := s.backend.GetArticles(s.group, from, to)
	if err != nil {
		return err
	}
	c.PrintfLine("224 here it comes")
	dw := c.DotWriter()
	defer dw.Close()
	for a := range articles {
		fmt.Fprintf(dw, "%d\t%s\t%s\t%s\t%s\t%s\t%d\t%d\n", a.Num,
			a.Article.Header.Get("Subject"),
			a.Article.Header.Get("From"),
			a.Article.Header.Get("Date"),
			a.Article.Header.Get("Message-Id"),
			a.Article.Header.Get("References"),
			a.Article.Bytes, a.Article.Lines)
	}
	return nil
}
func handleOver ( args [ ] string , s * session , c * textproto . Conn ) error { arg0 := " " if len ( args ) > 0 { arg0 = args [ 0 ] } single , nogroup := analiyzeArticleID ( arg0 ) if s . group == nil && ! nogroup { return ErrNoGroupSelected } if single { var a * nntp . Article var e error if nogroup { a , e = s . backend . GetArticleWithNoGroup ( arg0 ) } else { a , e = s . backend . GetArticle ( s . group , arg0 ) } if e != nil { return e } dw := c . DotWriter ( ) defer dw . Close ( ) fmt . Fprintf ( dw , " \t \t \t \t \t \t \t \n " , 0 , a . Header . Get ( " " ) , a . Header . Get ( " " ) , a . Header . Get ( " " ) , a . Header . Get ( " " ) , a . Header . Get ( " " ) , a . Bytes , a . Lines ) return nil } from , to := parseRange ( arg0 ) articles , err := s . backend . GetArticles ( s . group , from , to ) if err != nil { return err } c . PrintfLine ( " " ) dw := c . DotWriter ( ) defer dw . Close ( ) for a := range articles { fmt . Fprintf ( dw , " \t \t \t \t \t \t \t \n " , a . Num , a . Article . Header . Get ( " " ) , a . Article . Header . Get ( " " ) , a . Article . Header . Get ( " " ) , a . Article . Header . Get ( " " ) , a . Article . Header . Get ( " " ) , a . Article . Bytes , a . Article . Lines ) } return nil }
"0" or article number
Subject header content
From header content
Date header content
Message-ID header content
References header content
:bytes metadata item
:lines metadata item
" 0 " or article number Subject header content From header content Date header content Message - ID header content References header content : bytes metadata item : lines metadata item