Perl, Curl, Gmail

8 утра. Пришел на работу, выпил кофе, покурил. В голове каша, на работу не настроен. Не есть хорошо. Делаем разминку для мозгов опираясь на статью на Habrahabr. Напишем-ка простенький прикладной демон, который будет оповещать нас о новой почте на Gmail. Для этого нам понадобятся Perl и Curl.


Сначала в рабочей директории создадим папку с конфигом:

[gwinn@darkstar]$ mkdir config

Теперь в ней создадим файл конфига:

[gwinn@darkstar]$ nano -w config/user.conf

Заполним его:

{
  'username' => 'Gmail username',
  'password' => 'Gmail password',
  'timeout' => '300', #количество секунд между запросами 
}

Добавим немного красивости. Создадим директорию для иконки и возможно еще чего-нибудь еще:

[gwinn@darkstar]$ mkdir share
[gwinn@darkstar]$ mkdir share/icons
[gwinn@darkstar]$ cd share/icons
[gwinn@darkstar]$ wget -c http://mail.google.com/mail/images/2/unreadcountfavicon/0.png
[gwinn@darkstar]$ cd ../..

Теперь сам скрипт:

[gwinn@darkstar]$ nano -w config/user.conf

Пишем:

#!/usr/bin/perl
use strict;
my $path = `pwd`; $path =~ s/\n//i;
my $icon = $path.'/share/icons/gmail.gif';
my $config = require $path.'/config/user.conf';
getMail();
sub getMail()
{
  my $recieve = `curl -u $config->{'username'}:$config->{'password'} \
  --silent "https://mail.google.com/mail/feed/atom" | grep -c "<entry>"`;
  $recieve =~ s/\n//i;
  `notify-send -u low -t 7000 -i $icon "Получено $recieve новых писем"` if $recieve != 0;
  sleep($config->{'timeout'});
  getMail();
}

Сохраняем и запускаем:

[gwinn@darkstar]$ ./gmail &

Как то вот так…

Пойду теперь работать…

Perl, Curl, Gmail

Perl, Curl, Gmail: 6 комментариев

    1. gwinn:

      Можно конечно =)
      Просто это скрипт на коленке, за пять минут, для того что бы войти в струю так сказать, вариантов модернизации уже куча в голове вертится, вплоть до интеграции с XFCE =)

    1. gwinn:

      хз, как уже говорил ранее, скрипт просто для разминки, никак не конечная реализация, ну и как бы уже около 6 часов болтается в процессах, ничего страшно-ужасного не происходит =)

  1. Cormorant:

    Подумал переписать этот скрипт на python, и задался вопросом: почему команда curl -u «username»:»password» —silent «https://mail.google.com/mail/feed/atom» ничего не выводит?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *