telegram bot Отправка сообщений каждую минуту

564
26 июля 2017, 23:43

есть один телеграм бот, который парсит rss ленту. Подскажите пожалуйста, как можно проверять на наличие новых записей в rss и сразу отправлять сообщение в бота?

$bot->command('feed', function ($message) use ($bot) {
$url = 'url';
$rss = simplexml_load_file($url);
foreach ($rss->channel->item as $item) {
    $line_rss =  ' '.$item->title.' ';
    $line_rss .= ' '.$item->link.' ';
    $line_rss .= $item->pubDate;
    $line_rss .= ' <br>';
    break;
}
$bot->sendMessage($message->getChat()->getId(), $line_rss);

});

Answer 1

Примерно такая идея

// имя файла где храним последнюю дату с полным путем
$lastPubDateFileName = 'file_path/lastPubDate.txt';
$bot->command('feed', function ($message) use ($bot, $lastPubDateFileName) {
// флаг, что мы уже выставили последнюю дату в этом запуске скрипта
$bLastPubDateSet = false;
// берем данные из файла, правда его может изначально не быть
if (file_exists($lastPubDateFileName)) {
    $lastPubDate = file_get_contents($lastPubDateFileName);
} else {
    $lastPubDate = 0;
}
$url = 'url';
$rss = simplexml_load_file($url);
foreach ($rss->channel->item as $item) {
    // проверяем что дата из рсс больше даты из файла
    if (strtotime($item->pubDate) > strtotime($lastPubDate)) {
        $line_rss =  ' '.$item->title.' ';
        $line_rss .= ' '.$item->link.' ';
        $line_rss .= $item->pubDate;
        $line_rss .= ' <br>';
        $bot->sendMessage($message->getChat()->getId(), $line_rss);
        // устанавливаем последнюю дату один раз - 
        // поскольку рсс отсортирован от самых свежих к старым, нам надо это сделать с первым
        if (!$bLastPubDateSet) {
            $bLastPubDateSet = true;
            file_put_contents($lastPubDateFileName, $item->pubDate);
        }
    } else {
        // если элемент уже был послан, то и все дальше были посланы, выходим
        break;
    }
}
});
READ ALSO
Как поделить сумму на половину [требует правки]

Как поделить сумму на половину [требует правки]

Добрый день,уважаемые коллеги

229
Не работают shortcode

Не работают shortcode

Joomla 3Прикрутил возможность добавлять текстовые описания к тегам компонента CKK K2 Joomla

305
переменная переменной javascript [дубликат]

переменная переменной javascript [дубликат]

На данный вопрос уже ответили:

212
Подружить поле для загрузки файлов с кодом php

Подружить поле для загрузки файлов с кодом php

Здравствуйте, вот часть кода php, считывает данные с загруженного файла,

233