UNPKG

3.67 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.groupMessages = exports.defaultGetMediaGroupId = exports["default"] = void 0;
9
10var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
12var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
14var _bluebird = _interopRequireDefault(require("bluebird"));
15
16var _get = _interopRequireDefault(require("lodash/get"));
17
18var _sortBy = _interopRequireDefault(require("lodash/sortBy"));
19
20var defaultGetMediaGroupId = function defaultGetMediaGroupId(ctx) {
21 // return ctx.message.media_group_id || null;
22 var a = 123;
23 return [(0, _get["default"])(ctx, 'message.from.id'), (0, _get["default"])(ctx, 'message.chat.id'), (0, _get["default"])(ctx, 'message.date')].filter(Boolean).join('_');
24};
25
26exports.defaultGetMediaGroupId = defaultGetMediaGroupId;
27var groups = {};
28
29var groupMessages = function groupMessages(callback) {
30 var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
31 _ref$groupKey = _ref.groupKey,
32 groupKey = _ref$groupKey === void 0 ? defaultGetMediaGroupId : _ref$groupKey,
33 _ref$delay = _ref.delay,
34 delay = _ref$delay === void 0 ? 1000 : _ref$delay;
35
36 return /*#__PURE__*/function () {
37 var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(ctx) {
38 var mediaGroupId, delayMs, group;
39 return _regenerator["default"].wrap(function _callee$(_context) {
40 while (1) {
41 switch (_context.prev = _context.next) {
42 case 0:
43 mediaGroupId = groupKey(ctx); // console.log('[QWE] 11', ctx.message.message_id, mediaGroupId);
44
45 if (mediaGroupId) {
46 _context.next = 4;
47 break;
48 }
49
50 callback(ctx);
51 return _context.abrupt("return");
52
53 case 4:
54 if (!groups[mediaGroupId]) groups[mediaGroupId] = [];
55 groups[mediaGroupId].push(ctx); // console.log('[QWE] 22', ctx.message.message_id, mediaGroupId, groups[mediaGroupId].length);
56
57 delayMs = (1 + Math.random()) * delay; // console.log('[QWE] 333', ctx.message.message_id, mediaGroupId, groups[mediaGroupId].length, 'delay', delay);
58
59 _context.next = 9;
60 return _bluebird["default"].delay(delayMs);
61
62 case 9:
63 group = (0, _sortBy["default"])(groups[mediaGroupId], 'update.message.message_id'); // console.log('[QWE] 33', ctx.message.message_id, mediaGroupId, groups[mediaGroupId].length);
64
65 if (group.length) {
66 _context.next = 12;
67 break;
68 }
69
70 return _context.abrupt("return");
71
72 case 12:
73 if (!(group.length === 1)) {
74 _context.next = 15;
75 break;
76 }
77
78 callback(ctx);
79 return _context.abrupt("return");
80
81 case 15:
82 ctx.group = group;
83 callback(ctx);
84 groups[mediaGroupId] = []; // console.log('[QWE] 444', ctx.message.message_id, mediaGroupId, groups[mediaGroupId].length);
85
86 case 18:
87 case "end":
88 return _context.stop();
89 }
90 }
91 }, _callee);
92 }));
93
94 return function (_x) {
95 return _ref2.apply(this, arguments);
96 };
97 }();
98};
99
100exports.groupMessages = groupMessages;
101var _default = groupMessages;
102exports["default"] = _default;
103//# sourceMappingURL=groupMessages.js.map
\No newline at end of file