Я пытаюсь использовать API-интерфейс mitsuku chatbot и тестирую следующее.
var m = require("mitsuku-api")
m.send('hello world')
.then(function(response){
console.log(response);
});
Я работаю над консолью ubuntu и установил nodejs и npm. Но я сталкиваюсь со следующей ошибкой, когда я пытаюсь запустить выше.
/home/manuelanayantarajeyaraj/node_modules/mitsuku-api/mitsukutest.js:3 mitsukuApi.send('hello world') ^
TypeError: mitsukuApi.send не является функцией объекта. (/Home/manuelanayantarajeyaraj/node_modules/mitsuku-api/mitsukutest.js:3:12)
на Module._compile (module.js: 410: 26)
в Object.Module._extensions..js(module.js: 417: 10)
на Module.load(module.js: 344: 32)
в Function.Module._load (module.js: 301:12)
в Function.Module.runMain(module.js: 442: 10)
при запуске (node.js: 136: 18)
на узле.js: 966: 3
Файл mitsuku.js
'use strict';
var Promise = require('bluebird'),
cheerio = require('cheerio'),
superagent = require('superagent');
var ENDPOINT_CHAT_MITSUKU = 'https://kakko.pandorabots.com/pandora/talk?botid=87437a824e345a0d&skin=chat',
MESSAGE_REGEX = /(Mitsuku -(.*))/,
MESSAGE_REJECT_REGEX = /(x(.*)x[^\s]+)|(\|)|(BYESPLIT X1234)/ig,
MESSAGE_SENDER_TAG = 'You -';
function getRawHtmlForMessage(mitsuku, message) {
return new Promise(function (resolve, reject) {
if (!mitsuku) {
return reject(new Error('Mitsuku cannot be null'));
}
if (!message) {
return reject(new Error('Message cannot be null or empty'));
}
var agent = mitsuku._agent,
endpoint = mitsuku._endpoint,
req;
req = agent.post(endpoint);
agent.attachCookies(req);
req.set('Content-Type', 'application/x-www-form-urlencoded')
.send({ message: message })
.end(function (err, res) {
if (err) {
return reject(err);
}
agent.saveCookies(res);
resolve(res.text);
});
});
}
function parseMessageFromHtml(html) {
var conv = cheerio.load(html)('body')
.find('p')
.text()
.trim();
var match = MESSAGE_REGEX.exec(conv),
message,
prevMessageStart;
if (match && match.length > 0) {
message = match[match.length - 1];
prevMessageStart = message.indexOf(MESSAGE_SENDER_TAG);
if (prevMessageStart != -1) {
message = message.substr(0, prevMessageStart);
}
return message.replace(MESSAGE_REJECT_REGEX, '').trim();
} else {
throw new Error("Could not parse Mitsuku response");
}
}
/**
* Create new Mitsuku API for the given options.
*
* @param options
* @constructor
*/
function Mitsuku(options) {
options = options || {};
this._tag = options.tag || 'Anonymous';
this._agent = superagent.agent();
this._endpoint = options.endpoint || ENDPOINT_CHAT_MITSUKU;
}
/**
* Send a message to this {@link Mitsuku} instance.
*
* @param message
* @return bluebird message response promise
*/
Mitsuku.prototype.send = function(message) {
return getRawHtmlForMessage(this, message)
.then(parseMessageFromHtml)
};
/**
* Get the tag this {@link Mitsuku} was setup with.
*
* @returns {*|string}
*/
Mitsuku.prototype.getTag = function() {
return '' + this._tag;
};
/**
* Describe this {@link Mitsuku} instance.
*
* @returns {*|string}
*/
Mitsuku.prototype.toString = function() {
return this.getTag();
};
/**
* Mitsuku API module
* @module lib/mitsuku
*/
/**
* Create new instance of {@link Mitsuku} for the given options.
*
* @param options
* @returns {Mitsuku}
*/
module.exports = function newInstance(options) {
return new Mitsuku(options);
};
Любая помощь в этом отношении будет высоко оценена.
Я разработчик Mitsuku и перестала работать с вашим кодом. Нехорошо пилить других людей, не спрашивая их в первую очередь.
Я бы подумал, что уведомление "прекратить и воздержаться", которое мы разместили в репозитории Github, достаточно объяснило бы это: https://github.com/eleventigers/mitsuku-api/issues/11
Если вы хотите использовать Mitsuku в своей работе, свяжитесь со мной по адресу [email protected], и мы можем обсудить цены.
Основываясь на вашем mitsuku.js
, поскольку вы экспортируете его как функцию, вам нужно добавить круглые скобки ()
в инструкции require
.
const m = require('./mitsuku')(); // parentheses added
Unhandled rejection Error: Could not parse Mitsuku response at parseMessageFromHtml (/home/manuelanayantarajeyaraj/node_modules/mitsuku-api/lib/mitsuku.js:57:15) ...