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
}
func ( t Timeline ) String ( ) string {
var builder strings . Builder
separator := "────────────────────────────────────────────────────────────────────────────────"
2024-05-26 15:07:34 +01:00
builder . WriteString ( utilities . HeaderFormat ( t . Name ) + "\n\n" )
2024-02-24 15:53:29 +00:00
for _ , status := range t . Statuses {
2024-05-27 01:05:31 +01:00
builder . WriteString ( utilities . DisplayNameFormat ( status . Account . DisplayName ) + " (@" + status . Account . Acct + ")\n" )
statusID := status . ID
createdAt := status . CreatedAt
if status . Reblog != nil {
builder . WriteString ( "reposted this status from " + utilities . DisplayNameFormat ( status . Reblog . Account . DisplayName ) + " (@" + status . Reblog . Account . Acct + ")\n" )
statusID = status . Reblog . ID
createdAt = status . Reblog . CreatedAt
}
2024-05-26 15:07:34 +01:00
builder . WriteString ( utilities . WrapLines ( utilities . StripHTMLTags ( status . Content ) , "\n" , 80 ) + "\n\n" )
2024-05-27 01:05:31 +01:00
builder . WriteString ( utilities . FieldFormat ( "ID:" ) + " " + statusID + "\t" + utilities . FieldFormat ( "Created at:" ) + " " + utilities . FormatTime ( createdAt ) + "\n" )
2024-02-24 15:53:29 +00:00
builder . WriteString ( separator + "\n" )
}
return builder . String ( )
}