Painor vor 2 Jahren
Ursprung
Commit
54ba6cbf88
4 geänderte Dateien mit 89 neuen und 74 gelöschten Zeilen
  1. 76 66
      examples/conversation/index.js
  2. 1 1
      gramjs/Version.ts
  3. 10 5
      gramjs/client/uploads.ts
  4. 2 2
      package.json

+ 76 - 66
examples/conversation/index.js

@@ -1,87 +1,97 @@
-const {TelegramClient} = require("telegram");
-const {StoreSession} = require("telegram/sessions");
+const { TelegramClient } = require("telegram");
+const { StoreSession } = require("telegram/sessions");
 const input = require("input");
-const {NewMessage} = require("telegram/events"); // npm i input
+const { NewMessage } = require("telegram/events"); // npm i input
 
-const API_ID = -1;// Fill your API ID
-const API_HASH = "";// Fill your API Hash
+const API_ID = -1; // Fill your API ID
+const API_HASH = ""; // Fill your API Hash
 const STATES = {
-    EMPTY: "no state (default)",
-    ASK_FOR_NAME: "asks the user for a name",
-    ASK_FOR_LAST_NAME: "asks the user for their last name",
-    ASK_FOR_AGE: "asks the user for their age"
+  EMPTY: "no state (default)",
+  ASK_FOR_NAME: "asks the user for a name",
+  ASK_FOR_LAST_NAME: "asks the user for their last name",
+  ASK_FOR_AGE: "asks the user for their age",
 }; // different states
 const storage = {}; // holds the states; can be saved to a json file on disconnect for consistency
 function getState(event) {
-    // gets the state for a new message event using chatId+senderId;
-    return getData(event, "state") || STATES.EMPTY
+  // gets the state for a new message event using chatId+senderId;
+  return getData(event, "state") || STATES.EMPTY;
 }
 
 function setState(event, state) {
-    // sets the state for a new message event
-    setData(event, "state", state);
+  // sets the state for a new message event
+  setData(event, "state", state);
 }
 
 function setData(event, name, value) {
-    // stores a value in storage
-    const key = event.chatId.toString() + ":" + (event.senderId || "Admin").toString();
-    if (!(key in storage)) {
-        storage[key] = {}
-    }
-    storage[key][name] = value;
+  // stores a value in storage
+  const key =
+    event.chatId.toString() + ":" + (event.senderId || "Admin").toString();
+  if (!(key in storage)) {
+    storage[key] = {};
+  }
+  storage[key][name] = value;
 }
 
 function getData(event, name) {
-    const key = event.chatId.toString() + ":" +  (event.senderId || "Admin").toString();
-    if (!(key in storage)) {
-        return undefined;
-    }
-    return storage[key][name];
-
+  const key =
+    event.chatId.toString() + ":" + (event.senderId || "Admin").toString();
+  if (!(key in storage)) {
+    return undefined;
+  }
+  return storage[key][name];
 }
 
 (async () => {
-    console.log("Loading interactive example...");
-    const client = new TelegramClient(new StoreSession("session_name"), API_ID, API_HASH, {
-        connectionRetries: 5,
-    });
+  console.log("Loading interactive example...");
+  const client = new TelegramClient(
+    new StoreSession("session_name"),
+    API_ID,
+    API_HASH,
+    {
+      connectionRetries: 5,
+    }
+  );
 
-    await client.start({
-        botAuthToken: async () => await input.text("Please enter your bot token: "),
-        onError: (err) => console.log(err),
-    });
-    console.log("You should now be connected.");
-    client.addEventHandler(async (event) => {
-        const message = event.message;
-        const state = getState(message);
-        switch (state) {
-            case STATES.EMPTY:
-                await message.reply({message:"Heyy!. Please send your first name"});
-                setState(message, STATES.ASK_FOR_NAME)
-                break;
-            case STATES.ASK_FOR_NAME:
-                const name = message.text;
-                setData(message, "firstName", name);
-                await message.reply({message:"Please send your last name"});
-                setState(message, STATES.ASK_FOR_LAST_NAME);
-                break;
-            case STATES.ASK_FOR_LAST_NAME:
-                const lastName = message.text;
-                setData(message, "lastName", lastName);
-                await message.reply({message:"Please send your age as a number"});
-                setState(message, STATES.ASK_FOR_AGE);
-                break;
-            case STATES.ASK_FOR_AGE:
-                const age = message.text;
-                if (Number.isNaN(Number(age))) {
-                    await message.reply({message:"Wrong number; please try again"});
-                    break;
-                }
-                await message.reply({message:"Thank you!."});
-                await message.reply({message:"First Name: " + getData(message, "firstName")});
-                await message.reply({message:"Last Name: " + getData(message, "lastName")});
-                await message.reply({message:"Age: " + age});
-                setState(message, STATES.EMPTY);
+  await client.start({
+    botAuthToken: async () => await input.text("Please enter your bot token: "),
+    onError: (err) => console.log(err),
+  });
+  console.log("You should now be connected.");
+  client.addEventHandler(async (event) => {
+    const message = event.message;
+    const state = getState(message);
+    switch (state) {
+      case STATES.EMPTY:
+        await message.reply({ message: "Heyy!. Please send your first name" });
+        setState(message, STATES.ASK_FOR_NAME);
+        break;
+      case STATES.ASK_FOR_NAME:
+        const name = message.text;
+        setData(message, "firstName", name);
+        await message.reply({ message: "Please send your last name" });
+        setState(message, STATES.ASK_FOR_LAST_NAME);
+        break;
+      case STATES.ASK_FOR_LAST_NAME:
+        const lastName = message.text;
+        setData(message, "lastName", lastName);
+        await message.reply({ message: "Please send your age as a number" });
+        setState(message, STATES.ASK_FOR_AGE);
+        break;
+      case STATES.ASK_FOR_AGE:
+        const age = message.text;
+        if (Number.isNaN(Number(age))) {
+          await message.reply({ message: "Wrong number; please try again" });
+          break;
         }
-    }, new NewMessage());
+        await message.reply({ message: "Thank you!." });
+        await message.reply({
+          message: "First Name: " + getData(message, "firstName"),
+        });
+        await message.reply({
+          message: "Last Name: " + getData(message, "lastName"),
+        });
+        await message.reply({ message: "Age: " + age });
+        setState(message, STATES.EMPTY);
+    }
+  }, new NewMessage());
 })();

+ 1 - 1
gramjs/Version.ts

@@ -1 +1 @@
-export const version = "2.8.3";
+export const version = "2.9.4";

+ 10 - 5
gramjs/client/uploads.ts

@@ -64,7 +64,9 @@ interface CustomBufferOptions {
 class CustomBuffer {
     constructor(private readonly options: CustomBufferOptions) {
         if (!options.buffer && !options.filePath) {
-            throw new Error("Either one of `buffer` or `filePath` should be specified");
+            throw new Error(
+                "Either one of `buffer` or `filePath` should be specified"
+            );
         }
     }
 
@@ -75,11 +77,11 @@ class CustomBuffer {
         } else if (filePath) {
             const buffSize = end - begin;
             const buff = Buffer.alloc(buffSize);
-            const fHandle = await fs.open(filePath, 'r');
-            
+            const fHandle = await fs.open(filePath, "r");
+
             await fHandle.read(buff, 0, buffSize, begin);
             await fHandle.close();
-            
+
             return Buffer.from(buff);
         }
 
@@ -92,7 +94,10 @@ const LARGE_FILE_THRESHOLD = 10 * 1024 * 1024;
 const UPLOAD_TIMEOUT = 15 * 1000;
 const DISCONNECT_SLEEP = 1000;
 
-async function getFileBuffer(file: File | CustomFile, fileSize: number): Promise<CustomBuffer> {
+async function getFileBuffer(
+    file: File | CustomFile,
+    fileSize: number
+): Promise<CustomBuffer> {
     const isBiggerThan2Gb = fileSize > 2 ** 31 - 1;
     const options: CustomBufferOptions = {};
     if (isBiggerThan2Gb && file instanceof CustomFile) {

+ 2 - 2
package.json

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