Selaa lähdekoodia

Try to fix callback query

Painor 1 vuosi sitten
vanhempi
commit
45f913b4e2

+ 1 - 1
gramjs/Version.ts

@@ -1 +1 @@
-export const version = "2.18.16";
+export const version = "2.18.23";

+ 6 - 0
gramjs/client/TelegramClient.ts

@@ -1206,6 +1206,12 @@ export class TelegramClient extends TelegramBaseClient {
     ): Promise<R["__response"]> {
         return userMethods.invoke(this, request, dcId);
     }
+    invokeWithSender<R extends Api.AnyRequest>(
+        request: R,
+        sender?: MTProtoSender
+    ): Promise<R["__response"]> {
+        return userMethods.invoke(this, request, undefined, sender);
+    }
 
     /**
      * Gets the current logged in {@link Api.User}.

+ 1 - 1
gramjs/client/downloads.ts

@@ -179,7 +179,7 @@ export class DirectDownloadIter extends RequestIter {
     async _request(): Promise<Buffer> {
         try {
             this._sender = await this.client.getSender(this._sender!.dcId);
-            const result = await this.client.invoke(
+            const result = await this.client.invokeWithSender(
                 this.request!,
                 this._sender
             );

+ 10 - 3
gramjs/client/users.ts

@@ -13,6 +13,7 @@ import type { TelegramClient } from "../";
 import bigInt from "big-integer";
 import { LogLevel } from "../extensions/Logger";
 import { RequestState } from "../network/RequestState";
+import { MTProtoSender } from "../network";
 
 // UserMethods {
 // region Invoking Telegram request
@@ -21,13 +22,19 @@ import { RequestState } from "../network/RequestState";
 export async function invoke<R extends Api.AnyRequest>(
     client: TelegramClient,
     request: R,
-    dcId?: number
+    dcId?: number,
+    otherSender?: MTProtoSender
 ): Promise<R["__response"]> {
     if (request.classType !== "request") {
         throw new Error("You can only invoke MTProtoRequests");
     }
-    const isExported = dcId !== undefined;
-    let sender = !isExported ? client._sender : await client.getSender(dcId);
+    let sender = client._sender;
+    if (dcId) {
+        sender = await client.getSender(dcId);
+    }
+    if (otherSender != undefined) {
+        sender = otherSender;
+    }
     if (sender == undefined) {
         throw new Error(
             "Cannot send requests while disconnected. You need to call .connect()"

+ 1 - 0
gramjs/events/CallbackQuery.ts

@@ -89,6 +89,7 @@ export class CallbackQuery extends EventBuilder {
         if (this.match) {
             const data = new TextDecoder().decode(event.query.data);
             const result = this.match.exec(data);
+            this.match.lastIndex = 0;
             if (result) {
                 event.patternMatch = result;
             } else {

+ 2 - 2
package-lock.json

@@ -1,12 +1,12 @@
 {
   "name": "telegram",
-  "version": "2.18.17",
+  "version": "2.18.24",
   "lockfileVersion": 2,
   "requires": true,
   "packages": {
     "": {
       "name": "telegram",
-      "version": "2.18.17",
+      "version": "2.18.24",
       "license": "MIT",
       "dependencies": {
         "@cryptography/aes": "^0.1.1",

+ 2 - 2
package.json

@@ -1,6 +1,6 @@
 {
   "name": "telegram",
-  "version": "2.18.20",
+  "version": "2.18.24",
   "description": "NodeJS/Browser MTProto API Telegram client library,",
   "main": "index.js",
   "types": "index.d.ts",
@@ -70,4 +70,4 @@
     "node-localstorage": "^2.2.1",
     "socks": "^2.6.2"
   }
-}
+}