switches username and preferred_username
This commit is contained in:
@@ -43,7 +43,7 @@ func SplitHandle(handle string) (string, string) {
|
||||
func GetActorByHandle(app core.App, handle string, includeFollows bool) (*core.Record, error) {
|
||||
username, domain := SplitHandle(handle)
|
||||
|
||||
filter := "username={:username}&&"
|
||||
filter := "preferred_username={:username}&&"
|
||||
if domain != "" {
|
||||
filter += "domain={:domain}"
|
||||
} else {
|
||||
|
||||
@@ -196,7 +196,7 @@ func processTrailAnnounceActivity(app core.App, actor *core.Record, activity pub
|
||||
Metadata: map[string]string{
|
||||
"id": trail.Id,
|
||||
"trail": trail.GetString("name"),
|
||||
"author": fmt.Sprintf("@%s@%s", actor.GetString("username"), actor.GetString("domain")),
|
||||
"author": fmt.Sprintf("@%s@%s", actor.GetString("preferred_username"), actor.GetString("domain")),
|
||||
},
|
||||
Seen: false,
|
||||
Author: actor.Id,
|
||||
@@ -261,7 +261,7 @@ func processListAnnounceActivity(app core.App, actor *core.Record, activity pub.
|
||||
Metadata: map[string]string{
|
||||
"id": list.Id,
|
||||
"list": list.GetString("name"),
|
||||
"author": fmt.Sprintf("@%s@%s", actor.GetString("username"), actor.GetString("domain")),
|
||||
"author": fmt.Sprintf("@%s@%s", actor.GetString("preferred_username"), actor.GetString("domain")),
|
||||
},
|
||||
Seen: false,
|
||||
Author: actor.Id,
|
||||
|
||||
@@ -322,7 +322,7 @@ func CreateSummitLogActivity(app core.App, summitLog *core.Record, typ pub.Activ
|
||||
logObject.AttributedTo = pub.IRI(summitLogAuthor.GetString("iri"))
|
||||
logObject.Published = summitLog.GetDateTime("created").Time()
|
||||
logObject.ID = pub.IRI(fmt.Sprintf("%s/api/v1/summit-log/%s", origin, summitLog.Id))
|
||||
logObject.URL = pub.IRI(fmt.Sprintf("%s/trail/view/@%s/%s", origin, summitLogTrailAuthor.GetString("username"), summitLog.GetString("trail")))
|
||||
logObject.URL = pub.IRI(fmt.Sprintf("%s/trail/view/@%s/%s", origin, summitLogTrailAuthor.GetString("preferred_username"), summitLog.GetString("trail")))
|
||||
logObject.InReplyTo = trailIRI
|
||||
logObject.Tag = tags
|
||||
|
||||
@@ -487,7 +487,7 @@ func processCreateOrUpdateTrailActivity(activity pub.Activity, app core.App, act
|
||||
Type: util.TrailMention,
|
||||
Metadata: map[string]string{
|
||||
"id": trail.Id,
|
||||
"author": fmt.Sprintf("@%s@%s", actor.GetString("username"), actor.GetString("domain")),
|
||||
"author": fmt.Sprintf("@%s@%s", actor.GetString("preferred_username"), actor.GetString("domain")),
|
||||
},
|
||||
Seen: false,
|
||||
Author: actor.Id,
|
||||
@@ -584,7 +584,7 @@ func processCreateOrUpdateCommentActivity(activity pub.Activity, app core.App, a
|
||||
"comment": commentObject.Content.First().Value.String(),
|
||||
"trail_id": trail.Id,
|
||||
"trail_name": trail.GetString("name"),
|
||||
"trail_author": fmt.Sprintf("@%s@%s", trailAuthor.GetString("username"), trailAuthor.GetString("domain")),
|
||||
"trail_author": fmt.Sprintf("@%s@%s", trailAuthor.GetString("preferred_username"), trailAuthor.GetString("domain")),
|
||||
},
|
||||
Seen: false,
|
||||
Author: actor.Id,
|
||||
@@ -600,7 +600,7 @@ func processCreateOrUpdateCommentActivity(activity pub.Activity, app core.App, a
|
||||
"comment": commentObject.Content.First().Value.String(),
|
||||
"trail_id": trail.Id,
|
||||
"trail_name": trail.GetString("name"),
|
||||
"trail_author": fmt.Sprintf("@%s@%s", trailAuthor.GetString("username"), trailAuthor.GetString("domain")),
|
||||
"trail_author": fmt.Sprintf("@%s@%s", trailAuthor.GetString("preferred_username"), trailAuthor.GetString("domain")),
|
||||
},
|
||||
Seen: false,
|
||||
Author: actor.Id,
|
||||
@@ -764,7 +764,7 @@ func processCreateOrUpdateSummitLogActivity(activity pub.Activity, app core.App,
|
||||
Metadata: map[string]string{
|
||||
"trail_id": trail.Id,
|
||||
"trail_name": trail.GetString("name"),
|
||||
"trail_author": fmt.Sprintf("@%s@%s", trailAuthor.GetString("username"), trailAuthor.GetString("domain")),
|
||||
"trail_author": fmt.Sprintf("@%s@%s", trailAuthor.GetString("preferred_username"), trailAuthor.GetString("domain")),
|
||||
},
|
||||
Seen: false,
|
||||
Author: actor.Id,
|
||||
@@ -780,7 +780,7 @@ func processCreateOrUpdateSummitLogActivity(activity pub.Activity, app core.App,
|
||||
Metadata: map[string]string{
|
||||
"trail_id": trail.Id,
|
||||
"trail_name": trail.GetString("name"),
|
||||
"trail_author": fmt.Sprintf("@%s@%s", trailAuthor.GetString("username"), trailAuthor.GetString("domain")),
|
||||
"trail_author": fmt.Sprintf("@%s@%s", trailAuthor.GetString("preferred_username"), trailAuthor.GetString("domain")),
|
||||
},
|
||||
Seen: false,
|
||||
Author: actor.Id,
|
||||
|
||||
@@ -124,7 +124,7 @@ func ProcessFollowActivity(app core.App, actor *core.Record, activity pub.Activi
|
||||
notification := util.Notification{
|
||||
Type: util.NewFollower,
|
||||
Metadata: map[string]string{
|
||||
"follower": fmt.Sprintf("@%s@%s", actor.GetString("username"), actor.GetString("domain")),
|
||||
"follower": fmt.Sprintf("@%s@%s", actor.GetString("preferred_username"), actor.GetString("domain")),
|
||||
},
|
||||
Seen: false,
|
||||
Author: actor.Id,
|
||||
|
||||
@@ -107,8 +107,8 @@ func ProcessLikeActivity(app core.App, actor *core.Record, activity pub.Activity
|
||||
Metadata: map[string]string{
|
||||
"trail_id": trail.Id,
|
||||
"trail_name": trail.GetString("name"),
|
||||
"trail_author": fmt.Sprintf("@%s", trailAuthor.GetString("username")),
|
||||
"liker": fmt.Sprintf("@%s@%s", actor.GetString("username"), actor.GetString("domain")),
|
||||
"trail_author": fmt.Sprintf("@%s", trailAuthor.GetString("preferred_username")),
|
||||
"liker": fmt.Sprintf("@%s@%s", actor.GetString("preferred_username"), actor.GetString("domain")),
|
||||
},
|
||||
Seen: false,
|
||||
Author: actor.Id,
|
||||
|
||||
58
db/migrations/1750774093_swap_preferred_username.go
Normal file
58
db/migrations/1750774093_swap_preferred_username.go
Normal file
@@ -0,0 +1,58 @@
|
||||
package migrations
|
||||
|
||||
import (
|
||||
"github.com/pocketbase/pocketbase/core"
|
||||
m "github.com/pocketbase/pocketbase/migrations"
|
||||
)
|
||||
|
||||
func init() {
|
||||
m.Register(func(app core.App) error {
|
||||
actors, err := app.FindAllRecords("activitypub_actors")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, a := range actors {
|
||||
if !a.GetBool("isLocal") {
|
||||
continue
|
||||
}
|
||||
|
||||
username := a.GetString("username")
|
||||
preferredUsername := a.GetString("preferred_username")
|
||||
|
||||
a.Set("username", preferredUsername)
|
||||
a.Set("preferred_username", username)
|
||||
|
||||
err = app.Save(a)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}, func(app core.App) error {
|
||||
actors, err := app.FindAllRecords("activitypub_actors")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, a := range actors {
|
||||
if !a.GetBool("isLocal") {
|
||||
continue
|
||||
}
|
||||
|
||||
username := a.GetString("username")
|
||||
preferredUsername := a.GetString("preferred_username")
|
||||
|
||||
a.Set("username", preferredUsername)
|
||||
a.Set("preferred_username", username)
|
||||
|
||||
err = app.Save(a)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
}
|
||||
40
db/migrations/1750780092_updated_timeline.go
Normal file
40
db/migrations/1750780092_updated_timeline.go
Normal file
@@ -0,0 +1,40 @@
|
||||
package migrations
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"github.com/pocketbase/pocketbase/core"
|
||||
m "github.com/pocketbase/pocketbase/migrations"
|
||||
)
|
||||
|
||||
func init() {
|
||||
m.Register(func(app core.App) error {
|
||||
collection, err := app.FindCollectionByNameOrId("pbc_468398817")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// update collection data
|
||||
if err := json.Unmarshal([]byte(`{
|
||||
"viewQuery": "SELECT\n id,\n trail_id,\n trail_author_username,\n trail_author_domain,\n trail_iri,\n date,\n name,\n description,\n gpx,\n author,\n photos,\n distance,\n duration,\n elevation_gain,\n elevation_loss,\n created,\n type\nFROM\n (\n SELECT\n summit_logs.id,\n summit_logs.trail as trail_id,\n tapa.preferred_username as trail_author_username,\n tapa.domain as trail_author_domain,\n trails.iri as trail_iri,\n summit_logs.date,\n trails.name,\n text as description,\n summit_logs.gpx,\n sapa.iri as author,\n summit_logs.photos,\n summit_logs.distance,\n summit_logs.duration,\n summit_logs.elevation_gain,\n summit_logs.elevation_loss,\n summit_logs.created,\n \"summit_log\" as type\n FROM\n summit_logs\n JOIN trails ON summit_logs.trail = trails.id\n JOIN activitypub_actors sapa ON sapa.id = summit_logs.author\n JOIN activitypub_actors tapa ON tapa.id = trails.author\n UNION\n SELECT\n trails.id,\n trails.id as trail_id,\n activitypub_actors.preferred_username as trail_author_username,\n activitypub_actors.domain as trail_author_domain,\n trails.iri as trail_iri,\n date,\n trails.name,\n description,\n gpx,\n activitypub_actors.iri as author,\n photos,\n distance,\n duration,\n elevation_gain,\n elevation_loss,\n trails.created,\n \"trail\" as type\n FROM\n trails\n JOIN activitypub_actors ON activitypub_actors.id = trails.author\n )\nORDER BY\n created DESC;\n"
|
||||
}`), &collection); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return app.Save(collection)
|
||||
}, func(app core.App) error {
|
||||
collection, err := app.FindCollectionByNameOrId("pbc_468398817")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// update collection data
|
||||
if err := json.Unmarshal([]byte(`{
|
||||
"viewQuery": "SELECT\n id,\n trail_id,\n trail_author_username,\n trail_author_domain,\n trail_iri,\n date,\n name,\n description,\n gpx,\n author,\n photos,\n distance,\n duration,\n elevation_gain,\n elevation_loss,\n created,\n type\nFROM\n (\n SELECT\n summit_logs.id,\n summit_logs.trail as trail_id,\n tapa.username as trail_author_username,\n tapa.domain as trail_author_domain,\n trails.iri as trail_iri,\n summit_logs.date,\n trails.name,\n text as description,\n summit_logs.gpx,\n sapa.iri as author,\n summit_logs.photos,\n summit_logs.distance,\n summit_logs.duration,\n summit_logs.elevation_gain,\n summit_logs.elevation_loss,\n summit_logs.created,\n \"summit_log\" as type\n FROM\n summit_logs\n JOIN trails ON summit_logs.trail = trails.id\n JOIN activitypub_actors sapa ON sapa.id = summit_logs.author\n JOIN activitypub_actors tapa ON tapa.id = trails.author\n UNION\n SELECT\n trails.id,\n trails.id as trail_id,\n activitypub_actors.username as trail_author_username,\n activitypub_actors.domain as trail_author_domain,\n trails.iri as trail_iri,\n date,\n trails.name,\n description,\n gpx,\n activitypub_actors.iri as author,\n photos,\n distance,\n duration,\n elevation_gain,\n elevation_loss,\n trails.created,\n \"trail\" as type\n FROM\n trails\n JOIN activitypub_actors ON activitypub_actors.id = trails.author\n )\nORDER BY\n created DESC;\n"
|
||||
}`), &collection); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return app.Save(collection)
|
||||
})
|
||||
}
|
||||
@@ -64,7 +64,7 @@ func ActorFromUser(app core.App, u *core.Record) (*core.Record, error) {
|
||||
if origin == "" {
|
||||
return nil, fmt.Errorf("ORIGIN environment variable not set")
|
||||
}
|
||||
id := fmt.Sprintf("%s/api/v1/activitypub/user/%s", origin, strings.ToLower(u.GetString("username")))
|
||||
id := fmt.Sprintf("%s/api/v1/activitypub/user/%s", origin, strings.ToLower(u.GetString("preferred_username")))
|
||||
|
||||
url, err := url.Parse(origin)
|
||||
if err != nil {
|
||||
@@ -72,8 +72,8 @@ func ActorFromUser(app core.App, u *core.Record) (*core.Record, error) {
|
||||
}
|
||||
domain := strings.TrimPrefix(url.Hostname(), "www.")
|
||||
|
||||
record.Set("username", strings.ToLower(u.GetString("username")))
|
||||
record.Set("preferred_username", u.GetString("username"))
|
||||
record.Set("username", u.GetString("username"))
|
||||
record.Set("preferred_username", strings.ToLower(u.GetString("username")))
|
||||
record.Set("domain", domain)
|
||||
record.Set("summary", settings.GetString("bio"))
|
||||
record.Set("published", u.GetDateTime("created"))
|
||||
@@ -398,7 +398,7 @@ func ObjectFromTrail(app core.App, trail *core.Record, mentions *pub.ItemCollect
|
||||
})
|
||||
}
|
||||
|
||||
activityURL := fmt.Sprintf("%s/trail/view/@%s/%s", origin, trailAuthor.GetString("username"), trail.Id)
|
||||
activityURL := fmt.Sprintf("%s/trail/view/@%s/%s", origin, trailAuthor.GetString("preferred_username"), trail.Id)
|
||||
activityContent := fmt.Sprintf("<h1>%s</h1>%s<p><a href=\"%s\">%s</a></p>", trail.GetString("name"), trail.GetString("description"), activityURL, activityURL)
|
||||
|
||||
trailObject := pub.ObjectNew(pub.NoteType)
|
||||
@@ -508,7 +508,7 @@ func ObjectFromList(app core.App, list *core.Record) (*pub.Object, error) {
|
||||
}
|
||||
}
|
||||
|
||||
activityURL := fmt.Sprintf("%s/lists/@%s/%s", origin, listAuthor.GetString("username"), list.Id)
|
||||
activityURL := fmt.Sprintf("%s/lists/@%s/%s", origin, listAuthor.GetString("preferred_username"), list.Id)
|
||||
activityContent := fmt.Sprintf("%s<p><a href=\"%s\">%s</a></p>", list.GetString("description"), activityURL, activityURL)
|
||||
|
||||
listObject := pub.ObjectNew(pub.NoteType)
|
||||
|
||||
@@ -60,7 +60,7 @@ func documentFromTrailRecord(app core.App, r *core.Record, author *core.Record,
|
||||
document := map[string]any{
|
||||
"id": r.Id,
|
||||
"author": author.Id,
|
||||
"author_name": author.GetString("username"),
|
||||
"author_name": author.GetString("preferred_username"),
|
||||
"author_avatar": author.GetString("icon"),
|
||||
"name": r.GetString("name"),
|
||||
"description": r.GetString("description"),
|
||||
@@ -174,7 +174,7 @@ func documentFromListRecord(r *core.Record, author *core.Record, includeShares b
|
||||
document := map[string]interface{}{
|
||||
"id": r.Id,
|
||||
"author": author.Id,
|
||||
"author_name": author.GetString("username"),
|
||||
"author_name": author.GetString("preferred_username"),
|
||||
"author_avatar": author.GetString("icon"),
|
||||
"avatar": r.GetString("avatar"),
|
||||
"name": r.GetString("name"),
|
||||
|
||||
@@ -96,7 +96,7 @@ func SendNotification(app core.App, notification Notification, recipient *core.R
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
html, err := GenerateHTML(app.Settings().Meta.AppURL, recipientActor.GetString("username"), authorActor.GetString("username"), notification.Type, notification.Metadata)
|
||||
html, err := GenerateHTML(app.Settings().Meta.AppURL, recipientActor.GetString("preferred_username"), authorActor.GetString("preferred_username"), notification.Type, notification.Metadata)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user