|
@@ -3,7 +3,7 @@ const { sleep } = require('../Helpers')
|
|
|
const errors = require('../errors')
|
|
|
const MemorySession = require('../sessions/Memory')
|
|
|
const { addKey } = require('../crypto/RSA')
|
|
|
-const { TLRequest } = require('../tl/tlobject')
|
|
|
+const { TLObject, TLRequest } = require('../tl/tlobject')
|
|
|
const utils = require('../Utils')
|
|
|
const Session = require('../sessions/Abstract')
|
|
|
const SQLiteSession = require('../sessions/SQLiteSession')
|
|
@@ -16,6 +16,7 @@ const MTProtoSender = require('../network/MTProtoSender')
|
|
|
const Helpers = require('../Helpers')
|
|
|
const { ConnectionTCPObfuscated } = require('../network/connection/TCPObfuscated')
|
|
|
const { BinaryWriter } = require('../extensions')
|
|
|
+const events = require('../events')
|
|
|
const DEFAULT_DC_ID = 4
|
|
|
const DEFAULT_IPV4_IP = '149.154.167.51'
|
|
|
const DEFAULT_IPV6_IP = '[2001:67c:4e8:f002::a]'
|
|
@@ -158,7 +159,6 @@ class TelegramClient {
|
|
|
async _updateLoop() {
|
|
|
while (this.isConnected()) {
|
|
|
const rnd = Helpers.getRandomInt(Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER)
|
|
|
- this._log.debug('rnd is', rnd)
|
|
|
await Helpers.sleep(1000 * 60)
|
|
|
// We don't care about the result we just want to send it every
|
|
|
// 60 seconds so telegram doesn't stop the connection
|
|
@@ -561,8 +561,22 @@ class TelegramClient {
|
|
|
}
|
|
|
|
|
|
|
|
|
- // event region
|
|
|
- addEventHandler(event, callback) {
|
|
|
+ /**
|
|
|
+ * Adds an event handler, allowing the specified callback to be
|
|
|
+ * called when a matching event (or events) is received.
|
|
|
+ */
|
|
|
+ addEventHandler(callback, event = null) {
|
|
|
+ if (Array.isArray(event)) {
|
|
|
+ event.forEach((e) => this.addEventHandler(callback, e))
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!event) {
|
|
|
+ event = new events.Raw()
|
|
|
+ } else if (event.prototype instanceof TLObject) {
|
|
|
+ event = new events.Raw(event)
|
|
|
+ }
|
|
|
+
|
|
|
this._eventBuilders.push([event, callback])
|
|
|
}
|
|
|
|