1

I am trying to make a bot on Slack to post a message on one channel when a message is received on another channel, and that it only runs once a day. This is my code with the message that I got (with what I have done.) How do I fix this to be right?

const web = new WebClient(process.env.SLACK_TOKEN);
const currentTime = new Date().toTimeString();
let channelId = "C02FHG0K0SY";
let conversationHistory, message, count, stop;
let counter;

async function fetchMessages() {
  const result = await web.conversations.history({
    channel: channelId,
    limit: 11000,
  });

  conversationHistory = result.messages;

  count = conversationHistory.length;
}

setInterval(function () {
  if (counter === null) {
    fetchMessages();
    var count = fetchMessages.count;
    counter === count;
    console.log("Counter has been setup!");
  }

  if (counter === count) {
    fetchMessages();
    if (count > counter) {
      web.chat.postMessage({
        token: process.env.SLACK_TOKEN,
        channel: "C02FB9QHW10",
        text: "Hits have arrived, let's get started with them! Woo-hoo! This is just a test by the way, no hits have actually arrived.",
      });
      stop === true;
      console.log("Hits arrived! Posted.")
    } else {
      console.log(`No new hits! ${count} messages and ${counter} in "counter".`);
    }
  }
}, 5000);

setInterval(function () {
  if (currentTime == "23:59:59 GMT+0000 (Coordinated Universal Time)") {
    if (stop === true) {
      stop === false;
    }
  }
}, 1000);
No new hits! undefined messages and undefined in "counter".
  • You have a number of issues here, but the main one is that you are not awaiting your async function. Also worth looking at is `fetchMessages.count` will never work (`fetchMessages` is a function and doesn't have a `count` property). `counter === count` on a line by itself doesn't do anything. etc. – jnpdx Aug 13 '22 at 16:38
  • 1) `if (counter === count)` and the following `if (count > counter)` are not compatible. 2) `fetchMessages` returns a promise (it's an async function). Your code isn't awaiting it. – Andy Aug 13 '22 at 16:38
  • `counter === count`, `stop === true`, and `stop === false` are **comparisons** you ignore the result of, not the assignments I think you're trying to write. – Quentin Aug 13 '22 at 16:40

0 Answers0