(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
Microsoft 365 Apps for business (corporate)
IBM Rational Functional Tester Floating User License
Nero Basic Burning ROM 2018 VL 5 - 9 License corporate
IBM Domino Messaging Server Processor Value Unit (PVU) License + SW Subscription & Support 12 Months
Kaspersky Endpoint Security для бизнеса – Стандартный Russian Edition. 10-14 Node 1 year Base License
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
СУБД Oracle "с нуля"
OS Linux для начинающих. Новости + статьи + обзоры + ссылки
Новые материалы
Программирование на Visual С++
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100