Как создать сценарий node.js, который может нажать кнопку на внешнем веб-сайте, запускающем этот сервер - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь создать несогласного бота, который примет команду для запуска сервера Minecraft и нажмет кнопку на отдельном веб-сайте, чтобы запустить указанный сервер. Код нажатия кнопки запускается из файла python, но мой бот сделан в node.js. Есть ли способ, которым я мог бы создать что-то, что позволяет node.js использовать файл python? Я начал с оболочки python, но не могу заставить ее работать.

Node.js код:

const { prefix } = require('config.json');
const Discord = require('discord.js');
const client = new Discord.Client();
const token = process.env.DISCORD_BOT_SECRET;
const aternosusername = process.env.ATERNOSUSERNAME;
const aternospassword = process.env.ATERNOSPASSWORD;
const keep_alive = require('./keep_alive.js')
var sleep = require('sleep'); 
//var PythonShell = require('python-shell');
const puppeteer = require('puppeteer')


client.on('ready', () => {
  console.log("I'm in");
  console.log(client.user.username);


});

client.on('message', msg => {
  if (msg.content === 'Start Server'){
    //PythonShell.run('serverstart.py', options, ClickStart() (err, results)) 
    msg.channel.send('Starting Please Wait.........');
    sleep.sleep(2);
    msg.channel.send('Server is now starting. This will take 5 to 8 mins.');
    ClickStart();
  }
});

async function ClickStart () {
  const browser = await puppeteer.launch({headless:false});
  const page = await browser.newPage();
  await page.waitFor(1000);
  await page.goto('https://aternos.org/go/');
  await page.authentication(credidentials);
  await page.click('#user');
  await page.keyboard.type('World', {delay: 100});
  await page.click('#password');
  await page.click('#login');
  console.log('Loging In');
  await page.waitForNavigation();
  await page.click('#start');
  console.log('Starting Server');

}



client.login(token);

1 Ответ

2 голосов
/ 06 февраля 2020

Что вы можете сделать, это использовать npm модуль кукловода для взаимодействия с пользовательским интерфейсом

Шаги:

npm install puppeteer --save

Затем в вашем коде nodejs сделайте что-то подобное

const puppeteer = require('puppeteer')
(async () => {
  const browser = await puppeteer.launch({headless:false});
  const page = await browser.newPage();
  await page.waitFor(1000);     //callibrate as per your need
  await page.goto('www.yourwebsite.com');
  await page.click('#yourButtonId');
  await page.waitForNavigation();
 })()

Посмотрите на puppeteer модуль узла для дальнейших инструкций по использованию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...