"JOIN Variants v " +
" ON g.vid = v.id " +
"WHERE " +
- " score <> '*' AND " +
- " created < " + cursor + " AND " +
+ " score <> '*' AND" +
+ " created < " + cursor + " AND" +
" (" +
- " (" + uid + " = white AND NOT deletedByWhite) OR " +
- " (" + uid + " = black AND NOT deletedByBlack)" +
+ " (" +
+ " white = " + uid + " AND" +
+ " (deletedByWhite IS NULL OR NOT deletedByWhite)" +
+ " )" +
+ " OR " +
+ " (" +
+ " black = " + uid + " AND" +
+ " (deletedByBlack IS NULL OR NOT deletedByBlack)" +
+ " )" +
" ) ";
query +=
"ORDER BY created DESC " +
// Check all that is possible (required) in obj:
return (
(
- !obj.move || (
- !!(obj.move.played.toString().match(/^[0-9]+$/)) &&
- !!(obj.move.idx.toString().match(/^[0-9]+$/))
- )
+ !obj.move || !!(obj.move.idx.toString().match(/^[0-9]+$/))
) && (
!obj.drawOffer || !!(obj.drawOffer.match(/^[wbtn]$/))
) && (
"SELECT gid, count(*) AS nbMoves, MAX(played) AS lastMaj " +
"FROM Moves " +
"GROUP BY gid";
- db.get(query, (err2, mstats) => {
+ db.all(query, (err2, mstats) => {
// Reorganize moves data to avoid too many array lookups:
let movesGroups = {};
mstats.forEach(ms => {
};
});
// Remove games still not really started,
- // with no action in the last 3 months:
+ // with no action in the last 2 weeks:
let toRemove = [];
games.forEach(g => {
if (
(
!movesGroups[g.id] &&
- tsNow - g.created > 91*day
+ tsNow - g.created > 14*day
)
||
(
movesGroups[g.id].nbMoves == 1 &&
- tsNow - movesGroups[g.id].lastMaj > 91*day
+ tsNow - movesGroups[g.id].lastMaj > 14*day
)
) {
toRemove.push(g.id);