Refactor: Extract common broadcast history logic into shared function
This commit is contained in:
parent
a07bb67a33
commit
916e5f8610
62
storage.go
62
storage.go
@ -217,8 +217,9 @@ func loadArticles() map[string]Article {
|
||||
return articles
|
||||
}
|
||||
|
||||
// getBroadcastHistory gets the most recent broadcast articles
|
||||
func getBroadcastHistory(limit int) ([]Article, error) {
|
||||
// getBroadcastArticles is a common function for retrieving broadcast articles
|
||||
// with consistent filtering criteria
|
||||
func getBroadcastArticles(limit int) ([]Article, error) {
|
||||
rows, err := db.Query(`
|
||||
SELECT link, title, description, published, originalDate, source, firstseen, seen, summary, importance, id, broadcastTime
|
||||
FROM articles
|
||||
@ -271,6 +272,11 @@ func getBroadcastHistory(limit int) ([]Article, error) {
|
||||
return articles, nil
|
||||
}
|
||||
|
||||
// getBroadcastHistory gets the most recent broadcast articles
|
||||
func getBroadcastHistory(limit int) ([]Article, error) {
|
||||
return getBroadcastArticles(limit)
|
||||
}
|
||||
|
||||
// getNextUpArticles gets the top 25 articles eligible for broadcast sorted by importance
|
||||
func getNextUpArticles() ([]Article, error) {
|
||||
now := time.Now()
|
||||
@ -328,62 +334,14 @@ func getNextUpArticles() ([]Article, error) {
|
||||
|
||||
// getRecentBroadcasts retrieves the n most recently broadcast articles
|
||||
func getRecentBroadcasts(n int) []Article {
|
||||
rows, err := db.Query(`
|
||||
SELECT link, title, description, published, originalDate, source, firstseen, seen, summary, importance, id, broadcastTime
|
||||
FROM articles
|
||||
WHERE broadcastTime IS NOT NULL
|
||||
AND broadcastTime > 1
|
||||
AND broadcastTime != 0
|
||||
AND datetime(broadcastTime) != '1970-01-01 00:00:00'
|
||||
AND datetime(broadcastTime) != '0001-01-01 00:00:00'
|
||||
AND strftime('%Y', broadcastTime) > '2000' -- Ensure year is at least 2000
|
||||
ORDER BY broadcastTime DESC
|
||||
LIMIT ?
|
||||
`, n)
|
||||
|
||||
articles, err := getBroadcastArticles(n)
|
||||
if err != nil {
|
||||
logInfo("db", "Error retrieving recent broadcasts", map[string]interface{}{
|
||||
"error": err.Error(),
|
||||
})
|
||||
return []Article{}
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
var broadcasts []Article
|
||||
for rows.Next() {
|
||||
var a Article
|
||||
var seen sql.NullTime
|
||||
var broadcastTime sql.NullTime
|
||||
var originalDate sql.NullTime
|
||||
|
||||
err := rows.Scan(
|
||||
&a.Link, &a.Title, &a.Description, &a.Published, &originalDate, &a.Source,
|
||||
&a.FirstSeen, &seen, &a.Summary, &a.Importance, &a.ID, &broadcastTime,
|
||||
)
|
||||
|
||||
if err != nil {
|
||||
logInfo("db", "Error scanning broadcast article", map[string]interface{}{
|
||||
"error": err.Error(),
|
||||
})
|
||||
continue
|
||||
}
|
||||
|
||||
if seen.Valid {
|
||||
a.Seen = seen.Time
|
||||
}
|
||||
|
||||
if broadcastTime.Valid {
|
||||
a.BroadcastTime = broadcastTime.Time
|
||||
}
|
||||
|
||||
if originalDate.Valid {
|
||||
a.OriginalDate = originalDate.Time
|
||||
}
|
||||
|
||||
broadcasts = append(broadcasts, a)
|
||||
}
|
||||
|
||||
return broadcasts
|
||||
return articles
|
||||
}
|
||||
|
||||
func setupLogging() {
|
||||
|
Loading…
Reference in New Issue
Block a user