Отображение новостей

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

Модератор: immortal

Antonq
Сообщения: 39
Зарегистрирован: Пн окт 07, 2013 6:15 pm
Благодарил (а): 0
Поблагодарили: 1 раз

Отображение новостей

Сообщение Antonq » Чт окт 10, 2013 1:27 pm

Доброго времени суток!
Загрузил новости с RSS, читает мне Алиса(уже Алена) эти новости, когда появляются новые.
Но вот вопрос в том, что я не нашел как вывести эти новости скажем на главный экран, или последние 3 и т.д.
Или что бы Алиса читала их по команде "расскажи новости" (где прописывать команды я нашел, кстати кто какие команды ей запрограммировал?)
Это можно сделать только запросом в БД или какими-то более стандартными средствами?
Antonq
Сообщения: 39
Зарегистрирован: Пн окт 07, 2013 6:15 pm
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Отображение новостей

Сообщение Antonq » Пн окт 14, 2013 2:20 pm

Действительно сложно?
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Отображение новостей

Сообщение sergejey » Пн окт 14, 2013 5:26 pm

Antonq писал(а):Действительно сложно?
я себе это записал в задачки (вызов модуля RSS со списком новостей), но пока не получается заняться. до того пока только через SQL -- как для проговаривания так и для вывода можно сделать (выборку последних новостей и запись их в переменную какую-нибудь)

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Antonq
Сообщения: 39
Зарегистрирован: Пн окт 07, 2013 6:15 pm
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Отображение новостей

Сообщение Antonq » Пн окт 14, 2013 5:28 pm

Спасибо, понял, попробую:)
Опыта в ООП почти нет, но если получится выложу то что получилось)
Antonq
Сообщения: 39
Зарегистрирован: Пн окт 07, 2013 6:15 pm
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Отображение новостей

Сообщение Antonq » Вт окт 15, 2013 4:48 pm

Проде получилось, теперь Алиса по команде "Новости" читает последние новости добавленые(точнее прочитаные), если новостей нет, то она говорит что их нет.
Если кому надо могу поделиться.
Аватара пользователя
Amarok
Сообщения: 1427
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Отображение новостей

Сообщение Amarok » Вт окт 15, 2013 5:09 pm

Делись :)
Моя Алиска живёт на Proxmox в Debian 12
Antonq
Сообщения: 39
Зарегистрирован: Пн окт 07, 2013 6:15 pm
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Отображение новостей

Сообщение Antonq » Вт окт 15, 2013 6:28 pm

1. Создал класс News и наделил его свойствами LastNewsId и методом ReadNewN(метод для чтения новых новостей)
2. Создал объект ThisNews
Вот текст метода

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

$last_id=getGlobal('ThisNews.LastNewsId');
$values=SQLSelect("SELECT * 
FROM  `rss_items` 
WHERE  ID >".$last_id);
if($values) { 
$total=count($values);
say("Новости",5);
for($i=0;$i<$total;$i++){
$sql="SELECT * 
FROM  `rss_items` 
WHERE  ID =".$values[$i]['ID'];

	$value=SQLSelectOne($sql);
	
	say($value['TITLE'],5);

};
$last_id=$value['ID'];

setGlobal('ThisNews.LastNewsId',$last_id);

say('Вот и все новости на сегодня! Хорошего дня!');

} else {say("Нет новых новостей",5);};
3. В объекте ThisComputer подредактировал метод вот таким образом

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

$command=$params['command'];

$short_command='';
$dt=recognizeTime($command,$short_command);

if (preg_match('/скажи сколько время/is',$command)) {
if ($dt>0) {
addScheduledJob("command".$dt,"processCommand('".$short_command."');",$dt);
say('Задача принята');
return;
}
global $voicemode;
$voicemode='on';
say('Сейчас '.timeNow());
} elseif (preg_match('/сколько время/is',$command)) {
if ($dt>0) {
addScheduledJob("command".$dt,"processCommand('".$short_command."');",$dt);
say('Задача принята');
echo $short_command;
return;
}
say('Сейчас '.timeNow());
} elseif (preg_match('/повтори (.+)/is',$command,$m) || preg_match('/скажи (.+)/is',$command,$m)) {
if ($dt>0) {
addScheduledJob("command".$dt,"processCommand('".$short_command."');",$dt);
say('Задача принята');
return;
}
global $voicemode;
$voicemode='on';
say($m[1]);
}
elseif (preg_match('/новости/is',$command)) {
    global $voicemode;
    $voicemode='on';
    callMethod('ThisNews.ReadNewN');

}

else {
say('Неизвестная команда...');
}
4. Зашел в 127.0.0.1/phpmyadmin4/ в бд db_terminal в таблице rss_items посмотрел айди последней новости и присвоил ее свойству объекта ThisNews.LastNewsId

Вот вроде как то так:)
Прошу не судить строго за код, в ООП первый опыт!
DiArt
Сообщения: 210
Зарегистрирован: Пт апр 12, 2013 2:27 pm
Откуда: Уфа
Благодарил (а): 28 раз
Поблагодарили: 16 раз

Re: Отображение новостей

Сообщение DiArt » Ср окт 16, 2013 8:21 am

Супер! Поставил себе. Спасибо тебе, добрый человек )))
А как ты выводишь на домашнюю страницу?
Система на Неттоп 3Q Nettop Qoo!
(Intel Celeron J1800, 2x2410 МГц, 4096 Мб, HDD 1000 Гб, HDMI, VGA , Wi-Fi, Ethernet, Ubuntu 14.04.2)
Вторая система на Raspberry Pi 3.
D-Link DCS-930L/Broadlink RM2-Pro/BroadLink SP3 CC/Ginzzu HS-K07W
Я в CONNECT
Аватара пользователя
Amarok
Сообщения: 1427
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Отображение новостей

Сообщение Amarok » Ср окт 16, 2013 8:29 am

Antonq писал(а):Прошу не судить строго за код, в ООП первый опыт!
Работает. Спасибо!
DiArt писал(а):А как ты выводишь на домашнюю страницу?
Кажется, пока никак. :(
Моя Алиска живёт на Proxmox в Debian 12
Antonq
Сообщения: 39
Зарегистрирован: Пн окт 07, 2013 6:15 pm
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Отображение новостей

Сообщение Antonq » Ср окт 16, 2013 11:59 am

сегодня постараюсь написать метод для вывода
Ответить