Попытка опубликовать изображение для бота, однако оно публикуется несколько раз. Невозможно выяснить, где происходит цикл

Я создал бота, который публикует изображение всякий раз, когда вы вводите что-либо после упоминания имени бота. Тем не менее, бот должен публиковать изображение только один раз, но он продолжает публиковать несколько раз. Буду очень признателен за помощь в поиске решения этой проблемы

'use strict';
var util = require('util');
var path = require('path');
var fs = require('fs');
var Bot = require('slackbots');
var http = require('http');
var SethuBot = function Constructor(settings) {
    this.settings = settings;
    this.settings.name = this.settings.name || 'mufc';
    this.user = null;
};

util.inherits(SethuBot, Bot);

SethuBot.prototype.run = function() {
    SethuBot.super_.call(this, this.settings);
    this.on('start', this._onStart);
    this.on('message', this._onMessage);
};

SethuBot.prototype._onStart = function() {
    this._loadBotUser();
};

SethuBot.prototype._onMessage = function(message) {
    if (this._isChatMessage(message) && !this._isFromSethuBot(message)) {
        this._smartresponse(message);
    }
};

SethuBot.prototype._smartresponse = function(originalMessage) {
    var self = this;
    var channel = self._getChannelById(originalMessage.channel);
    var urlToQuery = '';
    var firstName = '';

    var a = 'http://i.telegraph.co.uk/multimedia/archive/03481/David_Beckham_3481418k.jpg';

    self.postMessageToChannel(channel.name, a, {
        as_user: true,
        attachments: [{
            "fallback": "Required plain-text summary of theattachment.",
            "color": "#36a64f",
            "image_url": a
                // "ts": 1
        }]
    });
};
SethuBot.prototype._loadBotUser = function() {
    var self = this;
    this.user = this.users.filter(function(user) {
        return user.name === self.name;
    })[0];
};

SethuBot.prototype._isChatMessage = function(message) {
    return message.type === 'message' && Boolean(message.text);
};

SethuBot.prototype._isChannelConversation = function(message) {
    return typeof message.channel === 'string' &&
        message.channel[0] === 'C';
};

SethuBot.prototype._isFromSethuBot = function(message) {
    return message.user === this.user.id;
};

SethuBot.prototype._getChannelById = function(channelId) {
    return this.channels.filter(function(item) {
        return item.id === channelId;
    })[0];
};

module.exports = SethuBot;

0 ответов

Другие вопросы по тегам