mirror of
https://github.com/adulau/mastodon-markdown-archive.git
synced 2024-10-09 15:51:44 +00:00
50 lines
1.3 KiB
Go
50 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"git.hq.ggpsv.com/gabriel/mastodon-pesos/client"
|
|
"git.hq.ggpsv.com/gabriel/mastodon-pesos/files"
|
|
"log"
|
|
)
|
|
|
|
func main() {
|
|
dist := flag.String("dist", "", "Path to directory where files will be written")
|
|
user := flag.String("user", "", "URL of User's Mastodon account whose toots will be fetched")
|
|
excludeReplies := flag.Bool("exclude-replies", false, "Whether or not exclude replies to other users")
|
|
excludeReblogs := flag.Bool("exclude-reblogs", false, "Whether or not to exclude reblogs")
|
|
limit := flag.Int("limit", 40, "Maximum number of posts to fetch")
|
|
sinceId := flag.String("since-id", "", "Fetch only posts made since passed post id")
|
|
|
|
flag.Parse()
|
|
|
|
c, err := client.New(*user)
|
|
|
|
if err != nil {
|
|
log.Panicln(fmt.Errorf("error instantiating client: %w", err))
|
|
}
|
|
|
|
posts, err := c.GetPosts(client.PostsFilter{
|
|
ExcludeReplies: *excludeReplies,
|
|
ExcludeReblogs: *excludeReblogs,
|
|
Limit: *limit,
|
|
SinceId: *sinceId,
|
|
})
|
|
|
|
if err != nil {
|
|
log.Panicln(err)
|
|
}
|
|
|
|
fileWriter, err := files.New(*dist)
|
|
|
|
if err != nil {
|
|
log.Panicln(err)
|
|
}
|
|
|
|
for _, post := range posts {
|
|
if err := fileWriter.Write(post); err != nil {
|
|
log.Panicln("error writing post to file: %w", err)
|
|
break
|
|
}
|
|
}
|
|
}
|