diff --git a/main.js b/main.js index 8af3c46..cbf9974 100644 --- a/main.js +++ b/main.js @@ -32,6 +32,9 @@ logger.level = settings.loglevel; logger.info("Log initialized."); var initialsynccomplete = false; +// Save script start time for ignoring older messages +var boottimestamp = Date.now(); + // https://github.com/matrix-org/matrix-js-sdk/issues/2415#issuecomment-1188812401 matrixcs.request(request); @@ -499,13 +502,18 @@ client.on("Room.timeline", function (event, room) { } if (event.getTs() < (Date.now() - 1000 * 60 * 60 * 8)) { // Ignore old events (8 hrs), they're probably duplicates or something. - logger.info("Ignoring stale Matrix room event"); + logger.warning("Ignoring stale Matrix room event [" + event.getId() + "]: older than 8 hours"); + return; + } + if (event.getTs() < boottimestamp) { + logger.warning("Ignoring stale Matrix room event [" + event.getId() + "]: event predates start of this program"); return; } if (event.getContent() == null || typeof event.getContent().body == "undefined" || event.getContent().body == null) { // Apparently this can happen? return; } + logger.debug("Got room message (event ID " + event.getId() + ")"); if (event.getContent().body.toLowerCase().startsWith("!sms")) { // capture command to start room for new number