Compare commits

..

No commits in common. "3c2a14800e875494865c1f0f313419809cd02a2b" and "e588f2c87a857255f78cbe1c3b483d33ea22b5b6" have entirely different histories.

2 changed files with 14 additions and 44 deletions

View File

@ -12,7 +12,6 @@ import (
"git.solsynth.dev/hypernet/nexus/pkg/nex" "git.solsynth.dev/hypernet/nexus/pkg/nex"
"git.solsynth.dev/hypernet/nexus/pkg/nex/cachekit" "git.solsynth.dev/hypernet/nexus/pkg/nex/cachekit"
"github.com/goccy/go-json"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"git.solsynth.dev/hypernet/interactive/pkg/internal/gap" "git.solsynth.dev/hypernet/interactive/pkg/internal/gap"
@ -679,21 +678,16 @@ func UpdatePostAttachmentMeta(item models.Post, old ...models.Post) error {
sameAsOld = reflect.DeepEqual(old[0].Body, item.Body) sameAsOld = reflect.DeepEqual(old[0].Body, item.Body)
} }
var oldBody, newBody models.PostStoryBody
if len(old) > 0 {
raw, _ := json.Marshal(old[0].Body)
json.Unmarshal(raw, &oldBody)
}
{
raw, _ := json.Marshal(item.Body)
json.Unmarshal(raw, &newBody)
}
var minusAttachments, plusAttachments []string var minusAttachments, plusAttachments []string
if len(old) > 0 && !sameAsOld { if len(old) > 0 && !sameAsOld {
minusAttachments = append(minusAttachments, oldBody.Attachments...) if val, ok := old[0].Body["attachments"].([]string); ok {
minusAttachments = append(minusAttachments, val...)
}
} }
if len(old) == 0 || !sameAsOld { if len(old) == 0 || !sameAsOld {
plusAttachments = append(plusAttachments, newBody.Attachments...) if val, ok := item.Body["attachments"].([]string); ok {
plusAttachments = append(plusAttachments, val...)
}
} }
if dat, ok := item.Body["thumbnail"].(string); ok { if dat, ok := item.Body["thumbnail"].(string); ok {
plusAttachments = append(plusAttachments, dat) plusAttachments = append(plusAttachments, dat)
@ -757,18 +751,13 @@ func DeletePost(item models.Post) error {
} }
// Cleaning up related attachments // Cleaning up related attachments
var body models.PostStoryBody if val, ok := item.Body["attachments"].([]string); ok && len(val) > 0 {
{
raw, _ := json.Marshal(item.Body)
json.Unmarshal(raw, &body)
}
if len(body.Attachments) > 0 {
if item.Publisher.AccountID == nil { if item.Publisher.AccountID == nil {
return nil return nil
} }
err := filekit.CountAttachmentUsage(gap.Nx, &pproto.UpdateUsageRequest{ err := filekit.CountAttachmentUsage(gap.Nx, &pproto.UpdateUsageRequest{
Rid: lo.Uniq(body.Attachments), Rid: lo.Uniq(val),
}) })
if err != nil { if err != nil {
log.Error().Err(err).Msg("An error occurred when deleting post attachment...") log.Error().Err(err).Msg("An error occurred when deleting post attachment...")
@ -783,16 +772,10 @@ func DeletePostInBatch(items []models.Post) error {
return err return err
} }
var bodies []models.PostStoryBody
{
raw, _ := json.Marshal(items)
json.Unmarshal(raw, &bodies)
}
var attachments []string var attachments []string
for idx := range items { for _, item := range items {
if len(bodies[idx].Attachments) > 0 { if val, ok := item.Body["attachments"].([]string); ok && len(val) > 0 {
attachments = append(attachments, bodies[idx].Attachments...) attachments = append(attachments, val...)
} }
} }

View File

@ -92,13 +92,8 @@ func ListPostV2(tx *gorm.DB, take int, offset int, order any, user *uint) ([]mod
if info.Publisher.AccountID != nil { if info.Publisher.AccountID != nil {
usersId = append(usersId, *info.Publisher.AccountID) usersId = append(usersId, *info.Publisher.AccountID)
} }
if raw, ok := info.Body["attachments"].([]any); ok && len(raw) > 0 { if val, ok := info.Body["attachments"].([]string); ok && len(val) > 0 {
attachmentsRid := make([]string, 0, len(raw)) attachmentsRid = append(attachmentsRid, val...)
for _, v := range raw {
if str, ok := v.(string); ok {
attachmentsRid = append(attachmentsRid, str)
}
}
} }
} }
log.Debug().Int("attachments", len(attachmentsRid)).Int("users", len(usersId)).Msg("Scanned metadata to load for listing post...") log.Debug().Int("attachments", len(attachmentsRid)).Int("users", len(usersId)).Msg("Scanned metadata to load for listing post...")
@ -121,15 +116,7 @@ func ListPostV2(tx *gorm.DB, take int, offset int, order any, user *uint) ([]mod
log.Info().Int("attachments", len(attachments)).Int("users", len(users)).Msg("Batch loaded metadata for listing post...") log.Info().Int("attachments", len(attachments)).Int("users", len(users)).Msg("Batch loaded metadata for listing post...")
for idx, item := range posts { for idx, item := range posts {
var this []fmodels.Attachment var this []fmodels.Attachment
var val []string if val, ok := item.Body["attachments"].([]string); ok && len(val) > 0 {
if raw, ok := item.Body["attachments"].([]any); ok && len(raw) > 0 {
val = lo.Map(raw, func(v any, _ int) string {
return v.(string) // Safe if you're sure all elements are strings
})
} else if raw, ok := item.Body["attachments"].([]string); ok {
val = raw
}
if len(val) > 0 {
this = lo.Filter(attachments, func(item fmodels.Attachment, _ int) bool { this = lo.Filter(attachments, func(item fmodels.Attachment, _ int) bool {
return lo.Contains(val, item.Rid) return lo.Contains(val, item.Rid)
}) })