+15
-2
@@ -25,7 +25,20 @@ /* | ||
| : `${from.first_name} ${from.last_name}`; | ||
| const message = (ctx.message && ctx.message.text) || ctx.inlineQuery.query; | ||
| let message; | ||
| if (ctx.message && ctx.message.text) { | ||
| message = ctx.message.text; | ||
| } else if (ctx.message) { | ||
| message = "Non-text message."; | ||
| } else if (ctx.inlineQuery && ctx.inlineQuery.query) { | ||
| message = ctx.inlineQuery.query; | ||
| } else if (ctx.inlineQuery) { | ||
| message = "Empty query message."; | ||
| } else { | ||
| message = "Unsupported message."; | ||
| } | ||
| console.log( | ||
| `From: ${name} (@${from.username}) ID: ${from.id}\nMessage: ${message}` | ||
| ); | ||
| await next(); | ||
@@ -32,0 +45,0 @@ } |
+13
-42
| /*! | ||
| * grammYLog | ||
| * Copyright(c) 2023 | ||
| * Copyright(c) 2023 to present | ||
| * | ||
@@ -15,4 +15,2 @@ * @author Zubin | ||
| // Console | ||
| async function log(ctx, next) { | ||
@@ -24,47 +22,20 @@ const from = ctx.from; | ||
| : `${from.first_name} ${from.last_name}`; | ||
| const message = (ctx.message && ctx.message.text) || ctx.inlineQuery.query; | ||
| console.log( | ||
| `From: ${name} (@${from.username}) ID: ${from.id}\nMessage: ${message}` | ||
| ); | ||
| await next(); | ||
| } | ||
| let message; | ||
| bot.use(log); | ||
| if (ctx.message && ctx.message.text) { | ||
| message = ctx.message.text; | ||
| } else if (ctx.message) { | ||
| message = "Non-text message."; | ||
| } else if (ctx.inlineQuery && ctx.inlineQuery.query) { | ||
| message = ctx.inlineQuery.query; | ||
| } else if (ctx.inlineQuery) { | ||
| message = "Empty query message."; | ||
| } else { | ||
| message = "Unsupported message."; | ||
| } | ||
| // Channel (Might be unstable) | ||
| async function log(ctx, next) { | ||
| let message = ctx.message?.text || ctx.channelPost?.text || undefined; | ||
| const from = ctx.from || ctx.chat; | ||
| const name = | ||
| `${from.first_name || ""} ${from.last_name || ""}`.trim() || ctx.chat.title; | ||
| // Console | ||
| console.log( | ||
| `From: ${name} (@${from.username}) ID: ${from.id}\nMessage: ${message}` | ||
| ); | ||
| // Channel | ||
| if ( | ||
| ctx.message && | ||
| (ctx.message.text === undefined || ctx.message.text === null) && | ||
| !ctx.message?.text?.includes("/") && | ||
| process.env.LOG_CHANNEL | ||
| ) { | ||
| await bot.api.sendMessage( | ||
| process.env.LOG_CHANNEL, | ||
| `<b>From: ${name} (@${from.username}) ID: <code>${from.id}</code></b>`, | ||
| { parse_mode: "HTML" } | ||
| ); | ||
| await ctx.api.forwardMessage( | ||
| process.env.LOG_CHANNEL, | ||
| ctx.chat.id, | ||
| ctx.message.message_id | ||
| ); | ||
| } | ||
| await next(); | ||
@@ -71,0 +42,0 @@ } |
+8
-2
| { | ||
| "name": "grammylog", | ||
| "version": "1.1.1", | ||
| "version": "1.1.2", | ||
| "description": "Logging plugin for the grammY framework!", | ||
@@ -21,3 +21,9 @@ "directories": { | ||
| }, | ||
| "keywords": ["log", "grammY", "plugin", "middleware", "log channel"], | ||
| "keywords": [ | ||
| "log", | ||
| "grammY", | ||
| "plugin", | ||
| "middleware", | ||
| "log channel" | ||
| ], | ||
| "license": "MIT", | ||
@@ -24,0 +30,0 @@ "devDependencies": { |
+1
-7
@@ -5,8 +5,2 @@ # grammYLog | ||
| ### v1.1 | ||
| Added log channel support (might be unstable). This should be more convenient than console messages. | ||
| _Note:_ This feature is optional and will only work if you've supplied a log channel ID. | ||
| ### Features | ||
@@ -16,3 +10,3 @@ | ||
| 2. Log message content as well as first name, last name, username and Telegram ID of the sender. | ||
| 3. Only text messages are supported. In the case of media messages, limited to the text/captions. | ||
| 3. Only text messages are supported. | ||
| 4. For the future, db integrations are possible to implement persistent logs. | ||
@@ -19,0 +13,0 @@ |
+15
-2
@@ -22,7 +22,20 @@ /* | ||
| : `${from.first_name} ${from.last_name}`; | ||
| const message = (ctx.message && ctx.message.text) || ctx.inlineQuery.query; | ||
| let message; | ||
| if (ctx.message && ctx.message.text) { | ||
| message = ctx.message.text; | ||
| } else if (ctx.message) { | ||
| message = "Non-text message."; | ||
| } else if (ctx.inlineQuery && ctx.inlineQuery.query) { | ||
| message = ctx.inlineQuery.query; | ||
| } else if (ctx.inlineQuery) { | ||
| message = "Empty query message."; | ||
| } else { | ||
| message = "Unsupported message."; | ||
| } | ||
| console.log( | ||
| `From: ${name} (@${from.username}) ID: ${from.id}\nMessage: ${message}` | ||
| ); | ||
| await next(); | ||
@@ -29,0 +42,0 @@ } |
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
122
0.83%3
-50%6142
-4.2%59
-9.23%