2024-02-24 15:53:29 +00:00
package model
import (
"strings"
"codeflow.dananglin.me.uk/apollo/enbas/internal/utilities"
)
type Timeline struct {
Name string
Statuses [ ] Status
}
2024-05-31 21:18:11 +01:00
func ( t Timeline ) Display ( noColor bool ) string {
2024-02-24 15:53:29 +00:00
var builder strings . Builder
separator := "────────────────────────────────────────────────────────────────────────────────"
2024-05-31 21:18:11 +01:00
builder . WriteString ( utilities . HeaderFormat ( noColor , t . Name ) + "\n" )
2024-02-24 15:53:29 +00:00
for _ , status := range t . Statuses {
2024-05-31 21:18:11 +01:00
builder . WriteString ( "\n" + utilities . DisplayNameFormat ( noColor , status . Account . DisplayName ) + " (@" + status . Account . Acct + ")\n" )
2024-05-27 01:05:31 +01:00
statusID := status . ID
createdAt := status . CreatedAt
if status . Reblog != nil {
2024-05-31 21:18:11 +01:00
builder . WriteString ( "reposted this status from " + utilities . DisplayNameFormat ( noColor , status . Reblog . Account . DisplayName ) + " (@" + status . Reblog . Account . Acct + ")\n" )
2024-05-27 01:05:31 +01:00
statusID = status . Reblog . ID
createdAt = status . Reblog . CreatedAt
}
2024-06-01 08:29:45 +01:00
builder . WriteString ( utilities . WrapLines ( utilities . ConvertHTMLToText ( status . Content ) , "\n" , 80 ) + "\n\n" )
2024-05-31 21:18:11 +01:00
builder . WriteString ( utilities . FieldFormat ( noColor , "ID:" ) + " " + statusID + "\t" + utilities . FieldFormat ( noColor , "Created at:" ) + " " + utilities . FormatTime ( createdAt ) + "\n" )
2024-02-24 15:53:29 +00:00
builder . WriteString ( separator + "\n" )
}
return builder . String ( )
}