i think this will work with mastodon import and boosts
Ted Unangst tedu@tedunangst.com
Mon, 18 Jan 2021 17:25:21 -0500
1 files changed,
30 insertions(+),
17 deletions(-)
jump to
M
import.go
→
import.go
@@ -39,6 +39,32 @@ log.Fatal("unknown source flavor")
} } +type TootObject struct { + Summary string + Content string + InReplyTo string + Conversation string + Published time.Time + Tag []struct { + Type string + Name string + } + Attachment []struct { + Type string + MediaType string + Url string + Name string + } +} + +type PlainTootObject TootObject + +func (obj *TootObject) UnmarshalJSON(b []byte) error { + p := (*PlainTootObject)(obj) + json.Unmarshal(b, p) + return nil +} + func importMastodon(username, source string) { user, err := butwhatabout(username) if err != nil {@@ -49,23 +75,7 @@ Id string
Type string To []string Cc []string - Object struct { - Summary string - Content string - InReplyTo string - Conversation string - Published time.Time - Tag []struct { - Type string - Name string - } - Attachment []struct { - Type string - MediaType string - Url string - Name string - } - } + Object TootObject } var outbox struct { OrderedItems []Toot@@ -94,6 +104,9 @@
re_tootid := regexp.MustCompile("[^/]+$") for _, item := range outbox.OrderedItems { toot := item + if toot.Type != "Create" { + continue + } tootid := re_tootid.FindString(toot.Id) xid := fmt.Sprintf("%s/%s/%s", user.URL, honkSep, tootid) if havetoot(xid) {