Загрузка...

Bot to write out checks on lolz (ala send)

Thread in Node.js created by etherscan May 17, 2025. (bumped May 26, 2025) 337 views

  1. etherscan
    etherscan Topic starter May 17, 2025 tg @etherscansh 655 Nov 4, 2021
    Сап, мне пришла идея по приколу замутить бота, который позволит переводить деньги на баланс форума через инлайн-команду (
    ⁡@send 10 на шлюх
    ⁡).
    Я посидел и родил такое решение на TypeScript/grammY/axios:
    [IMG]
    Версия очень сырая и недоработанная, если у кого-то возникнет желание - можете довести до идеала.
    Чтобы использовать, нужно ввести в конфиг ваш айдишник телеграмма (или несколько :roflanZdarova: ), токен бота из BotFather (там же нужно поставить инлайн-колбек на 100%), токен с доступом к market из lzt.market/account/api, а также секретное слово. Исходники и гайд по установке:
    JS
    import { Bot } from "grammy";
    import { InputTextMessageContent } from "grammy/out/types";
    import axios from 'axios';
    import { apitoken, secretWord, tg_token, users } from '../config.json'

    const bot = new Bot(tg_token);

    const isNumeric = (value: string) => !isNaN(+value) && isFinite(+value);

    bot.on("inline_query", async (ctx) => {
    if(!users.includes(String(ctx.from.id))) return;
    const query = ctx.inlineQuery.query.trim().split(" ");
    if (query.length < 2 || !isNumeric(query[0])) return;

    const [amount, account] = query;
    let comment;
    if (query[2]) comment = query.slice(2).join(" ");

    return ctx.answerInlineQuery([
    {
    type: "article",
    id: "1",
    title: `Отправить ${amount} RUB на счет ${account}`,
    input_message_content: {
    message_text: `Обработка...`
    } as InputTextMessageContent,
    reply_markup: { inline_keyboard: [[{ text: ' Ожидайте...', callback_data: 'nothing_here' }]] },
    description: `Нажмите, чтобы отправить ${amount} RUB`
    }
    ]);
    });


    bot.on('chosen_inline_result', async (ctx) => {
    if (!ctx.update.chosen_inline_result.inline_message_id) return;
    if(!users.includes(String(ctx.from.id))) return;
    const query = ctx.update.chosen_inline_result.query.trim().split(" ");
    if (query.length < 2 || !isNumeric(query[0])) return;

    const [amount, account] = query;
    let comment;
    if (query[2]) comment = query.slice(2).join(" ")

    let url = `https://prod-api.lzt.market/balance/transfer?currency=rub&username=${account}&amount=${amount}&secret_answer=${secretWord}`;

    if (comment && comment.length > 1) {
    url += `&comment=${comment}`;
    }
    const options = {
    method: 'POST',
    url: url,
    headers: {
    accept: 'application/json',
    authorization: `Bearer ${apitoken}`
    }
    };
    try {
    let res = await axios.request(options)
    if (res.status != 200) ctx.api.editMessageTextInline(ctx.update.chosen_inline_result.inline_message_id, ` Произошла ошибка! Проверьте баланс и уточните имя получателя`);
    ctx.api.editMessageTextInline(ctx.update.chosen_inline_result.inline_message_id, ` Перевод на сумму ${amount} RUB отправлен пользователю ${account}`);
    } catch (error) {
    ctx.api.editMessageTextInline(ctx.update.chosen_inline_result.inline_message_id, ` Произошла ошибка! Проверьте баланс и уточните имя получателя`);
    }

    });

    bot.start();
    JS
    {
    "users": ["7629404322"],
    "tg_token": "",
    "apitoken": "",
    "secretWord": ""
    }
    npm install -D typescript
    npm i axios grammy
    npx tsc --init
    npx tsc
    JS
    {
    "compilerOptions": {
    "resolveJsonModule": true,
    "esModuleInterop": true,
    ...
    }
    }
     
  2. сомния
    сомния May 17, 2025 11:11 означает смену эпох и зарождение нового мира 1690 Apr 4, 2022
    прикольно, но наличие нужного баланса и существование получателя можно проверять на return ctx.answerInlineQuery этапе
     
    1. View previous comments (2)
    2. etherscan Topic starter
      я кста не видел в доке ручки чтоб баланс чекнуть, скинь
    3. сомния
    4. etherscan Topic starter
      сомния, ну думаю как-нибудь сяду и допишу до идеала, там еще можно валюту указывать, можно реализовать
  3. TOXICTRIOXIN
    TOXICTRIOXIN May 17, 2025 Дедики тут https://lolz.live/threads/2901120/ 4437 Oct 30, 2021
    а если шлюх не трахаю?
     
    1. etherscan Topic starter
      TOXICTRIOXIN, разрешаю другой комент написать
    2. TOXICTRIOXIN
    3. etherscan Topic starter
  4. same
    same May 17, 2025 у них отрицательный резус у меня прибыльный бизнес 702 Jan 30, 2022
    респектос
     
  5. ImJustLolzer
    ImJustLolzer May 24, 2025 Banned 11 Apr 28, 2025
    Как бля запустить, у меня пишет что в первой строке уже чет не правильно
     
    1. View previous comments (4)
    2. ImJustLolzer
      etherscan, [IMG] И при первом запуске такая же ошибка
    3. bruter
      ImJustLolzer,
      Опа, зяц, ты че, сходняк не подготовил? Без зависимостей лезешь, как лох на стрелку без ствола? Пишет не правильно — потому что ты, фраер не посмотрел инструкцию по запуску!

      Чё делать? А вот чё:

      Качаешь зависимости как нормальный пацан:


      npm install -D typescript
      npm i axios grammy
      npx tsc --init
      npx tsc
      (а если нет файла — ищи, чё там в error вылезает, и ставь вручную, как по фене)

      Проверяешь, чё там в первой строке — может, кодировку не ту вписал, либо путь кривой.

      Если опять не заводится — не гони волну, читай лог как мент читает дело, и исправляй косяки.

      Разбирайся, браток!
Loading...
Top