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:
parent
856d7e7572
commit
9ae29a93cf
1 changed files with 17 additions and 35 deletions
|
@ -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())
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue