1
0
Fork 0
mirror of https://github.com/Eggbertx/gochan.git synced 2025-08-03 07:36:23 -07:00

Clean up front page recnet posts query

This commit is contained in:
Eggbertx 2023-06-16 08:42:17 -07:00
parent 856d7e7572
commit 9ae29a93cf

View file

@ -32,37 +32,25 @@ type recentPost struct {
func getRecentPosts() ([]recentPost, error) { func getRecentPosts() ([]recentPost, error) {
siteCfg := config.GetSiteConfig() siteCfg := config.GetSiteConfig()
query := `SELECT query := `SELECT
DBPREFIXposts.id, DBPREFIXposts.id, DBPREFIXposts.message_raw,
DBPREFIXposts.message_raw, (SELECT dir FROM DBPREFIXboards WHERE id = t.board_id),
(SELECT dir FROM DBPREFIXboards WHERE id = t.board_id) AS dir, f.filename, op.id
COALESCE( FROM DBPREFIXposts
(SELECT filename FROM DBPREFIXfiles WHERE DBPREFIXfiles.post_id = DBPREFIXposts.id` LEFT JOIN (SELECT id, board_id FROM DBPREFIXthreads) t ON t.id = DBPREFIXposts.thread_id
if !siteCfg.RecentPostsWithNoFile { LEFT JOIN (SELECT post_id, filename FROM DBPREFIXfiles) f on f.post_id = DBPREFIXposts.id
query += ` AND filename != '' AND filename != 'deleted'` INNER JOIN (SELECT id, thread_id FROM DBPREFIXposts WHERE is_top_post) op ON op.thread_id = DBPREFIXposts.thread_id
}
query += ` ORDER BY DBPREFIXfiles.id DESC LIMIT 1), ''),
op.id
FROM
DBPREFIXposts
LEFT JOIN (
SELECT id, board_id FROM DBPREFIXthreads
) t ON t.id = DBPREFIXposts.thread_id
LEFT JOIN (
SELECT post_id, filename FROM DBPREFIXfiles
) f on f.post_id = DBPREFIXposts.id
INNER JOIN (
SELECT id, thread_id FROM DBPREFIXposts WHERE is_top_post
) op ON op.thread_id = DBPREFIXposts.thread_id
WHERE DBPREFIXposts.is_deleted = FALSE` WHERE DBPREFIXposts.is_deleted = FALSE`
if !siteCfg.RecentPostsWithNoFile {
query += " AND f.filename IS NOT NULL AND f.filename != '' AND f.filename != 'deleted'"
}
query += " ORDER BY DBPREFIXposts.id DESC LIMIT " + strconv.Itoa(siteCfg.MaxRecentPosts)
query += " LIMIT " + strconv.Itoa(siteCfg.MaxRecentPosts)
rows, err := gcsql.QuerySQL(query) rows, err := gcsql.QuerySQL(query)
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer rows.Close() defer rows.Close()
var recentPosts []recentPost var recentPosts []recentPost
for rows.Next() { for rows.Next() {
var post recentPost var post recentPost
var id, topPostID string var id, topPostID string
@ -71,9 +59,6 @@ func getRecentPosts() ([]recentPost, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
if filename == "" && !siteCfg.RecentPostsWithNoFile {
continue
}
message = bbcodeTagRE.ReplaceAllString(message, "") message = bbcodeTagRE.ReplaceAllString(message, "")
if len(message) > 40 { if len(message) > 40 {
message = message[:37] + "..." message = message[:37] + "..."
@ -124,7 +109,6 @@ func BuildFrontPage() error {
errEv.Err(err).Caller().Send() errEv.Err(err).Caller().Send()
return errors.New("Failed loading recent posts: " + err.Error()) return errors.New("Failed loading recent posts: " + err.Error())
} }
if err = serverutil.MinifyTemplate(gctemplates.FrontPage, map[string]interface{}{ if err = serverutil.MinifyTemplate(gctemplates.FrontPage, map[string]interface{}{
"siteConfig": siteCfg, "siteConfig": siteCfg,
"sections": gcsql.AllSections, "sections": gcsql.AllSections,
@ -187,14 +171,12 @@ func BuildJS() error {
return fmt.Errorf("unable to update file ownership for consts.js: %s", err.Error()) return fmt.Errorf("unable to update file ownership for consts.js: %s", err.Error())
} }
if err = serverutil.MinifyTemplate(gctemplates.JsConsts, if err = serverutil.MinifyTemplate(gctemplates.JsConsts, map[string]any{
map[string]interface{}{
"styles": boardCfg.Styles, "styles": boardCfg.Styles,
"defaultStyle": boardCfg.DefaultStyle, "defaultStyle": boardCfg.DefaultStyle,
"webroot": criticalCfg.WebRoot, "webroot": criticalCfg.WebRoot,
"timezone": criticalCfg.TimeZone, "timezone": criticalCfg.TimeZone,
}, }, constsJSFile, "text/javascript"); err != nil {
constsJSFile, "text/javascript"); err != nil {
errEv.Err(err).Caller().Send() errEv.Err(err).Caller().Send()
return fmt.Errorf("error building consts.js: %s", err.Error()) return fmt.Errorf("error building consts.js: %s", err.Error())
} }