@INDIGO1
Просто человек

На чем лучше написать бот?

Нужен бот который будет чекать в бд статус и если статус стоит 1 он должен постить пост в иснтеграмм.
Написал такой на php вот сам бот
<?php
set_time_limit(0);
date_default_timezone_set('UTC');
require "rb/database.php";
require __DIR__.'/../vendor/autoload.php';
/////// CONFIG ///////
$username = '';
$password = '';
$debug = true;
$truncatedDebug = false;




$status = R::getAll("SELECT * FROM `user` WHERE status = 0");


if (!empty($status) && !empty($status[0])) {
	
	$status_photo = $status['0']['name'];
    echo $status_photo ;
    echo "\n" ;



$photoFilename = "images/".$status_photo;;
$captionText = 'Тест 2 2';
//////////////////////
$ig = new \InstagramAPI\Instagram($debug, $truncatedDebug);
try {
    $ig->login($username, $password);
} catch (\Exception $e) {
    echo 'Something went wrong: '.$e->getMessage()."\n";
    exit(0);
}
try {
    // The most basic upload command, if you're sure that your photo file is
    // valid on Instagram (that it fits all requirements), is the following:
    // $ig->timeline->uploadPhoto($photoFilename, ['caption' => $captionText]);
    // However, if you want to guarantee that the file is valid (correct format,
    // width, height and aspect ratio), then you can run it through our
    // automatic photo processing class. It is pretty fast, and only does any
    // work when the input file is invalid, so you may want to always use it.
    // You have nothing to worry about, since the class uses temporary files if
    // the input needs processing, and it never overwrites your original file.
    //
    // Also note that it has lots of options, so read its class documentation!
    $photo = new \InstagramAPI\Media\Photo\InstagramPhoto($photoFilename);
    $ig->timeline->uploadPhoto($photo->getFile(), ['caption' => $captionText]);
} catch (\Exception $e) {
    echo 'Something went wrong: '.$e->getMessage()."\n";
}

}

else {
    echo "11111111111111111111111111111111111111111";
    echo "\n" ;
}

?>


Все работает и посты выставляет как надо. Но мне надо чтоб как в node.js можно было зациклить процесс чтобы он каждые 5с делал запрос в бд и если есть стрка со статусом 1 выставлял пост.

Надо чтобы бот постоянно был авторизированным чтобы инст ни спалил что это бот.
  • Вопрос задан
  • 251 просмотр
Решения вопроса 2
@mShpakov
А что мешает по крону дергать уже готовый скрипт?
Ответ написан
Softer
@Softer
while (true)
{
....
sleep (5);
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
SagePtr
@SagePtr
Еда - это святое
Но мне надо чтоб как в node.js

А что мешает сделать на nodejs? В крайнем случае, цикл проверки наличия нужных данных сделать на nodejs, а при срабатывании условия дёргать из nodejs php-скрипт сколько угодно раз (если этот скрипт в лом на nodejs переписывать).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы