2022-01-03 12:55:44 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"time"
|
|
|
|
|
|
|
|
"github.com/araddon/dateparse"
|
|
|
|
)
|
|
|
|
|
|
|
|
func (a *goBlog) initPostsDeleter() {
|
|
|
|
a.hourlyHooks = append(a.hourlyHooks, func() {
|
|
|
|
a.checkDeletedPosts()
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
2023-12-27 10:37:58 +00:00
|
|
|
const deletedPostParam = "deleted"
|
|
|
|
|
2022-01-03 12:55:44 +00:00
|
|
|
func (a *goBlog) checkDeletedPosts() {
|
|
|
|
// Get all posts with `deleted` parameter and a deleted status
|
|
|
|
postsToDelete, err := a.getPosts(&postsRequestConfig{
|
2022-09-23 09:05:07 +00:00
|
|
|
status: []postStatus{statusPublishedDeleted, statusDraftDeleted, statusScheduledDeleted},
|
2023-12-27 10:37:58 +00:00
|
|
|
parameter: deletedPostParam,
|
2022-01-03 12:55:44 +00:00
|
|
|
})
|
|
|
|
if err != nil {
|
2023-12-27 10:37:58 +00:00
|
|
|
a.error("Error getting deleted posts", "err", err)
|
2022-01-03 12:55:44 +00:00
|
|
|
return
|
|
|
|
}
|
|
|
|
for _, post := range postsToDelete {
|
|
|
|
// Check if post is deleted for more than 7 days
|
2023-12-27 10:37:58 +00:00
|
|
|
if deleted, err := dateparse.ParseLocal(post.firstParameter(deletedPostParam)); err == nil &&
|
|
|
|
deleted.Add(time.Hour*24*7).Before(time.Now()) {
|
2022-01-04 09:37:48 +00:00
|
|
|
if err := a.deletePost(post.Path); err != nil {
|
2023-12-27 10:37:58 +00:00
|
|
|
a.error("Error deleting post", "err", err)
|
2022-01-04 09:37:48 +00:00
|
|
|
}
|
2022-01-03 12:55:44 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|