(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Информационные "виджеты" на PHP в Ubuntu

Источник: habrahabr
kovalevsky

Я хочу поделиться с вами идеей написания подобия информационных виджетов на PHP.
Суть заключается в том, что средствами PHP легко граббить или просто получать информацию из интернета (+ личные предпочтения этому языку), после чего эту информацию можно вывести, используя утилиту notify-send, красиво и лаконично в правый угол монитора. 

Скажу сразу, что на новаторство я не претендую. Возможно, данный метод может показаться многим довольно глупым, но мне, например, проще посмотреть в угол монитора, чем забивать рабочий стол всякими скринлетами, конки и прочим. 
В качестве примера создадим виджет погоды, на основе данных с openweathermap.com.

Нам понадобится веб-сервер с PHP, не важно на локалхосте или нет. 
Создайте на сервере директорию, в которой будут лежать виджеты, у меня это /public_html/scripts/.

Приступим к первой части - PHP:


Создайте файл с именем, например, weather.php. Создали? Отлично. Теперь давайте получим данные с openweathermap.com. У них есть своё API для этих целей, с которым можно познакомиться на этом же сайте, так что не будем на этом останавливаться.
Сперва нам нужно получить идентификатор нужного нам города. Для этого на сайте найдите этот город и посмотрите подробную информацию о нём. В адресной строке мы увидим идентификатор.
Для моего города ссылка виглядит так: openweathermap.org/city/705812, собственно идентификатор здесь 705812.
Отлично, теперь мы знаем id города и можем получить данные с помощью API

Листинг weather.php:
<?php
error_reporting(0);
Header('Content-Type: text/html; charset=utf-8');

function getWeather($id)
{
    if(!empty($id))
    {
        $json = file_get_contents('http://openweathermap.org/data/weather/'.$id.'?type=json');
        $weatherData = json_decode($json, true);
        return $weatherData;
    }
}

$weather = getWeather('705812'); // id нужного города
file_put_contents('weather.png', file_get_contents($weather['img'])); // сохраним картинку погоды для вывода в качество иконки для notify-send.

echo $weather['name']."\n";
echo $weather['temp']." °C\n";
echo "Облачность: ".$weather['clouds']."% \n";
echo "Давление: ".$weather['pressure']." hpa \n";
echo "Влажность: ".$weather['humidity']."% \n";
?>


Вторая часть - Shell скрипт.


Тут всё просто. Мы получаем содержимое нашей страницы с данными в файл, записываем его содержимое в переменную и выводим это через notify-send, используя стащенную с сервера иконку.
Я положил shell скрипт в домашнюю директорию с именем weather.sh

Листинг weather.sh:
#!/bin/bash

rm weather.php
wget http://localhost/scripts/weather.php
WEATHER=`cat ~/weather.php`
notify-send "Погода" "$WEATHER" -i ~/webserv/public_html/scripts/weather.png


PS. Если у кого-нибудь есть способ сделать это вариант по проще, то буду рад выслушать.

Заключение


При вызове shell-скрипта получим что-то похожее на это:

А дальше можно выводить каждую минуту/час/день и т.д. по крону, либо назначить на него горячую клавишу через Compiz или что-нибудь ещё. Тут уже дело личных предпочтений.
Надеюсь, данный материал покажется кому-то полезным. 
Спасибо за внимание.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 17.08.2012 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Panda Mobile Security - ESD версия - на 1 устройство - (лицензия на 1 год)
TeeChart for .NET Standard Business Edition 2017 single license
Quest Software. Toad for SQL Server Development Suite
VMware Workstation 14 Pro for Linux and Windows, ESD
Enterprise Connectors (1 Year term)
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
СУБД Oracle "с нуля"
OS Linux для начинающих. Новости + статьи + обзоры + ссылки
Новые материалы
Программирование на Visual Basic/Visual Studio и ASP/ASP.NET
Все о PHP и даже больше
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100