migme-seagull
Version:
Migme Chat
192 lines (160 loc) • 6.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getPinnedMessage = exports.unpin = exports.pin = exports.messages = exports.send = undefined;
exports.sendSticker = sendSticker;
exports.sendMedia = sendMedia;
exports.sendGift = sendGift;
exports.default = Messages;
var _dinghy = require('./utils/dinghy');
var _dinghy2 = _interopRequireDefault(_dinghy);
var _migmeFerry = require('migme-ferry');
var _config = require('./config/config');
var _mimeType = require('./mime/mime-type');
var _mimeType2 = _interopRequireDefault(_mimeType);
var _config2 = require('./config');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _setMessageStatus(dinghy, message, status) {
var updatedMessage = Object.assign({}, message, {
message_status: status,
is_server_generated: message.is_server_generated || false
});
var packet = new _migmeFerry.Packet(_migmeFerry.PacketType.MESSAGE_STATUS_EVENT, updatedMessage);
return dinghy.send(packet);
}
function _send(dinghy) {
var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
if (typeof options.content !== 'string') {
throw new TypeError('Content must be a string');
}
var fields = {
message_type: _config.Message_Type['1'],
content_type: _config.Content_Type.text,
chat_type: _config.DestinationType.individual,
destination: options.chat_id,
source: _config2.ferry.user.username
};
Object.assign(fields, options);
var packet = new _migmeFerry.Packet(_migmeFerry.PacketType.MESSAGE, fields);
return dinghy.send(packet);
}
exports.send = _send;
function sendSticker(dinghy, sticker) {
var _ref = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
var chat_id = _ref.chat_id;
var chat_type = _ref.chat_type;
var content = '/sticker ' + sticker;
return _send(dinghy, Object.assign({ content: content }, { chat_id: chat_id, chat_type: chat_type }));
}
function sendMedia(dinghy, url) {
var _ref2 = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
var message = _ref2.message;
var mime_type = _ref2.mime_type;
var chat_id = _ref2.chat_id;
var chat_type = _ref2.chat_type;
var mimeType = mime_type || _mimeType2.default.fromUrl(url);
var options = mimeType ? { mime_type: mimeType } : null;
var content = typeof message === 'string' ? message + ' ' + url : url;
return _send(dinghy, Object.assign({ content: content }, options, { chat_id: chat_id, chat_type: chat_type }));
}
function _messages(dinghy) {
var _ref3 = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
var chat_id = _ref3.chat_id;
var _ref3$chat_type = _ref3.chat_type;
var chat_type = _ref3$chat_type === undefined ? _config.DestinationType.individual : _ref3$chat_type;
var _ref3$limit = _ref3.limit;
var limit = _ref3$limit === undefined ? 30 : _ref3$limit;
var _ref3$latest_message_ = _ref3.latest_message_timestamp;
var latest_message_timestamp = _ref3$latest_message_ === undefined ? Date.now() : _ref3$latest_message_;
var _ref3$oldest_message_ = _ref3.oldest_message_timestamp;
var oldest_message_timestamp = _ref3$oldest_message_ === undefined ? 0 : _ref3$oldest_message_;
var packet = new _migmeFerry.Packet(_migmeFerry.PacketType.GET_MESSAGES, {
chat_id: chat_id,
chat_type: chat_type,
limit: limit,
latest_message_timestamp: latest_message_timestamp,
oldest_message_timestamp: oldest_message_timestamp
});
return dinghy.send(packet, _migmeFerry.PacketType.END_MESSAGES);
}
exports.messages = _messages;
function _pin(dinghy, fields) {
var options = fields instanceof _migmeFerry.Packet ? fields.fields : fields;
Object.assign(options, {
pinned_type: _config.pinned_type.PINNED
});
return _send(dinghy, options);
}
exports.pin = _pin;
function _unpin(dinghy, fields) {
var options = fields instanceof _migmeFerry.Packet ? fields.fields : fields;
Object.assign(options, {
pinned_type: _config.pinned_type.UNPINNED
});
return _send(dinghy, options);
}
/**
* Get chat pinned message
* @return {Promise}
* @example
* chat.getPinnedMessage().then(res => {})
*/
exports.unpin = _unpin;
function _getPinnedMessage(dinghy) {
var _ref4 = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
var chat_id = _ref4.chat_id;
var chat_type = _ref4.chat_type;
var packet = new _migmeFerry.Packet(_migmeFerry.PacketType.GET_PINNED_MESSAGE, {
chat_id: chat_id,
chat_type: chat_type
});
return dinghy.send(packet);
}
exports.getPinnedMessage = _getPinnedMessage;
function sendGift(dinghy) {
var _ref5 = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
var chat_id = _ref5.chat_id;
var chat_type = _ref5.chat_type;
var gift = _ref5.gift;
var message = _ref5.message;
var destination = _ref5.destination;
var dest = destination || chat_id;
var content = '/gift ' + dest + ' ' + gift + (message ? ' -m ' + message : '');
return _send(dinghy, {
destination: chat_id,
chat_type: chat_type,
content: content
});
}
/**
* Messages
*/
function Messages() {
var dinghy = (0, _dinghy2.default)();
return {
setMessageStatus: function setMessageStatus(message, status) {
return _setMessageStatus(dinghy, message, status);
},
send: function send() {
var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
return _send(dinghy, options);
},
messages: function messages() {
var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
return _messages(dinghy, options);
},
pin: function pin(fields) {
return _pin(dinghy, fields);
},
unpin: function unpin(fields) {
return _unpin(dinghy, fields);
},
getPinnedMessage: function getPinnedMessage(chat_id, chat_type) {
return _getPinnedMessage(dinghy, { chat_id: chat_id, chat_type: chat_type });
},
get dinghy() {
return dinghy;
}
};
}