mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-10-29 09:42:26 -05:00
[chore] Add interaction policy gtsmodels (#3075)
* [chore] introduce interaction policy gts models * update migration a smidge * fix copy paste typo * update migration * use int for InteractionType
This commit is contained in:
parent
8f8093aea4
commit
5bc567196b
46 changed files with 1318 additions and 531 deletions
37
internal/cache/db.go
vendored
37
internal/cache/db.go
vendored
|
|
@ -100,6 +100,9 @@ type GTSCaches struct {
|
|||
// Instance provides access to the gtsmodel Instance database cache.
|
||||
Instance StructCache[*gtsmodel.Instance]
|
||||
|
||||
// InteractionApproval provides access to the gtsmodel InteractionApproval database cache.
|
||||
InteractionApproval StructCache[*gtsmodel.InteractionApproval]
|
||||
|
||||
// InReplyToIDs provides access to the status in reply to IDs list database cache.
|
||||
InReplyToIDs SliceCache[string]
|
||||
|
||||
|
|
@ -737,6 +740,39 @@ func (c *Caches) initInstance() {
|
|||
})
|
||||
}
|
||||
|
||||
func (c *Caches) initInteractionApproval() {
|
||||
// Calculate maximum cache size.
|
||||
cap := calculateResultCacheMax(
|
||||
sizeofInteractionApproval(),
|
||||
config.GetCacheInteractionApprovalMemRatio(),
|
||||
)
|
||||
|
||||
log.Infof(nil, "cache size = %d", cap)
|
||||
|
||||
copyF := func(i1 *gtsmodel.InteractionApproval) *gtsmodel.InteractionApproval {
|
||||
i2 := new(gtsmodel.InteractionApproval)
|
||||
*i2 = *i1
|
||||
|
||||
// Don't include ptr fields that
|
||||
// will be populated separately.
|
||||
// See internal/db/bundb/interaction.go.
|
||||
i2.Account = nil
|
||||
i2.InteractingAccount = nil
|
||||
|
||||
return i2
|
||||
}
|
||||
|
||||
c.GTS.InteractionApproval.Init(structr.CacheConfig[*gtsmodel.InteractionApproval]{
|
||||
Indices: []structr.IndexConfig{
|
||||
{Fields: "ID"},
|
||||
{Fields: "URI"},
|
||||
},
|
||||
MaxSize: cap,
|
||||
IgnoreErr: ignoreErrors,
|
||||
Copy: copyF,
|
||||
})
|
||||
}
|
||||
|
||||
func (c *Caches) initList() {
|
||||
// Calculate maximum cache size.
|
||||
cap := calculateResultCacheMax(
|
||||
|
|
@ -1188,6 +1224,7 @@ func (c *Caches) initStatusFave() {
|
|||
c.GTS.StatusFave.Init(structr.CacheConfig[*gtsmodel.StatusFave]{
|
||||
Indices: []structr.IndexConfig{
|
||||
{Fields: "ID"},
|
||||
{Fields: "URI"},
|
||||
{Fields: "AccountID,StatusID"},
|
||||
{Fields: "StatusID", Multiple: true},
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue