Цитаты с bashorg

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
Аватара пользователя
dioxin
Сообщения: 175
Зарегистрирован: Вт фев 14, 2017 4:43 pm
Откуда: Иваново
Благодарил (а): 15 раз
Поблагодарили: 46 раз

Цитаты с bashorg

Сообщение dioxin » Сб мар 31, 2018 4:29 pm

Не знаю, может было:
Сценарий bashorg

Код: Выделить всё

$filename = "/var/www/bashorg/bash.xml"; //где будет находится наш файл с цитатами башорга
$site_path = "https://bash.im/rss/";//откуда берем цитаты
if (!file_exists($filename) or (time() > filemtime($filename) + 60*60*1) ) {//1ч. время жизни нашего файла
get_content($site_path);//если файла нет, или он старее 1 часа, получаем новый
}
// Cоздание объекта SIMPLEXML и загрузка документа
$content = join ("", file($filename));
// Cоздание объекта SIMPLEXML и загрузка документа
$xml = simplexml_load_string($content);
foreach ($xml->channel->item[rand (0, count($xml->channel->item))]->children() as $items) ;//выбираем случайную запись из rss
//$description = iconv("windows-1251","UTF-8", $items); //конвертируем при необходимости кодировку
sg('bash.bashorg',$items); //выводим цитату

function  get_content($site_path) //функция загрузки файла, не идеал, но работает
{
//загружаем
$fd = fopen($site_path, "r");
$text="";
if (!$fd) echo "Запрашиваемая страница не найдена";
else
{
// Чтение содержимого файла в переменную $text
while (!feof ($fd)) $text .= fgets($fd, 4096);
$fp = fopen("/var/www/bashorg/bash.xml", "w");
fwrite($fp, $text);
fclose ($fp);
}
fclose ($fd);
return true;
}
 
В onNewMinute добавляем: runScript('bashorg');

А уже из bash.bashorg выводим куда надо.

Раз в минуту в bash.bashorg заносится новая запись, а раз в час обновляются цитаты в файле.
Алиска прописана на Debian 11 | Мой канал на youtube по MajorDomo
Ответить