UNPKG

migme-seagull

Version:
192 lines (160 loc) 6.1 kB
'use strict'; 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; } }; }