Как из node.js вызвать функцию BAS

Поддержка
  • у меня есть код ```
    const TelegramBot = require('node-telegram-bot-api');
    const fs = require('fs');
    const path = require('path');

    await BAS_API("_HEX:5641525f46494c455f434f4e54454e545f434f4f4b4945203d206e6174697665282266696c6573797374656d222c20227265616466696c65222c204a534f4e2e737472696e67696679287b76616c75653a2022433a5c753030356355736572735c75303035636b726f6d736b6969325c75303035634465736b746f705c75303035635a6c65655a6c615c7530303563434f4f4b49452e747874222c6261736536343a66616c73652c66726f6d3a302c746f3a307d29290a3b0a5641525f53415645445f434f4f4b494553203d205f636f6f6b696573546f6f6c732e696d706f7274436f6f6b696573285641525f46494c455f434f4e54454e545f434f4f4b49452c20276a736f6e45544327290a3b0a56414c5545203d205641525f53415645445f434f4f4b4945530a434f4f4b494553203d2022220a69662856414c55452e6c656e677468203e2030290a7b0a434f4f4b494553203d204a534f4e2e70617273652856414c5545295b22636f6f6b696573225d0a696628747970656f6628434f4f4b49455329203d3d2022756e646566696e656422290a434f4f4b494553203d2022220a656c73650a434f4f4b494553203d204a534f4e2e737472696e6769667928434f4f4b494553290a7d0a726573746f72655f636f6f6b69657328434f4f4b4945532921");
    // Указываем токен, который вы получили от @BotFather
    const token = '7303253027:AAH6oC4uCcNpGy2tSEkUBZJgudTORTnb1Wk';

    // Создаем экземпляр бота
    const bot = new TelegramBot(token, { polling: true });

    // Обработчик команды /start
    bot.onText(//start/, (msg) => {
    const chatId = msg.chat.id;

    // Отправляем стикер и приветственное сообщение
    bot.sendSticker(chatId, 'CAACAgIAAxkBAAICjGadERPHB1ReS8mb641yc_IAAeWfoQACtD8AAoldsUoT8zATvLBgmzUE')
        .then(() => {
            bot.sendMessage(chatId, 'Привет! Я AI-кошка, готовая помочь тебе! Напиши /help, чтобы увидеть список доступных команд.');
        })
        .catch((error) => {
            console.error('Error sending sticker:', error);
        });
    

    });

    // Обработчик команды /help
    bot.onText(//help/, (msg) => {
    const chatId = msg.chat.id;

    // Отправляем стикер и список команд
    bot.sendSticker(chatId, 'CAACAgEAAxkBAAICkGadEwnFK0tTN4MLq_lBoo9G4putAAK0AgAC_4upRo-32GUCL8LeNQQ')
        .then(() => {
            bot.sendMessage(chatId, `Вот список команд, которые я могу выполнить:
    

    /start - начать взаимодействие со мной
    /help - показать список команд
    /info - узнать информацию обо мне
    /ask - Чтобы задать вопрос. Например: /ask следующем сообщением вопрос.
    /joke - Команда для получения шутки от AI-кошки.
    /bye - Команда для завершения взаимодействия с AI-кошкой.`);
    })
    .catch((error) => {
    console.error('Error sending sticker:', error);
    });
    });

    // Обработчик команды /info
    bot.onText(//info/, (msg) => {
    const chatId = msg.chat.id;

    // Отправляем стикер и информационное сообщение
    bot.sendSticker(chatId, 'CAACAgIAAxkBAAEMhoxmnkBxJzR46iVh25PRShq0MKn2xwACZEMAAhlCCUis1O6eNVnKkTUE')
        .then(() => {
            bot.sendMessage(chatId, `Я AI-кошка, созданная для ответов на твои вопросы! Если у тебя возникли вопросы или нужна помощь, напиши и я постараюсь помочь.
    

    Этого бота разработал Kromskii2, вдохновленный идеей создания умной AI-кошки для тоскующей по ней подруге в Telegram.`);
    })
    .catch((error) => {
    console.error('Error sending sticker:', error);
    });
    });

    // Обработчик команды /ask
    bot.onText(//ask (.+)/, async (msg, match) => {
    const chatId = msg.chat.id;
    const question = match[1]; // Сохраняем текст вопроса после /ask

    // Здесь можно делать что-то с вопросом, например, отправлять его обратно
    bot.sendMessage(chatId, `Вы задали вопрос: ${question}`);
    
    // Путь к файлу для сохранения вопроса
    const filePath = 'C:/Users/kromskii2/Desktop/ZleeZla/data/mousetext.txt';
    
    // Запись в файл
    fs.writeFile(filePath, question, (err) => {
        if (err) {
            console.error('Ошибка при записи в файл:', err);
            return;
        }
        console.log('Данные успешно записаны в файл:', filePath);
    });
    

    });

    
    

    // Обработчик команды /ask
    bot.onText(//ask (.+)/, async (msg, match) => {
    const chatId = msg.chat.id;
    const question = match[1]; // Сохраняем текст вопроса после /ask

    // Здесь можно делать что-то с вопросом, например, отправлять его обратно
    bot.sendMessage(chatId, `Вы задали вопрос: ${question}`);
    
    // Путь к файлу для сохранения вопроса
    const filePath = 'C:/Users/kromskii2/Desktop/ZleeZla/data/mousetext.txt';
    
    // Запись в файл
    fs.writeFile(filePath, question, (err) => {
        if (err) {
            console.error('Ошибка при записи в файл:', err);
            return;
        }
        console.log('Данные успешно записаны в файл:', filePath);
    });
    

    });

    
    как сделать так что бы в конце функции /ask вызывалась функция bas а ещё как можно из node.js сохранить переменную в bas
  • @Kromskii2 said in Как из node.js вызвать функцию BAS:

    как можно из node.js сохранить переменную в bas

    cc409a63-2794-4891-abeb-da872a519278-image.png

  • @Kromskii2 said in Как из node.js вызвать функцию BAS:

    как сделать так что бы в конце функции /ask вызывалась функция bas

    Насколько я знаю - никак. Только если костылем, каким ни будь, присваивать значение переменной БАСа, и смотреть отдельной асинхронной функцией изменение этой переменной и уже вызывать функцию.

  • @Ajshma Хорошо а как тогда прикрутить bas_api выполнение в конце команды /ask

  • @Kromskii2 кстати, а может и можно вызвать функцию... давно туда не лазил

    de7831b8-b2ef-4ce8-943a-74cab2e029ce-image.png

  • @Ajshma ее можно вызвать, если ждать завершёния кода в nodejs. Если он же просто запускается, а бас идёт выполнять дальше действия тогда нельзя

  • @UserTrue да, асинхронность, все дела. Это понятно. Я так понимаю вопрос был - можно ли запустить из nodejs функцию, созданную пользователем? Если можно - тогда как?

  • @Ajshma said in Как из node.js вызвать функцию BAS:

    @UserTrue да, асинхронность, все дела. Это понятно. Я так понимаю вопрос был - можно ли запустить из nodejs функцию, созданную пользователем? Если можно - тогда как?

    Как бы только так я написал выше. Либо городить гостыли и например в глобальную переменную ноды или БД или еще куда-то записывать данные, какие-то флаги и тп. А в БАС поставить поставить цикл который будет через например 1 сек проверять эти данные и если нужно вызывать функции БАС. Хотя гораздо удобней писать весь код в nodejs и из нее вызывать функции БАС. Для этого есть соответствующие библиотеки

  • @UserTrue не, ты видимо не понял. Одно дело функции БАСа (api), другое дело функции созданные пользователем в БАСе. Я не знаю как их (пользовательские) вызвать. Пример можно?

  • @Ajshma said in Как из node.js вызвать функцию BAS:

    @UserTrue не, ты видимо не понял. Одно дело функции БАСа (api), другое дело функции созданные пользователем в БАСе. Я не знаю как их (пользовательские) вызвать. Пример можно?

    Нет, я правильно понял и про пользовательский функции и писал. Примеры мне делать лень xD

  • @Ajshma said in Как из node.js вызвать функцию BAS:

    @UserTrue не, ты видимо не понял. Одно дело функции БАСа (api), другое дело функции созданные пользователем в БАСе. Я не знаю как их (пользовательские) вызвать. Пример можно?

    ec13c0dc-2b81-4d55-9b98-171349f14d5b-изображение.png

    33dec341-8783-41dc-9a5c-dc52ff8e8b0d-изображение.png

  • @Fox Только это не будет работать, если не ждать код nodejs