diff --git a/rechner.go b/rechner.go index e68558f..ee2a7bb 100644 --- a/rechner.go +++ b/rechner.go @@ -43,7 +43,3 @@ func BytesToInt64AndDate(bytes []byte) (int64, time.Time, error) { func Int64AndDateToBytes(num int64, appoint time.Time) []byte { return []byte(fmt.Sprintf("%d%s%s", num, AppointSplit, appoint.Format(time.RFC3339))) } - -func PrintDate(t time.Time) string { - return t.Format("2006-01-02") -} diff --git a/zecke.go b/zecke.go index 200de8c..746cf3c 100644 --- a/zecke.go +++ b/zecke.go @@ -6,7 +6,6 @@ import ( "encoding/base64" "encoding/json" "fmt" - "time" ) //go:embed mm.cred @@ -32,32 +31,30 @@ func MmReadOracle() ([]MmOracle, error) { } oracleQuery := `SELECT m.id, m.title, m.mal_id, COALESCE(SUM(pv.score), 0) AS avgScore FROM movie m - INNER JOIN vote pv ON (m.id = pv.movie_id) - INNER JOIN promise pp ON (pp.user_id = pv.user_id) - INNER JOIN evening me ON (pp.evening_id = me.id) + JOIN vote pv ON (m.id = pv.movie_id) + JOIN promise pp ON (pp.user_id = pv.user_id) + JOIN evening me ON (pp.evening_id = me.id) WHERE m.id NOT IN ( SELECT m2.id FROM movie m2 - INNER JOIN evening_movie em2 ON (m2.id = em2.movie_id) - INNER JOIN evening e2 ON (em2.evening_id = e2.id) - WHERE e2.date < ? + JOIN evening_movie em2 ON (m2.id = em2.movie_id) + JOIN evening e2 ON (em2.evening_id = e2.id) + WHERE e2.date < CURDATE() ) AND ( m.id IN ( SELECT mm.movie_source FROM movie m3 - INNER JOIN movie_movie mm ON (m3.id = mm.movie_target) - INNER JOIN evening_movie em3 ON (mm.movie_target = em3.movie_id) - INNER JOIN evening e3 ON (em3.evening_id = e3.id) - WHERE e3.date < ? GROUP BY m3.id + JOIN movie_movie mm ON (m3.id = mm.movie_target) + JOIN evening_movie em3 ON (mm.movie_target = em3.movie_id) + JOIN evening e3 ON (em3.evening_id = e3.id) + WHERE e3.date < CURDATE() GROUP BY m3.id ) OR m.id NOT IN ( SELECT mm.movie_source FROM movie m4 - INNER JOIN movie_movie mm ON (m4.id = mm.movie_source) + JOIN movie_movie mm ON (m4.id = mm.movie_source) ) ) - AND pp.promised = 1 AND m.aired = 1 AND me.date >= ? AND me.date < ? GROUP BY m.id ORDER BY avgScore DESC, m.id ASC;` - today := PrintDate(time.Now()) - nextWeek := PrintDate(time.Now().AddDate(0, 0, 7)) - rows, err := mmDb.Query(oracleQuery, today, today, today, nextWeek) + AND pp.promised = 1 AND m.aired = 1 AND me.date >= CURDATE() AND me.date < DATE_ADD(CURDATE(), INTERVAL 1 WEEK) GROUP BY m.id ORDER BY avgScore DESC, m.id ASC;` + rows, err := mmDb.Query(oracleQuery) if err != nil { return nil, err }