54 lines
1.1 KiB
Go
54 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"log/slog"
|
|
"os"
|
|
|
|
"github.com/vartanbeno/go-reddit/v2/reddit"
|
|
)
|
|
|
|
type Post struct {
|
|
reddit.Post
|
|
}
|
|
|
|
var ctx = context.Background()
|
|
|
|
func main() {
|
|
handler := slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{Level: slog.LevelDebug})
|
|
logger := slog.New(handler)
|
|
slog.SetDefault(logger)
|
|
if err := run(logger); err != nil {
|
|
logger.Error("Failed", "error", err)
|
|
}
|
|
}
|
|
|
|
func run(logger *slog.Logger) error {
|
|
client, err := reddit.NewReadonlyClient()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
subs, _, err := client.Subreddit.Search(ctx, "hentai", nil)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
logger.Info("Searching subreddits successful", "subreddits", subs)
|
|
posts, _, err := client.Subreddit.SearchPosts(ctx, "psylocke", "hentai", nil)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
logger.Info("Searching posts successful", "posts", posts, "count", len(posts))
|
|
data, err := json.Marshal(posts)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
var new_posts []*Post
|
|
err = json.Unmarshal(data, &new_posts)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
logger.Info("Unmarshalled post subclass", "posts", new_posts)
|
|
return nil
|
|
}
|