Add ability to delete posts

This commit is contained in:
Dominic Ferrando
2025-04-23 17:10:59 -04:00
parent 62a1377be0
commit c5453ed50a
5 changed files with 123 additions and 21 deletions
+52 -6
View File
@@ -242,14 +242,18 @@ func DeleteThread(db Queryer, threadId int) error {
return err
}
if err := os.Remove(path.Join(util.POST_MEDIA_FULL_PATH, pruneMediaFullPath)); err != nil {
if !errors.Is(err, fs.ErrNotExist) {
return err
if pruneMediaFullPath != "" {
if err := os.Remove(path.Join(util.POST_MEDIA_FULL_PATH, pruneMediaFullPath)); err != nil {
if !errors.Is(err, fs.ErrNotExist) {
return err
}
}
}
if err := os.Remove(path.Join(util.POST_MEDIA_THUMB_PATH, pruneMediaThumbPath)); err != nil {
if !errors.Is(err, fs.ErrNotExist) {
return err
if pruneMediaThumbPath != "" {
if err := os.Remove(path.Join(util.POST_MEDIA_THUMB_PATH, pruneMediaThumbPath)); err != nil {
if !errors.Is(err, fs.ErrNotExist) {
return err
}
}
}
}
@@ -265,6 +269,48 @@ func DeleteThread(db Queryer, threadId int) error {
return nil
}
func DeletePost(db *sql.DB, postId int) error {
// cleanup images
row := db.QueryRow(`
SELECT media_path, thumb_path
FROM posts
WHERE id = ?`, postId)
var (
pruneMediaThumbPath string
pruneMediaFullPath string
)
if err := row.Scan(&pruneMediaFullPath, &pruneMediaThumbPath); err != nil {
return err
}
if pruneMediaFullPath != "" {
if err := os.Remove(path.Join(util.POST_MEDIA_FULL_PATH, pruneMediaFullPath)); err != nil {
if !errors.Is(err, fs.ErrNotExist) {
return err
}
}
}
if pruneMediaThumbPath != "" {
if err := os.Remove(path.Join(util.POST_MEDIA_THUMB_PATH, pruneMediaThumbPath)); err != nil {
if !errors.Is(err, fs.ErrNotExist) {
return err
}
}
}
// delete post
_, err := db.Exec(`
DELETE FROM posts
WHERE id = ?`, postId)
if err != nil {
return err
}
return nil
}
func GetAdmin(db *sql.DB, username string) (Admin, error) {
row := db.QueryRow(`
SELECT username, password