101 lines
2.2 KiB
Go
101 lines
2.2 KiB
Go
package migrations
|
|
|
|
import (
|
|
"pocketbase/util"
|
|
|
|
"github.com/pocketbase/dbx"
|
|
"github.com/pocketbase/pocketbase/core"
|
|
m "github.com/pocketbase/pocketbase/migrations"
|
|
)
|
|
|
|
func init() {
|
|
m.Register(func(app core.App) error {
|
|
trails, err := app.FindAllRecords("trails")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
for _, t := range trails {
|
|
trailAuthor, err := app.FindRecordById("activitypub_actors", t.GetString("author"))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
feed, err := util.InsertIntoFeed(app, trailAuthor.Id, trailAuthor.Id, t.Id, util.TrailFeed)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
feed.SetRaw("created", t.GetDateTime("created"))
|
|
err = app.Save(feed)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
followers, err := app.FindRecordsByFilter("follows", "followee={:author}", "", -1, 0, dbx.Params{"author": trailAuthor.Id})
|
|
if err != nil {
|
|
return err
|
|
}
|
|
for _, f := range followers {
|
|
feed, err = util.InsertIntoFeed(app, f.GetString("follower"), trailAuthor.Id, t.Id, util.TrailFeed)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
feed.SetRaw("created", t.GetDateTime("created"))
|
|
err = app.Save(feed)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
|
|
lists, err := app.FindAllRecords("lists")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
for _, t := range lists {
|
|
listAuthor, err := app.FindRecordById("activitypub_actors", t.GetString("author"))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
feed, err := util.InsertIntoFeed(app, listAuthor.Id, listAuthor.Id, t.Id, util.ListFeed)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
feed.SetRaw("created", t.GetDateTime("created"))
|
|
err = app.Save(feed)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
followers, err := app.FindRecordsByFilter("follows", "followee={:author}", "", -1, 0, dbx.Params{"author": listAuthor.Id})
|
|
if err != nil {
|
|
return err
|
|
}
|
|
for _, f := range followers {
|
|
feed, err = util.InsertIntoFeed(app, f.GetString("follower"), listAuthor.Id, t.Id, util.ListFeed)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
feed.SetRaw("created", t.GetDateTime("created"))
|
|
err = app.Save(feed)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
return nil
|
|
}, func(app core.App) error {
|
|
_, err := app.DB().
|
|
NewQuery("DELETE FROM feed;").
|
|
Execute()
|
|
|
|
return err
|
|
})
|
|
}
|