Compare commits

...

7 Commits

Author SHA1 Message Date
45910947e7 Merge branch 'devel' 2025-02-12 17:29:12 +01:00
ed9c002b67 Update version number 2025-02-12 17:29:04 +01:00
a1a470712b Merge branch 'devel' 2025-02-12 17:28:07 +01:00
6567c34834 Fix bug in db.GetAllArticles 2025-02-12 17:27:56 +01:00
259a2088a8 Merge branch 'devel' 2025-02-10 21:09:59 +01:00
f68241c092 Change version number 2025-02-10 21:08:55 +01:00
9519ad5a1e Fix bug deleting banner images 2025-02-10 21:06:40 +01:00
4 changed files with 57 additions and 3 deletions

View File

@ -345,6 +345,47 @@ func (db *DB) DeleteArticle(id int64) error {
return nil return nil
} }
func (db *DB) GetAllArticles() ([]*Article, error) {
query := `
SELECT title, created, banner_link, summary, published, creator_id, issue_id, edited_id, clicks, is_in_issue, auto_generated, uuid
FROM articles
`
rows, err := db.Query(query)
if err != nil {
return nil, fmt.Errorf("error querying DB: %v", err)
}
var created []byte
var uuidString string
articles := make([]*Article, 0)
for rows.Next() {
article := new(Article)
if err = rows.Scan(&article.Title, &created, &article.BannerLink, &article.Summary, &article.Published, &article.CreatorID, &article.IssueID, &article.EditedID, &article.Clicks, &article.IsInIssue, &article.AutoGenerated, &uuidString); err != nil {
return nil, fmt.Errorf("error scanning rows: %v", err)
}
article.Created, err = time.Parse("2006-01-02 15:04:05", string(created))
if err != nil {
return nil, fmt.Errorf("error parsing created: %v", err)
}
article.UUID, err = uuid.Parse(uuidString)
if err != nil {
return nil, fmt.Errorf("error parsing uuid: %v", err)
}
articles = append(articles, article)
}
if err := rows.Err(); err != nil {
return nil, fmt.Errorf("error iterating over rows: %v", err)
}
return articles, nil
}
func WriteArticleToFile(c *Config, articleUUID uuid.UUID, content []byte) error { func WriteArticleToFile(c *Config, articleUUID uuid.UUID, content []byte) error {
articlePath := filepath.Join(c.ArticleDir, fmt.Sprint(articleUUID, ".md")) articlePath := filepath.Join(c.ArticleDir, fmt.Sprint(articleUUID, ".md"))

View File

@ -55,7 +55,7 @@ func newConfig() *Config {
MaxImgWidth: 1920, MaxImgWidth: 1920,
PDFDir: "/var/www/cpolis/pdfs", PDFDir: "/var/www/cpolis/pdfs",
Port: ":1664", Port: ":1664",
Version: "v0.16.0", Version: "v0.16.2",
WebDir: "/var/www/cpolis/web", WebDir: "/var/www/cpolis/web",
} }
} }

View File

@ -56,7 +56,20 @@ func checkImageUsage(c *Config, db *DB, name string) (bool, error) {
for _, user := range users { for _, user := range users {
if name == user.ProfilePicLink { if name == user.ProfilePicLink {
return true, nil imageWasFound = true
}
}
}
if !imageWasFound {
articles, err := db.GetAllArticles()
if err != nil {
return false, fmt.Errorf("error getting all articles: %v", err)
}
for _, article := range articles {
if name == article.BannerLink {
imageWasFound = true
} }
} }
} }

View File

@ -840,7 +840,7 @@ func DeleteArticle(c *b.Config, db *b.DB, s map[string]*Session) http.HandlerFun
return return
} }
if err = os.Remove(filepath.Join(c.ArticleDir, fmt.Sprint(article.UUID, ".md"))); err != nil { if err = os.Remove(filepath.Join(c.ArticleDir, article.UUID.String()+".md")); err != nil {
log.Println(err) log.Println(err)
http.Error(w, err.Error(), http.StatusInternalServerError) http.Error(w, err.Error(), http.StatusInternalServerError)
return return