(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 Global Protection - ESD версия - на 1 устройство - (лицензия на 1 год)
IBM Domino Messaging Client Access License Authorized User License + SW Subscription & Support 12 Months
The BAT! Home- 1 компьютер
Компонент ContentLock - от 1 ПК до 24 ПК
FastReport.Net Professional Edition Single License
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
СУБД Oracle "с нуля"
OS Linux для начинающих. Новости + статьи + обзоры + ссылки
Новые материалы
Windows и Office: новости и советы
Corel DRAW - от идеи до реализации
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Разработка программ базы данных (50)
Написание прикладных компьютерных программ (базы данных) на заказ. Разработка корпоративных...
 
работа на дому! (7)
Доброго времени суток дорогие друзья. Многоуровневый маркетинг окончательно признан...
 
Актуальные зеркала букмекерских контор (4)
Бетторы не всегда доверяют зеркалам БК, а зря, потому что эти «запасные аэродромы» запускают...
 
Ставки на спорт через зеркало БК Пинакл (1)
Актуальное зеркало букмекерской конторы Пинакл https://superbet.guru/pinacle-mirror/ всегда...
 
Ищу программиста для написания программы (57)
Ищу программиста ,владеющего Вижуал Бэйсик и программированием в Экселе, для написания...
 
 
 



    
rambler's top100 Rambler's Top100